Penetračné testy vs. bug bounty programy – porovnanie

  • 28.11.2017
  • 10 min. čítanie

Ako si vybrať správny spôsob testovania bezpečnosti webu či aplikácie? Kedy je vhodný automatizovaný sken, penetračný test či bug bounty program? A prečo nestačí len interné testovanie? Odpovede prináša náš prehľadný článok o testovaní online bezpečnosti.

Vo svete informačných technológií existuje hneď niekoľko spôsobov, akými môžete testovať bezpečnosť webov či mobilných aplikácií. Zatiaľ čo spoločnosti zanedbávajúce bezpečnosť považujú za vrchol ochrany pred kybernetickým útokom nainštalovanie antivírusového programu, vyspelé spoločnosti vedia, že svoju bezpečnosť musia preverovať do hĺbky. Presne na to slúžia:

  • “code reviews” a testovanie bezpečnosti kódu,
  • automatizované skeny zraniteľností,
  • penetračné testy – automatizované alebo manuálne, in-house alebo externé,
  • bug bounty programy – privátne alebo verejné,
  • monitorovacie, statické a dynamické analytické nástroje.

V tomto článku sa venujeme porovnaniu vôbec najčastejšej formy testovania – penetračným testom (a ich lacnejšej verzii automatizovaným skenom zraniteľností) s modernými bug bounty programami.

Čo je penetračný test?

Penetračný test je jednorazový test vašej IT bezpečnosti, ktorý je vykonávaný automatizovane – pomocou špecializovaných skenov a nástrojov, a / alebo manuálne – so zameraním na skupinu najčastejšie sa vyskytujúcich a najviac nebezpečných dier. Jeho výsledkom je podrobná správa o bezpečnostných zraniteľnostiach vo vašom systéme vrátane preverenia ich hlbšieho dopadu.

Nemýľte si ho so skenom zraniteľností

S pojmom penetračného testovania sa často spája aj sken zraniteľností (angl. Vulnerability Assessment / Vulnerability Scan). Ide o automatizovaný test objavenia známych zraniteľností vášho produktu alebo služby, ktorého výsledkom je zoznam zraniteľností s ich umiestnením. Nejde však o plnohodnotný penetračný test.

 

Penetračný test si môžete predstaviť ako pomerne komplexný útok black-hat hackera na váš systém. S tým rozdielom, že pentest vykonáva etický hacker, ktorý pracuje pre vás.

 

Pentest má širší a hlbší zámer – okrem zoznamu zraniteľností vám priamo napovie aj to, aký môžu mať na váš systém dosah. Okrem toho penetračný test prináša aj overenie nájdených zraniteľností, ktoré sa robí manuálne.

Najčastejšie objavené zraniteľnosti v penetračných testoch

Automatických nástrojov na penetračné testovanie je viacero (Netsparker, Burp, Kali Linux a ďalšie) Patrí k nim aj EdgeScan, ktorý zostavil aj zoznam najčastejšie objavených zraniteľností a bugov v online aplikáciách a na weboch:

  •  Zraniteľnosti spojené s útokmi na webové prehliadače (61 %):
    • XSS (86 %),
    • CSRF (5 %),
    • HTML Injection (3 %),
    • DOM (3 %),
    • Open Redirection (2 %),
    • Response Splitting (1 %),
  • kryptografické zraniteľnosti (17 %),
  • session management (9 %),
  • útoky vložením škodlivého kódu (4 %),
  • problémy s autorizáciou (4 %),
  • únik informácií (3 %),
  • nesprávne nasadenie (1 %),
  • nedostupnosť služieb (1 %).

Výhody a nevýhody penetračných testov

 

Výhody a nevýhody penetračného testovania.

 

Za jednu z najväčších výhod drahších penetračných testov môžeme považovať ich komplexnosť (neplatí to pri použití lacnejších automatizovaných skenov zraniteľností). Jeden či niekoľko etických hackerov, zamestnaných v pentestovacej firme, preverí rôzne úrovne vášho produktu (vo vami danom rozsahu). Penetračné testy pritom zvyknú postupovať podľa noriem OWASP.

