MS16-065: TLS/SSL protokolü bilginin açığa çıkması güvenlik açığı (CVE-2016-0149) Açıklama: 10 Mayıs 2016

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 3155464
Özet
Şifreleme bileşeni Microsoft .NET Framework'ün uygulandığı gibi iletişim kuralı Aktarım Katmanı Güvenliği ve Güvenli Yuva Katmanı (TLS/SSL) protokolü bir bilginin açığa çıkması güvenlik açığı bulunmaktadır. Bu güvenlik açığından başarıyla yararlanan bir saldırgan, şifrelenmiş TLS/SSL trafiğini şifresini.

Saldırgan güvenlik açığından yararlanabilmesi için öncelikle şifrelenmemiş veri güvenlik kanalı yerleştirir ve ardından man-in--middle (MiTM) saldırısı hedeflenen istemci meşru sunucu arasında gerçekleştirmek açması gerekir. Bu güncelleştirme, .NET şifreleme bileşenini gönderir ve şifreli ağ paketlerini alır biçimini değiştirerek güvenlik açığını giderir.

Bu güvenlik açığı bir parçası olarak sabit Microsoft Güvenlik Bülteni MS16-065. Bu güncelleştirme .NET Framework şifreleme bileşeni gönderir ve şifreli ağ paketlerini alır biçimini değiştirir.

Aşağıdaki tablo için her güvenlik açığını Ortak Güvenlik Açıkları ve Etkilenmeler listesinde standart girdi bağlantılar içerir.

Güvenlik Açığı başlıkCVE numarasıGenel olarak bildirilenYararlanan
TLS/SSL kimlik sahtekarlığı güvenlik açığıCVE 2016 0149EvetHayır

Güvenlik çözümlemesi

' De sunulan Değiştir Microsoft Güvenlik Bülteni MS16-065 neden ilk TLS Bölünecek el sıkışması sonra kaydedin. Bu SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient ve HttpClient neden olur (HttpWebRequest alarak burada) akışlarının ilk okuma için tek bir bayt döndürür birbirini izleyen okuma hemen geri kalan (n-1) baytıyla ardından. Bu davranış değişikliği, yalnızca uygulamaları için oluşur TLS 1.0 + Şifre blok zincirleme kullanın, ancak değil ne zaman kullandıkları TLS 1.1 veya TLS 1.2.

Not Bir önkoşul olarak yüklemeniz gerekir Microsoft Güvenlik Bülteni MS12-006 Bu güncelleştirmeyi etkinleştirmek için.

Kesmek için .NET Framework'ü alarak bazı uygulamalar bu değişmesine neden olabilir. Bu makalede, güncelleştirme uygulandıktan sonra düzgün çalışması için uygulamanız için kullanabileceğiniz iki yaklaşım Microsoft Güvenlik Bülteni MS16-065.

Uyumluluk sorunları için Azaltıcı Etkenler

Seçenek 1: TLS 1.2 protokole geçiş

Bu seçeneği, kayıt defterini değiştirerek veya program aracılığıyla Yapılandırma Protokolü sürüm 1.2 TLS iletişim kuralını kullanan uygulama yapar.
  • Kayıt defterini değiştirin

    Önemli Bu bölümdeki adımları dikkatlice izleyin. Kayıt defterini hatalı bir şeklide değiştirirseniz önemli sorunlar oluşabilir. Değiştirmeden önce geri yükleme kayıt defterini yedekleme durumda sorunlar oluşur.

    .NET Framework 4.0 ve.NET Framework 4.5 ve sonraki sürümleri çalışan .NET Framework 4.5.x uygulamaları varsayılan iletişim kuralı TLS 1.2, TLS 1.1 ve TLS 1.0 için SchUseStrongCrypto kayıt defteri anahtarı etkinleştirilerek geçiş yapabilirsiniz. Bu kayıt defteri anahtarı Önerilen Eylemler bölümünde tartışılıyor. Microsoft Güvenlik danışma belgesi 2960358 konu Microsoft TechNet Web sitesi.

    Önemli Aşağıdaki koşullar doğruysa, bu kayıt defteri değişikliği yalnızca çalışır:
    • ServicePointManager tabanlı API'leri kullanan uygulamalar olan ayarı yokServicePointManager.SecurityProtocol açıkça değer. System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestve System.Net.Mail.SmtpClientböyle sınıflarının örnekleridir. ServicePointManager.SecurityProtocol kod içinde ayarlamak kayıt üzerinde önceliğe sahiptir.
    • Uygulamalar SslStream kullanıyor AuthenticateAsClient(String) tekrar.

  • Protokolü sürüm programatik olarak yapılandırma

    .NET Framework 4.0 ve 4.5.NET Framework 4.5 ve sonraki sürümlerinde çalışıyorsa ve kullanan uygulamalar SslStream AuthenticateAsClient(String,X509CertificateCollection,SslProtocols,Boolean)SslProtocols.Tls12, SslProtocols.Tls11ve SslProtocols.Tls üçüncü parametresi belirten aşırı derlenmelidir. SslStream sınıfının nasıl kullanılacağını tam açıklaması için bkz. SslStream sınıfı konu Microsoft Developer (MSDN) Web sitesi.

    Not TLS 1.2, TLS 1.1 ve TLS 1.0 .NET Framework 4.6 ve sonraki sürümlerinde Protokolü Varsayılan olarak kullanın. Bu ele alınmıştır Microsoft Güvenlik danışma belgesi 2960358 konu Microsoft TechNet Web sitesi.

