Testování webových aplikací Seznam.cz



Podobné dokumenty
Hitparáda webhackingu nestárnoucí hity. Roman Kümmel

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Cross- Site Request Forgery

Vývoj Internetových Aplikací

Nejčastější zranitelnosti webových aplikací. Pavel Bašta

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Cross-Site Scripting (XSS)

Vývoj internetových aplikací. 9. Útoky na internetové aplikace. a možná obrana proti nim

Content Security Policy

Jaku b Su ch ý 1

1 Webový server, instalace PHP a MySQL 13

Bezpečnost a bezpečné programování

1. Webový server, instalace PHP a MySQL 13

Formuláře. Internetové publikování. Formuláře - příklad

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Zabezpečení web aplikací

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Web Application Security aneb další. rozměr hackingu. XanthiX Soom session IV

PHP a Large Objecty v PostgreSQL

HTTP hlavičky pro bezpečnější web

PHP a bezpečnost. nejen veřejná

ÚROVEŇ BEZPEČNOSTI INTERNETOVÝCH APLIKACÍ V ČESKÉ REPUBLICE SECURITY OF INTERNET APPLICATIONS IN THE CZECH REPUBLIC. Petr Zelenka

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Pánem World Wide Webu! aneb povídání o chybě hloupé tak, až to bolí

Pavel Kaňkovský, DCIT Consulting. SOFTECON

Základy HTML, URL, HTTP, druhy skriptování, formuláře

AJAX. Dynamické změny obsahu stránek

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

2.přednáška. Informační bezpečnost: Systém řízení informační bezpečnosti (ISMS)

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

WWW technologie. HTTP protokol

Návrh a tvorba WWW stránek 1/8. Formuláře

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Formuláře. Internetové publikování

Dell SonicWALL. Security tips & tricks. Jan Ježek business communication s.r.o.

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Adware ENISA. Aktivní kybernetická obrana. Aktivum. Analýza hrozeb. Analýza počítačového viru. Antispamový filtr. Antivirový program

Efektivní řízení rizik

Cross Site Request Forgery

Pokročilé techniky XSS

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Webové Aplikace (6. přednáška)

Koláčky, sezení. Martin Klíma

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

DUM 14 téma: Interakce s uživatelem

Bezpečnost webových aplikací v ASP.NET

INFORMAČNÍ SYSTÉMY NA WEBU

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

SQL injection jak ji možná neznáte Roman Kümmel

Přehled kapitol 1. Základní kostra HTML dokumentu 2. Členění dokumentu 3. Kaskádové styly - CSS 4. Pozadí stránky 5.

APLIKACE PRO DETEKCI ZRANITELNOSTI TYPU CLICKJACKING

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Datové schránky ante portas

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Instalace a konfigurace web serveru. WA1 Martin Klíma

WiFi4EU Komponent sloužící k prosazování politiky. Prováděcí příručka verze 1.0

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Specifikace vzdělávacích aktivit projektu Další vzdělávání zaměstnanců Insia a.s.

Ochrana prezentací vytvořených v systému Visual PHP proti vnějším útokům

OWASP ZAP - příručka pro začínající uživatele

RESTful API TAMZ 1. Cvičení 11

Inovace bakalářského studijního oboru Aplikovaná chemie

Bakalářská práce. SID SQL Injection Attack Detector

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

Demilitarizovaná zóna (DMZ)

BI-AWD. Administrace Webového a Databázového serveru Úvod do problematiky HTTP serveru

10 Cross-Site Scripting v praxi

Bezpečnost webových aplikací blok A. Petr Závodský

Specifikace. Odevzdání do

Po stisku Next se nám objeví seznam dostupných tříd (naše zkompilovaná třída User.KBI), viz následující obrázek.

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Kapitola 1 První kroky v tvorbě miniaplikací 11

Příručka pro potvrzování zůstatku vydavatelům karetních platebních prostředků

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. v EEG/ERP portálu

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika. Analýza bezpečnosti webových stránek veřejné správy v kraji

Zabezpečení proti SQL injection

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

Testování bezpečnosti webových aplikací

Efektivní řízení rizik webových a portálových aplikací

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

SQL injection princip a ochrana

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Úvodem Seznámení s HTML Rozhraní Canvas... 47

language="javascript">... </script>.

APS Administrator.ST

Vývoj Internetových Aplikací

CREDITAS API A OTEVŘENÉ BANKOVNICTVÍ - MANUÁL

1. Úvod do webových aplikací

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

NSWI142 Webové aplikace Zkouškový test

BI-AWD. Administrace Webového a Databázového serveru Virtualizace HTTP serveru

Systém pro analýzu dat operátorů a obráběcích strojů ve strojírenské výrobě. Bc. Roman Sucháček

NESMRTELNÝ CROSS-SITE SCRIPTING

Transkript:

Testování webových aplikací Seznam.cz Roman Kümmel

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Cross-Site Request Forgery (CSRF) - Zneužití důvěry serveru v uživatele - Nic netušící uživatel odešle serveru GET/POST požadavek - Skript na serveru rozpozná uživatele podle cookie a požadavek pod identitou uživatele vykoná - Může jít také o XMLHttpRequesty (AJAX požadavky)

Cross-Site Request Forgery (CSRF) - Útočník odešle uživateli odkaz pro odeslání nebezpečného požadavku cílové aplikaci http://www.webmailcz/remail?email=utocnik@seznam.cz - Možnost zneužití HTML prvků načítajících externí obsah <img src=http://aplikace.cz/remail?email=utocnik@seznam.cz>

Cross-Site Request Forgery (CSRF) - Útočník vytvoří webovou stránku, která sama odešle nebezpečné požadavky cílové aplikaci ve chvíli, kdy ji (přihlášený) uživatel navštíví - Pro utajení akce se formulář vloží do skrytého rámu <form name= fake method= post action= http://aplikace.cz/remail > <input type= hidden name= email value= utocnik@seznam.cz > </form> <script>document.fake.submit();</script>

Cross-Site Request Forgery (CSRF) OBRANA - Kontrola HTTP hlavičky REFERER - Nedoporučuji, možnost odeslání požadavků bez této hlavičky - Kontrola hlavičky ORIGIN u XMLHttpRequestů - Podobná situace jako u hlavičky Referer - Přidání autorizačního tokenu ke všem požadavkům - Útočník nemůže připravit útočný požadavek bez jeho znalosti - Ideální je platnost tokenu časově omezit http://aplikace.cz/remail?email=utocnik@seznam.cz&ticket=ba5e5aa2f472

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Clickjacking - Je-li nasazena ochrana před útoky CSRF - Nic netušící uživatel sám klikne na prvek nebo vyplní a odešle formulář, bez toho, aby věděl, co vlastně dělá. - Útok založen na možnosti načíst web. stránku do rámu - Průhlednost rámu - Překrytí nechtěných prvků - Vkládání údajů do aplikace, nebo krádež dat z aplikace.

Clickjacking - JavaScript FrameKiller - if (top.location!= self.location) - Nedoporučuji - možnost načtení zdrojáku view-source: - Lze vyřadit zneužitím XSS filtru - HTTP Response Hlavička X-Frame Options - DENY - SAMEORIGIN - ALLOW-FROM - Content Security Policy OBRANA

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Cross-Site Scripting (XSS) - Spuštění JavaScriptu v uživatelově prohlížeči - Same Origin Policy brání přístupu k jiným doménám - Injekce skriptu do webové aplikace umožňuje přístup ke všem jejím objektům (čtení/zápis) - Únos sezení - Změna nebo čtení uložených dat (podvržení přihlašovacích formulářů, atd.) - XSS proxy - Typy zranitelnosti XSS - Perzistentní - Non-Perzistentní - DOM based (např. u AJAX aplikací)

Cross-Site Scripting (XSS) <div>uživatelský příspěvek: <script>alert(1)</script></div> ------------------------------------------------------------------------------------------ <form> <input type= text value= ><script>alert(1)</script> > </form> ------------------------------------------------------------------------------------------ <input type= text value= onclick= alert(1) > ------------------------------------------------------------------------------------------ <script type="text/javascript"> DOT.cfg({service: 'firmy', query: ''});alert(1);//'}); </script> ------------------------------------------------------------------------------------------ <a href= javascript:alert(1) >odkaz</a>

Cross-Site Scripting (XSS) AJAX var json = eval("(" + xhr.responsetext + ")"); {"a":10, "b":20, "c":alert(1)} {"a":10, "b":20, "c":"alert(1)"} + alert( XSS ) + { a : + alert( XSS ) + } { a : \ + alert(\ XSS\ ) + \ }

Cross-Site Scripting (XSS) OBRANA - Náhrada metaznaků & < > za HTML entity < - Escapování metaznaků v řetězcích JavaScriptu \

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

CRLF injection Injekce HTTP hlaviček vložením bílých znaků CR+LF Request: seznam.cz?foo=test%0d%0aheader:value Response: location: www.seznam.cz?foo=test header: value

CRLF injection OBRANA - Ošetřit bílé znaky před vložením hodnoty do hlavičky - například URL encoding

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

SQL injection $name = $_GET[ name ] $query = SELECT * FROM database WHERE name= $name www.webmail.cz?name= OR a = a SELECT * FROM database WHERE name= OR a = a SELECT * FROM database WHERE name= ; DROP database--

SQL injection Escapovat metaznaky (apostrofy) SELECT * FROM database WHERE name= \ OR \ A\ =\ A Direktiva magic_quotes_gpc OBRANA

SQL injection $id = $_GET[ id ] $query = SELECT * FROM database WHERE id=$id www.webmail.cz?id=1 or 1=1 SELECT * FROM database WHERE id=1 OR 1=1

Přetypováním: $id = (int)$_get[ id ] SQL injection OBRANA Uzavírání číselných hodnot do apostrofů + jejich ošetření www.webmail.cz?id=1 or 1=1 $query = SELECT * FROM database WHERE id= $id SELECT * FROM database WHERE id= 1 OR 1=1 www.webmail.cz?id=1 or 1 = 1 SELECT * FROM database WHERE id= 1\ or \ 1\ =\ 1

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Nedostatečná autorizace - Kontrola zda je uživatel přihlášen, ne zda má dostatečná práva - Není kontrolováno, zda uživatel skutečně nakládá se svými daty - Nejčastější útoky změnou id v požadavku OBRANA - Při každé akci provést všechny možné kontroly - Je uživatel přihlášen? - Nakládá s daty, ke kterým má povolen přístup? - Má uživatel povoleny akce jež se snaží vykonat?

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Forced browsing - Procházení stránek změnou id v požadavku - Možnost získání celých databází OBRANA - Nepoužívat id v požadavcích - Používat jedinečný identifikátor

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Nezabezpečený upload - Upload serverového skriptu a jeho spuštění může vést k ovládnutí serveru - Zneužití důvěryhodné domény k uploadu souborů, které slouží k infikování počítačů konečných uživatelů OBRANA - Kontrolovat typ a strukturu uploadovaných dat - Konvertovat obrázky - Ošetřit bílé znaky a znaky pro procházení adresářů v názvu uploadovaného souboru (použít nový název) - Zakázat spouštění skriptů v adresářích pro upload

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal

Local File Inclusion (disclosure) - Možnost zobrazení nebo spuštění serverového skriptu - Script lze na server dostat: - Uploadem souboru - Uploadem nakaženého obrázku - Přes cookies a session proměnné - Enviroment (proc/self/environ) - Zneužitím logů (var/www/logs/access_log, apd.)

Local File Inclusion (disclosure) GET: webmail.cz?action=view.php $page = $_GET[ action ]; Include($page); webmail.cz?action=../../../../etc/passwd webmail.cz?action=../images/foto.jpg

Local File Inclusion (disclosure) OBRANA - Vhodně nastavený webový server - Neincludovat soubory na základě proměnné obdržené od uživatele - Ošetřit výskyt sekvence../

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Nedostatečná autorizace Forced browsing Nezabezpečený upload Path traversal Webmail použitý v ukázkách je dostupný na adrese http://webmail.hackingvpraxi.cz

Penetrační testování Automatické vs. manuální testování

Automatické testování - Klady - Rychlost - Odstraňují opakující se úkony (../../../../../../../../../../) - Hledání konfiguračních souborů - Fuzzing - apd. - Zápory - Nelze se na ně plně spolehnout - Nedokáží odhalit reakce projevující se na jiných místech - Při důkladných testech se nelze manuálním testům vyhnout

Manuální testování - Klady - Důkladná analýza výstupu umožní lépe přizpůsobit následné testy - Je možné odhalit i reakce projevující se na jiných místech aplikace - Na důkladně provedené testy se lze spolehnout - Zápory - Pentester je jen člověk a může něco přehlédnout - Opakující se činnosti je časově náročné a vyčerpávající

Jak zajišťujeme bezpečnost aplikací v Seznam.cz

Jak zajišťujeme bezpečnost aplikací v Seznam.cz - Vzděláváním vývojářů - Penetračním testováním betaverzí - Průběžnou kontrolou ostrých verzí - Komunikací s white hat hackery (spolupráce se SOOM.cz)

Dotazy Zabezpečení webových aplikací

Děkuji za pozornost