Ako si objednať pentest - kompletný návod

Ako si objednať pentest - kompletný návod

Hoci ľuďom z IT bezpečnostnej branže môže táto otázka pripadať rovnako triviálna ako “Ako si objednať nabíjačku na telefón”, pre mnohých však spísanie objednávky na pentest predstavuje podobnú úlohu ako navrhnutie jadrovej elektrárne.

  • Čo sú všetky tie divné názvy a skratky?
  • Je pentest to isté ako audit?
  • Čo sa vlastne bude testovať a čo to obnáša?
  • Dúfam že nebudú mať na mňa otázky…

To sú pravdepodobne prvé otázky čo obchodníkov alebo ľudí z obstarávania napadnú v návale stresu ako prvé. A preto sme sa rozhodli vám pomôcť zodpovedať tieto otázky, a zároveň vás zbaviť stresu z takejto úlohy. Jednoducho tak, že vám ukážeme, ako si vybrať a objednať penetračný test ako skutočný profík.

Pentest alebo Audit

Ako pri všetkom delení, aj v tomto prípade existuje veľa rôznych definícii. Preto sa vám ich pokúsime popísať tak, ako to vidíme my, hackeri.

Audit- najvýstižnejším možným prirovnaním, ako aj samotný názov napovedá, je daňová kontrola (v tomto prípade dobrovoľná). Pozvete si do firmy, prípadne na server, skupinu expertov, ktorým dáte všade prístup, všetku dostupnú dokumentáciu a poskytnete maximálnu možnú súčinnosť. Oni na základe týchto podkladov a prístupov vypracujú správu o tom, ako bezpečný je podľa nich váš server, riešenia, firma a popíšu kroky, ktoré by ste mali podniknúť, aby sa to zlepšilo. Prípadne, aby ste splnili nejakú reguláciu.

Pentest - je skratkou od “Penetračný test”, a predstavuje kontrolovaný reálny hackerský útok. Predstavte si, že by ste napísali na internet “Tak ma teda hacknite!” Rozdiel spočíva v tom, že etickí hackeri majú s vami podpísanú zmluvu, dohodnuté podmienky, odsúhlasený postup a zmluvu o mlčanlivosti. Po stanovený čas sa budú vašu aplikáciu, firmu, sieť snažiť naozaj hacknúť, no následne vám nájdené zraniteľnosti nielen prakticky demonštrujú, ale ponúknu vám aj riešenie ako ich napraviť.

Čo je teda lepšie?

Ako všetko v živote, obe tieto metódy majú svoje výhody aj nevýhody. Výber však ostáva na vás, keďže vy sami musíte posúdiť čo je pre vás a vaše potreby výhodnejšie. Budem však úprimný, hackeri preferujú penetračné testy, a to z jednoduchého dôvodu: “Praktická ukážka je lepšia ako 1000 slov. Nedá sa proti nej argumentovať.” To je aj dôvod prečo je tento blog venovaný práve pentestom.

Samotný výber pentestu samozrejme záleží od predmetu testovania, teda či sa jedná o

  • webovú aplikáciu
  • mobilnú aplikáciu
  • infraštruktúru
  • IoT zariadenie

Je veľmi dôležité si to vyjasniť hneď na začiatku. Ak zadanie iba pripravujete, a nie ste samotný zadávateľ, požiadajte o vysvetlenie, čo konkrétne je vlastne predmetom testovania. Následne môžete prikročiť k výbere formy pentestu. Vynikajúcu vizuálnu pomôcku pre výber konkrétnej formy pentestu nám vo svojej metodike uvádza nemecká BSI:

ako objednat pentest

Je to ako v tých detských bludiskách, ktoré nájdete na papierových prestieraniach v bufetoch. Jednoducho nájdete svoju cestičku zhora nadol tým, že si odpoviete na otázky v riadkoch.

Information base (Dostupné informácie)

