ANALÝZA SOFTVÉRU / ZDROJOVÝ KÓD

Code review a statická analýza

Nájdite bezpečnostné chyby priamo v kóde, s presným miestom a návrhom opravy. Manuálne review kritických častí doplníme statickou analýzou a výsledky overíme, aby sa váš tím nezaoberal falošnými zisteniami.

Bezpečnostná analýza softvéruCode review a statická analýza
Pre koho
Vývojové tímy a CTO pred dôležitým vydaním, preverovaním dodávateľa alebo odovzdaním kódu zákazníkovi.
Čo rieši
Chyby v autorizácii, spracovaní vstupov, kryptografii a obchodnej logike priamo v implementácii.
Ako pomôžeme
Manuálne review a SAST na konkrétnej revízii, overené zistenia s odkazom na kód a odporúčanou opravou.
PREHĽAD

Na čo sa code review zameriava

Orientačný pohľad, nie meranie: 3 hlavná oblasť, 2 bežná súčasť, 1 kontext alebo podľa rozsahu, 0 mimo bežného rozsahu.

Na čo sa code review zameriava
OblasťÚroveň
Návrh a hranice dôvery súčasť testu
Autentifikácia a autorizácia hlavné zameranie
Vstupy a spracovanie údajov hlavné zameranie
Obchodná logika hlavné zameranie
Tajomstvá a kryptografia hlavné zameranie
Závislosti a zostavenie okrajovo

Code review ukazuje, ako aplikácia skutočne rozhoduje

V kóde je vidieť, ako aplikácia pracuje s prístupom, údajmi a chybami. Review nájde slabiny, ktoré sa z bežiacej aplikácie hľadajú ťažko, napríklad chýbajúcu kontrolu oprávnení v menej používanej funkcii, nebezpečnú deserializáciu alebo chybné použitie kryptografie.

Review vykonávame na konkrétnej revízii kódu, ktorú si vopred potvrdíme. Výsledky tak možno presne vzťahovať k verzii, ktorú vydávate alebo odovzdávate.

  • Autentifikácia, správa relácií a autorizácia na serveri.
  • Spracovanie vstupov, databázové dopyty, šablóny a systémové volania.
  • Práca s tajomstvami, kryptografiou a citlivými údajmi.
  • Obchodná logika a ošetrenie chybových stavov.
  • Bezpečnostné nastavenia frameworku a zostavenia.

Manuálne review a SAST sa dopĺňajú

Statická analýza rýchlo prejde celý kód a upozorní na podozrivé vzory. Sama však neposúdi obchodnú logiku, kontext ani to, či je zistenie skutočne zneužiteľné. Preto ju používame ako podporu manuálneho review, ako odporúča aj OWASP Secure Code Review Cheat Sheet.

Zistenia klasifikujeme podľa katalógu slabín CWE, aby ich váš tím mohol ľahko vyhľadať a sledovať. Kontrolné požiadavky možno dohodnúť podľa OWASP ASVS. Ide o metodický rámec, nie o certifikáciu kódu.

Kontext

Architektúra, kritické toky, roly a miesta, kde kód rozhoduje o bezpečnosti.

SAST

Automatická analýza celej dohodnutej revízie ako vodidlo pre manuálnu prácu.

Manuálne review

Kritické časti kódu, overenie výstupov nástroja a vyradenie falošných zistení.

Potvrdenie

Kde je to možné a dohodnuté, overíme zistenie aj na bežiacej aplikácii.

Typické kategórie zistení

Chýbajúca autorizácia

Operácie bez kontroly oprávnení alebo vlastníctva záznamu, často mimo hlavného používateľského toku.

Injekcie

Skladanie dopytov, príkazov alebo šablón z nedôveryhodných vstupov.

Tajomstvá v kóde

Heslá, kľúče alebo tokeny uložené v repozitári či konfigurácii.

Kryptografia

Zastarané algoritmy, predvídateľné hodnoty alebo vlastná implementácia namiesto overenej knižnice.

Chybové stavy

Únik interných informácií v chybových hláseniach alebo nebezpečné správanie pri neočakávanom vstupe.

Výstupy pre vývojárov aj vedenie

Formu odovzdania, napríklad export do vášho issue trackera, a retest opráv dohodneme podľa ponuky.

  • Zhrnutie rizík a priorít pre vedenie.
  • Každé zistenie s odkazom na súbor, riadok a revíziu, s opisom scenára a dopadom.
  • Klasifikáciu podľa CWE a zdôvodnenú závažnosť v kontexte.
  • Odporúčanú opravu, prípadne ukážku bezpečnejšieho riešenia.
  • Prehľad, ktoré časti kódu sa prechádzali manuálne a ktoré len automaticky.

Čo od vás potrebujeme a kde review končí

Potrebujeme prístup ku konkrétnej revízii kódu, opis architektúry a postup zostavenia. Pomôže kontakt na vývojárov, ktorí zodpovedajú otázky k návrhu a obchodnej logike.

Pri rozsiahlom kóde sa manuálne review sústredí na vopred dohodnuté kritické časti. Čo sa manuálne neprechádzalo, v reporte jasne uvedieme. Review nemôže preukázať, že kód neobsahuje žiadne ďalšie chyby.

Metodické a produktové zdroje

Časté otázky

Kým sa pustíme do práce.

Nahradí SAST manuálne review?

Nie. Nástroje pomáhajú nájsť podozrivé miesta a opakované vzory. Obchodnú logiku, kontext a skutočnú zneužiteľnosť však spoľahlivo neposúdia.

Ktoré jazyky a frameworky pokrývate?

Spresníme v zadaní podľa vášho technologického prostredia. Ak by niektorá časť bola mimo našich možností, povieme to vopred.

Musí kód opustiť naše prostredie?

Nie nevyhnutne. Variant, napríklad prácu vo vašom prostredí alebo dočasný prístup iba na čítanie, dohodneme podľa vašich požiadaviek ešte pred začiatkom.

Ako sa code review líši od penetračného testu?

Penetračný test skúma bežiacu aplikáciu zvonku. Code review vidí implementáciu priamo, takže nájde aj chyby v kóde, ktorý sa pri teste ťažko spustí. Obe metódy sa dopĺňajú.

NEZÁVÄZNÝ PRVÝ ROZHOVOR

Neviete, kde začať? Opíšte nám situáciu.

Nemusíte vedieť, či potrebujete test, technológiu alebo konzultáciu. Podľa opisu situácie navrhneme vhodný ďalší krok.