Testování zabezpečení e-commerce aplikací



Podobné dokumenty
účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Zadávací dokumentace

Koncepce rozvoje Polytematického strukturovaného hesláře (PSH)

Praktické úlohy- zaměření specializace

ORGANIZAČNÍ ŘÁD ŠKOLY

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

Pravidla. používání Národního elektronického nástroje při realizaci zadávacích postupů prostřednictvím národního elektronického nástroje

VSEOBECNÉ SMLUVNÍ PODMÍNKY O POSKYTOVÁNÍ SLUŽEB WEBHOSTINGU, ELEKTRONICKÉ POŠTY, SERVERHOSTINGU A DALŠÍCH SLUŽEB ( VSP3 ) I.

METODICKÉ STANOVISKO

Pokyn D Sdělení Ministerstva financí k rozsahu dokumentace způsobu tvorby cen mezi spojenými osobami

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

MV ČR, Odbor egovernmentu. Webové stránky veřejné správy - minimalizace jejich zranitelnosti a podpora bezpečnostních prvků

S_5_Spisový a skartační řád

ZADÁVACÍ DOKUMENTACE K ZAKÁZCE ZADÁVANÉ DLE PRAVIDEL PRO VÝBĚR DODAVATELŮ OPPI A SUBSIDIÁRNĚ DLE ZÁKONA Č. 137/2006 SB

Server. Software serveru. Služby serveru

Zadávací dokumentace

Cvičení 1,2 Osnova studie strategie ICT

480/2004 Sb. o některých službách informační společnosti a o změně některých zákonů (zákon o některých službách informační společnosti)

Návrh. VYHLÁŠKA č...sb., ze dne ,

Sbírka zákonů ČR Předpis č. 473/2012 Sb.

Změny dispozic objektu observatoře ČHMÚ v Košeticích

KVALIFIKAČNÍ DOKUMENTACE k veřejné zakázce zadávané podle zákona č. 137/2006 Sb., o veřejných zakázkách, ve znění pozdějších předpisů

FOND VYSOČINY NÁZEV GP

Obec Nová Ves I. Výzva k podání nabídky

Zadávací dokumentace k veřejné zakázce zadané podle zákona č. 137/2006 Sb., o veřejných zakázkách, ve znění pozdějších předpisů

Silnice č. II/635 Mohelnice Litovel (kř. Červená Lhota)

Zajištění provozní funkčnosti platebních automatů a měničů bankovek pro Fakultní nemocnici Královské Vinohrady. Zadavatel

170/2010 Sb. VYHLÁŠKA. ze dne 21. května 2010

499/2004 Sb. ZÁKON ČÁST PRVNÍ ARCHIVNICTVÍ A SPISOVÁ SLUŽBA

OBEC HORNÍ MĚSTO Spisový řád

Orientační průvodce mateřstvím a rodičovstvím v zadávacích dokumentacích poskytovatele

Příspěvky poskytované zaměstnavatelům na zaměstnávání osob se zdravotním postižením Dle zákona č. 435/2004 Sb., o zaměstnanosti, v platném znění.

MĚSTO BENEŠOV. Rada města Benešov. Vnitřní předpis č. 16/2016. Směrnice k zadávání veřejných zakázek malého rozsahu. Čl. 1. Předmět úpravy a působnost

Standardy a definice pojmů bezpečnosti informací

Odůvodnění veřejné zakázky dle 156 zákona. Odůvodnění účelnosti veřejné zakázky dle 156 odst. 1 písm. a) zákona; 2 Vyhlášky 232/2012 Sb.

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

Obecná ustanovení Rozsah a obsah předmětu plnění

INFORMAČNÍ SYSTÉM O AREÁLU

verze Uživatel akceptuje návrh Smlouvy zaslané mu Poskytovatelem, anebo

Uživatelská dokumentace

KVALIFIKAČNÍ DOKUMENTACE k veřejné zakázce zadávané podle zákona č. 137/2006 Sb., o veřejných zakázkách, ve znění pozdějších předpisů

BEC - Podnikatelskozaměstnanecká. Mgr. Ivo Škrabal

POPIS REALIZACE POSKYTOVÁNÍ SOCIÁLNÍCH SLUŽEB Sociální rehabilitace Třinec

STANDARD 3. JEDNÁNÍ SE ZÁJEMCEM (ŽADATELEM) O SOCIÁLNÍ SLUŽBU

Všeobecné obchodní podmínky portálu iautodíly společnosti CZ-Eko s.r.o.

Kvalifika ní dokumentace k ve ejné zakázce malého rozsahu

DATOVÉ SCHRÁNKY. Seminární práce z předmětu Information and communication policy

Analýza stavu implementace a řízení projektů SA

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s. Fakulta ekonomických studií katedra řízení podniku. Předmět: ŘÍZENÍ LIDSKÝCH ZDROJŮ (B-RLZ)

1. kolo soutěže probíhá: od :00:00 hod do :59:59 hod

INFORMACE O ZPRACOVÁNÍ KLIENTSKÝCH ÚDAJŮ

Kritéria zelených veřejných zakázek v EU pro zdravotnětechnické armatury

Inovace výuky prostřednictvím šablon pro SŠ

Odůvodnění veřejné zakázky. Přemístění odbavení cestujících do nového terminálu Jana Kašpara výběr generálního dodavatele stavby

KVALIFIKAČNÍ DOKUMENTACE k veřejné zakázce zadávané podle zákona č. 137/2006 Sb., o veřejných zakázkách, v platném znění

ZPRÁVA O PRŮBĚHU ŘEŠENÍ PROJEKTU