S akými informáciami budú “útočníci”, teda penetrační testeri, test vykonávať. Black Box - v jednoduchosti znamená bez znalosti aplikácie. Testovanie sa vykonáva bez znalosti o tom, v čom a ako je aplikácia naprogramovaná, alebo ako sieť vyzerá, či zariadenie funguje. Jediné informácie, ktoré pentesteri majú, sú také, ako sa daný predmet testovania používa z pohľadu bežných používateľov. Black box predstavuje najčastejšiu formu testovania. White box - ako ste si už iste domysleli, jedná sa o opačnú situáciu, a teda ak sa pentesterom rozhodnete poskytnúť všetky dostupné informácie a/alebo aj súčinnosť pri testovaní.

Agressivness (Intenzita testovania)

Otázka ako “násilní” môžu pentesteri pri testovaní byť, v rozsahu medzi “pozerať, ale nechytať” až po “robte, čo viete”, je väčšinou namieste iba v špecifických prípadoch, ak sa jedná o naozaj citlivé ciele, ako sú napríklad priemyselné siete. Ak sa jedná o webovú či mobilnú aplikáciu, určite chcete, aby sa pri testovaní vyskúšalo, čo sa len dá. Útočníci si totižto rukavičky neberú.

Scope (Rozsah testovania)

Korektné vyjasnenie, čo všetko spadá do zadania testu alebo naopak, čo nie je predmetom testovania, je kľúčovým bodom, v ktorom treba mať jasno už na začiatku. Pentesteri sa vás pred začiatkom testovania pre istotu opätovne na rozsah spýtajú, aby nedošlo k nedorozumeniu. Treba si uvedomiť, že ak je test vykonávaný formou black box (bez znalostí), pentesteri sú odkázaní na vami špecifikované zadanie. Nedokážu jednoducho rozlíšiť, či niektorý zo serverov, s ktorými aplikácia komunikuje, patrí už tretej strane a len používa vašu doménu, alebo či na serveri sú aj aplikácie, ktoré testovať nechcete.

Approach (Prístup k testovaniu)

Ako k testovaniu pristupovať? “Rýchlo a zbesilo”, teda bez strachu z odhalenia alebo “nenápadne ako ninja”? Vo väčšine prípadov je automatickou voľbou scenár bez skrývania, keďže o teste aj termíne vykonávania samozrejme viete a chystáte sa monitorovať správanie sa aplikácie. Výnimku však predstavujú situácie, ak sa chytáte testovať váš IDS/IPS systém, prípadne reakciu vášho bezpečnostného oddelenia na incident. Treba však mať na pamäti, že v “ninja” verzii budú pentesteri potrebovať o dosť viacej času.

Technique (Technika testovania)

Výber “techniky” pre testovanie samozrejme závisí od predmetu testovania. Vo väčšine prípadov sa jedná o testovanie cez sieť, či už cez internet alebo vašu lokálnu. Výnimku tvoria prípady, kde treba manipulovať s fyzickým zariadením (napríklad PLC) alebo s ľuďmi, technikami sociálneho inžinierstva.

Staring point (Miesto testovania)

Posledný bod odpovedá na organizačnú otázku, či je možné testovať z pohodlia našej kancelárie cez internet (prípadne VPN pripojenie) alebo bude testovania prebiehať v priestoroch zadávateľa. Napríklad, ak nie je z nejakého dôvodu možné zabezpečiť vzdialený prístup. Našou preferovanou voľbou je samozrejme prvá možnosť.

Ako však bude samotné testovanie prebiehať? Čo a ako sa bude testovať? Aké zraniteľnosti sa testujú? Na to sa pokúsime odpovedať v ďalšej časti.

Metodika

Výber metodiky, ktorá určuje postup a rozsah testovania záleží na predmete testovania. O jednotlivých metodikách, ich výhodách a nevýhodách, existujú rozsiahle články a diskusie. Pre zjednodušenie uvedieme tie, ktoré sú pre väčšinu ľudí vhodnou voľbou v danej kategórii.

