SlideShare a Scribd company logo
https://www.flickr.com/photos/vissago/3789250335/
MINULÉ STOLETÍ VOLALOMINULÉ STOLETÍ VOLALOMichal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
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í.
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ěří.
XSS
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.
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.
< → &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.
<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.
The Browser Exploitation Framework Project Demo
BeEF
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.
CSP
Content Security Policy
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.
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.
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čekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze

More Related Content

What's hot

Poučte se z cizích chyb
Poučte se z cizích chybPoučte se z cizích chyb
Poučte se z cizích chyb
Michal Špaček
 
HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)
Michal Špaček
 
WebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnostWebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnost
Michal Špaček
 
Hashování hesel
Hashování heselHashování hesel
Hashování hesel
Michal Špaček
 
Základy webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketing
Michal Špaček
 
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Michal Špaček
 
Zabezpečení Slevomatu
Zabezpečení SlevomatuZabezpečení Slevomatu
Zabezpečení Slevomatu
Michal Špaček
 
Přechod na HTTPS
Přechod na HTTPSPřechod na HTTPS
Přechod na HTTPS
Michal Špaček
 
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníPassword manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Michal Špaček
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Michal Špaček
 
Hlava není na hesla
Hlava není na heslaHlava není na hesla
Hlava není na hesla
Michal Špaček
 
Bezpečnost na webu
Bezpečnost na webuBezpečnost na webu
Bezpečnost na webu
Miloš Janda
 
Zapomeňte vaše hesla
Zapomeňte vaše heslaZapomeňte vaše hesla
Zapomeňte vaše hesla
Michal Špaček
 
HTTPS (a šifrování) všude
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všude
Michal Špaček
 
Bezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeních
Michal Špaček
 
Total Cost of Pwnership
Total Cost of PwnershipTotal Cost of Pwnership
Total Cost of Pwnership
Michal Špaček
 
Website Security & WordPress (Peter Gramantik)
Website Security & WordPress (Peter Gramantik)Website Security & WordPress (Peter Gramantik)
Website Security & WordPress (Peter Gramantik)wcsk
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
Martin Michálek
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
Vladimír Smitka
 
WordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security cz
peter_sucuri
 

What's hot (20)

Poučte se z cizích chyb
Poučte se z cizích chybPoučte se z cizích chyb
Poučte se z cizích chyb
 
HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)
 
WebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnostWebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnost
 
Hashování hesel
Hashování heselHashování hesel
Hashování hesel
 
Základy webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketing
 
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
 
Zabezpečení Slevomatu
Zabezpečení SlevomatuZabezpečení Slevomatu
Zabezpečení Slevomatu
 
Přechod na HTTPS
Přechod na HTTPSPřechod na HTTPS
Přechod na HTTPS
 
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníPassword manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
 
Hlava není na hesla
Hlava není na heslaHlava není na hesla
Hlava není na hesla
 
Bezpečnost na webu
Bezpečnost na webuBezpečnost na webu
Bezpečnost na webu
 
Zapomeňte vaše hesla
Zapomeňte vaše heslaZapomeňte vaše hesla
Zapomeňte vaše hesla
 
HTTPS (a šifrování) všude
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všude
 
Bezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeních
 
Total Cost of Pwnership
Total Cost of PwnershipTotal Cost of Pwnership
Total Cost of Pwnership
 
Website Security & WordPress (Peter Gramantik)
Website Security & WordPress (Peter Gramantik)Website Security & WordPress (Peter Gramantik)
Website Security & WordPress (Peter Gramantik)
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
 
WordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security cz
 

More from Michal Špaček

Lámání a ukládání hesel
Lámání a ukládání heselLámání a ukládání hesel
Lámání a ukládání hesel
Michal Špaček
 
Fantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v Opeře
Michal Špaček
 
Quality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
Michal Špaček
 
Disclosing password hashing policies
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
Michal Špaček
 
Operations security (OPSEC) in IT
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
Michal Špaček
 
HTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English version
Michal Špaček
 
I forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and why
Michal Špaček
 
HTTP/2
HTTP/2HTTP/2
The problem with the real world
The problem with the real worldThe problem with the real world
The problem with the real world
Michal Špaček
 
Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013Michal Špaček
 
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013Michal Špaček
 

More from Michal Špaček (11)

Lámání a ukládání hesel
Lámání a ukládání heselLámání a ukládání hesel
Lámání a ukládání hesel
 
Fantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v Opeře
 
Quality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
 
Disclosing password hashing policies
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
 
Operations security (OPSEC) in IT
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
 
HTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English version
 
I forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and why
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
The problem with the real world
The problem with the real worldThe problem with the real world
The problem with the real world
 
Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013
 
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
 

Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)

  • 1. https://www.flickr.com/photos/vissago/3789250335/ MINULÉ STOLETÍ VOLALOMINULÉ STOLETÍ VOLALOMichal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze 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. 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. XSS 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. 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 Project Demo BeEF 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. CSP Content Security Policy 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. 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. 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čekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze