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

Detail přednášky

Pár praktických ukázek, ve kterých ukážu, proč se věnovat zabezpečení e-shopů a co se stane, když se na to vykašlete. A že když to budete řešit, až se když se něco bude dít, tak už může být pozdě.

Naučím vaše vývojáře vytvářet bezpečné webové aplikace, pošlete je na školení bezpečnosti webových aplikací (nejbližší termín: termín zatím nevypsán). Školení je možné také uspořádat u vás ve firmě. Nabízím i konzultace k zabezpečení, napište mi.

Datum a akce

2. dubna 2016, E-shop summit 2016 (video)

Slajdy

SlideShare

Přepis poznámek

  1. E-shop – zavřeno

    Nejbezpečnější e-shop je ten, který je zavřený. Ale zas moc nevydělává. Nedávno jsem slyšel něco o tom, že kdosi navrhuje, aby o víkendu obchody nebyly otevřené, tak třeba jednou dojde i na e-shopy a budou bezpečné aspoň v sobotu a neděli. Původní slajdy tyto poznámky neobsahují.

  2. 15,8 % má HTTPS, 12,5 % má HTTPS jen někde (září 2015)

    V půlce září 2015 zveřejnili lidé z Twista výsledky studie Český košík roku, ve které testovali Top 120 českých e-shopů. Mimo jiné zjistili, že 15 % e-shopů bylo zcela zabezpečených pomocí HTTPS a dalších 13 % používalo HTTPS alespoň pro přihlášení – ale to bohužel nestačí, jak uvidíme dále.

  3. 24 % má HTTPS (duben 2016)

    1. 4. 2016 jsem měření provedl znovu a na HTTPS běží celých 24 % e-shopů zařazených do studie Český košík roku 2015, tedy 29 ze 120 obchodů. Nárůst z 15,8 % mě těší, ale pořád je to hodně, hodně, hodně, hodně, hodně, hodně málo. Kolik e-shopů používá HTTPS alespoň pro ochranu přihlášení jsem nezkoumal.

  4. WE NEED TO GO DEEPER

    Jen pro srovnání, Seznam na konci února 2016 zveřejnil statistiky nad vzrokem zhruba 700 000 českých titulních stránek (homepage) a jenom 1,23 % z nich používá HTTPS. To je fakt dost málo, myslím si, že na HTTPS by měl být každý web, nehledě na to, jestli se k němu přihlašuji.

  5. Ověření & šifrování

    HTTPS má na starosti dvě věci, ověření protistrany, tedy to, že data posílám tomu, komu mám, a šifrování přenášených dat. Data tedy nemůže nikdo odposlechnout ani změnit. Útočník by totiž po cestě ze serveru do prohlížeče návštěvníka mohl změnit například přihlašovací formulář, aby se zadané jméno a heslo posílalo někam jinam. Mohl by také vložit přihlašovací formulář někam kde běžně není, ale uživatel by to nepoznal a přihlašovací údaje vyplnil.

  6. Celý web na HTTPS

    Pokud chcete web na HTTPS, a chtít byste měli, tak ho musíte mít na HTTPS celý, jinak to není úplně vono. Když budete pomocí HTTPS chránit jen login formulář a z něj odesílané jméno a heslo, tak pořád někdo může odposlechnout cookies, které prohlížeč bude posílat na tu nezabezpečenou HTTP část webu. Mizera se pak díky znalosti tzv. session cookie může za uživatele vydávat, aniž by znal jeho heslo.

  7. HTTPS nezabezpečí web

    HTTPS má dva úkoly (pomáhat a chránit), ale nezvládne už nic dalšího. HTTPS neumí zabezpečit váš web, sorry. Zaručí jen to, že data, která váš web opustí dojdou v nezměněné podobě do browseru, že do nich nikdo nestrčí reklamu nebo odkaz na stažení viru a že posílaná nepůjde odposlechnout. To ale stačí.

  8. HTTPS nezabezpečí lidi

    HTTPS dokonce nezabezpečí ani návštěvníky vašeho webu nebo e-shopu. Nezaručí, že jim ten web nepošle něco zákeřného, nějaký vir nebo tak něco. HTTPS zabezpečí jenom přenos dat mezi serverem a prohlížečem a je nutnou, ale ne postačující podmínkou pro zabezpečení. Jsou i jiné závažné chyby, kterým by se mělo věnovat trochu více pozornosti. O HTTPS se dozvíte více v mé jiné přednášce.

  9. Cross-Site Scripting (XSS), 1999

    Útok Cross-Site Scripting (XSS) byl poprvé popsán v roce 1999. Funguje na principu zneužívání důvěry. Návštěvníci věří webům, které používají nebo navštěvují a mizera této důvěry zneužije a návštěvníkům a jejich prohlížečům něco nepěkného provede. I po 17 letech je XSS pořád velmi často používán.

  10. alert(1)

    XSS spočívá v tom, že útočník do stránky vloží JavaScript, který se poté spustí návštěvníkovi v prohlížeči. Útok možná budete znát, nejčastěji se demonstruje jako neškodné vypsání jedničky a vypadá to takto. Jenže XSS není jen alert(1), pomocí JavaScriptu lze v browseru dělat spoustu věcí, například získávat cookies, pouštět muziku, zobrazovat přesvědčivé odkazy na stažení zákeřných programů nebo vytvářet falešné přihlašovací formuláře.

  11. The Browser Exploitation Framework Project

    Nástroj BeEF usnadňuje bezpečnostním testerům (a přednášejícím) demonstraci zákeřných XSS útoků. Ukázku naleznete na videu z E-shop summitu 2016 nebo v mojí prezentaci určené vývojářům, přibližně od 14. minuty.

  12. 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. Je tedy potřeba zavést další úroveň ochrany, když vývojáři zase zapomenou, tak ať nevyrobí tak velký problém. Jednou z těch dalších úrovní ochrany je Content Security Policy (CSP). Ta říká moderním browserům, odkud z jakých domén mohou načítat a spouštět JavaScript, stahovat obrázky, kam mohou odesílat formuláře apod. Některé nástroje, jako třeba Google Tag Manager vyžadují poměrně „otevřené“ nastavení CSP, ale politika může být nastavena na každou část e-shopu jinak. Např. v administraci e-shopu nejspíš nástroje jako je právě Google Tag Manager nepoužíváte, pomocí CSP tedy můžete chránit uživatele, kteří s ní pracují.

  13. 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ěží aplikace a když mizera do stránky dostane nějaký JavaScript odjinud, tak se nenačte a tím pádem ani nespustí. O implementaci Content Security Policy se dozvíte více v mé přednášce pro vývojáře.

  14. alert('XSS')

    Útok XSS se nevyhýbá nikomu a může natropit opravdu velké škody. Myslete na to a snažte se mizerům bránit více způsoby. Vaše weby potom budou mnohem hůře zneužitelné pro páchání útoků na vaše uživatele, kolegy a zaměstnance. Bezpečnost e-shopů jsme detailněji rozebírali v rozhovoru pro MladýPodnikatel­.cz.

Video záznam

SlidesLive

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: