Content Security Policy



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

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

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

AJAX. Dynamické změny obsahu stránek

Cross-Site Scripting (XSS)

Zabezpečení web aplikací

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

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

Rozdíly oproti webové stránce:

Principy fungování WWW serverů a browserů. Internetové publikování

Počítačové sítě II 17. WWW, HTTP. Miroslav Spousta, 2005

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

WWW technologie. HTTP protokol

Co sledovat a jak měřit u mobilního webu

APLIKACE PRO DETEKCI ZRANITELNOSTI TYPU CLICKJACKING

Cross- Site Request Forgery

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

RESTful API TAMZ 1. Cvičení 11

Tvorba webových stránek

NSWI096 - INTERNET JavaScript

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

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

HTML 5 Historie HTML5 Co je HTML5 Přehled novinek

Rozhraní pro tvorbu doplňků v moderních prohlížečích. Martin Straka martin.straka@nic.cz

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

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

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

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

Příručka Google Cloud Print

Webové služby. Martin Sochor

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

Služba World Wide Web

Javascript v Seznamu

!!Via!AUREA,!s.r.o.!

Programování v jazyce JavaScript

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

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

ČSFD.cz - technická specifikace reklamních formátů

Programování v jazyce JavaScript

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

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

Pravidla a technické parametry reklam

Základy programovacího jazyka HTML. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1133_Základy programovacího jazyka HTML_PWP

PHP a bezpečnost. nejen veřejná

API pro volání služby kurzovního lístku KB

Nasazení nových modulů McAfee Seminář CIV (nejen) pro lokální správce

Datové schránky ante portas

ČSFD.cz - technická specifikace reklamních formátů

Vývoj Internetových Aplikací

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

Vývoj Internetových Aplikací

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

Využití Chromecastu v OTT

JSON API pro zjišťování cen MtG karet

Platební systém XPAY [

Úvod do Web Services

Formuláře. Internetové publikování

Bezpečnost webových aplikací

Instalace a konfigurace

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

HTML - Úvod. Zpracoval: Petr Lasák

mbank.cz mtransfer Okamžitá notifikace o mtransferu Dokumentace pro externího partnera

KIV/PIA 2012 Ing. Jan Tichava

Tvorba WWW stránek. Mojmír Volf

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

HTML 5. Tomáš Hejl, Miroslav Štufka červen 2009

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Mozilla pro vývojáře. David Majda LinuxExpo 2005, Praha

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

Obsah. Stručná historie World Wide Webu 7

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

Compatibility List. GORDIC spol. s r. o. Verze

Vývoj Internetových Aplikací

Skriptování na straně serveru a klienta

Protokol HTTP. Ondřej Dolejš

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

Mapy.cz vs. amapy.cz

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Podpora nových webových technologií HTML5 a CSS3 v aktuálních verzích prohlížečů

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Vývoj Internetových Aplikací

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

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

HTTP protokol. Zpracoval : Petr Novotný

Pokud používáte prohlížeč Chrome, tak se po zadání url adresy zobrazí následující obrazovka:

MODERNÍ WEB SNADNO A RYCHLE

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

Otázka číslo 12 Internet

Pavel Kaňkovský, DCIT Consulting. SOFTECON

Autentizace webových aplikací z pohledu NEbezpečnosti. Oldřich Válka Security

Instalace a konfigurace web serveru. WA1 Martin Klíma

Mgr. Vlastislav Kučera přednáška č. 2

Tvorba webových stránek. Ing. Radek Burget, Ph.D.

Ochrana mobilních uživatelů před hrozbami Internetu mimo firemní prostředí. Simac Technik ČR, a.s.

Jak postavit webovou stránku pro mobilní zařízení. Lukáš Kokoška

Název modulu: Tvorba webu pomocí XHTML a CSS začátečníci

1 Webový server, instalace PHP a MySQL 13

Transkript:

Content Security Policy Nový přístup v boji proti XSS 2011.cCuMiNn.

Cross Site Scripting (XSS) XSS je všudypřítomné výskyt cca v 80% webových aplikací Webový browser nevidí rozdíl mezi legitimním skriptem injektovaným skriptem Ochrana na straně uživatele blokování JavaScriptu NoScript IE XSS filter

Content Security Policy Nový přístup v boji proti XSS Jsou zakázány veškeré skripty Je zakázáno veškeré načítání obsahu z externích zdrojů Vývojáři mohou určit, které zdroje jsou bezpečné, a ze kterých může být externí obsah načítán

Defaultní pravidla CSP Zákazáno přímo vložené skripty javascript: URIs ovladače událostí <script> <a href="javascript:bad_stuff()"> <a onclick="bad_stuff()"> funkce eval() eval("evil string...") settimeout() a setinterval() settimeout("evil string...", 1000) konstruktor new function var f = new Function("evil string...") data: URIs <a href="data:text/html,<script>alert(..."> XBL bindings pro jiné protokoly než chrome: a resource: -moz-binding pro navázání CSS

Defaultní pravidla CSP Povoleno skripty z def.zdrojů <script src="..."><script> posluchače událostí addeventlistener("click", function(), false); settimeout() a setinterval() settimeout("function()", 1000) funkční operátory var f = function() {code} function f() {code} data: URIs pro explicitně povolený druh obsahu

Režimy CSP Bezpečnostní politika HTTP hlavičkou X-Content-Security-Policy: Prvkem <meta> <meta http-equiv="x-content-security-policy"> Report zpráv s pokusy o narušení HTTP hlavičkou X-Content-Security-Policy-Report-Only: Prvkem <meta> <meta http-equiv="x-content-security-policy-report-only">

Direktivy CSP default-src definice defaultně povolených zdrojů script-src definice zdrojů pro scripty <script> img-src definice zdrojů pro obrázky <img> media-src definice zdrojů pro media <video>, <audio> object-src definice zdrojů pro objekty <object>, <embed>, <applet> frame-src definice zdrojů pro plovoucí rámy <iframe> font-src definice zdrojů pro fonty v CSS @font-face xhr-src definice zdrojů pro XMLHttpRequest style-src definice zdrojů pro stylopisy <link rel= stylesheet > frame-ancestors definice zdrojů pro <iframe>, <frame> a <object> report-uri definice adres pro zasílání reportů policy-uri definice adresy s definicí CSP options modifikace některých základních restrikcí CSP

Directiva options Modifikace základních restrikcí CSP disable-xss-protection povolení přímo vložených scriptů <script> povolení javascript: URIs eval-script povolení funkce eval() povolení stringů u funkcí settimeout() a setinterval() povolení konstruktoru new Function

Formát zápisu povolených zdrojů Uvedením zdroje protokol (volitelně) http://, https://, ftp:// hostname www.host.cz.host.cz *.host.cz - port (volitelně).host.cz:443 klíčové slovo stejný host, protokol a port self zákaz všech zdrojů none data: img-src data:

Příklady použití CSP Povolení načítání dat pouze ze stejného zdroje, jako pochází chráněný dokument X-Content-Security-Policy: default-src 'self' Defaultně povolen stejný zdroj dat, obrázky odkudkoliv, objekty a skripty z vyjmenovaných zdrojů X-Content-Security-Policy: default-src 'self'; img-src *; \ object-src media.example.com.host.com; \ script-src trustedscripts.example.com

Reporty při pokusu o narušení Jsou definovány jako JSON objekt Jsou odesílány metodou POST Jsou odesílány na URI definované v request-uri Direktivy reportu request: request line z HTTP požadavku request-headers: hlavičky HTTP požadavku blocked-uri: zablokované URI violated-directive: direktiva způsobující blokování original-policy: zdroj bezpečnostní politiky

Ukázka reportu { } "csp-report": { "request": "GET http://example.org/page.html HTTP/1.1", "request-headers": "Host: example.org User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b12pre) Gecko/20110222 Firefox/4.0b12pre Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Proxy-Connection: keep-alive Cache-Control: max-age=0", "blocked-uri": "http://evil.example.com/image.png", "violated-directive": "default-src http://example.org" }

Závěr Ve stádiu draftu Funkční jen v prohlížečích, které CSP podporují V současné chvíli podpora jen ve Firefoxu 4 Snaha o standardizaci Nutná implementace do webových aplikací Hackeři mají ještě pár let ring volný V případě širšího nasazení dokáže vymýtit XSS