Zabezpečení – CSRF, XSS Tomáš Hulák, Miroslav Kořínek.

Slides:



Advertisements
Podobné prezentace
Web Michal Žůrek Jak se na něj dívám já..
Advertisements

Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
IKT PHP PHP Tvorba formuláře - 10 Mgr. Josef Nožička
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
Martin Holý.  HTML  xHTML  CSS  JavaScript  PHP.
Technologie pro publikování na webu 1 Ing. Jiří Štěpánek.
Formuláře jsou důležitou součástí stránek, slouží:  k přihlašování k některým stránkám (eshopy, bakaláři, diskuze na webu apod.)  k odeslání údajů do.
Formuláře Formuláře lze nalézt téměř na každém webu. Formuláře lze nalézt téměř na každém webu. Použití formulářů: Použití formulářů: Blog Blog Uživatelské.
CSS a HTML 5. HTML 5 HTML5 je nová verze specifikace značkovacího jazyka HTML, která přináší podstatné změny v technologiích webových stránek. HTML5 umožňuje.
HYPERTEXT PREPROCESSOR. JAZYK PHP. Jazyk PHP (Hypertext PreProcessor) je intepretovaný jazyk určený pro web. Je celkem jednoduchý, snadno přenositelný.
PHP Zpracování formuláře v PHP - 11 Mgr. Josef Nožička IKT PHP
Internet Definice Historie Použití Programy pro práci s internetem
Návrh a tvorba WWW Cvičení 6
PHP – vkládání souborů a html 5
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Světlana Filipová. Materiál zpracován v rámci projektu Implementace ICT techniky do výuky.
Základy informatiky Internet Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Elektronická pošta Elektronická pošta ( ) je obdobou běžné pošty a umožňuje přijímat a distribuovat dokumenty v textové podobě na jednu nebo více.
Moderní formy tvorby webových stránek Martin Šebela, 9.A vedoucí práce: Mgr. Jan Kříž.
PHP – zasílání dat z formuláře
Gymnázium, Broumov, Hradební 218 Tematická oblast: Informační a komunikační technologie Číslo materiálu: EU Název: Elektronická pošta Autor: Mgr.
Ukládání dat, a spam INTERNET Ukládání dat, a spam.
Tutoriál Vlastní složka My EBSCOhost
PHP – Základy programování
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_257 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Ing. Roman Bartoš Předmět Informatika.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B20 Autor Ing. Jiří Kalousek Období vytvoření Duben 2013.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
Návrh a tvorba WWW Cvičení 4
European Computer Driving Licence Modul 7 – Služby informačních sítí Mendelova zemědělská a lesnická univerzita v Brně.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Cross-Site Request Forgery Prezentace k přednášce o CSRF útocích Připraveno pro SOOM session #
Internet.  Celosvětový systém propojených počítačů  Funkce  Sdílení dat  Elektronická pošta.
WWW – hypertextový informační systém
PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES SESSIONS. 2 COOKIES JEDNÁ SE O KRÁTKÉ TEXTOVÉ ŘETĚZCE, JEŽ SI MEZI SEBOU VYMĚŇUJÍ WEBOVÝ SERVER A WEBOVÝ KLIENT.
BENEFIT 7 Bc. Iva Sobíková 8. října Cíl prezentace Žádosti Benefit 7+  Cílem - upozornit žadatele na záložky tohoto IS, se kterými mívají občasné.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
PHP Souhrnné cvičení Mgr. Josef Nožička IKT PHP
WWW stránky – Úvod Mgr. Lenka Švancarová.
PHP Vytváření formuláře.
Elektronický registr oznámení Zpracoval(a): Mgr. František Rudecký
Tutoriál Nastavení alertů pro časopisy
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
IBM Global Services Ing. Stanislav Bíža, Senior IT Architect, CISA © 2005 IBM Corporation Rizika napadení webových aplikací Konference ISSS 2005 Title.
Úvod do PHP IZI 228.
Shrnutí Chceme–li připojit PC k Internetu musíme: 1.Zadat adresu DNS serveru (začne pracovat převod IP adresa  symbolické jméno), prakticky začne fungovat.
Formuláře Formuláře uzavíráme do elementů Formuláře uzavíráme do elementů a a Tyto elementy jsou součástí jazyka XHTML, to znamená, že při použití v PHP.
Projekt Perfull Personifikovaný fulltextový vyhledavač Vedoucí: RNDr. Leo Galamboš, Ph.D. Řešitelé: Ondrej Bechera Vojtěch Kulvait Eva Kustrová Ondřej.
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
Blíží se datové schránky,. aneb „Nepropadejte panice!“
PHP Programy pro tvorbu WWW stránek - 01
Registrace uživatele na pro užívání webhostingu.
DALŠÍ NEBEZPEČNÉ KOMUNIKAČNÍ JEVY
Jan Růžička, Leden /01/05 Proč pro prezentaci prostorových dat využívat nástrojů WWW Nízké náklady na vybavení klientského počítače Snadné zvýšení.
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Tvorba webu Zdeněk Malý.
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Programy pro komunikaci Číslo DUM: III/2/VT/2/2/35 Vzdělávací předmět: Výpočetní technika Tematická oblast:
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Číslo projektuCZ.1.07/1.5.00/ Název školyGymnázium, Soběslav, Dr. Edvarda Beneše 449/II Kód materiáluVY_62_INOVACE_21_14 Název materiáluPřímé bankovnictví.
Anotace Materiál je určen pro 1. ročník studijního oboru M/01 PROVOZ A EKONOMIKA DOPRAVY, předmětu Informační a komunikační technologie, inovuje.
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_034.ICT.34 Tvorba webových stránek – PHP technologie.
2OP484 Manažerská informatika 4 Google Suite
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Programy pro komunikaci
Vytvoření IS pro správu místností v prostředí WWW
Web Application Scanning
Webové aplikace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN
Elektronická pošta.
Transkript prezentace:

Zabezpečení – CSRF, XSS Tomáš Hulák, Miroslav Kořínek

Osnova Co je CSRF? Typy útoků Shrnutí Obrana proti CSRF Co je XSS? Typy útoků Obrana proti XSS

Co je metoda CSFR? Cross-Site Request Forgery „podvržení požadavku mezi různými stránkami“ Další pojmenování: Cross-Site Reference Forgery, Session Riding nebo Confused Deputy attacks

Útok na mail1/2 Jedním z předpokladů pro úspěšný útok je, znát napadanou aplikaci/web příklad – aplikace webmailu - odesílání ů bez vědomí uživatele Jednoduchý formulář posílaný na adresu serveru ◦ složenou ze jména serveru a hodnoty „action“ ve značce „form“ – tedy „ útok – zaslání u automaticky bez vědomí uživatele

Útok na mail 2/2 Odesílání položek metodou GET jakýkoliv obrázek na webové stránce generuje GET požadavek ◦ jména formulářových prvků i jejich hodnoty jsou v takovém případě součástí URL Útočník na své stránce vloží kód pro „zobrazení“ obrázku : URL obrázku nahradí GET požadavkem, ◦ je totožný s vyplněným a odeslaným formulářem webmailu, na který probíhá útok. Když oběť přejde na útočníkovu stránku se „zákeřným obrázkem“, ◦ Dojde k odeslání u na adresu

Útok rozšířením na metodu POST Server zpracovává pouze požadavky poslané metodou post ◦ útočníkovi stačí, když je zapnutý JavaScript v prohlížeči oběti Základním zabezpečením může být přihlášení uživatele a uchovávání informace o přihlášení v cookies prohlížeče (požadavky od nepřihlášených uživatelů bude aplikace ignorovat)

Další možné hrozby CSRF 1/3 Příklad vytvoření trvalého platebního příkazu na útočníkův bankovní účet z bankovního účtu oběti:

Další možné hrozby CSRF 2/3 Sledování elektronické pošty oběti. Útočník ◦ musí vědět, jakou webovou aplikaci pro přístup k elektronické poště oběť používá a jak se v ní mění nastavení účtu. ◦ Připravit si formulář pro přidání pravidla „automatického přeposílání všech ů oběti na adresu útočníka“:

Další možné hrozby CSRF 3/3 Útok na redakční systém. Jednoduchým požadavkem lze smazat veškeré články.