Nevýhodou je časové obmedzenie, ktoré limituje rozsah testovania – pentest opisuje úroveň bezpečnosti produktu alebo služby len v danom čase. Manuálna kontrola po automatickom penteste tiež do veľkej miery podlieha individuálnym skúsenostiam daného testera. A tie medzi etickými hackermi kolíšu.

Výhodou penetračných testov je aj možnosť otestovať také časti vášho systému, ktoré nechcete sprístupniť na verejné testovanie etickými hackermi v bug bounty programoch. Umožňujú to striktnejšie zmluvy medzi firmou, ktorá si necháva otestovať svoj systém a firmou, ktorá poskytuje penetračné testy. Takéto zmluvy obsahujú aj NDA s presnou špecifikáciou testovania vrátane pokút za nedodržanie podmienok. To je v prípade verejných bug bounty programov v princípe nemožné (privátne programy to ale umožňujú).

Sú pentesty hodné svojej ceny?

Veľmi dôležitým parametrom penetračných testov je aj ich cena. Podľa Security Metrics možno za komplexné penetračné testy považovať tie, ktorých cena sa pohybuje od 4000 do 20 000 dolárov. Pre porovnanie, priemerná cena za penetračný test vykonaný na Slovensku sa pohybuje na úrovni približne 6000 EUR.

Vyššia cena za penetračný test je pre niektoré spoločnosti značný problém. Najmä menšie firmy si kvôli vysokej cene pentesty a bezpečnostné audity nemôžu dovoliť. Napriek tomu, v anglosaskom svete ide o populárny spôsob testovania bezpečnosti. Minulý rok spoločnosti z celého sveta na penetračné testy minuli odhadom asi 600 miliónov dolárov. Podľa prognóz, do roku 2021 by táto suma mala byť trojnásobná.

Čo je bug bounty program?

Našim pozorným čitateľom netreba pojem bug bounty program vysvetľovať. Ide o kontinuálne testovanie bezpečnosti, ktoré firmám umožňuje predísť kybernetickým útokom, krádeži dát a ich zneužitiu. Testovanie bezpečnosti vykonávajú etickí hackeri, ktorí za nájdené chyby a nedostatky súvisiace so zraniteľnosťou služieb a aplikácií získajú vopred špecifikované odmeny.

Výhody a nevýhody bug bounty programov

 

Výhody a nevýhody bug bounty programov.

 

Najväčším rozdielom oproti penetračnému testu je to, že bug bounty program ponúka kontinuálne testovanie bezpečnosti za cenu, ktorú si spoločnosť sama nastaví. Firma si tak určí výšku odmien pre etických hackerov za tie typy zraniteľností, ktoré sú pre ňu zaujímavé. Navyše, jednotlivé typy zraniteľností vie testovať postupne, s nastavením menších odmien, a rozložiť tak náklady v čase.

V bug bounty programoch sú zároveň odmeny vyplatené len v prípade, že etickí hackeri skutočne nájdu v systéme relevantnú zraniteľnosť. Pre porovnanie, za penetračný test musí spoločnosť zaplatiť aj vtedy, keď neodhalí žiadne bezpečnostné nedostatky.

Samotné testovanie v rámci bug bounty programu taktiež nie je obmedzené na jedného etického hackera alebo menšiu skupinu testerov, ako je to v prípade pentestu. Váš produkt v bug bounty programe testujú desiatky až stovky etických hackerov, ktorí medzi sebou dokonca súťažia – aby chybu našli ako prví, čo im zaručí odmenu.

Nevýhodou bug bounty programov je ale vo väčšine prípadov ich verejný charakter. Ten určuje, že etickí hackeri môžu v drvivej väčšine prípadov testovať len verejne dostupné časti webstránok, aplikácií či rozhraní. Aplikácie bez prístupu „zvonku“ zvyčajne nie je možné testovať. Na druhej strane je čisto na rozhodnutí firmy, či nechá hackerov testovať produkčné alebo testovacie prostredie.

