Jak si objednat pentest - kompletní návod

Jak si objednat pentest - kompletní návod

Přestože lidem z IT bezpečnostní branže může tato otázka připadat stejně triviální jako “Jak si objednat nabíječku na telefon”, pro mnohé však sepsání objednávky na pentest představuje podobnou roli jako navržení jaderné elektrárny.

  • Co jsou všechny ty divné názvy a zkratky?
  • Je pentest totéž jako audit?
  • Co se vlastně bude testovat a co to obnáší?
  • Doufám, že nebudou mít na mě otázky …

To jsou pravděpodobně první otázky, co obchodníky nebo lidi ze zakázek napadnou v návalu stresu jako první. A proto jsme se rozhodli vám pomoci zodpovědět tyto otázky, a zároveň vás zbavit stresu z takové úlohy. Jednoduše tak, že vám ukážeme, jak si vybrat a objednat penetrační test jako skutečný profík.

Pentest nebo Audit

Jako při všem dělení, i v tomto případě existuje mnoho různých definic. Proto se vám je pokusíme popsat tak, jak to vidíme my, hackeři.

Audit – nejvýstižnějším možným přirovnáním, jakož i samotný název napovídá, je daňová kontrola (v tomto případě dobrovolná). Pozvete si do firmy, případně na server, skupinu expertů, kterým dáte všude přístup, veškerou dostupnou dokumentaci a poskytnete maximální možnou součinnost. Oni na základě těchto podkladů a přístupů vypracují zprávu o tom, jak bezpečný je podle nich váš server, řešení, firma a popíší kroky, které byste měli podniknout, aby se to zlepšilo. Případně, abyste splnili nějakou regulaci.

Pentest – je zkratkou od “Penetrační test”, a představuje kontrolovaný reálný hackerský útok. Představte si, že byste napsali na internet “Tak mě tedy hackněte!” Rozdíl spočívá v tom, že etičtí hackeři mají s vámi podepsanou smlouvu, dohodnuté podmínky, odsouhlasený postup a smlouvu o mlčenlivosti. Po stanovený čas budou vaši aplikaci, firmu, síť snažit opravdu hacknout, ale následně vám nalezené zranitelnosti nejen prakticky demonstrují, ale nabídnou vám i řešení, jak je napravit.

Co je tedy lepší?

Jako všechno v životě, obě tyto metody mají své výhody i nevýhody. Výběr však zůstává na vás, protože vy sami musíte posoudit, co je pro vás a vaše potřeby výhodnější. Budu však upřímný, hackeři preferují penetrační testy, a to z jednoduchého důvodu: “Praktická ukázka je lepší než 1000 slov. Nelze proti ní argumentovat.” To je také důvod, proč je tento blog věnovaný právě pentestům.

Samotný výběr pentestu samozřejmě záleží na předmětu testování, tedy zda se jedná o

  • webovou aplikaci
  • mobilní aplikaci
  • infrastrukturu
  • IoT zařízení

Je velmi důležité si to vyjasnit hned na začátku. Pokud zadání pouze připravujete, a nejste samotný zadavatel, požádejte o vysvětlení, co konkrétně je vlastně předmětem testování. Následně můžete přikročit k výběru formy pentestu. Vynikající vizuální pomůcku pro výběr konkrétní formy pentestu nám ve své metodice uvádí nemecká BSI:

ako objednat pentest

Je to jako v těch dětských bludištích, které najdete na papírových prostíráních v bufetech. Jednoduše najdete svou cestičku shora dolů tím, že si odpovíte na otázky v řádcích.

Information base (Dostupné informace)

S jakými informacemi budou “útočníci”, tedy penetrační testeři, test provádět. Black Box – v jednoduchosti znamená bez znalosti aplikace. Testování se provádí bez znalosti o tom, v čem a jak je aplikace naprogramována, nebo jak síť vypadá, zda zařízení funguje. Jediné informace, které pentesteři mají, jsou takové, jak se daný předmět testování používá z pohledu běžných uživatelů. Black box představuje nejčastější formu testování. White box – jak jste si už jistě domysleli, jedná se o opačnou situaci, a tedy pokud se pentesterům rozhodnete poskytnout všechny dostupné informace a / nebo i součinnost při testování.

Agressivness (Intenzita testování)

Otázka, jak “násilní” mohou pentesteři při testování být v rozsahu mezi “dívat, ale nesahat” až po “dělejte, co víte”, je většinou namístě pouze ve specifických případech, kdy se jedná o opravdu citlivé cíle, jako jsou průmyslové sítě. Pokud se jedná o webovou či mobilní aplikaci, určitě chcete, aby se při testování vyzkoušelo, co se jen dá. Útočníci si totiž rukavičky neberou.

Scope (Rozsah testování)

