📆 15. 5. 2017 📂 Newsletter

První číslo newsletteru převážně o bezpečnosti, bezpečném vývoji převážně webových aplikací a bezpečnosti uživatelů.

Wow, takové ohlasy na nulté číslo newsletteru jsem nečekal. Všem moc děkuju za přečtení a připomínky, toto první číslo je díky nim lehce bohatší na informace i kontext. Dejte mi prosím vědět, jestli je to takhle lepší.

Pokud chcete newsletter dostávat pravidelně, tak jsem přidal export všech článků nebo jenom newsletterů ve formátu Atom. Zasílání e-mailem přijde ještě o něco později.

Pohodlně se usaďte, první číslo newsletteru se stále pracovním názvem čtu Twitter, aby vy už jste nemuseli je tu.

TLS, SSL, HTTPS

Opera Software se vyjádřila k situaci s certifikační autoritou Symantec, která v minulých letech vydala minimálně 30 tisíc falešných certifikátů. Opera by nejraději viděla celou novou infrastrukturu pro vydávání certifikátů, ale nejspíš prostě udělá to, co udělá Google. Ať už to bude cokoliv.

Microsoft Edge a Internet Explorer 11 blokují od 9. května weby, které mají SHA-1 certifikáty (platí to i pro intermediate certifikační autority) a prohlížeče místo toho zobrazují chybovou hlášku informující o špatném certifikátu. Tato změna se dotkne jen certifikátů, jejichž kořenový certifikát je v Microsoft Trusted Root Programu, ačkoliv přejít na bezpečnější SHA-2 by měli všichni.

Tým složený z lidí z několika univerzit, z Mozilly, Google a Cloudflare se podíval na zoubek „inspekci HTTPS provozu“ (HTTPS Interception), tedy sledování zašifrovaného provozu pro účely skenování antivirem nebo blokování nevhodného obsahu. Jejich výzkum ukazuje, že webový server může „inspekci provozu“ detekovat podle charakteristiky HTTPS spojení, která je pro každý prohlížeč a skenovací software jiná. Analýzu prováděli na několika populárních e-commerce webech, na serverech, ze kterých si stahuje aktualizace Firefox a na síti Cloudflare. Ve všech případech zjistili, že „inspekce HTTP provozu“ je 4–11 %, tedy o řád vyšší, než se doposud předpokládalo. Zkoumáním populárních antivirů a firemních proxy serverů zjistili, že skoro všechny programy snižují zabezpečení spojení, některé dokonce ani správně neověřovaly certifikáty. Zjišťováním použitých TLS/SSL klientů podle charakteristik spojení se v roce 2015 zabýval i tým z Masarykovy univerzity v Brně.

76 oblíbených (a spousta těch méně oblíbených) aplikací pro iOS neověřuje správně certifikáty, čímž umožní zákeřným Wi-Fi sítím a jejich provozovatelům dostat se například k přihlašovacím údajům podvržením falešného certifikátu. Seznam 27 z nich byl zveřejněn, některé ale stále na opravu čekají. Tento problém musí vyřešit vývojáři aplikací, App Transport Security (ATS) to za ně neudělá. ATS zajistí „jen“ to, že aplikace bude komunikovat po HTTPS s použitím dostatečně silných šifer.

Prohlížeče

Mozilla znovu spustila web bug bounty program. Za nalezení chyb na vybraných webech a jejich nahlášení můžete získat odměnu až $5000 za spuštění kódu (RCE) na kritických serverech.

Prohlížeč Edge obsahuje zatím neopravené chyby, které umožňují obcházet Same-Origin Policy a získávat tak cookies a v případě používání vestavěného správce hesel i přihlašovací údaje. Same-Origin Policy (SOP) má zajistit, že JavaScript z jednoho originu nebude mít přístup ke stránce a datům na jiném originu, přičemž origin je definován jako kombinace protokolu, jména serveru (domény) a portu.