Najčastejšie objavené zraniteľnosti v bug bounty programoch

Ročne sú cez bug bounty programy firmám nahlásené desaťtisíce zraniteľností. Známe bug bounty platformy hovoria o viac ako 44 000 nahlásených zraniteľností (Hackerone), či 37 227 zraniteľností cez program Bugcrowd. Prvá menovaná platforma etickým hackerom za rok vyplatila viac ako 10 miliónov dolárov, v prípade BugCrowdu zas bola zaujímavá hodnota najvyššej odmeny pre hackera – 10 000 dolárov za jednu nájdenú zraniteľnosť.

Podľa tohtoročnej štatistiky Hacktrophy sú najčastejšie nahlasované tieto druhy zraniteľností:

  • Other – zraniteľnosti mimo TOP 10 OWASP (10,35 %),
  • SPF configuration problems (5,52 %),
  • XSS (4,83 %),
  • CSRF (4,16 %),
  • Session fixation (4,16 %),
  • SSL/TLS (4,16 %).

Keď sa pozrieme na najčastejšie nahlasované typy kritických zraniteľností, podľa amerického Bugcrowdu ide o tieto:

  • SQL Injection (63 %),
  • XSS (18 %),
  • CSRF (14 %),
  • zraniteľnosti mobilných aplikácií (6 %).

Nie každá nájdená zraniteľnosť znamená pre hackera odmenu

Bezpečnosť a kvalitu bug bounty programov zaručujú ich pravidlá. Tie okrem iného stanovujú aj všeobecne zaužívaný princíp vyplácania odmeny prvému objaviteľovi zraniteľnosti. Na to, aby získal odmenu, musí byť zraniteľnosť ale preverená a potvrdená.

Aj preto je dôležitým údajom pomer validných zraniteľností oproti celkovému počtu nahlásených bugov, ktoré sú často falošnými, prípadne duplikátnymi hláseniami alebo takými, ktoré nespadajú do zadania.

Pomer validných zraniteľností oproti celkovému počtu nahlásených bugov (zdroj, *interné dáta).

Podľa čoho si má firma vybrať formu testovania online bezpečnosti?

Kvalitné penetračné testy sú nákladné a časovo limitované. Vykonávajú ich bezpečnostní špecialisti, ktorých čas je drahý a obmedzený (plat pentestera je až 200 EUR/hod.). Navyše vyžadujú pomerne náročnú predprípravu – formálne aj technické nastavenie podmienok testovania (keďže sa zvyčajne testuje v testovacom prostredí, nie produkčnom).

Predstavujú ale komplexný obraz o aktuálnom stave bezpečnosti vášho online projektu a infraštruktúry, na ktorej projekt stojí. Na vypracovanie pentestu má bezpečnostná firma zvyčajne 1-2 týždne a jeho výstupom je manuálne preverený report so zraniteľnosťami, ich umiestnením a možnými dopadmi v prípade zneužitia. Výhodou je, že testovať je možné aj ešte nezverejnené weby, aplikácie a produkty.

Ani čisto interné testovanie zabezpečenia nie je dvakrát finančne výhodné. Ak by ste chceli nahradiť pentesty vlastným bezpečnostným odborníkom, cena za penetračný test či bug bounty program je len zlomok sumy, ktorú by ste zaplatili za jeho služby. Podľa PayScale je priemerný ročný plat bezpečnostného testera / etického hackera na úrovni približne 80 000 dolárov. A to sme ešte nezarátali vysoké náklady na licenciu kvalitného automatického penetračného skenu.

Naopak, bug bounty programy sú finančne výhodnejšie. Predpokladá sa pritom, že budú trvať dlhšie obdobie (aspoň niekoľko mesiacov), čím sa rozložia v čase náklady na vyplácanie odmien white hat hackerom. Je len na firme, čo budú etickí hackeri testovať a koľko peňazí im vyplatí za nájdené bezpečnostné nedostatky.

