Kontext
Architektúra, kritické toky, roly a miesta, kde kód rozhoduje o bezpečnosti.
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.
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.
| 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 |
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.
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.
Architektúra, kritické toky, roly a miesta, kde kód rozhoduje o bezpečnosti.
Automatická analýza celej dohodnutej revízie ako vodidlo pre manuálnu prácu.
Kritické časti kódu, overenie výstupov nástroja a vyradenie falošných zistení.
Kde je to možné a dohodnuté, overíme zistenie aj na bežiacej aplikácii.
Operácie bez kontroly oprávnení alebo vlastníctva záznamu, často mimo hlavného používateľského toku.
Skladanie dopytov, príkazov alebo šablón z nedôveryhodných vstupov.
Heslá, kľúče alebo tokeny uložené v repozitári či konfigurácii.
Zastarané algoritmy, predvídateľné hodnoty alebo vlastná implementácia namiesto overenej knižnice.
Únik interných informácií v chybových hláseniach alebo nebezpečné správanie pri neočakávanom vstupe.
Formu odovzdania, napríklad export do vášho issue trackera, a retest opráv dohodneme podľa ponuky.
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.
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.
Spresníme v zadaní podľa vášho technologického prostredia. Ak by niektorá časť bola mimo našich možností, povieme to vopred.
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.
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ú.
Nemusíte vedieť, či potrebujete test, technológiu alebo konzultáciu. Podľa opisu situácie navrhneme vhodný ďalší krok.