Webové aplikace s sebou přinášejí různě závažná rizika

Petr Závodský 29. 7. 2010

Zavraždit, dohnat k sebevraždě anebo při nejmenším traumatizovat skrze webovou aplikaci určitý počet jedinců z nějakého statisticky významného vzorku potenciálních obětí. Pomysleme třeba jen na stále více diskutovaná témata, jako jsou kyberšikana, kybegrooming, kyberstalking, sexting…

…ukrást v e-shopu, co mi nepatří, vyrazit s cestovkou na dovolenou za chvíli zlodějiny beze strachu v rezervačním systému, nahlédnout do výsledků testů, v nichž následně úspěšně projdu, z legrace anebo z nudy sestřelit nějaký ten server, … je to tak snadné – a to nemusíte být ani tzv. ITC odborníkem.

Nebezpečí – o tom to je. Již několikátým dílem seriálu o OWASP si připomínáme „nebezpečí“, „riziko“, pojmy, které se mohou jevit jako samozřejmé; po bližším zkoumání však zjišťujeme, že ne všem zřejmé.

Mezi „nebezpečí“ a „riziko“ dejme rovnítko. Obojí souvisí s pravděpodobností výskytu nějaké negativní situace (dopadem).

OWASP Risk Rating Methodology

Riziko je značně relativní. Co webová aplikace, to jiné spektrum možných dopadů a také jejich pravděpodobnost výskytu. Jak si změřit „riziko“ plynoucí z té či oné slabiny?

OWASP ve své metodice určování míry rizika vychází z obecně uznávaných metodik. Pro bližší studium odkazuje na:

OWASP Risk Rating Methodology se omezuje na stručná doporučení, jakým způsobem je možné jednoduše zjistit, jak velká rizika aplikace přináší.

Použijme obecnou formuli:

RIZIKO = PRAVDĚPODOBNOST X DOPAD

Pro určení závažnosti rizika postupujme ve čtyřech krocích:

  1. krok: Identifikace rizika

  2. krok: Odhad pravděpodobnosti (faktory pro odhad pravděpodobnosti)

  3. krok: Odhad dopadu (faktory pro odhad dopadu)

  4. krok: Určení závažnosti rizika

  1. 1. krok: Identifikace rizika

Zranitelnost může vést k ohrožení útočníkem a to v případě útoku může mít konkrétní business dopad.

  • Zranitelnost: Jedná se o díru v aplikaci, která umožňuje útočníkovi škodit. Může se jednat o různé typy chyb, od těch technických (neověřené vstupy, nedostatečná autentizace aj.) až po ty, které vycházejí ze samotného myšlenkového návrhu (aplikace může sloužit i nechtěným cílům, např. k vyhledávání budoucích obětí sexuálního násilí).

  • Útok: Útokem je myšlena technika (aktivita), kterou útočník používá k využití slabiny (zranitelné části aplikace). Útok není „chyba“.

  • Útočník: Jednotlivec či skupina se schopností manifestovat hrozbu.

  • Dopad: Faktor, který má vliv např. na chod podniku (provozovatele serveru) nebo na uživatele. Může se jednat třeba o ztrátu důvěry, znepřístupnění služby aj.

Riziko můžeme identifikovat buď náhodně anebo plánovaně (systematicky). Mezi plánované identifikace rizik jistě patří penetrační testování. Je vhodné při penetračním testování používat testovací scénář, podobný tomuto:

Tabulka OWASP rizika [PDF]

V tabulce si všimněte sloupečku Ref. Number. Pod ním naleznete referenční číslo k jednotlivým rizikům podle OWASP. Jednotlivě je máte vyjmenované na stránkách OWASP v kapitole Testing Checklist anebo podrobněji v OWASP Testing Guide v3 Table of Contents. Zadáte-li Ref. Number do Googlu, zpravidla první odkaz vede právě k dané kapitole na webu OWAPS.

Je třeba však počítat s tím, že jednotlivé položky v uvedené tabulce mohou podle míry detailu obsahovat desítky dalších subpoložek, což znamená, že jen testování aplikace může zabrat i stovky člověkohodin (podle rozsahu) a oprava nálezů mnohem více. Proto je třeba si předem stanovit, kterým oblastem z bezpečnostního hlediska má smysl se věnovat a kterým nikoliv.

2. krok: Odhad pravděpodobnosti (faktory pro odhad pravděpodobnosti)