Chrome 59 (vyjde v červnu) se políčka TeletexString v certifikátech nakonec budou zobrazovat se znakovou sadou Latin-1, takže certifikáty s takovými políčky na macOS budou nadále fungovat. TeletexString je jeden ze způsobů, jak v certifikátu uvést např. název firmy pokud obsahuje diakritiku. Minule jsem psal, že takové certifikáty měly v Chrome 59 na macOS zobrazovat chyby ERR_SSL_SERVER_CERT_BAD_FORMAT nebo ERR_BAD_SSL_CLIENT_AUTH_CERT.

bezpečnosti Service Workers v Chromiu se dozvíte v Service Worker Security FAQ. Service Workers jsou skripty, které běží na pozadí, bez zobrazené stránky, a používají se na synchronizaci nebo notifikace, tedy na věci, na které by jinak byla potřeba nativní aplikace. Jsou zamýšleny jako vylepšená náhrada Application Cache.

Od Chrome 56 běží webové iframy (např. reklamy) v extenzích (třeba na stránce s nastavením rozšíření) v odděleném procesu. Nemají tak přístup k API pro rozšíření i kdyby se jim podařilo zneužít nějakou chybu. Zvýšilo se tím zabezpečení prohlížeče, taková API totiž mohou přistupovat k věcem, ke kterým se běžná stránka nedostane, např. k historii.

Bezpečnostní HTTP hlavička X-Frame-Options se používá k omezení vložení stránky do frames, čímž se znemožní útok Clickjacking. Varianta X-Frame-Options: SAMEORIGIN povolí vložit stránku do frame pokud je na stejném originu (protokol, doména, port), ale kontroluje jen nejvyšší frame, tedy stránku zobrazenou v adresním řádku. Takže stránku s X-Frame-Options: SAMEORIGIN je možné vložit do frame na jiném originu, pokud ten frame je vložen do stejného originu jako stránka posílající X-Frame-Options: SAMEORIGIN, čímž se zamýšlená ochrana lehce vytrácí. Schematicky to vypadá takto: example.comútočník.czexample.com + X-Frame-Options: SAMEORIGIN. Chrome už jednou kontrolu originu změnil na všechny frames, ale museli tu změnu vrátit zpět. Teď to chtějí změnit znovu. Aktualizace 1.8.: změna byla provedena v Chrome 60.

Do WebKitu byla přidána podpora Subresource Integrity (SRI). WebKit je jádro prohlížeče Safari a všech prohlížečů na iOS a Subresource Integrity hlídá, jestli se nezměnil obsah nějakého zdroje staženého například z CDN, tedy jestli někdo cédéenku nehacknul, tak jak se to stalo v roce 2013 frameworku Bootstrap. Ten byste do stránky měli vkládat pomocí značky script takhle nějak:

<script
    src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
    integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
    crossorigin="anonymous"
></script>

Hodnotu atributu integrity se dozvíte od vývojáře knihovny. Prohlížeč po stažení kódu spočítá jeho hash a pokud nesedí s hashem v atributu integrity, tak se stažený soubor ignoruje. Víc o SRI v mé přednášce nejen o bezpečnostních HTTP hlavičkách.

Hesla

„Teploměry“ ukazující sílu hesla („password strength meters“) při jeho zadávání jsou často k ničemu. Stačí jim, že heslo má 8 znaků, minimálně jedno velké, jedno malé, jedno číslo a hned si myslí, že heslo je supersilné i přesto, že je vcelku předvídatelné. Tenhle teploměr ne, navíc vám pomocí rad typu „nedávejte číslice jen na konec“ navrhne jak heslo vylepšit, však to zkuste. Za zmínku také stojí zxcvbn od Dropboxu.

Analýza 562 milionů hesel ze seznamu nazývaného „Anti Public“ přinesla tyto výsledky: nejvíc účtů na doméně yahoo.com (41,71 %), nejčastější délka hesla 9 znaků (27 %), 10 nejčastějších hesel: 123456, 123456789, abc123, password, password1, 12345678, 111111, 1234567, 12345, 1234567890. Vcelku nic překvapivého, že.

