problémy se smíšeným obsahem vznikají, když webové stránky doručují své stránky přes HTTPS, ale umožňují některé zdroje, které mají být dodány v prostém textu. Aktivní síťový útočník nemůže se šifrovaným provozem nic dělat, ale pohrávání si s prostým textem může vést k útokům od phishingu v nejlepším případě až po úplné kompromisy prohlížeče v nejhorším případě. Stačí jeden exponovaný skript: útočník může unést připojení a vložit do něj libovolné užitečné zatížení útoku.
máme tendenci mluvit hodně o dalších aspektech SSL / TLS, ale smíšený obsah je pravděpodobně nejjednodušší způsob, jak úplně zkazit šifrování vašeho webu.
ve velmi raných dnech webu byl povolen veškerý smíšený obsah; webové prohlížeče očekávaly, že provozovatelé stránek promyslí důsledky míchání obsahu. To samozřejmě nevedlo k velké bezpečnosti. Provozovatelé stránek udělali vše, co potřebovali, aby svou práci dokončili a snížili náklady. Teprve v posledních letech začali prodejci prohlížečů věnovat pozornost a začali omezovat smíšený obsah.
smíšený obsah v moderních prohlížečích
dnes mají téměř všechny hlavní prohlížeče tendenci rozdělovat smíšený obsah do dvou kategorií: pasivní pro obrázky, videa a zvuk; a aktivnípro nebezpečnější zdroje, jako jsou skripty. Ve výchozím nastavení mají tendenci povolovat pasivní smíšený obsah, ale odmítají aktivní obsah. To je zjevně kompromis mezi porušením webu a přiměřenou bezpečností.
Internet Explorer byl lídrem v bezpečném zpracování smíšeného obsahu. Již v aplikaci Internet Explorer 5 (podle tohoto příspěvku) měli ve výchozím nastavení detekci a prevenci nezabezpečeného obsahu. Chrome začal ve výchozím nastavení blokovat v roce 2011 a Firefox v roce 2013. Výchozí prohlížeč Android a Safari však stále umožňují veškerý smíšený obsah bez jakýchkoli omezení (as téměř neexistujícími varováními).
zde jsou výsledky mého nedávného testování toho, jaký nejistý obsah je ve výchozím nastavení povolen:
prohlížeč | obrázky | CSS | skripty | XHR | WebSockets | rámy | ||
---|---|---|---|---|---|---|---|---|
prohlížeč Android 4.4.x | Ano | Ano | Ano | Ano | Ano | Ano | ||
Chrome 33 | Ano | ne | ne | Ano | Ano | ne | ||
Firefox 28 | Ano | ne | ne | ne | ne | ne | ne | ne |
Internet Explorer 11 | Ano | ne | ne | ne | ne | ne | ne | ne |
Safari 7 | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
jsou většinou jako očekávání, ale je tu překvapení s Chrome, který blokuje aktivní obsah stránky, ale stále umožňuje prostý text XMLHttpRequest a WebSocket připojení.
stojí za zmínku, že tabulka nám neříká všechno. Prohlížeče například nemají tendenci kontrolovat, co jejich pluginy dělají. Flash nebo Java) jsou plná prostředí sama o sobě a existuje jen málo prohlížečů, které mohou vynucovat zabezpečení.
testování pro zpracování smíšeného obsahu v laboratořích SSL
aby bylo snazší vyhodnotit řešení tohoto problému prohlížečem, nedávno jsem rozšířil klientský Test SSL Labs, aby prozkoumal manipulaci se smíšeným obsahem. Když navštívíte stránku, Váš uživatelský prohlížeč je testován a získáte podobné výsledky:
prevalence smíšeného obsahu
anekdoticky je smíšený obsah velmi častý. Ve společnosti Qualys jsme tento problém zkoumali v roce 2011 spolu s několika dalšími problémy na úrovni aplikací, které vedou k úplnému rozbití šifrování ve webových aplikacích. Analyzovali jsme domovské stránky asi 250,000 XNUMX zabezpečených webových stránek ze seznamu Alexa top 1 million a zjistili jsme, že 22.41% z nich používalo nezabezpečený obsah. Pokud jsou obrázky vyloučeny, počet klesne na 18, 71%.
v roce 2013 proběhla podrobnější studie 18 526 webů extrahovaných z Alexa top 100,000: Nebezpečný Mix: rozsáhlá analýza webových stránek se smíšeným obsahem (Chen et al .). Pro každý web bylo analyzováno až 200 bezpečných stránek, které dosáhly celkem 481 656 stránek. Jejich výsledky naznačují, že až 43% webových stránek má problémy se smíšeným obsahem.
zmírnění
nejlepší obranou proti problémům se smíšeným obsahem je jednoduše nemít tento typ problému ve vašem kódu. Ale to se snadno řekne, než udělá; existuje mnoho způsobů, jak se smíšený obsah může plazit. Když to selže, existují dvě technologie, které mohou být užitečné:
- HTTP Strict Transport Security (HSTS) je mechanismus, který vynucuje Zabezpečené vyhledávání zdrojů, a to i tváří v tvář chybám uživatelů (pokus o přístup na váš web na portu 80) a chybám implementace(vývojáři umístí nezabezpečený odkaz na zabezpečenou stránku). HSTS je jednou z nejlepších věcí, která se nedávno stala s TLS, ale funguje pouze na jménech hostitelů, které ovládáte.
- zásady zabezpečení obsahu (CSP) lze použít k blokování získávání nezabezpečených zdrojů z webových stránek třetích stran. Má také mnoho dalších užitečných funkcí pro řešení dalších problémů se zabezpečením aplikací, například XSS.