Shrnutí faktů o CSRF Automatický útok je možný pouze, pokud oběť navštíví útočníkovu stránku, která odešle předem připravený formulář Ve výsledku je jedno, zda se použije metoda POST či GET pro odesílání formulářů – rozdíl pouze v tom, že při metodě GET není vyžadován zapnutý JavaScript – je zranitelnější. Zabezpečovací mechanizmus pomocí uložené relace v cookies nás nemusí ochránit - Pokud je uživatel přihlášen a zároveň navštíví útočníkovu stránku, cookies se webové aplikaci stejně odešlou. Útok proběhne z prohlížeče oběti (která je přihlášena do aplikace) a odeslání formuláře směřuje do aplikace oběti (do které je oběť přihlášena). Útočník musí znát webovou aplikaci – musí mít připravený formulář. Útočník musí oběť přesvědčit k návštěvě jeho stránek.

Jak se bránit proti CSRF (ze strany serveru) Základní obranou jsou „podepsané“ formuláře tzn. formulář s „tajnou“ hodnotou generovanou serverem. Serverová část aplikace při generování formuláře vygeneruje i pole s tajnou hodnotou a tu si zapamatuje. Uživatel při odeslání formuláře odesílá i tajnou hodnotu. Serverová část aplikace přijme jen takový formulář, pokud přijatá tajná hodnota odpovídá zapamatované, nedávno vygenerované hodnotě. Tajná hodnota buď pro každý formulář, nebo po celou dobu platnosti uživatelské relace.

Jak se bránit proti CSRF (ze strany klienta) Pokud si nechceme na straně serveru žádnou tajnou hodnotu pamatovat, můžeme ji také vygenerovat na klientské straně a uložit ji do cookies, jenž se automaticky odesílají s každým dotazem na server a klientská část aplikace pak musí připojit ke každému odesílanému dotazu na server tajnou hodnotu. Na serverové části aplikace pak stačí zkontrolovat, zda se obě hodnoty shodují.

CSRF Zajímavost: Trvalou tajnou hodnotu používá například webmail na Seznamu. Používá k tomu proměnnou „hashId“ odesílanou s každým formulářem. Dříve byla tato hodnota stejná i po novém přihlášení uživatele, nyní se při každém přihlášení generuje hodnota nová. I taková společnost jako Google trpěla CSRF zranitelností. Bylo možno změnit bez vědomí uživatele používaný jazyk na stránkách vyhledávače. Třeba taková automatická změna jazyka do arabštiny.. ◦ Příklad automatické změny preferovaného jazyka vyhledávače na němčinu (již nefunguje):

Co je to XSS? Cross Site Scripting Metoda narušení webových stránek zkrz skripty Podstrčení javascriptového kódu do cizí stránky Tři typy útoků

Typ 1(lokální/DOM based) neošetřené přenesení proměnné z URL adresy do javascriptu Normální odkaz Upravený odkaz

Typ 2 ( non-persistent/reflected) Nejběžnější typ útoku Pro dynamické WWW Zjištění proměnné, která se vypisuje ve stránce PHP příklad

Typ 3 (persistent/stored) nejnebezpečnější možnost Jen pokud je obsah stránky generován z databáze Vložení napříkal jako část komentáře Script se vykoná u každého klienta

Typy nebezpečí HTML tagy ◦ Hello world Javascript ◦ Phishing ◦ Cíl formuláře ◦ Cookies – session id

Session-hijacking Předávání session-id ◦ Parametr v URL ◦ Skryté formulářové pole ◦ Cookies Nikdy nevkládat SID do URL! ◦ Logy ◦ Historie prohlížeče ◦ Referer ◦ SEO

Cookies httponly = 1 (SID není dostupné pro JS) ◦ IE 6, Firefox , Opera 9.5 Ajax – XmlHttpRequest ◦ Firefox 3.1, IE 8

Obrana proti XSS odfiltrovat „nebezpečné“ znaky z uživatelského vstupu Jako parametry URL přenášet jen číselné hodnoty Vypnutí JavaScriptu Nebezpečné tagy: ◦ přímo ve skriptu ◦ v HTML komentáři ◦ přímo v CSS

Zdroje site-request-forgery-a-jak-se-branit/ site-request-forgery-a-jak-se-branit/ protection protection zabezpeceni-stranek.html