Chyby a zranitelnosti

iCloud Keychain Sync, nástroj od Apple pro bezpečné sdílení hesel mezi zařízeními, obsahoval chybu, která útočníkovi umožňovala získat uživatelská data i přesto, že data jsou šifrovaná end-to-end a šifrovací klíče jsou specifické pro každé zařízení. Zneužití nebylo jednoduché, potřeboval by k tomu např. přístup k serverům Apple nebo uživatelské heslo k iCloud účtu bez 2FA. Chyba byla opravena v iOS 10.3.

Natalie Silvanovich a Tavis Ormandy z Google Project Zero našli chybu v jádru Windows Defenderu, což je antivir dodávaný s Windows. Ta umožňovala vzdáleně spustit kód např. navštívením zákeřné stránky. Tím se do cache prohlížeče (obecně na disk) uložil soubor s JavaScriptem, který chtěl antivir prozkoumat, čímž kód dodaný útočníkem spustil. Microsoft chybu bleskově opravil, uživatelé nemusí dělat nic, Defender se aktualizuje sám.

HP zapomnělo ve svých audio ovladačích (které vytvořila společnost Conexant) kousek kódu, který zaznamenává stisky všech kláves a zapisuje je do souboru přístupného všem uživatelům na počítači. Takže když uživatel vyplňoval na nějakém webu své heslo, tak ho měl hezky zálohované. Záloha to nebyla moc dobrá, při dalším přihlášení do Windows se vymazala. V novější verzi ovladače „keylogger“ zůstal, ale je potřeba ho nejdříve zapnout v registrech, eh.

Software pro provozování diskuzních fór Vanilla Forums až do verze 2.3.0 včetně používá starou verzi knihovny PHPMailer, čehož lze v kombinaci s možností upravit hlavičku Host využít ke vzdálenému spuštění kódu. Oba problémy byly nahlášeny v prosinci 2016, ale výrobce na opravu zapomněl a náhodou si vzpomněl až po jejich zveřejnění. Pokud Vanilla Forums používáte, tak nezapomeňte aktualizovat na nově vydanou verzi 2.3.1.

Invision Power Board, další nástroj pro provozování fór, obsahuje ve verzi 4.1.19.2 několik chyb Cross-Site Scripting (XSS). Útočník může na fórum například nahrát vlastní SVG soubor, ve kterém může být JavaScript (<svg xmlns="http://www.w3.org/2000/svg" onload="alert('XSS❤SVG');"/>), který potom prohlížeč spustí. V extrémním případě by těchto chyb šlo využít až k nahrání útočníkovo PHP souboru na server a tím spuštění jím dodaného kódu. Výrobce prý na opravu také několik měsíců zapomněl, opravu nějakých XSS zmiňuje u verze 4.1.19.4, ale detaily neuvádí.

Travis CI, nástroj pro Continuous Integration, omylem zobrazoval ve výstupech OAuth tokeny, které se používají pro přístup ke GitHubu, například pro nahrávání souborů na GitHub během buildu. Výstupy (česky logy) pro Travis CI obsluhující open-source projekty jsou veřejně dostupné pokud je uživatel nesmaže. GitHub dotyčné tokeny (bylo jich 2833) zneplatnil a majitelům dá vědět. Problém se netýkal jenom GitHubu, Travis CI problém oznámil i dalším službám.

Nová verze publikačního nástroje Joomla vyjde ve středu 17. května přibližně v 16h našeho času. Verze 3.7.1 bude obsahovat opravu blíže nespecifikované kritické bezpečnostní chyby. Pokud Joomlu používáte, na středeční odpoledne si asi raději nic jiného neplánujte. Do několika hodin po zveřejnění zranitelnosti se běžně vytvoří automatizované nástroje, které velmi rychle hledají nezáplatované servery a chyby zneužívají.

Úniky dat