Korektní vyjasnění, co všechno spadá do zadání testu nebo naopak, co není předmětem testování, je klíčovým bodem, ve kterém třeba mít jasno už na začátku. Pentesteři se vás před začátkem testování pro jistotu znovu na rozsah zeptají, aby nedošlo k nedorozumění. Je třeba si uvědomit, že pokud je test prováděn formou black box (bez znalostí), pentesteři jsou odkázáni na vámi specifikované zadání. Nedokáží jednoduše rozlišit, zda některý ze serverů, se kterými aplikace komunikuje, patří již třetí straně a jen používá vaši doménu, nebo zda na serveru jsou i aplikace, které testovat nechcete.

Approach (Přístup k testování)

Jak k testování přistupovat? “Rychle a zběsile”, tedy bez strachu z odhalení nebo “nenápadně jako ninja”? Ve většině případů je automatickou volbou scénář bez skrývání, neboť o testu i termínu provádění samozřejmě víte a chystáte se monitorovat chování aplikace. Výjimku však představují situace, pokud se chystáte testovat váš IDS / IPS systém, případně reakci vašeho bezpečnostního oddělení na incident. Třeba však mít na paměti, že v “ninja” verzi budou pentesteři potřebovat o dost více času.

Technique (Technika testování)

Výběr “techniky” pro testování samozřejmě závisí na předmětu testování. Ve většině případů se jedná o testování přes síť, ať už přes internet nebo vaši lokální. Výjimku tvoří případy, kde je třeba manipulovat s fyzickým zařízením (například PLC) nebo s lidmi, technikami sociálního inženýrství.

Staring point (Místo testování)

Poslední bod odpovídá na organizační otázku, zda je možné testovat z pohodlí naší kanceláře přes internet (případně VPN připojení) nebo bude testování probíhat v prostorách zadavatele. Například, pokud není z nějakého důvodu možné zabezpečit vzdálený přístup. Naší preferovanou volbou je samozřejmě první možnost.

Jak však bude samotné testování probíhat? Co a jak se bude testovat? Jaké zranitelnosti se testují? Na to se pokusíme odpovědět v následujících řádcích.

Metodika

Výběr metodiky, která určuje postup a rozsah testování záleží na předmětu testování. O jednotlivých metodikách, jejich výhodách a nevýhodách, existují rozsáhlé články a diskuze. Pro zjednodušení uvedeme ty, které jsou pro většinu lidí vhodnou volbou v dané kategorii.

Webové aplikace

OWASP Testing Guide (v4)* - Někdy uváděna jako OTGv4. Chcete-li otestovat webovou aplikaci je toto vaše nejlepší volba. https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

Mobilní aplikace

OWASP Mobile Security Testing Guide*- OWASP MSTG – Jedná se o souhrnnou metodiku pro testování mobilních aplikací pro platformy Android a iOS, jejíž testy pokrývají požadavky ze standardu OWASP MASVS (pokud jej používáte). https://www.owasp.org/index.php/OWASP_Mobile_Security_Testing_Guide

Infrastruktura

Open Source Security Testing Methodology ManualOSSTMM – Tuto zkratku najdete téměř ve všech zadáních pro penetrační testy infrastruktury. Jedná se však o formální metodiku, ne o testovací příručku jako takovou. Pokud ji uvedete v kolonce metodika také, nic tím nezkazíte. Více informací naleznete na stránce institutu

Průmysl /ICS/SCADA

Securea – Pro tyto systémy zatím neexistuje ucelená testovací metodika. Aktuálně na ní pracujeme. https://www.securea.io/

*Do kolonky metodika prosím vyplňte vždy celý název metodiky nebo její zkratku. Pokud uvedete pouze OWASP, je to jako kdybyste si na Vánoce přáli LEGO. Zkratka OWASP označuje neziskovou organizaci zastřešující vydávání zmíněných metodik, kterých je několik. Jen v této sekci jsou uvedeny dvě.

Na co myslet před pentestem

Nacenění

Pokud si přejete vypracovat cenovou nabídku nebo vypsat výběrové řízení, první věc, o kterou vás opravdový pentester požádá, je ukázka aplikace, případně její uživatelská příručka, či jiný popis funkčnosti (nejlépe s obrázky).

Na to, abychom byli schopni určit pracnost a rozsah předmětu testování, potřebujeme vědět, o jakou aplikaci se jedná a jaká je její funkcionalita. Na základě těchto informací je možné stanovit zcela přesný časový (a tedy i finanční) odhad, jakož i ověřit podmínky zadání. Pokud vám totiž na vaši objednávku / tender někdo odpoví obratem nabídkou, aniž se vůbec zajímal, o jakou aplikaci a testování se jedná, je kvalita výsledku takové nabídky na zvážení.

**Netestujte na produkci **