Webové aplikácie

OWASP Testing Guide (v4)*

  • Niekedy uvádzaná ako OTGv4. Ak chcete otestovať webovú aplikáciu je toto vaša najlepšia voľba.

Mobilné aplikácie

OWASP Mobile Security Testing Guide* - OWASP MSTG

  • Jedná sa o súhrnnú metodiku pre testovanie mobilných aplikácii pre platformy Android a iOS, ktorej testy pokrývajú požiadavky zo štandardu OWASP MASVS (ak ho používate).

Infraštruktúra

Open Source Security Testing Methodology Manual - OSSTMM

  • Túto skratku nájdete takmer vo všetkých zadaniach pre penetračné testy infraštruktúry. Jedná sa však o formálnu metodiku, nie o testovaciu príručku ako takú. Ak ju uvediete v kolónke metodika tiež, nič tým nepokazíte.

Priemysel/ICS/SCADA

Securea

  • Pre tieto systémy zatiaľ neexistuje ucelená testovacia metodika. Aktuálne na nej pracujeme.

*Do kolónky metodika prosím vyplňte vždy celý názov metodiky alebo jej skratku. Ak uvediete iba OWASP, je to ako keby ste si na Vianoce želali LEGO. Skratka OWASP označuje neziskovú organizáciu zastrešujúcu vydávanie spomínaných metodík, ktorých je viacero. Len v tejto sekcii sú uvedené dve.

Na čo myslieť pred pentestom

Nacenenie

Ak si želáte vypracovať cenovú ponuku alebo vypisujete výberové konanie, prvá vec, o ktorú vás naozajstný pentester požiada, je ukážka aplikácie, prípadne jej používateľská príručka, či iný popis funkčnosti (najlepšie s obrázkami).

Na to, aby sme boli schopní určiť prácnosť a rozsah predmetu testovania, potrebujeme vedieť, o akú aplikáciu sa jedná a aká je jej funkcionalita. Na základe týchto informácii je možné stanoviť celkom presný časový (a teda aj finančný) odhad, ako aj overiť podmienky zadania. Ak vám totižto na vašu objednávku / tender niekto odpovie obratom ponukou bez toho, aby sa vôbec zaujímal, o akú aplikáciu a testovanie sa jedná, je kvalita výsledku takejto ponuky na zváženie.

Netestujte na produkcii

Naozaj to nie je dobrý nápad. Hoci sa snažíme vyvarovať “deštruktívnych” aktivít, stáva sa že aplikáciu vyradíme nechtiac z prevádzky alebo modifikujeme (zmažeme) dáta iných používateľov. Preto testy vykonávame na inom, napríklad testovacom prostredí, ktoré by však malo byť identické s produkčným (a obsahovať testovacie dáta). Na dané prostredie tiež nie je žiadané nasadzovať nové verzie počas testovania, nakoľko to ovplyvňuje výsledky testovania. Medzi ďalšie dôvody patria aj nižšie uvedené body.

Spravte si zálohu

Pred webovým pentestom si spravte zálohu, ideálne snapshot OS aj DB. Počas testovania sa narobí v aplikácii naozaj veľký neporiadok, je jednoduchšie celé prostredie obnoviť. To isté platí aj pre testovanie mobilných aplikácii, ktoré používajú webový backend.

Prostredie budeme chcieť pre seba

Ak je to možné, budeme chcieť prostredie pre testovanie vyhradiť pre seba. To platí hlavne pre webové aplikácie. Dôvodom je uľahčenie testovania a minimalizovanie komplikácii. Počas testovania v tomto prípade vieme, že všetky stavy, ktoré nastanú, sme spôsobili my a nie zhodou náhod niekto iný. Taktiež sa nemusíme obávať, že nechtiac ovplyvníme testovanie niekoho iného.

Termín realizácie

Pri navrhovaní termínu realizácie je dobré dopredu počítať s tým, že pentest väčšinou vykonávajú dvaja pentesteri, a teda rezervovať im na realizáciu dostatočne široké časové okno. Nie všetky úlohy je možné paralelizovať. 5x viac ľudí teda neotestuje jednu vec 5x rýchlejšie.

Čo od vás budeme potrebovať

Kontaktné osoby

Počas testovania budeme potrebovať dve kontaktné osoby, dostupné v čase vykonávania pentestu. Technický kontakt - človek, ktorému možno zavolať ak aplikácia prestane fungovať alebo je potrebné niečo technické odkonzultovať. Eskalačný kontakt– človek, ktorého je možné urgentne kontaktovať, ak sa nájde závažná zraniteľnosť, ktorá môže ohroziť aj produkčné prostredie. V takom prípade totiž odporúčame vykonať opravu okamžite, nečakať na report od nás.

Prístupy

Pentesteri budú potrebovať prístupy do siete, aplikácie, VPN a pod. Obzvlášť vo veľkých organizáciách, kde sú komplikované procesy, je dobré na tento fakt myslieť dopredu, aby bolo na ich zabezpečenie dostatok času.

Webové služby

Ak sú predmetom testovania webové služby bude potrebné okrem popisu volaní (napr. WSDL), pripraviť aj funkčné vzorové požiadavky. Alebo priamo testovacie projekty (SoapUI).

Mobilná aplikácia

Ak je predmetom testovania mobilná aplikácia a táto nie je ešte zverejnená, budeme potrebovať balíček aplikácie, prípadne aj jej zdrojové kódy (ak budú potrebné).

Vzorový príklad

Ako si pentest naozaj neobjednávať:

Dobrý deň,

poprosil by som vás o ponuku na security testovanie nášho intranet webu.

Sú to dva servery apache a mysql.

Možný termín je budúci pondelok až stredu.

S pozdravom,

Zákazník

Výberové konanie na webový penetračný test modulu LOL aplikácie QWERTY projektu IMHOLOL

Popis: Jedná sa o FUN aplikáciu oddelenia PWND na správu HEH klientov využívajúcich službu HAHA

Rozsah: 42 formulárov

Použité technológie: Apache, Linux, HTML

Požiadavky na testovanie: OWASP, OSSTMM, CWE, NIST, CVE, CISSP

Termín realizácie: 1-5.11.2017

Doplňujúce otázky nie sú možné.

Firma E

A na záver už len ukážka objednávky, akú by sme od vás radi dostali:

Dobrý deň,

chcel by som vás požiadať o vypracovanie ponuky na penetračné testovanie webovej aplikácie AWESOMEAPP.

Demo aplikácie si môžete vyskúšať na adrese https://demo.awesomeapp.sk , prihlasovacie údaje demo: demo

Požadovaný je penetračný test metódou black-box v plnom rozsahu metodiky OWASP Testing Guide.

Test by mal byť realizovaný na vyhradenom testovacom prostredí dostupnom z internetu, v priebehu mesiaca November.

Pre doplňujúce otázky ma neváhajte kontaktovať,

s pozdravom,

Super Zákazník

Tešíme sa na vaše objednávky ;)

O autorovi

Martin Hanic
Etický hacker
Svoj prvý program som napísal na Didaktiku M, meškal na stužkovú a odpromoval aj napriek nástrahám Gentoo a Battle.net. Keďže kaziť je zábavnejšie ako opravovať, po 15 rokoch strávených v korporáciách, som sa rozhodol prejsť na stranu etických hackerov. Okrem banky, som hackol aj armádne servery ôsmych štátov – našťastie iba v Locked Shields. Mám rád nové technológie, šifrujem čo sa dá a pijem kávu za bitcoiny.
Zobraziť viac od autora

Podobné blogy