Z platformy pro podporu výuky na základních a středních školách Edmodo někdo získal 77 milionů uživatelských účtů a hashovaných hesel. Databáze se prodává na „černém trhu“ za 1088 amerických dolarů. Hesla byla hashována pomocí doporučovaného algoritmu bcrypt, takže rychle půjde cracknout jen jednoduchá hesla typu password apod. Edmodo jsem přidal na svůj seznam firem, které (třeba i nedobrovolně) zveřejnily způsob ukládání hesel.

Útoky

Malware Proton krade z macOS mj. i data ze správce hesel 1Password. Pokud jste si stáhli populární program pro práci s video soubory HandBrake mezi 2. a 6. květnem, tak se porovnáním SHA-1 hashe přesvědčte, že jste nestáhli modifikovaný program. Někdo totiž napadl server download.handbra­ke.fr a instalační program HandBrake vyměnil za něco nepěkného.

Unést se dá dneska snad všechno, třeba i takový DNS server. Ten pak může domény převádět na nesprávné IP adresy, čehož se dá využít k phishingu, distribuci malware nebo cenzuře. Jak moc se po světě unáší DNS server Google se pomocí DNS Fingerprintingu rozhodli zjistit na DNS Hackathonu v Amsterdamu. V ČR bylo uneseno 7 z 241 dotazů, čímž jsme si vysloužili krásné 19. místo.

Chvilku poté co zmrzlo peklo vydal Microsoft záplaty pro Windows XP (a další již nepodporované operační systémy) řešící možnost vzdáleného spuštění kódu pomocí protokolu SMB. Ten se ve Windows používá pro sdílení souborů mezi počítači, přičemž pro podporované systémy záplata existuje již od půlky března. Této chyby využívá malware resp. ransomware označovaný jako WannaCrypt (někdy také příznačně jako WannaCry), který zašifruje data na disku a požaduje výkupné pro dešifrování. Na seznamu obětí figurují nemocnice, banky, továrny, parkovací automaty a další. Šíření této varianty viru zpomalil chlapík s přezdívkou MalwareTech, ten si všiml, že po infekci se malware snaží poslat požadavek na doménu iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com, která ale nebyla registrovaná. Tak ji koupil a až později zjistil, že fungovala jako hlavní vypínač – když malware dostal odpověď na přímo poslaný požadavek (tzn. ne přes proxy), tak se dál nešířil. Již se objevují nové varianty s jinými doménami. Ať už podnikáte v čemkoliv, nezapomeňte si domény registrovat včas.

Matka moudrosti

Pokud z vaší stránky otvíráte odkazy do nového okna pomocí target="_blank", tak k nim přidejte rel="noopener". To zajistí, že stránky v Chrome budou mít oddělené procesy a nová stránka nebude mít přístup k vlastnosti window.opener.location, pomocí které může tu vaši přesměrovat jinam, třeba na nějaký phishing, aniž by si toho návštěvníci všimli. Aktualizace 16.5.: stejnou funkčnost dosáhnete použitím rel="noreferrer", z historických důvodů se chová stejně, navíc neposílá ani Referrer.

Akce

V centru současného umění DOX v Praze se v týdnu od 15. května koná Týden datové bezpečnosti. Jde o přednášky, komentované prohlídky a workshopy k výstavě Big Bang Data, jsou většinou večer a v rámci středeční panelové diskuze „Ukaž svá data!“ od 19h budu vaše data ukazovat i já.

Aktualizace článku

1.8. Chrome 60 již kontroluje origin všech frames pokud přijde hlavička X-Frame-Options: SAMEORIGIN

16.5. Přidána informace o rel="noreferrer" k rel="noopener"

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:

Úvod do PHP
(11. 12. 2017 Praha)

Třídy a objekty v PHP
(12. 12. 2017 Praha)

Bezpečnost PHP aplikací
(13. 12. 2017 Praha)

HTTPS pro vývojáře a správce
(14. 12. 2017 Praha)

Výkonnost webových aplikací
(březen 2018 Praha)

English