VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE Fakulta informatiky a statistiky Katedra systémové analýzy Studijní program: Aplikovaná informatika Obor: Informatika
Testování zabezpečení e-commerce aplikací BAKALÁŘSKÁ PRÁCE
Student
:
Karel Trnka
Vedoucí
:
Ing. Jaromír Veber, Ph.D.
Oponent
:
Ing. Tomáš Klíma
2014
Prohlášení Prohlašuji, že jsem bakalářskou práci na téma „Testování zabezpečení e-commerce aplikací“ vypracoval samostatně. Veškerou použitou literaturu a podkladové materiály uvádím v přiloženém seznamu literatury.
V Praze dne 14. květen 2014.
…………………………… Karel Trnka
Poděkování Chtěl bych poděkovat panu Ing. Jaromíru Veberovi za cenné připomínky a rady během psaní této práce, které mě navedly správným směrem. Dále bych chtěl poděkovat i přátelům za jejich připomínky a cennou pomoc.
Abstrakt Cílem této bakalářské práce je popsat koncept testování zabezpečení e-commerce aplikací. První část je věnována teoretické rovině. Jsou zde definovány základní pojmy spojené s danou problematikou; následuje objasnění možností penetračních testů a v závěru první části této bakalářské práce je představen projekt OWASP (Otevřený projekt bezpečnosti webových aplikací) a též dílčí dokumentační projekt „OWASP Top Ten“, který zobrazuje deset nejkritičtějších bezpečnostních rizik webových aplikací. Druhá část této práce je věnována praktickým penetračním testům třech vybraných e-commerce produktů. Jsou zde objasněny cíle, postup, ale i metodika provedených testů, která podléhá standardům projektu OWASP. Výsledný report je v následující kapitole zdokumentován, a to včetně návrhů na redukci zjištěných zranitelností. Přínos této bakalářské práce spočívá v nalezení zranitelných míst u vybraných e-commerce produktů. Výsledný report bude dále odeslán vývojařům těchto aplikací společně s návrhy na řešení objevených problémů.
Klíčová slova Zabezpečení e-commerce aplikací, penetrační testování, bezpečnostní riziko, OWASP, Top Ten.
Abstract The purpose of this bachelor’s thesis is to describe concept of testing e-commerce applications security. The first part is dedicated to theoretical level. There are definitions of basic terms connected with the topic of this thesis followed by description of penetration testing. At the end of the first part of this bachelor’s thesis there is introduction to project OWASP (Open Web Application Security Project) and documentation project Top Ten which describes ten most critical web applications security risks. Second part of this thesis is dedicated to practical penetration testing of three chosen e-commerce products. There is introduction to procedure and method of conducted and by the OWASP method standardized tests. Final report is included in next chapter also with possible solutions and recommendations based on the test results. Contribution of this thesis lies in finding vulnerabilities in selected e-commerce products. The final report will be sent to the developers of these applications together with proposals to address problems discovered.
Key words Web e-commerce Application Security, Penetration Testing, Security Risk, OWASP, Top Ten.
Obsah 1
Úvod a cíle práce ................................................................................................................................. 1
2
Rešerše ................................................................................................................................................ 2
3
Testování zabezpečení webových aplikací .......................................................................................... 3 3.1 3.1.1
WWW ................................................................................................................................ 3
3.1.2
Webová aplikace ................................................................................................................ 3
3.1.3
E-commerce ....................................................................................................................... 3
3.1.4
Bezpečnost ......................................................................................................................... 4
3.2
4
Základní pojmy ........................................................................................................................... 3
Základy bezpečnosti ................................................................................................................... 4
3.2.1
Autentizace uživatele ......................................................................................................... 4
3.2.2
Autorizace uživatele ........................................................................................................... 5
3.2.3
Šifrování dat ....................................................................................................................... 5
3.3
Penetrační testování .................................................................................................................... 5
3.4
Význam penetračních testů ......................................................................................................... 5
3.5
Typy testů ................................................................................................................................... 6
3.5.1
Manuální testy .................................................................................................................... 7
3.5.2
Automatizované testy ......................................................................................................... 7
3.5.3
Semiautomatické testy ....................................................................................................... 7
3.5.4
Black-box testy .................................................................................................................. 7
3.5.5
White-box testy .................................................................................................................. 8
3.5.6
Grey-box testy .................................................................................................................... 8
Open Web Application Security Project.............................................................................................. 9 4.1
Významné vývojařské projekty OWASP ................................................................................... 9
4.2
Významné dokumentační projekty OWASP .............................................................................. 9
4.3
OWASP Top Ten 2013 ............................................................................................................. 10
4.3.1
Terminologie .................................................................................................................... 10
4.3.2
Injection ........................................................................................................................... 12
4.3.3
Broken Authentication and Session Management............................................................ 13
4.3.4
Cross-Site Scripting (XSS) .............................................................................................. 14
4.3.5
Insecure Direct Object References ................................................................................... 15
4.3.6
Security Misconfiguration................................................................................................ 16
4.3.7
Sensitive Data Exposure .................................................................................................. 17
4.3.8
Missing Function Level Access Control .......................................................................... 18
4.3.9
Cross-Site Request Forgery (CSRF) ................................................................................ 18
4.3.10
Using Known Vulnerable Components............................................................................ 19
4.3.11
Unvalidated Redirects and Forwards ............................................................................... 20
4.4 5
Testování zabezpečení e-commerce aplikací ..................................................................................... 24 5.1
Představení elektronických obchodů ........................................................................................ 24
5.1.1
OpenCart .......................................................................................................................... 24
5.1.2
osCommerce .................................................................................................................... 25
5.1.3
Magento ........................................................................................................................... 26
5.2
Metodika testování.................................................................................................................... 27
5.2.1
Acunetix Web Vulnerability Scanner .............................................................................. 27
5.2.2
Postup řešení .................................................................................................................... 28
5.3
6
Hodnocení rizik metodikou OWASP ....................................................................................... 21
Konfigurace testujícího systému ............................................................................................... 29
5.3.1
Základní přehled o konfiguraci systému .......................................................................... 29
5.3.2
Konfigurace – Acunetix Web Vulnerability Scanner ....................................................... 29
5.3.3
Konfigurace – WebScarab ............................................................................................... 32
Report z testování .............................................................................................................................. 34 6.1
OpenCart ................................................................................................................................... 34
6.1.1
Injection ........................................................................................................................... 34
6.1.2
Broken Authentication and Session Management............................................................ 35
6.1.3
Cross-Site Scripting (XSS) .............................................................................................. 37
6.1.4
Insecure Direct Object References ................................................................................... 38
6.1.5
Security Misconfiguration................................................................................................ 38
6.1.6
Sensitive Data Exposure .................................................................................................. 38
6.1.7
Missing Function Level Access Control .......................................................................... 38
6.1.8
Cross-Site Request Forgery (CSRF) ................................................................................ 38
6.1.9
Using Known Vulnerable Components............................................................................ 39
6.1.10
Unvalidated Redirects and Forwards ............................................................................... 39
6.2
osCommerce ............................................................................................................................. 39
6.2.1
Injection ........................................................................................................................... 39
6.2.2
Broken Authentication and Session Management............................................................ 40
6.2.3
Cross-Site Scripting (XSS) .............................................................................................. 41
6.2.4
Insecure Direct Object References ................................................................................... 41
6.2.5
Security Misconfiguration................................................................................................ 41
6.2.6
Sensitive Data Exposure .................................................................................................. 41
6.2.7
Missing Function Level Access Control .......................................................................... 41
6.2.8
Cross-Site Request Forgery (CSRF) ................................................................................ 42
6.2.9
Using Known Vulnerable Components............................................................................ 42
6.2.10 6.3
Unvalidated Redirects and Forwards .................................................................................... 42
Magento ......................................................................................................................................... 43
6.3.1
Injection ................................................................................................................................ 43
6.3.2
Broken Authentication and Session Management................................................................. 43
6.3.3
Cross-Site Scripting (XSS) ................................................................................................... 44
6.3.4
Insecure Direct Object References ........................................................................................ 44
6.3.5
Security Misconfiguration..................................................................................................... 44
6.3.6
Sensitive Data Exposure ....................................................................................................... 44
6.3.7
Missing Function Level Access Control ............................................................................... 44
6.3.8
Cross-Site Request Forgery (CSRF) ..................................................................................... 45
6.3.9
Using Known Vulnerable Components................................................................................. 45
6.3.10
Unvalidated Redirects and Forwards .................................................................................... 45
7
Shrnutí výsledků z reportu...................................................................................................................... 46
8
Závěr....................................................................................................................................................... 47
9
Terminologický slovník.......................................................................................................................... 48
10
Seznam Literatury .................................................................................................................................. 50
11
Seznam obrázků ..................................................................................................................................... 54
12
Seznam tabulek ...................................................................................................................................... 55
13
Seznam výstupů z programu WebScarab ............................................................................................... 56
1 Úvod a cíle práce
1
1 Úvod a cíle práce S rozmachem elektronického obchodování neboli e-commerce jsou kladeny stále větší nároky na informační technologie. Nejvýznamnější platformou zprostředkovávající obchodní transakce je v současnosti celosvětová síť Internet se službou WWW. Statistiky ukazují trvalý trend nárůstu uživatelů této sítě, a tedy i potenciálních zákazníků. V celosvětovém měřítku to znamená 2633 miliónů od března 2000 do března 2014. [1] Společně s tím se rozvíjí komerční užití webu. V globálním pojetí došlo v roce 2013 k nárustu tržeb o 18.3 % (1251 triliónů dolarů) oproti předešlému roku (1058 triliónů dolarů) ve sféře B2C1. Dle nejnovějších prognóz bude celosvětový prodej B2C stoupat i v roce 2014 (až o 20.2 % na 1501 tril. dolarů). Primární zásluhu na tom má emergence nových online trhů a uživatelské základny; dále také konjunktura mcommerce2 aplikací, ale i pokročilých metod platby a dopravy. [2] S rostoucí tendencí obchodovat prostřednictvím Internetu dochází k rozvoji nových e-commerce produktů, a tím roste význam kladený bezpečnosti těchto aplikací. Společnost Whitehat security provedla v roce 2012 bezpečnostní analýzu více jak 650 webových stránek a zjistila, že 86 % z nich obsahuje v průměru až 56 závažných bezpečnostních mezer. Avšak dlouhodobým trendem je pokles výskytů zranitelných míst. [3] Tato bakalářská práce si klade za cíl popsat problematiku testování bezpečnosti e-commerce aplikací. V první, teoretické části jsou definovány základní pojmy spojené s otázkou bezpečnosti; následuje objasnění možností penetračních testů a v závěru této kapitoly je představen projekt OWASP (Otevřený projekt bezpečnosti webových aplikací), a též jeho dílčí dokumentační projekt „OWASP Top Ten“, který zahrnuje deset nejkritičtějších bezpečnostních rizik u webových aplikací. Hlavním cílem této bakalářské práce je praktický penetrační test provedený, dle standardů metodiky OWASP, na třech vybraných e-commerce produktech. Pro tyto účely byly zvoleny „Open Source“ aplikace OpenCart, Oscommerce a Magento ze seznamu: „15 nejlepších internetových obchodů s bezplatnou licencí“, které sestavil server WEB APPERS. [4] V Druhé části této práce jsou produkty nejprve představeny a dále je popsán postup, ale i metodika provedených testů. Testovací procedura zahrnuje plně automatizované a manuální typy testů. Výsledný report je v následující kapitole řádně zdokumentován, dle terminologie projektu OWASP, a to včetně návrhů na redukci objevených zranitelných míst. Přínos této bakalářské práce spočívá v nalezení zranitelných míst u vybraných e-commerce aplikací. Výsledný report bude dále odeslán vývojařům těchto aplikací společně s návrhy na řešení objevených problémů.
1
„Business To Consumer“ značí směr podnikatelských aktivit od firmy k zákazníkovi. [36] „M-obchodování neboli mobilní obchodování je forma elektronického obchodování, která se zabývá výběrem poplatků za za licence, reklamu, nebo prodej předplatného k obsahu či službám nabízeným na mobilních zařízeních.“ [37] 2
1
2 Rešerše
2
2 Rešerše HANZLÍKOVÁ, Martina.
Testování bezpečnosti webových aplikací. Praha, 2013.
Bakalářská práce. Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky. Katedra informačních technologií. Tato bakalářská práce se zabývá testováním bezpečnosti webových aplikací s orientací na manuální testování vybrané aplikace Polarion ALM. V prvé, teoretické části je práce zaměřena převážně na typy penetračních testů; dále je detailně popsán projekt OWASP, a to zejména dokumentační projekt „OWASP Top Ten“. V praktické části se testuje prvních pět nejčastějších bezpečnostních chyb dle daného žebříčku a je zvolena metoda manuálních testů s využitím programů WebScarab a WireShark. Součástí výsledného reportu je i návrh na zlepšení nalezených zranitelností. Práce je převážně orientovaná na praktickou část a zejména postup řešení daných testů. Teoretická část funguje jako úvod ke praktického řešení. Vzhledem k detailnímu popisu postupu daných testů, je praktická část redukována pouze na prvních pět nejzávažnějších bezpečnostních rizik projektu „OWASP Top Ten“.
BUKOVSKÝ, Ondřej. Testování bezpečnosti webových aplikací. Praha, 2012. Bakalářská práce. Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky. Katedra informačních technologií. Tato bakalářská práce se zabývá testováním bezpečnosti webových aplikací a orientuje se na automatizované testování a automatizovanou analýzu kódu. V teoretické části se do hloubky rozebírají penetrační testy z pozice testera. Nejdůležitější částí práce je srovnání nástrojů na automatizované penetrační testování, a dále pak automatizovanou analýzu kódu. Práce je převážně pojata teoreticky. Závěr je zaměřen na automatizaci testování bezpečnosti během vývoje webové aplikace, a také na začlenění testovaných nástrojů do procesu Continuous Deployment.
ZEMEK, Lukáš.
Bezpečnost webových aplikací. Zlín, 2012. Bakalářská práce. Univerzita
Tomáše Bati ve Zlíně. Fakulta aplikované informatiky. Tato bakalářská práce se zabývá bezpečnosti webových aplikací a je orientovaná na projekt OWASP. Práce je v zásadě pouze teoretická s detailním zaměřením na jednotlivé zranitelnosti vyplývající z dokumentačního projektu „OWASP Top Ten“. U každé zranitelnosti je uveden i praktický příklad možného útoku na nezabezpečenou webovou aplikaci. Práce je pojata jako úvod do problematiky bezpečnosti webových aplikací a metodiky OWASP.
2
3 Testování zabezpečení webových aplikací
3
3 Testování zabezpečení webových aplikací V této kapitole jsou nejprve definovány základní pojmy, jenž souvisí s problematikou bezpečnosti webových aplikací. Dále je zde popsán princip penetračních testů i způsoby jejich provedení.
3.1 Základní pojmy 3.1.1 WWW Zkratka WWW značí „World Wide Web“ neboli světovou komunikační síť. „Jedná se o síť vzájemně propojených hypertextových dokumentů přístupných na Internetu. Přes internetový prohlížeč mohou uživatelé vidět webové stránky obsahující textový obsah, obrázky, videa a další multimediální obsah“. [5]
3.1.2 Webová aplikace Webová aplikace je typ aplikačního softwaru (ASW), jenž využívá technologií webu a (webového) prohlížeče k dosažení jednoho nebo více úkolů skrze síť WWW, typicky prostřednictvím webového prohlížeče. [6] Aplikační software je program nebo skupina programů určených pro koncové uživatele a navržených pro konkrétní využití. Tyto programy jsou rozděleny do dvou tříd: systémový software a aplikační software. Zatímco systémový software komunikuje s počítačem na nižší úrovni, aplikační software je umístěn nad systémovým softwarem a obsahuje databázové programy, textové procesory, tabulkové procesory a další. [7] Je také nutné definovat pojem „open source“ ve spojení s webovými aplikacemi, neboť e-commerce produkty zvolené pro tuto práci spadají do této kategorie. Obecně platí, že pojem open source odkazuje na nějaký program, jehož zdrojový kód je k dispozici pro použití nebo úpravu, jak uživatelé nebo vývojáři uznají za vhodné. Open source software je obvykle vyvinut na základě veřejné spolupráce a je volně k dispozici. [8]
3.1.3 E-commerce E-commerce lze definovat jako „systém sdílení obchodních informací, udržování obchodních vztahů a řízení obchodních transakcí pomocí prostředků informačních, telekomunikačních a síťových technologií, primárně s využitím Internetu. E-commerce může probíhat mezi obchodní společností a spotřebitelem (B2C) nebo mezi obchodními společnostmi navzájem (B2B3). Může být také realizován mezi obchodními společnosti a vládou (B2G4), mezi individuálními spotřebiteli (C2C5) a mezi obchodní společností a jejími zaměstnanci (B2E)“ [9].
3
Business To Business značí směr podnikatelských aktivit od firmy k firmě. [36] Business To Government značí směr podnikatelských aktivit od firmy ke státu. [38] 5 Customer To Consumer značí směr podnikatelských aktivit od zákazníka k zákazníkovi. [38] 4
3
3 Testování zabezpečení webových aplikací
4
V této bakalářské práci je význam pojmu e-commerce redukován pouze na aplikace provozované na síti WWW.
3.1.4 Bezpečnost Pro hlubší porozumění tématu je nutné objasnit pojem bezpečnost. V obecném znění jej lze definovat jako „stav, kdy je systém schopen odolávat známým a předvídatelným vnějším a vnitřním hrozbám, které mohou negativně působit proti jednotlivým prvkům (případně celému systému) tak, aby byla zachována struktura systému, jeho stabilita, spolehlivost a chování v souladu s cílovostí. Je to tedy míra stability systému a jeho primární a sekundární adaptace. Pro vymezení systému na podmínky státu je obsah bezpečnosti uveden v ústavním zákoně č. 110/1998 Sb., o bezpečnosti České republiky“. [10] V souvislosti s informační bezpečností se jedná o „multidisciplinární obor, usilující o komplexní pohled na problematiku ochrany informací během jejich vzniku, zpracování, ukládání, přenosu a likvidace. Je tak možné chápat odvětví, zabývající se snižováním rizik, vztahujících se k fenoménu informací a navrhující opatření, vztahující se k příslušným organizačním, řídícím, metodickým, technickým, právním a dalším otázkám, které s touto problematikou souvisí. Někdy je možné se setkávat se s podstatně omezenějším chápáním daného pojmu, jako úzké disciplíny, týkající se výhradně bezpečnosti informačních a komunikačních technologií“. [11]
3.2 Základy bezpečnosti 3.2.1 Autentizace uživatele Autentizace je proces ověřující identitu uživatele určitého systému. Existují tři základní způsoby, jak identitu uživatele ověřit:
Na základě znalosti uživatele.
Na základě vlastnictví uživatele.
Na základě biometrických informací.
U problematiky bezpečnosti webových aplikací jsou podstatné pouze první dva způsoby. V případě znalosti uživatele je obvykle určující heslo. Heslo se skládá z řetězce znaků, které jakmile uživatel správně doplní, tak jej systém autentizuje. Bezpečnost hesla závisí na jeho délce (počtu znaků), a také na použitých znacích. V současnosti je obvyklá délka hesla 6 – 10 znaků. Dostatečně komplexní heslo by mělo být odolné vůči slovníkovému útoku6, či útoku „hrubou silou7“. Druhý způsob ověření identity je na základě uživatelova vlastnictví. Aby bylo možné se přihlásit, tak musí vlastnit určitý objekt, často označovaný jako token8. Obecně se jedná o přenosná zařízení 6
Jde o typ rozsáhlého útoku na systém, ve kterém jsou hesla generována speciálními programy. [43] „Základní princip vedení útoků hrubou silou spočívá v kombinací znaků při autentizaci do systému, ke kterému nemáme přístupové právo.“ [43] 8 Session ID váže přihlašovací údaje uživatele (v podobě uživatelské relace) k uživatelské HTTP a dále kontrole přístupu uplatňované webovou aplikací. [54] 7
4
3 Testování zabezpečení webových aplikací
5
obsahující tajné informace, jako je složité heslo nebo kryptografický klíč. [12] U webových aplikací se jedná o prvek programovacího jazyka. Obvykle jde o konstanty či identifikátory. [13]
3.2.2 Autorizace uživatele Autorizace dále navazuje na autentizaci. Jakmile je uživatel autentizován, je nutné mu z hlediska bezpečnosti přidělit oprávnění. Jde tedy o proces přidělení práv přihlášenému uživateli. Práva mohou být nastavena individuálně nebo jsou přiřazena na základě definované skupiny uživatelů. [12]
3.2.3 Šifrování dat Jedná se o proces, ve kterém se určitá data převedou (pomocí šifrovacího algoritmu) do nečitelné podoby a následně (po zadání správného hesla) se dešifrují zpátky do čitelné podoby. Účelem je ochránit citlivé informace před zobrazením neoprávněné osobě. [14] Šifrovat data u webových aplikací je možné prostřednictvím protokolu SSL (Secure Sockets Layer) nebo TLS (Transport Layer Security). Jedná se o vloženou vrstvu mezi vrstvu transportní (TCP/IP) a aplikační (HTTP), jež zabezpečuje komunikaci obou stran. Po vytvoření spojení pomocí SSL protokolu, je další komunikace mezi serverem a klientem šifrovaná, a tedy bezpečná. Komunikace probíhá na protokolu HTTPS. [15]
3.3 Penetrační testování Penetrační test je legální metoda hodnocení bezpečnosti počítačového systému nebo sítě tím, že se simuluje útok na danou síť či systém. Tento proces zahrnuje aktivní analýzu aplikace, hledání zranitelností systému. Jakékoli problémy se zabezpečením, které jsou objeveny, se dále předají vlastníkovi systému, spolu s posouzením jejich možného dopadu a často i návrhem na zmírnění problémů a případně i technické řešení. [16]
3.4 Význam penetračních testů Význam penetračních testů dokládá studie „2011 Cost of Data Breach Study“, kterou provedla instituce Ponemon ve čtyřech evropských zemích (Velká Británie, Německo, Francie, Itálie). Společnost analyzovala objem finančních ztrát způsobený odcizením interních a citlivých firemních dokumentů. Součástí studie byly i příčiny, jež vedly ke ztrátě citlivých dat [17]. Tabulka 3-1 zobrazuje finanční dopady, které tato studie odhalila.
5
3 Testování zabezpečení webových aplikací
6
Tabulka 3-1: Finanční dopady na nezabezpečené systémy (zdroj: [17])
Podnikatelské finanční ztráty. Průměrné finanční ztráty na jednotku. Procento zákazníků, kteří opustí společnost po ztrátě. Statistika příčin ztrát Kriminální útoky a krádeže. Nedbalost zaměstnanců a dodavatelů. Selhání IT a byznys procesů.
Německo 1,33 mil €
Velká Británie 780 tis. €
Francie 782 tis. €
Itálie 474 tis. €
146 €
79 €
122 €
78 €
3,5 %
2,9 %
4,4 %
3,5 %
42 %
31 %
43 %
28 %
38 %
36 %
30 %
39 %
19 %
33 %
26 %
33 %
Výsledky dané studie potvrdily, že ztráty nejsou nijak zanedbatelné. Uskutečněním penetračních testů na firemní síti se ověřuje úroveň její bezpečnosti. Testy musí ověřit odolnost, jak vůči útokům z vnějšího světa, tak i od vlastních zaměstnanců, kteří mohou mít nekalé úmysly.Výsledky takových testů lze také použít jako důkaz důvěryhodnosti pro potenciální investory či možné obchodní partnery. [17]
3.5 Typy testů Testování slouží k eliminaci chyb během vývoje systémů a aplikací. Obvykle se jedná o neúmyslné chyby. V oblasti informačních technologií můžeme testy rozdělit do několika základních kategorií. Dle způsobu provedení na: 1. manuální testy, 2. automatizované testy, 3. semiautomatické testy. Dále podle úrovně znalostí o testovaném systému na: 1. black-box testy, 2. white-box testy, 3. grey-box testy.
6
3 Testování zabezpečení webových aplikací
7
3.5.1 Manuální testy Tester (vykonavatel útoku) vytváří v tomto případě procedury „ručně“, bez pomoci automatizovaných procesů. Mezi výhody lze zařadit možnost vytvoření komplexnějších testů, a také individuálních řešení na míru dle daných požadavků. A protože testy provádí člověk, tak je i snadnější další interpretace výsledků nezainteresovaným osobám, které nemají o daném problému potřebné znalosti (top managment, vedení podniku atd.). Mezi nevýhody naopak patří časové a znalostní požadavky. U rozsáhlejších testů jsou pak nezbytností širší vědomosti o dané problematice (HTML, SQL, Jacascript atd.). [17]
3.5.2 Automatizované testy Automatizované penetrační testy jsou podstatně rychlejší, nabízejí více možností, rozšiřitelnost dle vlastních potřeb a jsou relativně snadno verifikovatelné i reprodukovatelné. Programy použité při automatizovaném testování byly navrženy odborníky, kteří se v dané oblasti pohybují. Další výhodou, oproti manuálním testům, je také kratší časová náročnost na zaučení uživatelů a následné použití testů v praxi. Obecně je totiž snazší se naučit používat automatizované programy, než porozumět principům testů realizovaných manuálně. Mezi nevýhody lze naopak zařadit nižší schopnost prezentovat výsledky v uživatelsky přívětivé formě či blíže objasnit podrobnosti o daném problému. Nicméně i zde jsou potřebné znalosti. Další nevýhodou je omezená schopnost testovat určité typy zranitelných míst [17].
3.5.3 Semiautomatické testy Semiautomatické testy představují kombinaci manuálních a automatizovaných testů s cílem získat ty nejlepší vlastnosti z obou těchto metod. Žádná metoda však nikdy nemůže pokrýt celý zdrojový kód, a tudíž ani odhalit veškeré přítomné zranitelnosti aplikace. [17]
3.5.4 Black-box testy Black-box testy jsou určeny k simulaci vnějšího zásahu útočníka, jenž zná pouze vstupy a možné výstupy aplikace, avšak bez znalosti vnitřní struktury aplikace či sítě. Ke správnému určení vstupů a výstupů v systému je mnohdy nezbytné provést poměrně rozsáhlý průzkum. Samotná funkcionalita systému je pro testera černou skříňkou (anglicky black-box). Mezi hlavní výhody této kategorie testů patří nejvíce to, že není kladen nárok na znalosti použitého programovacího jazyka. Také není nutné zpřístupnit zdrojový kód, který se obvykle snaží firmy udržet v tajnosti. Další nespornou výhodou je vysoká míra variability neboli přizpůsobení testů na míru požadavkům zadavatele. Nevýhodou je pak nárok na široké znalosti testera. Dále nemusí být objeveny chyby, jež vyžadují komplexnější přístupy, a rovněž není ověřena efektivita zdrojového kódu. [17] 7
3 Testování zabezpečení webových aplikací
8
3.5.5 White-box testy Protiklad k black-box testům jsou tzv. white-box testy, které jsou typické komplexní znalostí o systému. Pracuje se s vědomostmi architektury i zdrojového kódu testované aplikace. V případě analýzy počítačové sítě je dostupná informace o architektuře, typu a počtu přítomných zařízení, a mnohdy i firemní politice. Během testu se provádí důkladná analýza zdrojového kódu, což vyžaduje i znalost použitého programovacího jazyka a dobře strukturovaný (okomentovaný) kód. Podstatnou výhodou je to, že dostupný zdrojový kód či struktura sítě zaručují nalezení možného zranitelného místa s menší časovou náročností. Rovněž je snadné optimalizovat zdrojový kód aplikace na základě nalezených chyb nebo zranitelných míst. Mezi nevýhody patří nezbytnost znát použitý programovací jazyk, což může zvyšovat náklady na provedené testy, protože je v některých případech potřebná rekvalifikace testera. Další nevýhodou je užší zaměření na zdrojový kód a architekturu aplikace [17].
3.5.6 Grey-box testy Grey-box testy představují snahu maximalizovat výhody z obou předchozích metod testů. Během testování se využívají znalosti vnitřní logiky aplikace, nicméně samotné testy probíhají z pohledu uživatele nebo, v případě bezpečnostních testů, potenciálního útočníka. Grey-box testy mnohdy zahnují i metody reverzního inženýrství ke snazšímu určení limitních hodnot vstupních údajů nebo chybových hlášení. [17]
8
4 Open Web Application Security Project
9
4 Open Web Application Security Project „Open Web Application Security Project“ (OWASP) je nezisková organizace a komunita, která se zabývá zlepšováním bezpečnosti webových aplikací. OWASP nadace byla založena 21.4.2004 ve Spojených státech Amerických a pod její hlavičkou je dostupná celá řada projektů, jejichž cílem je úroveň zabezpečení u webových stránek. Tyto projekty se dělí na:
dokumentační,
vývojářské.
OWASP nadace také podporuje vznik lokálních poboček, jež mají za úkol šířit osvětu v oblasti bezpečnosti, a to prostřednictvím seminářů, konferencí a diskuzí. V České republice působí pobočka OWASP Czech Republic. [18].
4.1 Významné vývojařské projekty OWASP
WebScarab Jedná se o „multiplatformní nástroj pro analýzu aplikací, které komunikují prostřednictvím HTTP a HTTPS protokolů. Nejčastěji se WebScarab používá jako záchytné proxy, čímž vývojářům a testerům umožňuje prozkoumávat komunikaci mezi prohlížečem a serverem. Je psán v Javě, umožňuje doplňovat, odstraňovat či modifikovat pluginy.“ (Root, 2010). Tento nástroj je dále využit v praktické části této práce.
Validation Filters Obsahuje filtry pro PHP, které jsou určené vývojářům pro vstupní kontrolu aplikace.
WebGoat Záměrně zranitelná aplikace určená pro testování bezpečnostních chyb v bezpečně právním prostředí.
DotNet Souhrn nástrojů určených k zabezpečení .NET aplikací.
ESAPI - OWASP Enterprise Security API (ESAPI) Project Souhrn bezpečnostních metod, které jsou potřebné k vytvoření zabezpečené webové aplikace.
AntiSamy Nástroj, který slouží k ověřování vstupního a výstupního kódu [18].
4.2 Významné dokumentační projekty OWASP
OWASP Application Security Verification Standard Norma rozsahu pokrytí a úrovně přísnosti, pokud jde o testování bezpečnosti webových aplikací. 9
4 Open Web Application Security Project
10
The Guide Obsahuje důkladné pokyny pro zabezpečení webových aplikací.
Top Ten Dokument, jež prezentuje 10 nejkritičtějších zranitelností webových aplikací.
Metrics Projekt definující metriky pro zabezpečení webových stránek.
Testing Guide Průvodce, který je orientován na testování bezpečnosti webových aplikací.
ISO 17799 Obsahuje podklady určené organizacím realizujícím normu ISO 17799 [18].
4.3 OWASP Top Ten 2013 Jedná se o žebříček deseti nejzávážnějších bezpečnostních hrozeb pro rok 2013. Seznam je výsledkem práce mnoha odborníků a od svého vzniku uveřejnila OWASP nadace již pět verzí tohoto žebříčku. Výsledky a dokumenty projektu jsou publikovány pod licencí „Creative Commons Attribution Share Alike 3.09“, jež je umožňuje šířit dále s uvedením autora. Cílem projektu je zvýšit informovanost tvůrců webových stránek o slabinách v bezpečnosti webových aplikací [18].
A1: Injection
A2: Broken Authentication and Session Management
A3: Cross-Site Scripting (XSS)
A4: Insecure Direct Object References
A5: Security Misconfiguration
A6: Sensitive Data Exposure
A7: Missing Function Level Access Control
A8: Cross-Site Request Forgery (CSRF)
A9: Using Known Vulnerable Components
A10: Unvalidated Redirects and Forwards
4.3.1 Terminologie Předtím, než bude popsáno deset nejkritičtějších bezpečnostních hrozeb pro rok 2013, je nutné definovat termíny spojené s klasifikací zranitelností dle metodiky OWASP. Na obrázku 4-1 je
9
Lze přizpůsobit a používat komerčně, ale vše za předpokladu, že se uvede autor, a jestliže dojde k jakékoliv úpravě, je nutné odvozené dílo šířit pouze pod stejnou nebo podobnou licencí. [53]
10
4 Open Web Application Security Project
11
zobrazen proces napadení webové aplikace, který je setříděn podle terminologie pro hodnocení rizik.
Obrázek 4-1: Metodika hodnocení rizik OWASP (zdroj: [19])
Threat agent Termín se používá k označení jednotlivce nebo skupiny, jež se může projevit jako hrozba pro systém. Je nezbytné určit, kdo by mohl mít zájem ohrozit aktiva společnosti, či jak by je mohl použít v neprospěch společnosti. [20]
Attack vectors Attack vector (útočný vektor) je cesta nebo metoda díky které může útočník získat přístup k počítači nebo síti, a to za účelem škodlivé činnosti [21]. Jsou to trasy nebo metody používané k nabourání se do počítačových systémů, obvykle se škodlivým záměrem. Využívá se známých slabých míst k získání přístupu. Mnoho takových útoků probíhá, protože selhal lidský faktor, který často bývá i nejslabším článkem systému. [21]
Security weakness Neboli bezpečnostní slabina – jde o mezeru v zabezpečení systému. Taková chyba může vzniknout již u návrhu nebo při pozdější implementaci zdrojového kódu. Vlivem této chyby může útočník poškodit všechny zainteresované strany systému (aplikace, provozovatele aplikace nebo její uživatele). [22]
Technical impacts Technický dopad na samotný systém, který vyplývá z úspěšného útoku. Obecně platí, že souvisí s ohrožením důvěrnosti, integrity, dostupnosti nebo odpovědnosti systému. [23]
11
4 Open Web Application Security Project
12
Business impact Jde o obchodní dopad na podnikání a vyplývá z úspěšného útoku. Obecně se jedná o ekonomické veličiny, které související dále i s termíny jako pověst společnosti, povědomí zákazníků nebo také rychlosti systému. [24]
4.3.2 Injection Vstřikovací chyby umožňují útočníkům vložit škodlivý kód, prostřednictvím webové aplikace, do jiného programu. Tyto útoky zahrnují volání operačního systému skrze systémové volání, používání externích programů přes příkazy uživatelského rozhraní (shellu), stejně jako zasílání požadavků na databáze v pozadí pomocí SQL (neboli SQL injekce). Celé skripty napsané v Perlu, Pythonu a dalších jazyků mohou být vloženy do špatně navržených webových aplikací a spuštěny. Kdykoliv webová aplikace používá tlumočníka jakéhokoli druhu, tak hrozí nebezpečí injekčního útoku. [25] Nejběžnější typ injekce je SQL injection neboli útok, při kterém dochází k vložení (injekci) SQL dotazu prostřednictvím vstupních dat od klienta do aplikace. Úspěšná SQL injekce může přečíst citlivá data z databáze nebo je měnit pomocí SQL dotazů (Insert / Update / Delete). Dále je možné provádět správu operací v databázi (např. vypnutí DBMS10) a v některých případech vydávat příkazy operačnímu systému. SQL injection je typem vstřikovacího útoku, ve kterém jsou příkazy SQL vkládány na rovině vstupu, a to za účelem provedení předdefinovaných příkazů. [26]
Threat agents Kdokoliv, kdo může poslat nedůvěryhodná data do systému, včetně externích uživatelů, interních uživatelů a administrátorů.
Attack vectors Útočník pošle jednoduché textové příkazy, které využívají syntaxi, jež je dále interpretována cílovým systémem. Téměř každý zdroj dat může být injekčním vektorem, včetně vnitřních zdrojů.
Security Weakness Injekční chyby jsou velmi rozšířené, a to zejména u zděděného kódu. Často se nalézají v SQL, LDAP11, XPath12 nebo u NoSQL13 dotazů. Nedostatky jsou snadno zjistitelné, pokud se provede hlubší analýza zdrojového kódu, ale současně těžko zjistitelné pomocí testů.
10
Zkratka pro systém řízení báze dat (SŘBD). Jde o databázový program, který používá standardní způsob pro katalogizaci, vyhledávání a spuštění dotazů. [46] 11 Lightweight Directory Access Protocol (LDAP) je klient / server protokol používaný pro přístup a správu informací o adresáři. [55] 12 XPath je jazyk pro vyhledávání informací v XML dokumentu. [51] 13 NoSQL je třída systémů pro správu databází (DBMS), které nenásledují všech pravidel relační DBMS a nelze u nich použít tradiční SQL dotazy. [52]
12
4 Open Web Application Security Project
13
Technical impacts Injekcí může dojít ke ztrátě nebo poškození dat; také se snižuje jejich vypovídací schopnost. Může nastat i odepření přístupu k datovému zdroji. V horším případě pak k úplnému hostitelskému převzetí webové aplikace.
Business impacts Všechna data mohou být ukradena, změněna nebo odstraněna. To může způsobit poškození pověsti provozovatele webu.
4.3.3 Broken Authentication and Session Management Authentication and Session Management zahrnuje všechny aspekty ověřování uživatelů a řízení aktivní relace. Ověřování neboli autentizace je kritickým krokem tohoto procesu. Pevné mechanismy autentizace mohou být narušeny chybami ve funkcích pro správu účtů, změny hesla, získávání zapomenutých hesel, ale i samotnou aktualizací účtu [26]. Autentizace uživatelů na webových stránkách obvykle zahrnuje kontrolu uživatelského jména a hesla. Ale jsou dostupné i komplexnější komerční metody, například software a hardware operující s kryptografickými tokeny nebo biometrií, avšak tyto mechanismy jsou pro většínu webových aplikací příliš nákladné. Nedostatky u správy uživatelských účtů a řízení relací mohou vést k ohrožení uživatele nebo i administrátorských účtů. Vývojařské týmy mnohdy podceňují složitost autentizačního systému, který pak dostatečně nechrání důležité aspekty webové stránky. [27] Webové aplikace musí vytvořit relace (sessions) a sledovat proud žádostí od každého uživatele. Protokol HTTP tuto možnost neposkytuje, proto je nutné vyvinout ověřování relací přímo v aplikaci. A jestliže nejsou tokeny relací dostatečně chráněny, útočník se tak může zhostit aktivní relace a zfalšovat identitu uživatele. Vytvoření schématu pro silné relace (a jejich ochrana po celou dobu životního cyklu) se ukazuje být velice obtížné pro mnoho dnešních vývojářů. Pakliže nejsou všechny identifikační údaje a identifikátory relací chráněny protokolem SSL (v celé aplikaci) a dále nejsou ošetřeny další související nedostatky (například proti cross-ste skriptování), může útočník přesměrovat relace uživatele, a převzít tak kontrolu nad jeho identitou v systému. [27]
Threat agents Představuje anonymní externí útočníky, stejně jako uživatele s vlastními účty, kteří se mohou pokusit ukrást účty od ostatních uživatelů. Do této skupiny patří i lidé z vnitřního kruhu (insideři), kteří chtějí zakrýt své nekalé jednání.
Attack vectors Útočník využívá netěsnosti nebo nedostatku v ověřování nebo řízení relační funkce (např. vystavených účtů, hesla, ID relací), aby mohl vystupovat jako jiný uživatel.
13
4 Open Web Application Security Project
14
Security Weakness Vývojáři často vytvářejí vlastní ověřovácí systémy řízení relace, ale budovat ty správné je obtížné. Výsledkem jsou značné nedostatky u funkcí jako je odhlášení, správa hesel, časové limity, zapamatování si uživatelů, tajné otázky k získání zapomenutého hesla, aktualizace účtu, atd. Nalezení takové vady může být obtížné, protože každá implementace je jedinečná.
Technical impacts Takové chyby mohou dovolovat útok na některé nebo i všechny uživatelské účty. Poté může úspěšný útočník dělat cokoliv má napadený účet povoleno v právech. Často jsou zaměřovány privilegované účty.
Business impacts Představuje možný pokles obchodní hodnoty dotčených údajů nebo funkcí aplikace. Také sem patří obchodní následky z veřejné informace o zranitelnosti aplikace.
4.3.4 Cross-Site Scripting (XSS) Cross - Site Scripting (XSS) jsou injekční typy útoků, ve kterých jsou škodlivé skripty vkládany do jinak důvěryhodných webových stránek. K XSS útokům může dojít tak, že útočník například použije webovou aplikaci pro odesílání škodlivého kódu, obvykle jde o formu určitého skriptu, který běží mimo stránky, na něž je veden útok. Nedostatky umožňující tyto útoky jsou velmi rozšířené a vyskytují se takřka pokaždé, pokud není ověřován vstup od uživatele u cílové webové stránky. Útočník může poslat škodlivý skript na nic netušící uživatele. Prohlížeč koncového uživatele pak nemá šanci rozpoznat, že je skript škodlivý, a tak jej spustí. Vzhledem k tomu, že má jít o důvěryhodnou webovou stránku, může získat škodlivý skript přístup ke všem cookies, „session tokens“ nebo jiným citlivým informacím uchovávaným v prohlížeči a užívaným na dané webové stránce. Tyto skripty mohou dokonce přepsat obsah stránky HTML. [26]
Threat agents Patří sem kdokoliv, kdo může poslat nedůvěryhodná data do systému, včetně externích uživatelů, interních uživatelů a administrátorů.
Attack vectors Útočník posílá textové útočné skripty, které interpretuje prohlížeč. Téměř každý zdroj dat může být útočným vektorem, včetně vnitřních zdrojů jako jsou údaje z databáze.
Security Weakness K útokům dochází, jestliže aplikace obsahuje uživateli vkládaná data přímo do stránky nebo odesílaná prohlížečem, aniž by byla řádně ověřena či upravena. Existují dva typy XSS zranitelností:
14
4 Open Web Application Security Project
15
1. uložené, 2. odražené. Ty se potom mohou dále objevit buď: a) na straně serveru, anebo, b) na straně klienta. Detekce většiny chyb na straně serveru je poměrně snadná pomocí testů nebo analýzy kódu. V případě chyb na straně klienta je už identifikace obtížnější.
Technical impacts Útočníci mohou spouštět skripty v prohlížeči oběti, a zmocnit se tak uživatelské relace, poškodit webové stránky, vložit nepřátelský obsah, přesměrovat uživatele na jinou URL adresu14 atd.
Business impacts Může snížit obchodní hodnotu postiženého systému i veškerých údajů, jež webová stránka prezentuje. Současně má vliv i na obchodní dopad v rámci zranitelnosti webu.
4.3.5 Insecure Direct Object References Nezabezpečný přímý odkaz na objekt (Insecure Direct Object References) nastává v případě, když vývojář nechtěně vystaví odkaz na interní objekt systému, například soubor, adresář nebo databázový klíč. Bez kontroly řízení přístupu nebo jiné ochrany, mohou útočníci manipulovat s těmito odkazy, a získat tak přístup k neoprávněným datům. [26]
Threat agents Představuje uživatele v určitém systému. Zejména v případech, kdy není omezen přístup k datům, jež přísluší pouze konkrétnímu uživateli.
Attack vectors Útočník, který je oprávněným uživatelem systému, jednoduše změní hodnotu parametru, jenž přímo odkazuje na systémový objekt, na jiný objekt, k němuž nemá daný uživatel přístupová práva.
Security Weakness Aplikace často používají skutečný název nebo klíč objektu při generování webových stránek. Aplikace nemusí vždy ověřovat, zdá má uživatel právo přístupu k cílovému objektu. To má za následek vznik referenčních objektových chyb. Tester pak může snadno odhalit příčinu chyb manipulováním s hodnotami parametrů. Následná analýza kódu rychle ukáže, zda jsou povolení řádně nastavena.
14
URL je zkratka z anglického „Uniform Resource Locator“. Používá se pro přesnou identifikaci dokumentů na internetu. [50]
15
4 Open Web Application Security Project
16
Technical impacts Takové chyby mohou ohrozit veškeré údaje, jenž jsou odkazovány parametrem. Pro útočníka je snadné získat přístup ke všem dostupným údajům tohoto typu.
Business impacts Může ohrozit obchodní hodnotu vystavených dat. Současně má vliv i na obchodní dopad v rámci zranitelnosti webu.
4.3.6 Security Misconfiguration Představuje zranitelnosti, které umožňují napadení aplikace vlivem nedostatků v konfiguraci aplikačních, webových nebo databázových serverů, softwarových platforem atd. Často i postačí ponechané výchozí hodnoty v nastavení či neaktualizovaná verze aplikace. Existence takové zranitelnosti může ohrozit provozovatele serveru nebo ostatní provozovatele webů, kteří mají zaplacený hosting na nezabezpečeném serveru. U open source aplikací bývají znalosti nedostatků o to více rozšířené. [28]
Threat agents Představuje anonymní externí útočníky, stejně jako uživatele s vlastními účty, kteří se mohou pokusit ohrozit systém. Také insidery, kteří chtějí zakrýt své nekalé jednání.
Attack vectors Útočník přistupuje k výchozím účtům, nepoužívaným stránkám, využívá neopravených vad, nechráněných souborů, adresářů atd. Vše k získání neoprávněného přístupu nebo skryté znalosti systému.
Security Weakness Změna bezpečnostní konfigurace může nastat na jakékoliv úrovni aplikace – včetně platformy, webového serveru, aplikačního serveru, databáze, frameworku15 nebo i vlastního kódu. Vývojáři a správci systému musí spolupracovat, aby zajistili komplexní konfiguraci aplikace. Automatizované skenery jsou vhodné pro detekci chybějících patchů16, zranitelností u standardních účtů, nepotřebných služeb atd.
Technical impacts a Business impacts Tento systém by mohl být zcela ohrožen, aniž by o tom správce věděl. Veškerá data mohou být odcizena nebo změněna v průběhu času. Náklady spojené s vymáháním jsou potom velké.
15
Vývojářská platforma sdílející zdrojový kód s obecnou funkcionalitou. Může být selektivně speciazována uživatelem nebo vývojařem. [56] 16 Patch je softwarová aktualizace, zahrnutý kód vložený do zdrojového kódu spustitelného programu. [41]
16
4 Open Web Application Security Project
17
4.3.7 Sensitive Data Exposure Mnoho webových aplikací nechrání správně svá citlivá data, jako jsou kreditní karty, daňové identifikační číslo (DIČ) a autentizační informace. Útočníci mohou ukrást nebo změnit taková, slabě chráněná data a provést podvody s kreditními kartami, ukrást uživateli identitu atd. Citlivá data si zaslouží zvláštní ochranu, jako je šifrování v klidu nebo v tranzitu, jakož i zvláštních opatření, když probíhá výměna s prohlížečem [26]. Osobní a citlivé údaje jsou stanoveny v zákone č. 101/2000 Sb., o ochraně osobních údajů, §4, odstavec a, b, následovně: „Pro účely tohoto zákona se rozumí a) osobním údajem jakákoliv informace týkající se určeného nebo určitelného subjektu údajů. Subjekt údajů se považuje za určený nebo určitelný, jestliže lze subjekt údajů přímo či nepřímo identifikovat zejména na základě čísla, kódu nebo jednoho či více prvků, specifických pro jeho fyzickou, fyziologickou, psychickou, ekonomickou, kulturní nebo sociální identitu, b) citlivým údajem osobní údaj vypovídající o národnostním, rasovém nebo etnickém původu, politických postojích, členství v odborových organizacích, náboženství a filozofickém přesvědčení, odsouzení za trestný čin, zdravotním stavu a sexuálním životě subjektu údajů a genetický údaj subjektu údajů; citlivým údajem je také biometrický údaj, který umožňuje přímou identifikaci nebo autentizaci subjektu údajů“. [29]
Threat agents Představuje osoby, jež mohou získat přístup k citlivým datům i případným zálohám těchto dat. Patří sem data v klidu, tranzitu, a to dokonce i v prohlížečích případných zákazníků. Zahrnuje externí a interní hrozby.
Attack vectors Útočníci obvykle neporušují zabezpečení webové aplikace otevřeně. Vyžívají obvykle jiných artiklů – například kradených klíčů, osob působících uvnitř (man in the middle) systému, nebo nešifrovaných dat přímo ze serveru. Může jít o data tranzitní či z prohlížeče uživatele.
Security Weakness Nejběžnější chybou je nedostatečné šifrování citlivých dat. Zejména pokud se využívá slabého šifrovacího algoritmu pro generování klíčů a relací, což je v praxi časté. Také lze využít nedostatků webových prohlížečů; je snadné je odhalit, ale těžší využít ve větším měřítku. Externí útočníci mívají potíže s detekcí nedostatků na straně serveru. Vzhledem k omezenému přístupu, je pak obvykle obtížné jejich využití.
Technical impacts Chyby často ohrožují veškeré údaje, které by měly být chráněné. Typicky se jedná o velmi citlivé informace jako jsou zdravotní záznamy, osobní údaje, kreditní karty atd. 17
4 Open Web Application Security Project
18
Business impacts Snižuje obchodní hodnotu ztracených dat a má silný dopad na pověst provozovatele webu.
4.3.8 Missing Function Level Access Control Většina webových aplikací ověřuje přístupová práva na úrovni funkce ještě dříve, než je daná funkčnost viditelná v uživatelském rozhraní. Nicméně je nutné, aby aplikace prováděla kontrolu přístupu (autorizaci) pokaždé, kdy se přistupuje k určité funkci. Jestliže nejsou požadavky ověřovány, útočníci je mohou obejít, a získat tak přístup k funkcím, pro které by neměli mít přidělená práva. [26]
Threat agents Každý, kdo má přístup na síť a možnost zasílat žádosti. Souvisí i s přístupem uživatelů k právům, jež jim nenáleží.
Attack vectors Útočník, který je oprávněným uživatelem systému, jednoduše změní adresu URL nebo parametr u privilegované funkce. Anonymní uživatelé mohou přistupovat k soukromým funkcím, které nejsou chráněné.
Security Weakness Aplikace nemusí vždy správně chránit programové funkce. Někdy je ochrana řízena nastavením, ale systém je chybně nakonfigurován. Jindy vývojáři opomenou implementovat řádnou kontrolu zdrojového kódu. Zjištění takových vad je snadné. Nejtěžší je určit, které stránky (URL) nebo funkce takové slabiny obsahují.
Technical impacts Tyto chyby umožňují útočníkům přístupovat k neoprávněné funkčnosti aplikace. Administrativní funkce jsou klíčové cíle pro tento typ útoku.
Business impacts Může poškodit obchodní hodnotu exponovaných funkcí a údajů, které zpracovávají. Také může mít výrazný dopad na pověst provozovatele webu, pakliže se o chybě dozví veřejnost.
4.3.9 Cross-Site Request Forgery (CSRF) CSRF útok využívá přihlášené oběti (obvykle do administračního systému), které odešle podvodný požadavek HTTP (nejčastěji odkaz v emailu), který uživatele přesměruje a získá z jeho prohlížeče citlivá data (Sessiony, cookies), která útočníkovi poslouží k vygenerování požadavku, jenž využije získaná data a vloží do systému (kde je uživatel stále přihlášen) určitá data. Často dochází ke změně elektronické pošty u nastavení internetových plateb jako je Paypal atd. [26] 18
4 Open Web Application Security Project
19
Threat agents Každý, kdo může načíst obsah do prohlížeče uživatele, čímž jej nutí podat žádost na jeho webových stránkách. Jakékoliv webové stránky nebo HTML feed, který toto umožňuje.
Attack vectors Útočník vytváří kované HTTP požadavky a snaží se zmanipulovat oběti, aby je odeslali prostřednictvím obrázkového tagu, XSS atd. Pokud je uživatel ověřen, útok uspěje.
Security Weakness CSRF využívá skutečnosti, že většina webových aplikací umožňuje útočníkům předvídat důsledky konkrétních akcí. Vzhledem k tomu, že prohlížeče automaticky odesílají pověření jako „session cookies“, útočníci mohou vytvořit škodlivé webové stránky, které generují požadavky a jsou k nerozeznání od těch oprávněných. Detekce CSRF chyb je poměrně snadná, a to pomocí penetračních testů nebo analýzy kódu.
Technical impacts Útočníci mohou přimět oběti k provedení stav měnící operace, pro kterou mají garantovaná práva. Jde například o aktualizaci údajů na účtu, nákupy, odhlášení, ale i přihlašení.
Business impacts Poškozuje obchodní hodnotu dotčených údajů nebo funkcí aplikace. Má dopad na pověst provozovatele webu.
4.3.10
Using Known Vulnerable Components
Komponenty, jako jsou knihovny, frameworky a další softwarové moduly, které bývají spuštěny s úplným oprávněním. Jakmile je taková zranitelná komponenta využita, útok může způsobit ztrátu dat nebo úplné převzetí serveru. Aplikace používající součásti známých zranitelností mohou tak ohrozit bezpečnost systému a umožnit celou řadu útoků [26].
Threat agents Některé zranitelné komponenty (např. frameworky), které lze identifikovat a využívat s automatizovanými nástroji k rozšíření základny útočníků s cílem zahrnout i chaotické herce.
Attack vectors Útočník identifikuje slabou složku po skenování nebo manuální analýze. Přizpůsobí si jí podle potřeby a provede útok. Je to tím obtížnější, čím se komponenta nachází hlouběji v aplikaci.
19
4 Open Web Application Security Project
20
Security Weakness Prakticky každá aplikace má tyto problémy, protože většina vývojových týmů se nesoustředí na zajištění svých komponentů či knihoven, aby byly aktuální. V mnoha případech dokonce nevědí, jaké všechny komponenty používají, natož jejich verze. Technical impacts Celá řada zranitelností je možná – včetně injekcí, poškození přístupu k aplikaci, XSS atd. Dopady se liší dle závažnosti chyb v aplikaci.
Business impacts Představuje veškeré zranitelnosti a jejich dopady na obchodní hodnotu dotčených údajů. Může jít o triviální dopad, ale i závažné důsledky na hodnotu podniku.
4.3.11
Unvalidated Redirects and Forwards
Webové aplikace často přesměrovávají uživatele na jiné stránky a používají přitom nedůvěryhodné údaje k určení cílové stránky. Bez správného ověření, může útočník přesměrovat oběť na jinou stránku, a získat například pomocí techniky phishing17, citlivé údaje od nic netušící oběti [26].
Threat agents Každý, kdo může přimět své uživatele k podání žádosti na určitých webových stránkách. Jakékoliv webové stránky nebo jiný HTML feed, který uživatelé používají a může podobnou akci způsobit.
Attack vectors Útočník vytváří nevalidní odkazy a snaží se zmanipulovat své obětí, aby na ně klikli. Uživatele je o to snazší ovlivnit, jelikož se jedná o „důvěryhodné“ stránky.
Security Weakness Aplikace často přesměrovává uživatele na jiné stránky nebo užívá interních forwardů (přesměrování) k podobným účelům. Někdy je cílová stránka specifikována nevalidním parametrem, který umožňuje útočníkům vložit jinou stránku. Detekce nekontrolovaného přesměrování jsou snadné. Zejména tam, kde lze nastavit plnou adresu. Nekontrolované forwardy je obtížnější detekovat, protože se zaměřují na vnitřní stránky.
17
Phishing je podvodný akt sloužící k získávání soukromých a citlivých informací, jako jsou čísla kreditních karet, číslo občanské karty či uživatelská jména nebo hesla. Využívá se komplexních sociálně inženýrských techník ve spojení s odbornými znalostmi. [39]
20
4 Open Web Application Security Project
21
Technical impacts Takové přesměrování se může pokusit nainstalovat malware18 či od oběti podvodně vylákat heslo nebo jiné citlivé údaje.
Business impacts Může poškodit obchodní hodnotu společnosti a důvěru svých uživatelů.
4.4 Hodnocení rizik metodikou OWASP Nalezení zranitelností je důležité, ale stejně důležité je i schopnost odhadnout následné dopady na podnikatelské aktivity. Na začátku životního cyklu vývoje aplikace je vhodné definovat bezpečnostní rizika v architektuře a designu pomocí modelů hrozeb. V pozdější fázi se mohou objevit nové problémy vyplývající z analýzy zdrojového kódu či penetračních testů. Dodržováním předloženého přístupu lze odhadnout závažnost všech těchto rizik na podnikatelské aktivity konkrétní firmy, a tak učinit informované rozhodnutí o tom, jak nalezené problémy řešit. Projekt OWASP disponuje metodikou sloužící k analýze zjištěných rizik v aplikaci a hodnocení jejich závažnosti. [30] Standardní model hodnocení rizik lze vyjádřit rovnící: Riziko = Pravděpodobnost * Dopad. V tabulce 4-1 jsou prezentovány úrovně pravděpodobnosti a dopadů seřazené dle jejich závažností. Tabulka 4-2 zobrazuje hodnocení celkové úrovně závažnosti rizik. Tabulka 4-1: Úrovně přavděpodobnosti a dopadu (zdroj: [30])
Úrovně Pravděpodobnosti a dopadu Nízký 0 až 3 Střední 3 až 6 Vysoký 6 až 9 Tabulka 4-2: Hodnocení celkové úrovně závažnosti rizik (zdroj: [30])
Dopad
Celková úroveň závažnosti rizik VYSOKÁ Střední Vysoká
Kritická
STŘEDNÍ
Nízká
Střední
Vysoká
NÍZKÁ
Záznam
Nízká
Střední
NÍZKÁ
STŘEDNÍ
VYSOKÁ
Pravděpodobnost
18
Jedná se o škodlivý software (malicious software), obyčejně známý jako malware, jehož účelem je poškodit počitačový systém. [40]
21
4 Open Web Application Security Project
22
Pro získání výsledné úrovně rizika u konkrétní zranitelnosti existuje webová aplikace „OWASP Risk Assessment Calculator“, jež je setříděná dle terminologie zranitelností projektu OWASP. V této online aplikaci je možné nastavit parametry u pravdepodobnostních faktorů a faktorů dopadu. Z pravidla platí, že se vždy nastavují hodnoty reprezentující nejhorší možný scénář. Následující tabulky shrnují možnosti nastavení aplikace pro vygenerování úrovně rizik u konkrétní zranitelnosti.
Pravděpodobnostní faktory Tabulka 4-3: Faktory hrozících agentů (zdroj: [19])
Vstupní kategorie Potřebná dovednost: Určuje dovednosti skupiny hrozících agentů. Motiv: Určuje motivaci k uskutečnění útoku. Příležitost: Určuje zdroje a příležitosti potřebné k exploataci zranitelnosti. Populační velikost: Jak početná je skupina hrozících agentů.
Faktory hrozících agentů (Threat agent faktory) Hodnota (úroveň zranitelnosti) Není aplikována (0), Penetrační dovednosti (1), Síťové a programovací schopnosti (3). Znalosti pokročilého uživatele (4), Technické dovednosti (6). Bez technických dovedností (9). Není aplikována (0), Nízký nebo bez odměny (1). Možná odměna (4), Vysoká odměna (9) Plný přístup nebo nutnost využití nákladných zdrojů (0), Speciální přístup nebo nutnost využití zdrojů (1), Omezený přístup nebo nutnost využití zdrojů (7), Bez nutnossti přístupu nebo vyžití zdrojů (9).
Není aplikována (0), Systémoví administrátoři (2), Uživatelé intranetu (4), Partneři (5), Autentizovaní uživatelé (6), Anonymní internetoví uživatelé (9).
Tabulka 4-4: Faktory zranitelnosti (zdroj: [19])
Vstupní kategorie Snadnost objevení: Určuje, jak snadné je objevit zranitelnost v aplikaci. Snadnost exploitace: Určuje obtížnost možné exploitace nalezené zranitelnosti. Povědomí: Určuje veřejné povědomí o dané zranitelnosti. Detekce narušení: Jak snadné je exploitaci detekovat.
Faktory zranitelnosti (Vulnerability Factors) Hodnota (úroveň zranitelnosti) Není aplikována (0), Prakticky nemožná (1), Obtížná (3), Jednoduchá (7), Pomocí automatických nástrojů (9).
Není aplikována (0), Teoretická (1), Obtížná (3), Snadná (5), Pomocí automatických nástrojů (9).
Není aplikována (0), Skrytá (4), Zřejmá (6), Veřejně známá (9).
Není aplikována (0), Aktivní detekce v aplikaci (1), Po přihlášení a přezkoumání (3), Po přihlášení bez přezkoumání (8), Bez přihlášení (9).
22
4 Open Web Application Security Project
23
Faktory dopadu Tabulka 4-5: Faktory technických dopadů (zdroj: [19])
Faktory technických dopadů (Technical impact factors) Vstupní kategorie Hodnota (úroveň zranitelnosti) Není aplikována (0), Minimum necitlivých dat (2), Nákladná nectilivá data (6), Ztráta důvernosti: Určuje, kolik dat může Rozsáhlá kritická data (7), Všechna data (9). být odhaleno a jak citlivá ta data jsou. Není aplikována (0), Minimum a nepatrné poškození (1), Minimum a vážné Ztráta integrity: poškození (3), Rozsáhlé a nepatrné poškození (5), Rozsáhlé a závažné Určuje, kolik dat může poškození (7), Všechna data vážně poškozena (9). být poškozeno a závažnost poškození.. Není aplikována (0), Minimum sekundárních služeb přerušeno (1), Minimum Ztráta dostupnosti: primárních služeb poškozeno (5), Rozsáhlé přerušení primárních služeb (7), Určuje, kolik služeb může být ztraceno, a jak Všechna služby kompletně ztraceny (9). rozhodující to je. Detekce Odpovědnosti: Není aplikována (0), Útok plně vystopovatelný k agentovi (1), Útok je možné Jak snadné je vystopovat vystopovat k agentovi (7), Útok je kompletně anonymní (9). hrozící agemty.
Tabulka 4-6: Faktory dopadů na podnikatelské aktivity (zdroj: [19])
Faktory dopadů na podnikatelské aktivity (Business impact factors) Vstupní kategorie Hodnota (úroveň zranitelnosti) Není aplikována (0), Náklady plynoucí z poškození jsou menší, než další Finanční poškození: Určuje, jaké finanční oprava (1), Minoritní efekt na běžný příjem (3), Signifikantní efekt na běžný ztráty nastanou příjem (7), Bankrot (9). důsledkem exploitace. Poškození reputace: Určuje, dopad exploitace na poškození podnikatelských aktivit firmy. Nedodržení požadavku: Určuje, jak moc ztranitelnosti poruší zavedení aplikace. Porušení soukromí: Určuje, jaké personální informace mohou být exponovány.
Není aplikována (0), Minimální poškození (1), Ztráta mnoha účtů (3), Ztráta dobrého jména (5), Boškození značky (7).
Není aplikována (0), Minimální porušení (2), Jasné porušení (5), Závažné porušení (7).
Není aplikována (0), Jedna osoba (3), Stovky lidí (5), Tisíce lidí (7), Milióny lidí (9).
23
5 Testování zabezpečení e-commerce aplikací
24
5 Testování zabezpečení e-commerce aplikací Cílem této kapitoly je provést bezpečnostní test třech vybraných e-commerce aplikací. Nejprve jsou produkty představeny, dále je popsána metodika testování i konfigurace testovacích programů. Nakonec jsou prezentovány výstupy seřazené dle terminologie „OWASP Top Ten“. Důraz je kladen i na hledání řešení nalezených zranitelností.
5.1 Představení elektronických obchodů Pro účely této praktické části byly vybrány e-commerce aplikace OpenCart, osCommerce a Magento. Tyto produkty byly zařazeny mezi 3 nejlepší bezplatné elektronické obchody v seznamu „15 nejlepších internetových obchodů s bezplatnou licencí“, které sestavil server WEB APPERS. [4]
5.1.1 OpenCart OpenCart je „open source e-commerce“ platforma určena k elektronickému obchodování. Poskytuje profesionální a spolehlivý základ, ze kterého lze vybudovat úspěšný internetový obchod. Tento základ oslovuje široké spektrum uživatelů; od zkušených webových vývojářů hledajících uživatelsky přívětivé rozhraní, až k podnikatelům obchodujícím online. OpenCart má rozsáhlé množství funkcí a je snadno přizpůsobitelný unikátním požadavkům uživatele. Instalace probíhá automaticky prostřednictvím webové aplikace. [31]
24
5 Testování zabezpečení e-commerce aplikací
25
Základní charakteristika Tabulka 5-1: Základní charakteristika OpenCart (zdroj: autor)
Aktuální verze: Licence: Požadavky na instalaci:
Architektura: Podporuje:
1.5.6.4 (23.duben 2014) GNU LGPL Webový server (přednostně Apache) PHP (alespoň verze 5.2) MySQL Curl MVC
Oficiální stránky:
Multi-store19 Cross-selling20 Porovnávání produktů List přání Recenze k produktům Import/export Kupóny Slevy Newsletter21 E-mailové šablony Statistiky prodeje Systém více měn Více jazyčná podpora http://www.opencart.com/
5.1.2 osCommerce „osCommerce Online Merchant“ je e-commerce platforma určena k elektronickému obchodování. Je dostupná zdarma pod „Open Source GNU General Public License“ licencí. Obsahuje jak zákaznickou čás, tak i část pro správu systému. Instalace probíhá prostřednictvím webové aplikace [32]. Aplikace je postavena na skriptovacím jazyce PHP a využívá databázový server MySQL. V současné době jsou k dispozici ke stažení dvě odlišné verze produktu. Verze „2.3.3.4“ obsahuje všechny dostupné funkce, na rozdíl od nově vyvíjené verze „3.0.2“, která některé z nich ještě nezahrnuje. Z tohoto důvodu byla pro tuto práci zvolena starší vyvíjená verze.
19
Jedná se o možnost mít více obchodů na jednu instanci instalace. [autor] Neboli křížový prodej zboží. [autor] 21 Zasílání novinek z webové stránky. [autor] 20
25
5 Testování zabezpečení e-commerce aplikací
26
Základní charakteristika Tabulka 5-2: Základní charakteristika osCommerce (zdroj: autor)
2.3.3.4 a 3.0.2 (ve vývoji, neobsahuje vše z 2.x.x.x verzí) GNU LGPL PHP v4+ (v5+ doporučena) MySQL v3+ (v5+ doporučena) PHP
Aktuální verze: Licence: Požadavky na instalaci: Framework: Podporuje:
Oficiální stránky:
Optimilizováno pro mobilní telefony Cross-selling Porovnání produktů List přání Recenze k produktům Newsletter Statistiky prodeje Systém více měn Čárové kódy Více jazyčná podpora http://www.oscommerce.com/
5.1.3 Magento Magento je komplexní e-commerce systém určený pro správu internetového obchodu, prodeji zboží koncovým spotřebitelům (B2C), ale i dealerům (B2B). Obsahuje řadu propracovaných funkcí a modulů i s redakčním systémem pro editaci obsahu stránek. Správa Magenta je prováděna prostřednictvím přehledné administrace. [33]
26
5 Testování zabezpečení e-commerce aplikací
27
Základní charakteristika Tabulka 5-3: Základní charakteristika Magenta (zdroj: autor)
1.8.1.0 Open Software License (OSL) v3.0 Apache 1.3.x Apache 2.0.x Apache 2.2.x PHP 5.2.13 - 5.3.24; nebo 5.4.x se záplatou CE nebo EE ZEND
Aktuální verze: Licence: Požadavky na instalaci:
Framework: Podporuje:
Multi-store Cross-selling Porovnání produktů List přání Recenze k produktům Import/export Kupóny Slevy Newslettery E-mailové šablony Statistiky prodeje Systém více měn Více jazyčná podpora http://magento.com/
Oficiální stránky:
5.2 Metodika testování Metodiku testování lze rozdělit dle typů testů na: a) Automatizované testy b) Manuální testy Pro automatizované testy byl zvolen program „Acunetix Web Vulnerability Scanner“ a pro manuální testy nástroj WebScarab, který je součástí vývojařských projektů OWASP a je popsán v teoretické části této práce.
5.2.1 Acunetix Web Vulnerability Scanner Jde o velice populární nástroj na provádění automatizovaných black-box testů, který je doporučen i na stránkách projektu OWASP [34]. Mezi vlastnosti programu patří:
27
5 Testování zabezpečení e-commerce aplikací
28
AcuSensor22 technologie.
Pokročilejší hloubkové testy na SQL injection a Cross site skriptů.
Plná podpora HTML5 s „Acunetix DeepScan“ technologií.
Rozsáhlé skenování aplikací a webových stránek s Javascriptem.
Podpora mobilních webových stránek.
Detekce „slepých XSS“ zranitelností za pomocí služby „AcuMonitor“.
Automatizovaná detekce „DOM-based XSS23“ zranitelností.
Pokročilé penetrační testovácí nástroje – Editor HTTP a HTTP Fuzzer24.
Rozsáhlé reporty z testování.
„Multi-threaded“ – velice rychle prochází více vrstev stránky současně. [35]
5.2.2 Postup řešení Postup bude u všech vybraných e-commerce produktů stejný a lze jej rozdělit do těchto bodů: 1. Nejdříve proběhne důkladný sken aplikace vybraným nástrojem pro automatizované blackbox testy „Acunetix Web Vulnerability Scanner“. 2. Následovat bude analýza reportu a odstranění poplašných zpráv. 3. Dále proběhnou manuální testy indikovaných zranitelností s cílem získat detailnější přehled o možných dopadech. K tomu poslouží nástroj WebScarab. 4. Zjištěné nedostatky se nakonec rozdělí dle termínů metodiky OWASP, dále bude provedena analýza rizik webovou aplikací „OWASP Risk Assessment Calculator“ (popsána v teoretické části) a výsledné zranitelnosti i s hodnocením rizik budou zaneseny do této práce spolu s návrhy na redukci těchto nedostatků. Analýza bude probíhat, jak v zákaznické části, tak i v administračním systému.
22
Acunetix AcuSensor technologie je nová bezpečnostní technologie, která umožňuje identifikovat více zranitelností než tradiční skenery webových aplikací, současně i generuje méně poplašných zpráv. Dovede přesně identifikovat zranitelnost ve zdrojovém kódu a reportuje informace k ladění aplikace [49]. 23
Jde o typ cross-site scripting útoku, který se opírá o nesprávné manipulace v HTML stránce s údaji přidružené k DOM (document object model). [45] 24
Jde o software používaný k nalezení chyb ve zdrojovém kódu a bezpečnostních mezer v softwaru, operačních systémech nebo sítí, a to zadáním obrovského množství náhodných dat, zvaných „fuzz“, do systému ve snaze, aby se zhroutil. [44]
28
5 Testování zabezpečení e-commerce aplikací
29
Předpoklady jsou následující: 1. Test bude probíhat na čisté instalaci bez zásahů do administrace systému (s výjimkou Magenta, kde nejsou přednastaveny produky). 2. Každý test musí probíhat stejnou metodikou.
5.3 Konfigurace testujícího systému 5.3.1 Základní přehled o konfiguraci systému Tabulka 5-4: Základní přehled o konfiguraci systému (zdroj: autor)
Hardware: Operační systém: Webový prohlížeč: Testovací programy:
Apache server:
Intel Quad core Q6600 2.4 GHz, 4 Gb DDR2 Microsoft Windows 8 Mozilla Firefox 29.0 Acunetix Web Vulnerability Scanner v 9.0 enterprise edition WebScarab v 1.0 XAMPP for Windows 1.8.3 Obsahuje: Apache 2.4.9, MySQL 5.6.16, PHP 5.5.11, phpMyAdmin 4.1.12, OpenSSL 1.0.1, XAMPP Control Panel 3.2.1, Webalizer 2.23-04, Mercury Mail Transport System 4.63, FileZilla FTP Server 0.9.41, Tomcat 7.0.42, Strawberry Perl 7.0.42 Portable
5.3.2 Konfigurace – Acunetix Web Vulnerability Scanner Každý automatizovaný test je nastaven dle následujícího postupu: 1. Po stisknutí tlačítka „New Scan“, v prvním kroku, je nutné doplnit URL adresu aplikace.
Obrázek 5-1: URL adresa skenované aplikace (zdroj: autor)
2. Následuje druhý krok, kde je zvolen defaultní profil skenu, který obsahuje veškeré dostupné typy testů pro danou aplikaci. Dále je nutné detailnější nastavení po stisknutí tlačítka „Customize“.
29
5 Testování zabezpečení e-commerce aplikací
30
Obrázek 5-2: Nastavení módu pro skenovanou aplikaci (zdroj: autor)
3. V novém dialogovém okně se zobrazí detailnější konfigurace skenovacího procesu. V této práci jsou dále zobrazeny pouze hodnoty, které se liší od základního nastavení dané verze programu. V záložce „DeepScan“ je nutné vypnout testování skriptů z externích stránek, které s aplikací na lokálním stroji nesouvisí.
Obrázek 5-3: Nastavení v záložce DeepScan (zdroj: autor)
V záložce „Scanning options“ je zvolen heuristický skenovací mód. V tomto režimu určí skrytý algoritmus, které parametry mají být považovány za akční, což zvyšuje variaci hodnot přiřazených konkrétním parametrům.
Obrázek 5-4: Nastavení heuristického skenovacího módu (zdroj: autor)
V záložce „Crawling options“ je důležité mít zaškrtnutý parametr „Do not fetch anything above start folder“, který zaručuje, že aplikace nebude zasahovat výše nad rootovací složku webové stránky. Rovněž je nutné mít povoleno „Fetch files below base folder“, aby se Acunetix nepohyboval pouze v hlavní složce. Dále je vhodné nastavit parametr „Try to prevent infinite directory recursion, aby nedocházelo k zacyklení při procházení složek. Počet variací pro daný parametr je nastaven na hodnotu 30.
30
5 Testování zabezpečení e-commerce aplikací
31
Obrázek 5-5: Nastavení v záložce Crawling options (zdroj: autor)
Aby nebyl test příliš zdlouhavý, tak je dobré zvýšit limit pro počet paralelních připojení (původně: 10), ale je nutné brát v úvahu i výkon serveru, aby nebyl zahlcen, což by nakonec mělo opačný efekt. Také je vhodné snížit maximální hodnotu času, kterou má požadavek z testovacího programu k dispozici (původně: 30 vteřin). Vše se nastaví v záložce „HTTP options“.
Obrázek 5-6: Nastavení v záložce HTTP options pro plynulejší průběh testu (zdroj: autor)
4. V následujícím okně dojde k automatické detekci použitých technologií webu, ale lze případně doplnit chybějící údaje manuálně.
Obrázek 5-7: Automatická detekce technologií na pozadí použité aplikace (zdroj: autor)
5. Na dalším okně je nutné vytvořit relaci přihlášení do administračního systému, což si Acunetix zapamatuje a test bude moci probíhat i zde.
31
5 Testování zabezpečení e-commerce aplikací
32
Obrázek 5-8: Nastavení relace pro připojení do administračního systému (zdroj: autor)
V následujícím dialogovém okně je zadána URL adresa administračního systému dané aplikace.
Obrázek 5-9: Nastavení URL adresy administračního systému aplikace (zdroj: autor)
Poté je nutné se přihlásit.
Obrázek 5-10: Přihlášení do administračního systému v testovacím programu Acunetix (zdroj: autor)
Po přihlášení je potřebné projít všechny odkazy v administračním systému pro snazší detekci všech souborů, které se zde nacházejí. Je také možné nastavit, které se mají vynechat. Po potvrzení se konfigurace navrátí do původního okna k finálnímu potvrzení, po němž spustí program automatické testování aplikace.
5.3.3 Konfigurace – WebScarab Pro správné fungování programu WebScarab je nutné nastavit u webového prohlížeče (v této práci je využit Mozilla Firefox) proxy server, aby bylo možné zachytávat požadavky přicházejí z webové aplikace. Postup je následující: V záložce Nástroje / Možnosti / Rozšířené / Nastavení připojení / se zaškrtne možnost Ruční konfigurace proxy serverů. Dále se doplní políčko HTTP proxy na hodnotu „localhost“ a Port na hodnotu „8008“.
32
5 Testování zabezpečení e-commerce aplikací
33
Obrázek 5-11: Konfigurace proxy serveru o Mozilla Firefox (zdroj: autor)
Nyní je program WebScarab schopen zachytit veškerou komunikaci, která přichází prostřednictvím webového prohlížeče.
33
6 Report z testování
34
6 Report z testování 6.1 OpenCart 6.1.1 Injection Zjištění:
Byla nalezena zranitelnost typu „SQL Injection“ na adrese: „/opencart/index.php?limit=1e309&route=product/special“. Po dosazení hodnoty „1e309“ za parametr „limit“ došlo k výpisu chybového hlášení i s SQL dotazem.
Příčina zranitelnosti:
Hodnota „1e309“ přesahuje datový typ double float, což je příčina chybového hlášení; parametr limit je jinak správně kontrolován, takže další útok není možný.
Důsledky zranitelnosti:
Došlo k zobrazení citlivých informací o souvisejících tabulkách v databázi.
Informace je možné využít k dalším útokům.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 3.75 = (3+0+0+9+7+1+1+9)/8)
Úroveň dopadu: Nízká (Formula: 1.875 = (2+0+0+9+1+1+2+0)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Důkladnější kontrola hodnot u parametru „limit“, aby byly přesahující hodnoty odfiltrovány.
Výstupy z programu WebScarab Hlavička v záložce „Manual Request“ pro odeslání požadavku typu GET.
34
6 Report z testování
35
Výpis z programu WebScarab 6-1: Hlavička SQL injection testu u aplikace OpenCart (zdroj: autor) GET http://192.168.0.102:80/opencart/index.php?limit=1e309&route=product/special HTTP/1.1 Referer: http://192.168.0.102:80/opencart Cookie: PHPSESSID=bkhfse8j0ssjpttgi44jfe2eg5; currency=USD; language=en Host: 192.168.0.102 Connection: Keep-alive Accept-Encoding: gzip,deflate User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, Chrome/28.0.1500.63 Safari/537.36 Accept: */*
like
Gecko)
Obrázek 6-1: Nalezena zranitelnost SQL Injection u aplikace OpenCart (zdroj: autor)
6.1.2 Broken Authentication and Session Management Zjištění:
Nalezena zranitelnost u autentizace – data jsou odesílaná v nešifrované podobě.
Zranitelnost se nachází u přihlašovacího formuláře, jak v zákaznické části, tak i v administrační.
Příčina zranitelnosti:
Odesílání dat v nešifrované podobě přes protokol HTTP.
Důsledky zranitelnosti:
Je možné zachytit údaje prostřednictvím specializovaných programů.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4 = (4+1+4+6+7+3+6+1)/8)
Úroveň dopadu: Nízká (Formula: 2.125 = (7+0+0+1+3+1+2+3)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Využívat zabezpečeného protokolu HTTPS.
35
6 Report z testování
36
Výstup z programu WebScarab
Obrázek 6-2: Zachycené heslo v nešifrované podobě u OpenCart (zdroj: autor)
Zjištění:
Nalezena autentizační zranitelnost – není omezen počet pokusů o přihlášení uživatele.
Zranitelnost se nachází u přihlašovacího formuláře, jak v zákaznické, tak i v administrační části.
Příčina zranitelnosti:
Uživatelé nejsou omezeni počtem pokusů o autentizaci.
Důsledky zranitelnosti:
Je možné využít specializované slovníkové programy určené k hádání hesel a prolomit tak autentizaci u účtů se slabým heslem.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 3.875 = (4+1+4+9+7+1+4+1)/8)
Úroveň dopadu: Nízká (Formula: 2.875 = (7+0+0+7+3+1+2+3)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Každého uživatele, který se snaží opakovaně přihlásit, lze identifikovat dle různých technik (Ip adresa, Session, cookies) a je možné mu zakázat na určitý čas přihlašování.
36
6 Report z testování
37
6.1.3 Cross-Site Scripting (XSS) Zjištění:
Nalezena zranitelnost na adrese „/opencart/index.php?route=account/wishlist/add“.
Odesláním POST dotazu a nastavením parametru „product_id“ na hodnotu „40%20onmouseover%3dprompt(934725)%20y%3d“ došlo k narušení HTML kódu.
Příčina zranitelnosti:
Nedostatečná kontrola parametru „product_id“.
Důsledky zranitelnosti:
Nejedná se o permanentní ovlivnění HTML kódu, ale jen informačního výstupu, který vidí pouze útočník.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 3.75 = (1+4+4+9+1+1+1+9)/8)
Úroveň dopadu: Nízká (Formula: 1.5 = (1+1+7+0+1+2+0)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Důslednější kontrola parametru „product_id“, aby byly nepovolené znaky odfiltrovány.
Výstup z programu WebScarab Hlavička v záložce „Manual Request“ pro odeslání požadavku typu POST. Výpis z programu WebScarab 6-2: Hlavička XSS útoku u produktu OpenCart (zdroj: autor) POST http://192.168.0.102:80//opencart/index.php?route=account/wishlist/add HTTP/1.1 Content-length: 51 Content-Type: application/x-www-form-urlencoded Referer: http://192.168.0.102:80/opencart Cookie: PHPSESSID=bkhfse8j0ssjpttgi44jfe2eg5; currency=USD; language=en Host: 192.168.0.102 Connection: Keep-alive Accept-Encoding: gzip,deflate User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, Chrome/28.0.1500.63 Safari/537.36 Accept: */*
like
Gecko)
product_id=40%20onmouseover%3dprompt(934725)%20y%3d
¨
Obrázek 6-3: Úspěšná injekce javascriptového dialogového okna do odkazu u aplikace OpenCart (zdroj: autor).
37
6 Report z testování
38
Obrázek 6-4: Dialogové okno PROMPT po najetí na odkaz (zdroj: autor).
6.1.4 Insecure Direct Object References Zjištění:
Nenalezena žádná zranitelnost.
6.1.5 Security Misconfiguration Zjištění:
Nenalezena žádná zranitelnost.
6.1.6 Sensitive Data Exposure Zjištění:
Nenalezena žádná zranitelnost.
6.1.7 Missing Function Level Access Control Zjištění:
Nenalezena žádná zranitelnost.
6.1.8 Cross-Site Request Forgery (CSRF) Zjištění:
Nalezena zranitelnost typu CSFR v administrační části aplikace.
Příčina zranitelnosti:
Chybí standardní zabezpečení proti CSFR útokům.
Důsledky zranitelnosti:
Útočník může využít toho, že je administrátor přihlášen do systému a poslat mu například email, ve kterém bude odkaz, a pokud na něj administrátor klikne, může dojít k přihlášení do systému a změně klíčových údajů (např. email u Paypal plateb), bez toho aniž by si toho byl administrátor vědom.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4.5 = (1+9+0+9+3+1+4+9)/8) 38
6 Report z testování
39
Úroveň dopadu: Střední (Formula: 4.5 = (7+5+0+7+7+5+5+0)/8)
Celková závažnost rizika: Střední
Návrh na zlepšení: Existuje mnoho technik, jak předejít těmto útokům. Jedním je tzv. „Synchronizer Token Pattern“ – jde o princip generování náhodných Challenge tokenů, které jsou spojeny s aktuální relaci uživatele. Tato výzva je pak vložena formuláře HTML a odkazy související s citlivými operacemi na straně serveru. Pokud si uživatel přeje uplatnit tyto citlivé operace, požadavek HTTP by měl do této výzvy zahrnout token. Je pak povinností serverové aplikace ověřit existenci a správnost tohoto tokenu.
6.1.9 Using Known Vulnerable Components Zjištění:
Nenalezena žádná zranitelnost.
6.1.10
Unvalidated Redirects and Forwards
Zjištění:
Nenalezena žádná zranitelnost.
6.2 osCommerce 6.2.1 Injection Zjištění:
Byla nalezena zranitelnost typu SQL Injection „oscommerce/admin/geo_zones.php?zpage=1&zID=1&action=list“.
Po vložení vhodné injekce za parametr „zID“ je možné upravit SQL dotaz, a získat tak přístup k citlivým údajům.
Byla zvolena hodnota „1 group by 1 union select 1,2,3,4,5,6,7,concat(user_name,0x3a,user_password) from administrators --“, a tím byly získány údaje o administrátorských účtech.
na
adrese:
Příčina zranitelnosti:
Parametr „zID“ nepodléhá žádné kontrole.
Důsledky zranitelnosti:
Vhodnou manipulací SQL dotazu se podařilo získat informace o uživatelích administračního systému.
Získané informace je možné využít k dalším neoprávněným praktikám. 39
6 Report z testování
40
Návrh na zlepšení:
Je nutné kontrolovat všechny parametry, dokonce i v administračním systému, neboť ne každý uživatel má stejná práva, a také může mít i nekalé úmysly.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4.5 = (1+4+4+6+7+5+6+3)/8)
Úroveň dopadu: Vysoká (Formula: 6.5 = (9+9+7+1+7+9+5+5)/8)
Celková závažnost rizika: Vysoká.
Výstupy z programu WebScarab
Hlavička v záložce „Manual Request“ pro odeslání požadavku typu GET. Výpis z programu WebScarab 6-3: Hlavička XSS úroku u produktu osCommerce (zdroj: autor). GET http://192.168.0.102:80/oscommerce/admin/geo_zones.php?zpage=1&zID=1+group+by+1+union+select+1%2C 2%2C3%2C4%2C5%2C6%2C7%2Cconcat%28user_name%2C0x3a%2Cuser_password%29+from+administrators +--&action=list HTTP/1.1 Host: 192.168.0.102 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: cs,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.0.102/oscommerce/admin/geo_zones.php Connection: keep-alive Cookie: osCAdminID=tptrhfpf8akglf5j11tkgusfk6
Obrázek 6-5: Úspěšná SQL inejkce u osCommerce (zdroj: autor).
6.2.2 Broken Authentication and Session Management Zjištění:
Nalezena potenciální autentizační zranitelnost – data jsou odesílaná v nešifrované podobě.
Zranitelnost se nachází u přihlašovacího formuláře, jak v zákaznické části, tak i v administrační.
Příčina zranitelnosti:
Odesílání dat v nešifrované podobě přes protokol HTTP.
Důsledky zranitelnosti:
Je možné zachytit údaje prostřednictvím specializovaných programů. 40
6 Report z testování
41
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4 = (4+1+4+6+7+3+6+1)/8)
Úroveň dopadu: Nízká (Formula: 2.125 = (7+0+0+1+3+1+2+3)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Využívat zabezpečený protokol HTTPS.
Výstup z programu WebScarab
Obrázek 6-6: Zachyceno nešifrované heslo u osCommerce (zdroj: autor)
6.2.3 Cross-Site Scripting (XSS) Zjištění:
Nenalezena žádná zranitelnost.
6.2.4 Insecure Direct Object References Zjištění:
Nenalezena žádná zranitelnost.
6.2.5 Security Misconfiguration Zjištění:
Nenalezena žádná zranitelnost.
6.2.6 Sensitive Data Exposure Zjištění:
Nenalezena žádná zranitelnost.
6.2.7 Missing Function Level Access Control Zjištění: 41
6 Report z testování
42
Nenalezena žádná zranitelnost.
6.2.8 Cross-Site Request Forgery (CSRF) Zjištění:
Nalezena zranitelnost typu CSFR v administrační části aplikace.
Příčina zranitelnosti:
Chybí standardní zabezpečení proti CSFR útokům.
Důsledky zranitelnosti:
Útočník může využít toho, že je administrátor přihlášen do systému a poslat mu například email, ve kterém bude odkaz, a pokud na něj administrátor klikne, může dojít k přihlášení do systému a změně klíčových údajů (např. email u Paypal plateb), bez toho aniž by si toho byl administrátor vědom.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4.5 = (1+9+0+9+3+1+4+9)/8)
Úroveň dopadu: Střední (Formula: 4.5 = (7+5+0+7+7+5+5+0)/8)
Celková závažnost rizika: Střední.
Návrh na zlepšení: Existuje mnoho technik, jak předejít těmto útokům. Jedním je tzv. „Synchronizer Token Pattern“ – jde o princip generování náhodných „Challenge“ tokenů, které jsou spojeny s aktuální relaci uživatele. Tato výzva je pak vložena formuláře HTML a odkazy související s citlivými operacemi na straně serveru. Pokud si uživatel přeje uplatnit tyto citlivé operace, požadavek HTTP by měl do této výzvy zahrnout token. Je pak povinností serverové aplikace ověřit existenci a správnost tohoto tokenu.
6.2.9 Using Known Vulnerable Components Zjištění:
Nenalezena žádná zranitelnost.
6.2.10
Unvalidated Redirects and Forwards
Zjištění:
Nenalezena žádná zranitelnost.
42
6 Report z testování
43
6.3 Magento 6.3.1 Injection Zjištění:
Nenalezena žádná zranitelnost.
6.3.2 Broken Authentication and Session Management Zjištění:
Nalezena potenciální autentizační zranitelnost – data jsou odesílaná v nešifrované podobě.
Zranitelnost se nachází u přihlašovacího formuláře, jak v zákaznické části, tak i v administrační.
Příčina zranitelnosti:
Odesílání dat v nešifrované podobě přes protokol HTTP.
Důsledky zranitelnosti:
Je možné zachytit údaje prostřednictvím specializovaných programů.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4 = (4+1+4+6+7+3+6+1)/8)
Úroveň dopadu: Nízká (Formula: 2.125 = (7+0+0+1+3+1+2+3)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Používat zabezpečný protokol HTTPS.
Výstup z programu WebScarab
Obrázek 6-7: Zachycené nešifrované heslo u Magenta (zdroj: autor)
Zjištění:
Nalezena potenciální zranitelnost u autentizace – není omezen počet pokusů o přihlášení uživatele. 43
6 Report z testování
44
Zranitelnost se nachází u přihlašovacího formuláře, jak v zákaznické, tak i v administrační části.
Příčina zranitelnosti:
Uživatelé nejsou omezeni počtem pokusů o autentizaci.
Důsledky zranitelnosti:
Je možné využít specializované programy určené k hádání hesel, a prolomit tak autentizaci u účtů se slabým heslem.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 3.875 = (4+1+4+9+7+1+4+1)/8)
Úroveň dopadu: Nízká (Formula: 2.875 = (7+0+0+7+3+1+2+3)/8)
Celková závažnost rizika: Nízká.
Návrh na zlepšení:
Každého uživatele, který se snaží opakovaně přihlásit, lze identifikovat dle různých technik (Ip adresa, Session, cookies) a je možné mu zakázat na určitý čas přihlašování.
6.3.3 Cross-Site Scripting (XSS) Zjištění:
Nenalezena žádná zranitelnost.
6.3.4 Insecure Direct Object References Zjištění:
Nenalezena žádná zranitelnost.
6.3.5 Security Misconfiguration Zjištění:
Nenalezena žádná zranitelnost.
6.3.6 Sensitive Data Exposure Zjištění:
Nenalezena žádná zranitelnost.
6.3.7 Missing Function Level Access Control Zjištění:
Nenalezena žádná zranitelnost. 44
6 Report z testování
45
6.3.8 Cross-Site Request Forgery (CSRF) Zjištění:
Nalezena zranitelnost typu CSFR v administrační části aplikace.
Příčina zranitelnosti:
Chybí standardní zabezpečení proti CSFR útokům.
Důsledky zranitelnosti:
Útočník může využít toho, že je administrátor přihlášen do systému a poslat mu například email, ve kterém bude odkaz, a pokud na něj administrátor klikne, může dojít k přihlášení do systému a změně klíčových údajů (např. email u Paypal plateb), bez toho aniž by si toho byl administrátor vědom.
Závažnost rizika:
Pravděpodobnostní úroveň: Střední (Formula: 4.5 = (1+9+0+9+3+1+4+9)/8)
Úroveň dopadu: Střední (Formula: 4.5 = (7+5+0+7+7+5+5+0)/8)
Celková závažnost rizika: Střední.
Návrh na zlepšení: Existuje mnoho technik jak předejít těmto útokům. Jedním je tzv. „Synchronizer Token Pattern“ – jde o princip generování náhodných „Challenge“ tokenů, které jsou spojeny s aktuální relaci uživatele. Tato výzva je pak vložena formuláře HTML a odkazy související s citlivými operacemi na straně serveru. Pokud si uživatel přeje uplatnit tyto citlivé operace, požadavek HTTP by měl do této výzvy zahrnout token. Je pak povinností serverové aplikace ověřit existenci a správnost tohoto tokenu.
6.3.9 Using Known Vulnerable Components Zjištění:
Nenalezena žádná zranitelnost.
6.3.10
Unvalidated Redirects and Forwards
Zjištění:
Nenalezena žádná zranitelnost.
45
7 Shrnutí výsledků z reportu
46
7 Shrnutí výsledků z reportu Tabulka 7-1: Shrnutí výsledků z reportu (zdroj: autor)
Verze aplikace: Délka trvání testu: Zjištěné zranitelnosti Injection:
Broken Authentication and Session Management:
Cross-Site Scripting (XSS): Insecure Direct Object References: Security Misconfiguration: Sensitive Data Exposure: Missing Function Level Access Control: Cross-Site Request Forgery (CSRF): Using Known Vulnerable Components: Unvalidated Redirects and Forwards:
Vybrané e-commerce produkty OpenCart osCommerce 1.5.6.4 2.3.3.4 2 hodiny a 48 minut 6 hodin a 6 minut Typ: SQL Injection. Umístění: Zákaznická část. Závažnost rizika: Nízká.
Typ: SQL Injection. Umístění: Administrátorská část. Závažnost rizika: Vysoká. Typ: Nešifrovaná autentizace. Umístění: Zákaznická i administrátorská část. Závažnost rizika: Nízká.
Typ: Nešifrovaná autentizace. Umístění: Zákaznická i administrátorská část. Závažnost rizika: Nízká. Typ: Neomezen počet pokusů o autentizaci. Umístění: Zákaznická i administrátorská část. Závažnost rizika: Nízká. Typ: Cross-Site Scripting Umístění: Zákaznická část. Závažnost rizika: Nízká. Nenalezena zranitelnost.
Magento 1.8.1.0 14 hodin a 39 minut Nenalezena zranitelnost.
Typ: Nešifrovaná autentizace. Umístění: Administrátorská část. Závažnost rizika: Nízká.
Nenalezena zranitelnost.
Typ: Neomezen počet pokusů o autentizaci. Umístění: Administrátorská část. Závažnost rizika: Nízká. Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Nenalezena zranitelnost.
Typ: CSFR. Umístění: Administrátorská část. Závažnost rizika: Střední. Nenalezena zranitelnost
Typ: CSFR. Umístění: Administrátorská část. Závažnost rizika: Střední. Nenalezena zranitelnost
Typ: CSFR. Umístění: Administrátorská část. Závažnost rizika: Střední. Nenalezena zranitelnost
Nenalezena zranitelnost
Nenalezena zranitelnost
Nenalezena zranitelnost
46
8 Závěr
47
8 Závěr Tato bakalářská práce s názvem Testování zabezpečení e-commerce aplikací objasnila ve své první, teoretické části problematiku bezpečnosti e-commerce aplikací. Zaměřila se nejprve na vymezení základních termínů spojených s otázkou zabezpečení webových aplikací. Dále se orientovala na metody penetračních testů a jejich význam pro provozovatele webových stránek. V poslední kapitole teoretické části byl představen „Otevřený projekt bezpečnosti webových aplikací “ neboli OWASP, a také jeho dílčí dokumentační projekt „OWASP Top Ten“, který objasnil deset nejkritičtějších bezpečnostních rizik u webových aplikací. Ve druhé, praktické části byly nejprve představeny vybrané e-commerce produkty OpenCart, osCommerce a Magento. Dále byla popsána metodika testování, která se vymezila na použití automatizovaných testů a následně i manuálních testů. Pro účely automatizovaných testů byl vybrán nástroj „Acunetix Web Vulnerability Scanner“; manuální testy byly provedeny WebScarabem, aplikací z vývojařských projektů OWASP. Výsledky z testů byly následně zaneseny do reportu v další kapitole. Nejlépe z testovaných produktů dopadla aplikace Magento, která obsahovala pouze běžné zranitelnosti, jež byly nalezeny i u ostatních testovaných elektronických obchodů. Naopak nejhůře, s ohledem na úroveň rizika exploitace, dopadl produkt osCommerce, který obsahoval závažnou bezpečnostní mezeru v administrační části. Zde byla provedena SQL injekce a vlivem neošetřeného parametru bylo možné získat z databáze citlivé údaje o uživatelích systému. Nedostatky v zabezpečení byly nalezeny i u aplikace OpenCart, nicméně nejednalo se o kritické bezpečnostní mezery, které by představovaly zásadní bezpečnostní riziko. Přínos této bakalářské práce vyplývá z nalezených zranitelností u zvolených e-commerce produktů, které doposud nebyly objeveny. Proto budou výsledky z reportu odeslány vývojařům i s propracovanými návrhy na zlepšení, aby mohly být chybné části opraveny. Výsledky plynoucí z této bakalářské práce mohou dále posloužit začínajícím podnikatelům ve volbě vhodného elektronického obchodu. Pro vývojaře webových aplikací budou užitečné informace o metodách testování, které mohou využít ke zdokonalení svých projektů.
47
9 Terminologický slovník
48
9 Terminologický slovník Tabulka 9-1: Terminologický slovník (zdroj: autor)
Termín
Zkratka
Význam [zdroj]
Aplikační software Autentizace Autorizace Bezpečnost
ASW
Business To Business Business To Consumer Business To Government Customer To Consumer Elektronické obchodování (Angl. ecommerce) Hypertext Transfer Protocol Hypertext Transfer Protocol Secure M– obchodování (Angl. Mcommerce) Malware
B2B
Aplikační software je program nebo skupina programů určených pro koncové uživatele a navržených pro konkrétní využití. [7] Autentizace je proces ověřující identitu uživatele určitého systému. [18] Jde o proces přidělení práv přihlášenému uživateli. [18] V souvislosti s informační bezpečností se jedná o „multidisciplinární obor, usilující o komplexní pohled na problematiku ochrany informací během jejich vzniku, zpracování, ukládání, přenosu a likvidace. Je tak možné chápat odvětví, zabývající se snižováním rizik, vztahujících se k fenoménu informací a navrhující opatření, vztahující se k příslušným organizačním, řídícím, metodickým, technickým, právním a dalším otázkám, které s touto problematikou souvisí. Někdy je možné se setkávat se s podstatně omezenějším chápáním daného pojmu, jako úzké disciplíny, týkající se výhradně bezpečnosti informačních a komunikačních technologií“. [11] „Business To Business“ značí směr podnikatelských aktivit od firmy k firmě. [36] „Business To Consumer“ značí směr podnikatelských aktivit od firmy k zákazníkovi. [36] „Business To Government “ značí směr podnikatelských aktivit od firmy ke státu. [38] „Customer To Consumer“ značí směr podnikatelských aktivit od zákazníka k zákazníkovi. [38] E-commerce lze definovat jako „systém sdílení obchodních informací, udržování obchodních vztahů a řízení obchodních transakcí pomocí prostředků informačních, telekomunikačních a síťových technologií, primárně s využitím Internetu.“ [9] Internetový protokol sloužící k výměně hypertextových dokumentů HTML. [autor]
B2C B2G C2C
HTTP HTTPS
Open source
Open Web Application Security Project Penetrační testování Phishing
OWASP
Zabezpečený internetový protokol sloužící k výměně hypertextových dokumentů HTML. [autor] „M-obchodování neboli mobilní obchodování je forma elektronického obchodování, která se zabývá výběrem poplatků za za licence, reklamu, nebo prodej předplatného k obsahu či službám nabízeným na mobilních zařízeních.“ [37] Jedná se o škodlivý software (malicious software), obyčejně známý jako malware, jehož účelem je poškodit počitačový systém. [40] Obecně platí, že pojem open source odkazuje na nějaký program, jehož zdrojový kód je k dispozici pro použití nebo úpravu, jak uživatelé nebo vývojáři uznají za vhodné. Open source software je obvykle vyvinut na základě veřejné spolupráce a je volně k dispozici. [8] „Open Web Application Security Project“ (OWASP) je nezisková organizace a komunita, která se zabývá zlepšováním bezpečnosti webových aplikací. [18] Penetrační test je legální metoda hodnocení bezpečnosti počítačového systému nebo sítě tím, že se simuluje útok na danou síť či systém. [17] Phishing je podvodný akt sloužící k získávání soukromých a citlivých informací, jako jsou čísla kreditních karet, číslo občanské karty či uživatelská jména nebo hesla. Využívá se komplexních sociálně inženýrských techník ve spojení s odbornými znalostmi. [39]
48
9 Terminologický slovník
Relace (Angl. Session) Structured Query Language Tester Token
Představuje stále síťové spojení mezi klientem a serverem. [autor] SQL
Dotazovací jazyk pro databáze. [autor] Oosoba provádějící testy. [autor] Session ID váže přihlašovací údaje uživatele (v podobě uživatelské relace) k uživatelské HTTP a dále kontrole přístupu uplatňované webovou aplikací. [13]
Webová aplikace World Wide Web
49
WWW
Webová aplikace je typ aplikačního softwaru (ASW), jenž využívá technologií webu a (webového) prohlížeče k dosažení jednoho nebo více úkolů skrze síť WWW, typicky prostřednictvím webového prohlížeče. [6] Zkratka WWW značí „World Wide Web“ neboli světovou komunikační síť. „Jedná se o síť vzájemně propojených hypertextových dokumentů přístupných na Internetu. Přes internetový prohlížeč mohou uživatelé vidět webové stránky obsahující textový obsah, obrázky, videa a další multimediální obsah“. [5]
49
10 Seznam Literatury
50
10 Seznam Literatury 1.
Internet Growth Statistics. Internet World Stats [online]. 2014 [cit. 2014-05-02]. Dostupné z: http:// www.internetworldstats.com/emarketing.htm
2.
eMarketer. Global B2C Ecommerce Sales to Hit $1.5 Trillion This Year Driven by Growth in Emerging Markets [online]. 3. 2. 2014 [cit. 2014-05-01]. Dostupné z: http://www.emarketer.com/ Article/Global-B2C-Ecommerce-Sales-Hit-15-Trillion-This-Year-Driven-by-Growth-EmergingMarkets/1010575 /
3.
GROSSMAN , J. a G. GUMBS. WhiteHat security website statistics report. Santa Clara: 2013. WhiteHat Security [cit. 2014-05-01]. Dostupné z: https://www.whitehatsec.com/assets/presentations/ 13PPT/PPTstats0513.pdf
4.
Web Appers. 15 Best Free Open Source Ecommerce Platforms [online]. 9. 7. 2012 [cit. 2014-05-01]. Dostupné z: http://www.webappers.com/2010/07/09/15-best-free-open-source-ecommerce-platforms/
5.
IT Slovník. WWW [online]. 2008 - 2012 [cit. 2014-05-01]. Dostupné z: http://it-slovnik.cz/pojem/www
6.
App storm. What Is a Web App? Here’s Our Definition [online]. 30. 1. 2011 [cit. 2014-05-01]. Dostupné z: http://web.appstorm.net/general/opinion/what-is-a-web-app-heres-our-definition/
7.
Technopedia. Application Software [online]. 2010 - 2014 [cit. 2014-05-01]. Dostupné z: http:// www.techopedia.com/definition/4224/application-software
8.
SearchEnterpriseLinux. open source [online]. 2009 [cit. 2014-04-28]. Dostupné z: http:// searchenterpriselinux.techtarget.com/definition/open-source
9.
HRON, J. E - commerce. Praha: Česká zemědělská univerzita v Praze. , Provozně ekonomická fakulta, Katedra řízení, 2014 [cit. 2014-05-01]. Dostupné z: http://vipor.czu.cz/ download_file.php?path=_data_app_downloads/cz/&filename=eCommerce.pdf
10. MV ČR. Bezpečnost [online]. 2014 [cit. 2014-05-02]. Dostupné z: http://www.mvcr.cz/clanek/pojmybezpecnost.aspx 11. POŽÁR, J. Informační bezpečnost. Plzeň: Vydavatelství a nakladatelství Aleš Čeněk,s.r.o, 2005, 309 s.. ISBN 80-86898-38-5. 12. MATOUŠ, J. Autentizace uživatelů webových služeb. Brno: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ, Fakulta elektrotechniky a komunikačních technologií, Ústav Telekomunikací, 2013. Bakalářská práce [cit. 2014-05-01]. Dostupné z: https://dspace.vutbr.cz/bitstream/handle/11012/26582/ bakalarska_prace_MatousPlasil.pdf?sequence=1 13. TechTerms. Token [online]. 2014 [cit. 2014-05-01]. Dostupné z: http://www.techterms.com/definition/ token 14. Viry. Šifrování – ochrana dat před zloději [online]. 24. 9. 2012 [cit. 2014-05-01]. Dostupné z: http:// www.viry.cz/sifrovani-ochrana-dat-pred-zlodeji/ 15. KOSEK, J. Bezpečnost webových aplikací. 2013 [cit. 2014-05-03]. Dostupné z: http://www.kosek.cz/ vyuka/4iz228/prednasky/bezpecnost.pdf 16. OWASP. Testing: Introduction and objectives [online]. 4. 3. 2014 [cit. 2014-05-01]. Dostupné z: https://www.owasp.org/index.php/Testing:_Introduction_and_objectives 17. SELECKÝ, M. Penetrační testy a exploitace. Brno: Computer press, 2012, 304 s.. ISBN 978-80-2513752-9.
50
10 Seznam Literatury
51
18. ZEMEK, L. Bezpečnost webových aplikací. Zlín: Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky, 2012. Bakalářská práce [cit. 2015-04-25]. Dostupné z: https://dspace.k.utb.cz/bitstream/ handle/10563/22757/zemek_2012_bp.pdf?sequence=1 19. WILLIAMS, J. a D. WICHERS. OWASP Top 10 - 2013 rcl: The Ten Most Critical Web Application. 2013 [cit. 2014-05-02]. Dostupné z: http://owasptop10.googlecode.com/files/ OWASP%20Top%2010%20-%202013%20-%20RC1.pdf 20. OWASP. Category:Threat Agent [online]. 15. 5. 2012 [cit. 2014-04-15]. Dostupné z: https:// www.owasp.org/index.php/Category:Threat_Agent 21. THE OWASP FOUNDATION. Input Validation Vulnerabilities, Encoded Attack Vectors and Mitigations. The OWASP Foundation, 2008 [cit. 2014-05-01]. Dostupné z: https://www.owasp.org/ images/6/6c/Encoded_Attacks_Threats_Countermeasures_9_30_08.pdf 22. OWASP. Category:Vulnerability [online]. 5. 5. 2014 [cit. 2014-05-07]. Dostupné z: https:// www.owasp.org/index.php/Category:Vulnerability 23. OWASP. Category:Technical Impact [online]. 15. 2. 2008 [cit. 2014-04-25]. Dostupné z: https:// www.owasp.org/index.php/Category:Technical_Impact 24. OWASP. Category:Business Impact [online]. 15. 2. 2008 [cit. 2014-04-21]. Dostupné z: https:// www.owasp.org/index.php/Category:Business_Impact 25. OWASP. Injection Flaws [online]. 29. 1. 2010 [cit. 2014-04-25]. Dostupné z: https://www.owasp.org/ index.php/Injection_Flaws 26. OWASP. Top 10 2013-Top 10 [online]. 2013 [cit. 2014-05-01]. Dostupné z: https://www.owasp.org/ index.php/Top_10_2013-Top_10 27. OWASP. Broken Authentication and Session Management [online]. 22. 4. 2010 [cit. 2014-05-01]. Dostupné z: https://www.owasp.org/index.php/Broken_Authentication_and_Session_Management 28. Skener Webu. Co zjišťujeme [online]. 2013 [cit. 2014-04-21]. Dostupné z: https://www.skenerwebu.cz/ co_zjistujeme 29. ZÁKON Č. 101/2000 SB. O ochraně osobních údajů. 1. května 2014. 30. OWASP. OWASP Risk Rating Methodology [online]. 2. 5. 2014 [cit. 2014-05-06]. Dostupné z: https:// www.owasp.org/index.php/How_to_value_the_real_risk_AoC#Step_1:_Identifying_a_Risk 31. OpenCart. OpenCart [online]. 13. 10. 2013 [cit. 2014-05-01]. Dostupné z: http://docs.opencart.com/ display/opencart/Introduction 32. osCommerce. Introduction [online]. 2014 [cit. 2014-04-22]. Dostupné z: http:// library.oscommerce.com/Online&en&oscom_2_3&about&introduction 33. Magento. Features [online]. 2014 [cit. 2014-05-01]. Dostupné z: http://go.magento.com/tour/ 34. OWASP. Appendix A: Testing Tools [online]. 2. 5. 2014 [cit. 2014-05-05]. Dostupné z: https:// www.owasp.org/index.php/Appendix_A:_Testing_Tools 35. Acunetix. Why Choose Acunetix? [online]. 2014 [cit. 2014-05-07]. Dostupné z: http:// www.acunetix.com/why-choose-acunetix/ 36. E-komerce. B2B a B2C - tak trochu zmatené pojmy [online]. 2. 11. 2000 [cit. 2014-05-01]. Dostupné z: http://www.e-komerce.cz/ec/ec.nsf/0/395a6bf3791a956fc125698700631216 37. Esemeska. M-commerce [online]. 2008 - 2014 [cit. 2014-05-02]. Dostupné z: http://www.esemeska.cz/ m-commerce/
51
10 Seznam Literatury
52
38. MladyPodnikatel. B2B, B2C, B2G a další zapeklité značky, které neznačí nic, ale vlastně všechno… [online]. 17. 2. 2012 [cit. 2014-04-29]. Dostupné z: http://mladypodnikatel.cz/b2b-b2c-b2g-c2b-b2ab2e-b2r-c2c-c2g-g2b-g2c-g2g-t950 39. Technopedia. Phishing [online]. 2010 - 2014 [cit. 2014-05-01]. Dostupné z: http:// www.techopedia.com/definition/4049/phishing 40. Techopedia. Malicious Software (Malware) [online]. 2010 [cit. 2014-05-04]. Dostupné z: http:// www.techopedia.com/definition/4015/malicious-software-malware 41. Techopedia. Patch [online]. 2010 [cit. 2014-05-02]. Dostupné z: http://www.techopedia.com/ definition/24537/patch 42. ZEBU Webdesign. E-shop Magento [online]. [cit. 2014-05-01]. Dostupné z: http://www.zebu.cz/ produkty/e-shop-magento 43. TREFIL, P. Útoky na informační systémy vedené hrubou silou. Zlín: Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky, 2008. Bakalářská práce [cit. 20014-05-01]. Dostupné z: http:// dspace.k.utb.cz/bitstream/handle/10563/7034/trefil_2008_bp.pdf?sequence=1 44. SearchSecurity. fuzz testing (fuzzing) [online]. 2010 [cit. 2014-04-20]. Dostupné z: http:// searchsecurity.techtarget.com/definition/fuzz-testing 45. Acunetix. DOM-based Cross-Site Scripting (XSS) Explained [online]. 14. 8. 2013 [cit. 2014-05-01]. Dostupné z: http://www.acunetix.com/blog/web-security-zone/articles/dom-xss-explained/ 46. TechTerms. DBMS [online]. 2014 [cit. 2014-05-01]. Dostupné z: http://www.techterms.com/definition/ dbms 47. eMarketer. Ecommerce Sales Topped $1 Trillion for First Time in 2012 [online]. 5. 2. 2013 [cit. 201405-01]. Dostupné z: http://www.emarketer.com/Article/Ecommerce-Sales-Topped-1-Trillion-FirstTime-2012/1009649 48. Root. Sexy proxy chrobák WebScarab analyzuje aplikace [online]. 15. 7. 2010 [cit. 2014-05-06]. Dostupné z: http://www.root.cz/clanky/sexy-proxy-chrobak-webscarab-analyzuje-aplikace/ 49. Acunetix. The Benefits of Acunetix WVS AcuSensor [online]. 2014 [cit. 2014-04-25]. Dostupné z: http:/ /www.acunetix.com/websitesecurity/rightwvs/ 50. Adaptic. URL [online]. 2005 - 2014 [cit. 2014-05-01]. Dostupné z: http://www.adaptic.cz/znalosti/ slovnicek/url/ 51. W3schools. XPath Introduction [online]. 2014 [cit. 2014-05-01]. Dostupné z: http:// www.w3schools.com/xpath/xpath_intro.asp 52. Technopedia. NoSQL [online]. 2014 [cit. 2014-05-01]. Dostupné z: http://www.techopedia.com/ definition/27689/nosql-database 53. OWASP. OWASP Top 10 [online]. 2014. 5. 2014 [cit. 2014-05-06]. Dostupné z: https:// www.owasp.org/index.php/Category:OWASP_Top_Ten_Project 54. OWASP. Session Management Cheat Sheet [online]. 29. 4. 2014 [cit. 2014-05-01]. Dostupné z: https:// www.owasp.org/index.php/Session_Management_Cheat_Sheet 55. Technopedia. Lightweight Directory Access Protocol (LDAP) [online]. 2014 [cit. 2014-05-01]. Dostupné z: http://www.techopedia.com/definition/2439/lightweight-directory-access-protocol-ldap 56. Techopedia. Software Framework [online]. 2010 [cit. 2014-05-02]. Dostupné z: http:// www.techopedia.com/definition/14384/software-framework
52
10 Seznam Literatury
53
57. HANZLÍKOVÁ, M. Testování bezpečnosti webových aplikací. Praha: Vysoká škola ekonomická v Praze, Fakulta informatiky a statistiky, Katedra informačních technologií, 2013. Bakalářská práce. 58. BUKOVSKÝ,. Testování bezpečnosti webových aplikací. Praha: Vysoká škola ekonomická v Praze, Fakulta informatiky a statistiky, Katedra informačních technologií, 2012. Bakalářská práce.
53
11 Seznam obrázků
54
11 Seznam obrázků Obrázek 4-1: Metodika hodnocení rizik OWASP (zdroj: (WILLIAMS et. al.‚ 2013)) .................................. 11 Obrázek 5-1: URL adresa skenované aplikace (zdroj: autor) .......................................................................... 29 Obrázek 5-2: Nastavení módu pro skenovanou aplikaci (zdroj: autor) ........................................................... 30 Obrázek 5-3: Nastavení v záložce DeepScan (zdroj: autor) ............................................................................ 30 Obrázek 5-4: Nastavení heuristického skenovacího módu (zdroj: autor)........................................................ 30 Obrázek 5-5: Nastavení v záložce Crawling options (zdroj: autor) ................................................................ 31 Obrázek 5-6: Nastavení v záložce HTTP options pro plynulejší průběh testu (zdroj: autor) .......................... 31 Obrázek 5-7: Automatická detekce technologií na pozadí použité aplikace (zdroj: autor) ............................. 31 Obrázek 5-8: Nastavení relace pro připojení do administračního systému (zdroj: autor) ............................... 32 Obrázek 5-9: Nastavení URL adresy administračního systému aplikace (zdroj: autor) .................................. 32 Obrázek 5-10: Přihlášení do administračního systému v testovacím programu Acunetix (zdroj: autor) ........ 32 Obrázek 5-11: Konfigurace proxy serveru o Mozilla Firefox (zdroj: autor) ................................................... 33 Obrázek 6-1: Nalezena zranitelnost SQL Injection u aplikace OpenCart (zdroj: autor) ................................. 35 Obrázek 6-2: Zachycené heslo v nešifrované podobě u OpenCart (zdroj: autor)............................................ 36 Obrázek 6-3: Úspěšná injekce javascriptového dialogového okna do odkazu u aplikace OpenCart (zdroj: autor). .............................................................................................................................................................. 37 Obrázek 6-4: Dialogové okno PROMPT po najetí na odkaz (zdroj: autor). ................................................... 38 Obrázek 6-5: Úspěšná SQL inejkce u osCommerce (zdroj: autor). ................................................................ 40 Obrázek 6-6: Zachyceno nešifrované heslo u osCommerce (zdroj: autor) ..................................................... 41 Obrázek 6-7: Zachycené nešifrované heslo u Magenta (zdroj: autor) ............................................................. 43
54
12 Seznam tabulek
55
12 Seznam tabulek Tabulka 3-1: Finanční dopady na nezabezpečené systémy (zdroj: [17])........................................................... 6 Tabulka 4-1: Úrovně přavděpodobnosti a dopadu (zdroj: [30]) ..................................................................... 21 Tabulka 4-2: Hodnocení celkové úrovně závažnosti rizik (zdroj: [30]) .......................................................... 21 Tabulka 4-3: Faktory hrozících agentů (zdroj: [19]) ....................................................................................... 22 Tabulka 4-4: Faktory zranitelnosti (zdroj: [19]).............................................................................................. 22 Tabulka 4-5: Faktory technických dopadů (zdroj: [19]) ................................................................................. 23 Tabulka 4-6: Faktory dopadů na podnikatelské aktivity (zdroj: [19]) ............................................................. 23 Tabulka 5-1: Základní charakteristika OpenCart (zdroj: autor) ...................................................................... 25 Tabulka 5-2: Základní charakteristika osCommerce (zdroj: autor) ................................................................. 26 Tabulka 5-3: Základní charakteristika Magenta (zdroj: autor) ........................................................................ 27 Tabulka 5-4: Základní přehled o konfiguraci systému (zdroj: autor) .............................................................. 29 Tabulka 7-1: Shrnutí výsledků z reportu (zdroj: autor) ................................................................................... 46 Tabulka 9-1: Terminologický slovník (zdroj: autor) ....................................................................................... 48
55
13 Seznam výstupů z programu WebScarab
56
13 Seznam výstupů z programu WebScarab Výpis z programu WebScarab 6-1: Hlavička SQL injection testu u aplikace OpenCart (zdroj: autor) .......... 35 Výpis z programu WebScarab 6-2: Hlavička XSS útoku u produktu OpenCart (zdroj: autor) ....................... 37 Výpis z programu WebScarab 6-3: Hlavička XSS úroku u produktu osCommerce (zdroj: autor). ................ 40
56