it-swarm-eu.dev

Zabrání skutečně X-Content-Type-Options útokům na čichání obsahu?

V Tangled Web Michal Zalewski říká:

Nepoužívejte Content-Type: application/octet-stream a místo toho použijte aplikaci/binární, zejména pro neznámé typy dokumentů. Vyhněte se vracení Typ obsahu: text/prostý.

Například jakákoli platforma hostující kód musí být opatrná při vracení spustitelných souborů nebo zdrojových archivů jako aplikační/oktetový proud, protože existuje riziko, že mohou být nesprávně interpretovány jako HTML a zobrazeny inline.

Textová/prostá logika následně implementovaná v prohlížečích Internet Explorer a Safari za účelem detekce HTML v takovém případě je opravdu špatná zpráva: Oteví weboví vývojáři o schopnost bezpečně používat tento typ MIME k vytváření uživatelsky specifických dokumentů v prostém textu a nenabízí žádné alternativy . To má za následek značné množství zranitelností webových aplikací, ale zdá se, že vývojáři aplikace Internet Explorer dodnes nelitují a nezměnili výchozí chování svého kódu.

Web používá X-Content-Type-Options:nosniff. Autor říká o této hlavě následující:

Použití této hlavičky [X-Content-Type-Options] je vysoce doporučeno; podpora pro něj [...] bohužel má v jiných prohlížečích pouze omezenou podporu. Jinými slovy, nelze na ni spoléhat jako na jedinou obranu proti čichání obsahu.

Jaké útoky čichání obsahu X-Content-Type-Options:nosniff nebrání? Co Content-Type by měl být vrácen uživateli namísto text/plain?

19
Andrei Botalov

Pozadí. X-Content-Type-Options: je záhlaví, které je navrženo tak, aby obhajovalo proti MIME útoky čichající obsah . Útoky typu MIME pro čichání obsahu představují riziko, pokud uživatelům povolíte nahrát obsah (např. Obrázky, dokumenty, jiné soubory) na váš web, kde je mohou stáhnout jiní uživatelé.

Jak říká @Rook, nemá to nic společného s odposloucháváním/zachycením síťového provozu.

Jakým útokům nezabrání? Protože X-Content-Type-Options: je podporováno pouze v některých prohlížečích, nechrání útoky proti uživatelům, kteří používají jiné prohlížeče. Zejména se předpokládá v IE, Chrome a Firefox 5 . Viz také Jaká jsou bezpečnostní rizika, která uživatelům umožňují nahrát obsah na můj web? o některých dalších útocích, které nezabrání, např. Nahrání malwaru nebo nechtěného obsahu, nahrání obsahu, který zneužívá zranitelnost v prohlížeči uživatele atd.

Jaký typ obsahu by měl být vrácen? Měli byste vrátit příslušný typ obsahu pro daný soubor. Neměli byste dovolit uživatelům nahrávat nedůvěryhodný obsah s nebezpečnými typy obsahu. Další podrobnosti naleznete v odpovědích na následující otázky:

  1. Je bezpečné obsloužit jakýkoli soubor nahraný uživatelem pouze u typů obsahu MIME uvedených na seznamu?

  2. Je bezpečné ukládat a přehrávat typy mime poskytované uživatelem?

  3. MIME čichající ochrana

  4. Proč bych měl omezit typ obsahu souborů nahraných na můj web?

  5. Jaká jsou bezpečnostní rizika, která uživatelům umožní nahrát obsah na můj web?

  6. Jak mohu být chráněn před zranitelností obrázků?

  7. Použití přípony souboru a typu MIME (jako výstup pomocí souboru -i -b) kombinace k určení nebezpečných souborů?

Toto téma bylo podrobně projednáno a zdokumentováno jinde na tomto webu, takže se nebudu snažit opakovat všechny užitečné rady, které tam najdete.


Aktualizace: Právě jsem se dozvěděl, že nastavení Content-Type a X-Content-Type-Options záhlaví přiměřeně nestačí pro zabezpečení. Zjevně Flash ignoruje záhlaví Content-Type , což by mohlo umožnit načtení škodlivého SWF, který pak může udělat vše, co byste dělali s XSS. (Povzdech, hloupý Flash.) Tento útok bohužel nemůže zastavit žádné množství povolených seznamů typů obsahu. V důsledku toho se zdá, že jediným bezpečným řešením je hostování obsahu nahraného uživatelem v samostatné doméně.

23
D.W.

Zde je odpověď Michala Zalewského obdrženého e-mailem:

Krátká odpověď je, že funguje v MSIE a pouze v některých konkrétních případech. Nebude vás chránit před (mnohem méně horlivým) čicháním ve většině ostatních prohlížečů; ale co je důležitější, neodradí pluginy od provádění věcí, jako je výše uvedené riziko crossdomain.xml; a nutně nezabrání načtení subdodávek s neshodnými typy MIME (tj. načtení obrázku jako aplikace/x-shockwave-flash pomocí <embed>).

6
Andrei Botalov

Co čichá útoky X-Content-Type-Options: nosniff nezabrání?

Čichání pomocí nástrojů, které nevědí o X-Content-Type-Options: některé prohlížeče a doplňky, které mohou načíst síťové zdroje. (Například historicky Java GIFAR, Flash loadPolicyFile ...)

Jaký typ obsahu by měl být uživateli vrácen místo textu/prostého?

Neexistuje dobrá odpověď na to, takže pokud potřebujete hostovat nedůvěryhodné textové soubory, měli byste přijmout obvyklé zmírnění jejich hostování na samostatném názvu hostitele (a v ideálním případě na adrese IP).

Alternativa: kódování HTML, přidejte <pre> a slouží jako text/html.

3
bobince