Jsme schopni identifikovat riziko. Nyní musíme zjistit, jak moc reálné je jeho možné zneužití. Nemusíme se tím sáhodlouze zaobírat, bude nám stačit, když zjistíme, že pravděpodobnost je nízká, střední či vysoká.

Naším cílem je nyní odhadnout prav­děpodobnost úspěšného útoku ze skupiny možných útočníků.

Všimněte si, že do závorek uvádím čísla od nuly do devíti. Nulou ohodnoťme nulovou závažnost a devítkou maximální závažnost. To nám poslouží pro další výpočty.

Příklady faktorů pro odhad pravděpodobnosti ze strany „útočníků“:

  • Úroveň dovedností

Jak technicky zdatní jsou potenciální útočníci?

  • Žádné technické dovednosti (1)

  • Některé technické dovednosti (3)

  • Pokročilý uživatel (4)

  • Znalost sítí a programování (6)

  • Kvalifikovaný penetrační tester (9)

  • Motiv

Jak moc jsou motivovaní potenciální útočníci?

  • Žádná anebo malá odměna (1)

  • Možná odměna (4)

  • Vysoká odměna (9)

  • Příležitost

Jakou příležitost mají potenciální útočníci zranitelnost odhalit a zneužít a jaké k tomu potřebují prostředky?

  • Potřebují plný přístup anebo potřebují drahé zdroje (0)

  • Potřebují zvláštní přístup nebo potřebné zdroje (4)

  • Potřebují jen některé přístupy nebo potřebné zdroje (7)

  • Nepotřebují přístup a nepotřebují žádné zdroje (9)

  • Množství potenciálních útočníků

Jak velká je skupina potenciálních útočníků?

  • Vývojáři (2)

  • Správci systému (2)

  • Uživatelé intranetu (4)

  • Partneři (5)

  • Ověření uživatelé (6)

  • Anonymní uživatelé internetu (9)

Příklad: Sesbírali jsme celkem 23 bodů. Podělíme počtem zohledňovaných faktorů a získáme průměr: 23/4 = 5,75 bodů.

Příklady faktorů pro odhad pravděpodobnosti ze strany „zranitelnosti“:

  • Snadnost zjištění

Jak snadné je pro potenciální útočníky zjistit chybu v zabezpečení?

  • Prakticky nemožné (1)

  • Stěží (3)

  • Snadno (7)

  • Automatizovanými nástroji (9)

  • Snadnost využití

Jak snadné je pro potenciální útočníky zneužití chyby v zabezpečení?

  • Teoreticky (1)

  • Stěží (3)

  • Snadno (5)

  • Automatizovanými nástroji (9)

  • Povědomost

Jak je známá zranitelnost pro potenciální útočníky?

  • Neznámá (1)

  • Skrytá (4)

  • Zřejmá (6)

  • Veřejně známá (9)

  • Detekce narušení

Jaká je pravděpodobnost, že případné zneužití bude zjištěno?

  • Aktivní detekce v aplikaci (1)

  • Logy a jejich pravidelná kontrola (3)

  • Logy bez kontrol (8)

  • Bez logů (9)

Příklad: Sesbírali jsme celkem 24 bodů. Podělíme počtem zohledňovaných faktorů a získáme průměr: 24/4 = 6 bodů.

Klikněte si pro pokračování článku…

Našli jste v článku chybu?
Vitalia.cz: Galerie: Strouhanka ze starých rohlíků? Kdepak

Galerie: Strouhanka ze starých rohlíků? Kdepak

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Vitalia.cz: Očkování je nutné, říká homeopatka

Očkování je nutné, říká homeopatka

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

Lupa.cz: Hackujete? Můžete mít problém sehnat práci

Hackujete? Můžete mít problém sehnat práci

Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?

Vitalia.cz: Musí moudrák opravdu ven?

Musí moudrák opravdu ven?

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Root.cz: Xiaomi má vlastní notebook podobný Macu

Xiaomi má vlastní notebook podobný Macu

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

Lupa.cz: Co vzal čas: internetové kavárny a herny

Co vzal čas: internetové kavárny a herny

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

120na80.cz: Lepší poporodní sexuální život? Žádný problém

Lepší poporodní sexuální život? Žádný problém

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

Podnikatel.cz: OSA zdraží, ale taky přidá nový poplatek

OSA zdraží, ale taky přidá nový poplatek

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo