Podívejte se raději na online verzi přednášky, slajdy mohly být aktualizovány nebo doplněny.

Detail přednášky

… a chtělo svoje útoky zpět. Útok Cross-Site Scripting byl poprvé popsán v roce 1999 a od té doby je tu stále s námi. Proč je tak nebezpečný a jak se mu bránit, když to vývojáři evidentně nezvládají?

Více o Content Security Policy (CSP) z technického hlediska najdete v přednášce o CSP pro vývojáře. Ta obsahuje i praktickou ukázku útoku, začíná ve videu přibližně od 14. minuty.

Zajímá vás bezpečnost více? Přijďte na moje veřejné školení pro vývojáře. Školení je možné také uspořádat u vás ve firmě.

Datum a akce

1. března 2016, IDC IT Security Roadshow 2016 Prague

Slajdy

SlideShare

Přepis poznámek

  1. Minulé století volalo a chtělo svoje vtipy zpět

    Přednáška o jednom útoku z minulého století, ve které vám ukážu, k čemu je dobrý a jak se mu efektivně v roce 2016 bránit. Původní slajdy tyto poznámky neobsahují.

  2. Snapchat

    Na začátek jeden příklad. Snapchat posílá fotky a videa, které příjemci po nastaveném čase zmizí. V pátek 26. února 2016 ze mzdového oddělení Snapchatu zmizela data o platech některých zaměstnanců. Zaměstnanec toho oddělení totiž obdržel e-mail, který vypadal, jakoby ho odeslal šéf Snapchatu. V té zprávě falešný šéf chtěl, aby mu z oddělení data poslali. Tak mu je prostě poslali, šéf je šéf. Ten někdo zneužil toho, že mzdové oddělení svému šéfovi věří.

  3. Cross-Site Scripting, David Ross, Microsoft, 1999

    Útok XSS, o kterém se budeme dále bavit, byl poprvé popsán v roce 1999 a funguje tak trochu podobně. Návštěvníci alespoň trochu věří webům, které navštěvují a útočník této důvěry zneužije a návštěvníkům něco pěkného provede. Ukážu vám, k čemu by se dal útok Cross-Site Scripting využít v roce 2016.

  4. alert(1);

    Cross-Site Scripting možná znáte. Nejčastěji se vyskytuje jako alert s jedničkou nebo nějakým jednoduchým textem. „XSS, jo, to znám, to je ten alert, to není nic nebezpečného“, že jo. Za chvilku uvidíme, že to je trochu jinak, tahle jednička jen ukazuje, že na webu je možné úspěšně provést útok XSS.

  5. <&lt;, >&gt;, "&quot;, '&#x27;, &&amp;,

    Útok XSS lze provést, pokud vývojář zapomene při výpisu uživatelských dat jako např. jméno, adresa, komentář apod. převést nebezpečné znaky na jejich bezpečné varianty, tedy znaky vlevo na entity vpravo. Nejlepší je tento převod přenechat nějakému šablonovacímu systému, který to bude dělat automaticky.

  6. <p>Jméno: <script></p> × <p>Jméno: &lt;script&gt;</p>

    Když vývojář na převod zapomene a někdo pak zadá místo jména něco divného, třeba HTML značku script, tak se nepřevede na neškodný text, browser ji bude brát jako součást kódu a takto vložené jméno může způsobit vážný problém.

  7. The Browser Exploitation Framework (BeEF) Project Demo

    Na demonstraci vážnosti problému si vezmu na pomoc framework BeEF. Ten útok XSS dostává na zcela jinou úroveň. Ukázku naleznete na videu v mojí prezentaci určené vývojářům, přibližně od 14. minuty.

  8. Content Security Policy (CSP)

    Vývojáři zapomínají ošetřit uživatelský vstup už skoro 20 let a budou zapomínat pořád dál, nebojte. Je tedy potřeba zavést další úroveň ochrany, když vývojáři zase zapomenou, tak ať uživatelům nevyrobí tak velký problém. Jednou z dalších úrovní ochrany je Content Security Policy. CSP říká moderním browserům, odkud mohou načítat JS, obrázky, kam mohou odesílat formuláře apod.

  9. Content-Security-Policy

    CSP je klasická HTTP hlavička, kterou pošle server prohlížeči a prohlížeč poté načítá zdroje jen z povolených adres. Mohu například nastavit, aby prohlížeč načítal JavaScript jen z domény, na které běží samotná aplikace a když mizera do stránky vloží JavaScript odjinud, tak se do browseru nenačte. Detailní popis fungování Content Security Policy i nastavení hlavičky naleznete opět v mojí přednášce pro vývojáře, přibližně od 38. minuty.

  10. alert('XSS');

    XSS se nevyhýbá nikomu a uživatelům špatně zabezpečených webů může nadělat opravdu velké škody. Myslete na to a snažte se mizerům bránit více způsoby a na více úrovních, aby vaše weby nezneužívali k páchání útoků na vaše uživatele.

Michal Špaček

Michal Špaček

Vyvíjím webové aplikace, zajímá mě jejich bezpečnost. Nebojím se o tom mluvit veřejně, hledám hranice tak, že je posouvám. Chci naučit webové vývojáře stavět bezpečnější a výkonnější weby a aplikace.

Veřejná školení

Zvu vás na následující školení, která pořádám a vedu: