Penetračný test sa začína dávno pred prvou odoslanou požiadavkou. Kvalita výsledku závisí od toho, ako jasne je vymedzený cieľ, rozsah a pravidlá. Ak tieto otázky zostanú otvorené, test sa zdrží, časť času padne na vyjasňovanie a výsledky sa ťažšie porovnávajú s očakávaniami.
Nasledujúci prehľad vychádza z našej praxe a z verejných rámcov. Napríklad publikácia NIST SP 800-115 venuje plánovaniu testu samostatnú kapitolu a obsahuje aj vzor pravidiel testu. Neberte prehľad ako úplný zoznam. Každé prostredie má svoje špecifiká.
Začnite cieľom a rozsahom
Najprv si ujasnite, prečo test robíte. Iný prístup si vyžaduje kontrola novej aplikácie pred spustením, iný overenie externej infraštruktúry a iný požiadavka zákazníka alebo audítora. Cieľ určuje, čo testovať, do akej hĺbky a akú formu má mať výstup.
Pri vymedzení rozsahu pomôžu odpovede na tieto otázky:
- Ktoré systémy, aplikácie, API alebo rozsahy adries sú predmetom testu?
- Čo do rozsahu výslovne nepatrí, napríklad systémy tretích strán alebo zdieľaný hosting?
- Testujeme produkciu, alebo testovacie prostredie, ktoré jej verne zodpovedá?
- Aké používateľské roly aplikácia má a ktoré z nich chcete overiť?
- Ide o pohľad zvonka, zvnútra siete, alebo o oboje?
Pozor na služby, ktoré nevlastníte. Cloudové platformy, SaaS aplikácie či hosting majú vlastné pravidlá pre bezpečnostné testovanie. Pred testom overte, čo poskytovateľ dovoľuje, a v prípade potreby si vyžiadajte jeho súhlas.
Autorizácia a pravidlá testu
Bez písomnej autorizácie sa penetračný test nemá začať. Podpísať ju má ten, kto má k testovaným systémom skutočné oprávnenie. Pri systémoch, ktoré prevádzkuje dodávateľ, to často znamená zapojiť aj jeho.
Na autorizáciu nadväzujú pravidlá testu, anglicky Rules of Engagement. Opisujú, ako bude test prebiehať a čo je povolené. Zvyčajne obsahujú:
- časové okná testu a prípadné obmedzenia, napríklad mimo účtovnej uzávierky,
- povolené a zakázané techniky, napríklad záťažové testy alebo sociálne inžinierstvo,
- zdrojové IP adresy testerov, aby ich váš tím spoznal v záznamoch,
- postup pri zistení kritickej zraniteľnosti a ako rýchlo ho hlásiť,
- podmienky, za ktorých sa test okamžite zastaví,
- zaobchádzanie s údajmi, ku ktorým sa tester počas testu dostane.
Rozhodnite tiež, či o teste bude vedieť váš prevádzkový alebo bezpečnostný tím. Ohlásený test obmedzí falošné poplachy. Neohlásený zasa ukáže, ako tím reaguje. Obe varianty majú zmysel, len ich treba dohodnúť vopred.
Testovacie účty, údaje a kontakty
Pri aplikáciách a API býva častým zdržaním chýbajúci prístup. Pripravte testovacie účty pre každú rolu, ktorú chcete overiť. Na testy autorizácie sú potrebné aspoň dva účty s rovnakou rolou, ideálne v rôznych organizáciách alebo tenantoch. Len tak sa dá overiť, že používateľ nevidí cudzie údaje.
Do testovacieho prostredia patria realistické, ale nie skutočné údaje. Ak testujete produkciu, dohodnite, s ktorými záznamami sa smie pracovať. Prihlasovacie údaje odovzdávajte bezpečnou cestou, nikdy nie v bežnom e-maile spolu s adresou systému.
Skontrolujte aj technické detaily:
- Overte, že testovacie prostredie funguje a obsahuje aktuálnu verziu.
- Dohodnite, či majú byť adresy testerov povolené vo WAF alebo v iných ochranách. Závisí to od cieľa testu.
- Pri mobilných aplikáciách pripravte inštalačný balík a prístup k testovaciemu backendu.
- Pri API dodajte dokumentáciu, napríklad špecifikáciu OpenAPI, alebo sadu ukážkových požiadaviek.
- Zálohujte údaje, ak test prebieha v prostredí s dôležitým obsahom.
Kontakty a komunikácia počas testu
Na oboch stranách určte kontaktné osoby. Na vašej strane potrebujete niekoho, kto rozumie testovaným systémom a dokáže rýchlo rozhodnúť. Pre prípad problémov je vhodný aj náhradný kontakt a dohodnutý komunikačný kanál.
Vopred si povedzte, ako sa budete informovať o priebehu. Pri kratších testoch stačí úvodné a záverečné stretnutie. Pri dlhších sú vhodné priebežné krátke správy. Kritické zistenie nemusí čakať na záverečný report, ak sa tak dohodnete.
Čo od testu nečakať
Penetračný test je obmedzený časom a rozsahom. Znižuje neistotu, ale nemôže dokázať, že v prostredí nie sú žiadne ďalšie zraniteľnosti. Nenahrádza pravidelné aktualizácie, monitoring ani bezpečný vývoj. Výsledkom nie je certifikát, ale doložený opis toho, čo tester v dohodnutých podmienkach overil a čo našiel.
Test sám ani nerieši nápravu. Report opíše zistenia, ich dopad a odporúčania. Opravy potom robí váš tím alebo dodávateľ. Retest, teda overenie opráv, býva samostatnou časťou ponuky.
Kontrolný zoznam pred testom
- Cieľ testu a očakávaná forma výstupu sú zapísané.
- Rozsah obsahuje zoznam cieľov aj výslovné výnimky.
- Autorizáciu podpísal oprávnený vlastník systémov, prípadne aj poskytovateľ služby.
- Pravidlá testu obsahujú časové okná, zakázané techniky a postup zastavenia.
- Testovacie účty existujú pre všetky roly vrátane dvoch účtov s rovnakou rolou.
- Testovacie prostredie funguje a údaje sú pripravené.
- Kontakty, náhradné kontakty a komunikačný kanál sú dohodnuté.
- Je jasné, či o teste vie prevádzkový tím.
Ak test plánujete a nie ste si istí rozsahom alebo pravidlami, môžeme ich prejsť spoločne. Viac o priebehu nájdete na stránke Penetračné testy. Dohodnite si konzultáciu a prejdeme, čo má zmysel pre vaše prostredie.