it-swarm-tr.com

X-Content-Type-Options gerçekten içerik koklama saldırılarını önler mi?

Tangled Web'de Michal Zalewski diyor ki:

Content-Type: application/octet-stream kullanmaktan kaçının ve özellikle bilinmeyen belge türleri için application/binary kullanın. İçerik Türü: metin/düz döndürmekten kaçının.

Örneğin, herhangi bir kod barındırma platformu, yürütülebilir dosyaları veya kaynak arşivleri application/octet-stream olarak döndürürken dikkatli olmalıdır, çünkü HTML olarak yanlış yorumlanmaları ve satır içinde görüntülenmeleri riski vardır.

Böyle bir durumda HTML'yi tespit etmek için daha sonra Internet Explorer ve Safari'de uygulanan metin/düz mantık gerçekten kötü bir haber: Web geliştiricilerini, kullanıcıya özel düz metin belgeleri oluşturmak için bu MIME türünü güvenle kullanma yeteneğini çalıyor ve alternatif sunmuyor . Bu, önemli sayıda web uygulaması güvenlik açığıyla sonuçlanmıştır, ancak bugüne kadar, Internet Explorer geliştiricilerinin pişmanlıkları yoktur ve kodlarının varsayılan davranışını değiştirmemişlerdir.

Site X-Content-Type-Options:nosniff Kullanıyor. Yazar bu başlık hakkında şunları söylüyor:

Bu başlığın [X-Content-Type-Options] kullanılması önemle tavsiye edilir; ne yazık ki, bu desteğin [...] diğer tarayıcılarda sınırlı bir desteği var. Başka bir deyişle, içerik kokusuna karşı tek bir savunma olarak kullanılamaz.

Hangi içerik koklama saldırıları X-Content-Type-Options:nosniff Engellemiyor? Content-Type Yerine kullanıcıya hangi text/plain Döndürülmelidir?

19
Andrei Botalov

Arka plan. X-Content-Type-Options:, savunmak --- MIME içerik koklama saldırıları için tasarlanmış bir üstbilgidir. MIME içerik koklama saldırıları, kullanıcıların web sitenize başka kullanıcılar tarafından indirilebilecekleri içerik (ör. Resimler, belgeler, diğer dosyalar) yüklemelerine izin verdiğinizde bir risktir.

@Rook'un dediği gibi, bunun ağ trafiğini gizlemek/yakalamakla ilgisi yoktur.

Hangi saldırıları engellemiyor? Çünkü X-Content-Type-Options: yalnızca bazı tarayıcılarda desteklenir, diğer tarayıcıları kullanan kullanıcılara karşı saldırıları korumaz. Özellikle IE, Chrome ve Firefox 5 . Ayrıca bkz Kullanıcıların siteme içerik yüklemesine izin vermenin güvenlik riskleri nelerdir? engellemediği bazı saldırılar için, örneğin kötü amaçlı yazılım veya kötü amaçlı içerik yükleme, bir güvenlik açığından yararlanan içerik yükleme kullanıcının tarayıcısında vb.

Hangi içerik türü döndürülmeli? Bu dosya için uygun içerik türünü döndürmelisiniz. Kullanıcıların tehlikeli içerik türleriyle güvenilir olmayan içerik yüklemelerine izin vermemelisiniz. Daha fazla ayrıntı için lütfen aşağıdaki soruların cevaplarına bakın:

  1. Yüklenen herhangi bir dosyayı yalnızca beyaz listedeki MIME içerik türleri altında sunmak güvenli midir?

  2. Kullanıcı tarafından sağlanan mim tiplerini saklamak ve tekrar oynatmak güvenli mi?

  3. MIME koklama koruması

  4. Siteme yüklenecek dosyaların içerik türünü neden kısıtlamalıyım?

  5. Kullanıcıların siteme içerik yüklemelerine izin vermenin güvenlik riskleri nelerdir?

  6. Resimlerdeki güvenlik açıklarından nasıl korunabilirim?

  7. Güvenli olmayan dosyaları belirlemek için dosya uzantısı ve MIME türü (-i -b dosyasından çıktı olarak) kombinasyonu mu kullanıyorsunuz?

Bu konu, bu sitenin başka bir yerinde yoğun bir şekilde tartışıldı ve belgelendi, bu yüzden orada bulunan tüm yararlı tavsiyeleri tekrarlamaya çalışmayacağım.


Güncelleme: Az önce Content-Type ve X-Content-Type-Options üstbilgileri güvenlik için yeterli değil. Görünüşe göre, Flash, İçerik Türü başlığını yok sayar , bu da bir XSS ile yapacağınız her şeyi yapabilen kötü amaçlı bir SWF yüklenmesine izin verebilir. (İç çek, aptal Flash.) Ne yazık ki, dosya içeriği türlerinin beyaz listeye eklenmesinin hiçbir miktarı bu saldırıyı durduramaz. Sonuç olarak, tek güvenli çözümün kullanıcı tarafından yüklenen içeriği ayrı bir alanda barındırmak olduğu görülmektedir.

23
D.W.

İşte Michal Zalewski'nin e-posta ile aldığı cevap:

Kısa cevap, MSIE'de ve sadece bazı özel durumlarda çalışmasıdır. Sizi diğer tarayıcıların çoğunda (çok daha az gayretli) koklamaya karşı korumaz; ancak daha da önemlisi, eklentilerin yukarıda özetlenen crossdomain.xml riski gibi şeyleri yapmasını engellemez; ve eşleşmeyen MIME türlerine sahip alt kaynak yüklerini mutlaka engellemeyecektir (yani, bir görüntüyü <embed> yoluyla application/x-shockwave-flash olarak yükleme).

6
Andrei Botalov

X-Content-Type-Options'ın hangi koklama saldırıları: nosniff engellemiyor?

X-Content-Type-Options Hakkında bilmeyen araçlarla koklama: bazı tarayıcılar ve ağ kaynaklarını getirebilen eklentiler. (Örneğin, tarihsel olarak Java GIFAR, Flash loadPolicyFile ...)

Metin/düz yerine kullanıcıya hangi İçerik Türü döndürülmelidir?

Buna iyi bir cevap yoktur, bu nedenle güvenilmeyen metin dosyalarını barındırmanız gerekiyorsa, bunları ayrı bir ana bilgisayar adında (ve ideal olarak IP adresinde) barındırmanın her zamanki azalmasını almalısınız.

Alternatif: HTML kodlaması yapın, bir <pre> Ekleyin ve text/html Olarak hizmet edin.

3
bobince