Seçenek 2: Tanıtıcı paketleri bölmek.

Bu güncelleştirme, tek bir kayıt içinde birden çok kaydı Bölünecek neden olur. Uygulama tek bir Okuma çağrıda kullanılabilir olması için bütün kaydı bekleniyor, bu nedenle, bu tür uygulamaların çalışmamasına neden olabilir. Uygulama düzgün şekilde davranan emin olmak için uygulama düzgün Stream.Read çağrı gerçekleştirerek bölünmüş paketleri işleme doğrulayın. Örnek kodu kullanabilirsiniz. Burada nasıl doğru okunur gerçekleştirmek için uygulama için bir başvuru olarak çağırın.

(Azaltma ile) önceki davranış farkı gösteren örnek bir HTTP isteği için ve sonra (olmadan risk azaltma) güncelleştirmeleri 3147461 ve 3147458 olan yüklü, "Ek bilgi" bölümüne bakın.

Stream.Read yöntemi tam bir örnek için bkz. Stream.Read yöntemi (Byte[],Int32,Int32) konu Microsoft Developer (MSDN) Web sitesi.

Uygulama uyumluluk sorunları için geçici çözümler

Uyarı Bu geçici çözümler kötü niyetli kullanıcılar veya virüsler gibi kötü amaçlı yazılımlar tarafından gerçekleştirilen saldırılara bir bilgisayara veya ağa daha savunmasız kalmasına neden olabilir. Biz bu çözümler önerilmez, ancak, bu geçici çözümler kendi uygulayabilmeniz için bu bilgiler sağlanmaktadır. Bu geçici çözümler kullanmak kendi sorumluluğunuzdadır.