Opravdu to není dobrý nápad. Ačkoliv se snažíme vyvarovat “destruktivních” aktivit, stává se, že aplikaci vyřadíme nechtěně z provozu nebo modifikujeme (smažeme) data jiných uživatelů. Proto testy provádíme na jiném, například testovacím prostředí, které by však mělo být identické s produkčním (a obsahovat testovací data). Na dané prostředí také není žádané nasazovat nové verze během testování, jelikož to ovlivňuje výsledky testování. Mezi další důvody patří i níže uvedené body.

Udělejte si zálohu

Před webovým pentestem si udělejte zálohu, ideálně snapshot OS i DB. Během testováním se udělá v aplikaci opravdu velký nepořádek, je jednodušší celé prostředí obnovit. Totéž platí i pro testování mobilních aplikací, kde používejte webový backend.

**Prostředí budeme chtít pro sebe **

Pokud je to možné, budeme chtít prostředí pro testování vyhradit pro sebe. To platí hlavně pro webové aplikace. Důvodem je usnadnění testování a minimalizace komplikací. Během testování v tomto případě víme, že všechny stavy, které nastanou, jsme způsobili my, a ne shodou náhod někdo jiný. Také se nemusíme obávat, že nechtěně ovlivníme testování někoho jiného.

**Termín realizace **

Při navrhování termínu realizace je dobré předem počítat s tím, že pentest většinou provádějí dva pentesteři, a tedy rezervovat jim na realizaci dostatečně široké časové okno. Ne všechny úlohy je možné paralelizovat. 5x více lidí tedy neotestuje jednu věc 5x rychleji.

Co od vás budeme potřebovat

Kontaktní osoby

Během testování budeme potřebovat dvě kontaktní osoby, dostupné v době provádění pentestu.** Technický kontakt **– člověk, kterému lze zavolat, pokud aplikace přestane fungovat nebo je potřeba něco technické zkonzultovat. **Eskalační kontakt **– člověk, kterého lze urgentně kontaktovat, pokud se najde závažná zranitelnost, která může ohrozit i produkční prostředí. V takovém případě totiž doporučujeme provést opravu okamžitě, nečekat na report od nás.

Přístupy

Pentesteři budou potřebovat přístupy do sítě, aplikace, VPN apod. Obzvláště ve velkých organizacích, kde jsou komplikované procesy, je dobré na tento fakt myslet dopředu, aby bylo na jejich zabezpečení dostatek času.

Webové služby

Pokud jsou předmětem testování webové služby bude nutné kromě popisu volání (např. WSDL), připravit i funkční vzorové požadavky. Nebo přímo testovací projekty (SoapUI).

Mobilní aplikace

Pokud je předmětem testování mobilní aplikace a není ještě zveřejněna, budeme potřebovat balíček aplikace, případně její zdrojové kódy (pokud budou potřeba).

Vzorový příklad

Jak si pentest opravdu neobjednávat:

Dobrý den,

poprosil bych vás o nabídku na security testování našeho intranet webu.

Jsou to dva servery apache a mysql.

Možný termín je příští pondělí až středu.

S pozdravem

Zákazník

Výběrové řízení na webový penetrační test modulu LOL aplikace QWERTY projektu IMHOLOL

Popis: Jedná se o FUN aplikaci oddělení PWND na zprávu HEH klientů využívajících službu HAHA

Rozsah: 42 formulářů

Použité technologie: Apache, Linux, HTML

Požadavky na testování: OWASP, OSSTMM, CWE, NIST, CVE, CISSP

Termín realizace: 1-5.11.2017

Doplňující otázky nejsou možné.

Firma E

A na závěr už jen ukázka objednávky, jakou bychom od vás rádi dostali:

Dobrý den,

chtěl bych vás požádat o vypracování nabídky na penetrační testování webové aplikace AWESOMEAPP.

Demo aplikace si můžete vyzkoušet na adrese https://demo.awesomeapp.sk, přihlašovací údaje demo: demo

Požadovaný je penetrační test metodou black-box v plném rozsahu metodiky OWASP Testing Guide.

Test by měl být realizován na vyhrazeném testovacím prostředí dostupném z internetu, v průběhu měsíce listopadu.

Pro doplňující otázky mě neváhejte kontaktovat,

s pozdravem,

Super Zákazník

Těšíme se na vaše objednávky ;)

O autorovi

Martin Hanic
Etický hacker
Svůj první program jsem psal na Didaktiku M, opozdil na stužkovou a odpromoval navzdory nástrahám Gentoo a Battle.net. Jelikož ničit je zábavnější než opravovat, po 15 letech strávených v korporacích, jsem se rozhodl přejít na stranu etických hackerů. Kromě banky, jsem hacknul i armádní servery osmi států – naštěstí jen v Locked Shields. Mám rád nové technologie, šifruji co se dá a piji kávu za Bitcoin.
Zobrazit více od autora

Podobné blogy