Môže sa ale objaviť obdobie bez nájdených zraniteľností – osobitne pri zle nastavených odmenách, ktoré by boli pre etických hackerov nezaujímavé. Na druhej strane, prínosom pre firmu býva pomerne kvalitný výstup o zraniteľnostiach, vytvorený často na základe detailného manuálneho testovania. To je zásadný rozdiel oproti lacnejším automatizovaným skenom – v bug bounty programe je zapojených množstvo etických hackerov z celého sveta, s rôznorodými skúsenosťami a vzdelaním. Dokážu tak nájsť aj raritné bezpečnostné diery, ktoré niekedy nedokážu odhaliť ani tie najdrahšie penetračné testy.

Najväčším benefitom pre firmy je garancia, že zaplatia až za odhalenie reálnej bezpečnostnej zraniteľnosti. Navyše, nastavenie bug bounty projektov je jednoduchšie ako v prípade penetračných testov, pričom sa môže testovať aj produkčná verzia webu či aplikácie. V prípade potreby vie firme pomôcť kvalifikovaný moderátor vrátane vyhodnocovania hlásení.

Základný cyklus testovania bezpečnosti online projektu.

 

Pentest + bug bounty program = vyššia bezpečnosť

Bola by veľká chyba vnímať bug bounty programy, penetračné testy aj interné testovanie ako protikladné formy preverovania online bezpečnosti. Ani jedna z nich sama osebe nedokáže odhaliť všetky potenciálne riziká a diery, cez ktoré možno preniknúť do systému a ukradnúť dáta.

V skutočnosti by malo ísť o vzájomne sa doplňujúce spôsoby, ktorých použitie prinesie vyššiu úroveň bezpečnosti online projektu. Pred oficiálnym publikovaním webstránky alebo online služby (a vždy po ich väčšej aktualizácii) je vhodné spraviť interné testovanie a potom komplexný penetračný test, ktorý odhalí najväčšie bezpečnostné nedostatky (pozrite graf).

Po ich odstránení je produkt alebo služba vhodná na sprístupnenie verejnosti formou bug bounty programu. V ňom sa testujú verejne dostupné súčasti systému. Je pritom na rozhodnutí firmy, či „pustí“ etických hackerov do produkčného alebo testovacieho prostredia. Dôležité je, aby testovanie v bug bounty programe prebiehalo dlhodobo (aspoň 3 až 6 mesiacov, ideálne ešte dlhšie). Tak vás budú môcť novo zaregistrovaní etickí hackeri priebežne upozorňovať na bezpečnostné chyby, ktoré spôsobili napríklad menšie aktualizácie vo vašom systéme.

Pokiaľ je rozpočet spoločnosti na testovanie bezpečnosti obmedzený, alternatívou je postup: 1. interný bezpečnostný test, 2. základný sken zraniteľností (prípadne bez neho) a 3. vytvorenie bug bounty programu. V tomto prípade ale musí spoločnosť počítať s tým, že ich systém môže istý čas (do odhalenia bugu etickým hackerom) obsahovať závažnejšie zraniteľnosti.

Porovnanie automatizovaného skenu zraniteľností, penetračného testu a bug bounty programu.

Nie ste si istí?

Vyznať sa vo všetkých vlastnostiach penetračných testov, skenov zraniteľností a bug bounty programov nie je vôbec jednoduchá úloha. Ak si nie ste istí tým, čo je pre vás najvhodnejšia forma testovania online bezpečnosti, napíšte nám! Radi vám poradíme v otázkach IT bezpečnosti a v prípade potreby vám pomôžeme aj s tvorbou vášho prvého bug bounty programu.

Newsletter

Novinky o IT bezpečnosti pre firmy

Chcete vašu firmu udržať bezpečnou? Prihláste sa k odberu nášho newslettera a dostávajte tipy a novinky zo sveta online bezpečnosti.

Chcem novinky