Yöntem 1: (kullanılabilir .NET Framework'ün tüm sürümleri için) kayıt defteri anahtarlarını güncelleyin



SCH_SEND_AUX_RECORD yapısı (Genel) devre dışı bırakma
Tüm uygulamalar için aşağıdaki kayıt defteri alt anahtarını ekleyin:
Kayıt defteri konumu:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>

DWORD adı: SchSendAuxRecord
Veri değeri: 0

Not V4.0.30319 veya sürümüne bağlı olarak, v2.0.50727 <version_number>ifade etmektedir.

64 bit bilgisayarlarda çalışan 32 bitlik uygulamalar için de aşağıdaki kayıt defteri alt anahtarını ekleyin:
</version_number>
Kayıt defteri konumu:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>

DWORD adı: SchSendAuxRecord
Veri değeri: 0

Not V4.0.30319 veya sürümüne bağlı olarak, v2.0.50727 <version_number>ifade etmektedir.

</version_number>
Geçici çözüm
Geçici olarak bu makalede açıklanan güvenli modu devre dışı bırakmak için .reg dosyasını karşıdan yüklemek için uygun bağlantıyı tıklatın ve sonra kayıt defteri değişiklikleri yapmak için karşıdan yüklenen .reg dosyasını çift tıklatın.

Microsoft .NET Framework 3.5 hedefleyen uygulamalar için:

Uygulamalar için Microsoft .NET Framework 4.0 ve sonraki sürümlerinde hedefleme:

Bu makalede açıklanan güvenli modda yeniden etkinleştirmek için .reg dosyasını karşıdan yüklemek için uygun bağlantıyı tıklatın ve sonra kayıt defteri değişiklikleri yapmak için karşıdan yüklenen .reg dosyasını çift tıklatın.

Microsoft .NET Framework 3.5 hedefleyen uygulamalar için:

Uygulamalar için Microsoft .NET Framework 4.0 ve sonraki sürümlerinde hedefleme:

Microsoft destek dosyalarını indirme hakkında daha fazla bilgi edinmek için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
119591 Microsoft destek dosyalarını çevrimiçi hizmetlerden edinme
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın gönderildiği tarihte kullanılabilen en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardımcı olan geliştirilmiş güvenliğe sahip sunucularda depolanır.


SCH_SEND_AUX_RECORD yapısı tek tek uygulamalar için devre dışı bırakma
Tüm uygulamalar için aşağıdaki kayıt defteri alt anahtarını ekleyin:
Kayıt defteri konumu:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD adı: Tam yolu (örneğin, C:\MyApp\MyApp.exe) .exe uygulama
Veri değeri: 0

Not V4.0.30319 veya sürümüne bağlı olarak, v2.0.50727 <version_number>ifade etmektedir.

64 bit bilgisayarlarda çalışan 32 bitlik uygulamalar için de aşağıdaki kayıt defteri alt anahtarını ekleyin:
</version_number>
Kayıt defteri konumu:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD adı: Tam yolu (örneğin, C:\MyApp\MyApp.exe) .exe uygulama
Değer verisi: 0 (yalnızca geçerli değeri 0' dır. Başka bir değer göz ardı edilir.)

Not V4.0.30319 veya sürümüne bağlı olarak, v2.0.50727 <version_number>ifade etmektedir.

</version_number>

Yöntem 2: uygulama düzeyinde (yalnızca .NET Framework sürüm 4.6 ve sonraki sürümler için kullanılabilir) yapılandırmasını değiştirme

.NET Framework 4.6 ile başlayarak, kod veya uygulama yapılandırma veya kayıt defteri değişiklikleri aracılığıyla bir uygulama düzeyinde yapılandırmasını değiştirebilirsiniz.

.NET Framework 4.6 aşağıdaki yöntemlerden birini kullanarak anahtarı ayarlayabilirsiniz. Bu örnekler güvenlik özelliğini devre dışı bırakın.
  • Program aracılığıyla

    Uygulama yapmanız gereken ilk şey, aşağıdaki kod çalıştırılır. Hizmet Noktası Yöneticisi yalnızca bir kez başlatmak çünkü.
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Uygulama yapılandırması

    Uygulama yapılandırmasını değiştirmek için aşağıdaki girdiyi ekleyin:
    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/></runtime>
  • Kayıt defteri anahtarı (genel bilgisayar)

    Kayıt defteri konumları:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\AppContext

    Değeri: Switch.System.Net.DontEnableSchSendAuxRecord
    Türü: Dize
    Değeri: Doğru

    Not Switch.System.Net.DontEnableSchSendAuxRecord = False tüm uygulamalar için.
Daha fazla bilgi
Aşağıda bir örnek istemci/sunucu iletişim önce ve bu güncelleştirme yüklendikten sonra desendir. Resimde herhangi bir uygulama arıza nedeniyle bu düzeltme yüklemesini tanımlamak için bu bilgileri sağlar.

Azaltıcı etkenİle azaltma
[Sunucu] (127.0.0.1:4431) bağlantılar için bekleniyor
[Client] Localhost:4431 için bağlanma
[Sunucu] İstemci bağlı.
[Client] Bağlı. Kimlik doğrulanıyor...
[Sunucu] İstemci kimlik doğrulaması.
[Client] Gönderme isteği (94 baytı)
[Client] Yanıt bekleniyor...

[Sunucu] Alınan 94 bayt sayısı:<GET></GET>
Ana bilgisayar: contoso.com
User-Agent: sınama uygulaması

>>>
[Sunucu] 476 bayt ile yanıtladı.

[İstemci 1: 476 bayt] Yanıt:<HTTP .1="" 200=""></HTTP>

>>>>>
[Sunucu] (127.0.0.1:4431) bağlantılar için bekleniyor
[Client] Localhost:4431 için bağlanma
[Sunucu] İstemci bağlı.
[Client] Bağlı. Kimlik doğrulanıyor...
[Sunucu] İstemci kimlik doğrulaması.
[Client] Gönderme isteği (94 baytı)
[Client] Yanıt bekleniyor...
[Sunucu] 1 bayt alındı: <G>>><b00> </b00> </G>
[Sunucu] Alınan 93 bayt sayısı:<ET></ET>
Ana bilgisayar: contoso.com
User-Agent: sınama uygulaması

>>>
[Sunucu] 476 bayt ile yanıtladı.
[İstemci 1: 1 bayt] Yanıt: <H>>>><b00> </b00> </H>
[İstemci 2: 475 bayt] Yanıt:<TTP .1="" 200=""></TTP>

>>>>>

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 3155464 - Son İnceleme: 05/10/2016 17:56:00 - Düzeltme: 1.0

Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 3.5.1, Microsoft .NET Framework 3.5, Microsoft .NET Framework 2.0 Service Pack 2

  • kbsecvulnerability kbsecurity kbsecbulletin kbfix kbexpertiseinter kbbug atdownload kbmt KB3155464 KbMttr
Geri bildirim