Pardubický kraj Komenského náměstí 125, Pardubice SPŠE a VOŠ Pardubice-rekonstrukce elektroinstalace a pomocných slaboproudých sítí

HODNOTÍCÍ STANDARDY pro hodnocení kvality a bezpečí poskytovatele lůžkové zdravotní péče

V Černošicích dne Výzva k podání nabídky na veřejnou zakázku malého rozsahu s názvem: Nákup a pokládka koberců OŽÚ.

VÝZVA K PODÁNÍ NABÍDKY A PROKÁZÁNÍ SPLN NÍ KVALIFIKACE ZADÁVACÍ DOKUMENTACE ZADÁVACÍ DOKUMENTACE

MEZINÁRODNÍ AUDITORSKÝ STANDARD ISA 505 EXTERNÍ KONFIRMACE OBSAH

ZADÁVACÍ DOKUMENTACE

ICT plán ZŠ praktické Bochov na rok 2009

ZADÁVACÍ DOKUMENTACE. Pořízení a provoz konsolidované IT infrastruktury

Národní mnohostranné fórum České republiky pro elektronickou fakturaci

1. Informace o předmětu zakázky Stručný textový popis zakázky, technická specifikace

Objektově orientované databáze

ČÁST TŘETÍ ŘÍDICÍ A KONTROLNÍ SYSTÉM HLAVA I POŽADAVKY NA ŘÍDICÍ A KONTROLNÍ SYSTÉM

ZÁKON ze dne.2015, kterým se mění zákon č. 505/1990 Sb., o metrologii, ve znění pozdějších předpisů

Tři hlavní druhy finančního rozhodování podniku #

Studijní opora. Název předmětu: Organizační chování. Zpracoval: Mgr. Jaromír Ďuriš

VÝZVA K PODÁNÍ NABÍDEK DO VÝBĚROVÉHO ŘÍZENÍ ZADÁVACÍ PODMÍNKY

Obchodní podmínky pro poskytování služby O2 DOBÍJENÍ MOBILU Z PEVNÉ LINKY

Aplikace počítačů v provozu vozidel 9

KRAJSKÝ ÚŘAD PLZEŇSKÉHO KRAJE ODBOR SOCIÁLNÍCH VĚCÍ Škroupova 18, Plzeň

Kategorizace zákazníků

SAFETICA 7 DATA LOSS PREVENTION

KOMISE EVROPSKÝCH SPOLEČENSTVÍ

Všeobecné požadavky na systém analýzy nebezpe í a stanovení kritických kontrolních bod (HACCP) a podmínky pro jeho certifikaci

JAK VÍTĚZIT NAD RIZIKY. Aktivní management rizik nástroj řízení úspěšných firem

11. Působení stážistů a dobrovolníků

Obnova zámeckých alejí ve městě Vimperk

Kvalifikační dokumentace k veřejné zakázce dle zákona č. 137/2006 Sb., o veřejných zakázkách, ve znění pozdějších předpisů (dále jen zákon )

MĚSTO CHOTĚBOŘ. Trčků z Lípy 69, Chotěboř. Ing. Tomáš Škaryd, starosta města

VÝZVA K PODÁNÍ NABÍDKY

o užívání služby elektronického dodávání dokumentů a dalších služeb kooperačního systému e-pk uzavřená mezi

MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.

ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU

M. Balíková, R. Záhořík, NK ČR 1

2. Vymezení předmětu veřejné zakázky

Výzva zájemcům k podání nabídky a Zadávací dokumentace

Regenerace zahrady MŠ Neděliště

VŠEOBECNÉ PODMÍNKY PRO POSKYTOVÁNÍ VEŘEJNĚ DOSTUPNÝCH SLUŽEB ELEKTRONICKÝCH KOMUNIKACÍ PROSTŘEDNICTVÍM VEŘEJNÝCH TELEFONNÍCH AUTOMATŮ

Úklidové služby v objektu polikliniky

VÝKLADOVÁ PRAVIDLA K RÁMCOVÉMU PROGRAMU PRO PODPORU TECHNOLOGICKÝCH CENTER A CENTER STRATEGICKÝCH SLUŽEB

MATEMATIKA A BYZNYS. Finanční řízení firmy. Příjmení: Rajská Jméno: Ivana

Č.j. S056/2008/VZ-03935/2008/520/EM V Brně dne 7. března 2008

Obměna výdejové části stravovacího systému

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Transkript:

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 Základní pojmy... 3 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 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 4 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 Hodnocení rizik metodikou OWASP... 21 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 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 6 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 Unvalidated Redirects and Forwards... 42 6.3 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 B2C 1. 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 mcommerce 2 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] 2 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] 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 (B2B 3 ). Může být také realizován mezi obchodními společnosti a vládou (B2G 4 ), mezi individuálními spotřebiteli (C2C 5 ) 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] 4 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] 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 útoku 6, či útoku hrubou silou 7. 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 token 8. 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] 7 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] 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 Velká Británie Francie Itálie 1,33 mil 780 tis. 782 tis. 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.0 9, 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. Threat agent Obrázek 4-1: Metodika hodnocení rizik OWASP (zdroj: [19]) 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í DBMS 10 ) 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, LDAP 11, XPath 12 nebo u NoSQL 13 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 adresu 14 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 phishing 17, 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 malware 18 č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 0 až 3 Nízký 3 až 6 Střední 6 až 9 Vysoký Tabulka 4-2: Hodnocení celkové úrovně závažnosti rizik (zdroj: [30]) Celková úroveň závažnosti rizik Dopad 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