MS16-065: TLS/SSL protokolli teabe avalikustamise haavatavuse (CVE-2016-0149) kirjeldus: 10 mai 2016

Kokkuvõte

Teabe avalikustamise haavatavuse olemas Transport Layer Security protocol ja protokolli Secure Sockets Layer (TLS/SSL) rakendatud krüptimine komponendi Microsoft .NET Frameworki. Ründaja, kes edukalt kasutas See haavatavus võib dekrüptida krüptitud TLS/SSL-i liiklus.

Haavatavuse kasutada ründaja oleks kõigepealt annavad krüptimata andmete turvalisuse kanal ja seejärel sooritage man-in-Lähis (MiTM) rünnaku suunatud kliendi ja usaldusväärse serveri vahel. See värskendus lahendab haavatavuse muutmisega nii, et .net-i krüptimise komponendina saadab ja saab krüptitud võrgustik pakettides.

See probleem on lahendatud Microsofti turvabülletään MS16-065osana. Selle värskendusega muudetakse nii, et .NET Framework krüptimine komponendi saadab ja saab krüptitud võrgustik pakettides.

Järgmine tabel sisaldab linke standard kirje iga loendis levinud nõrkused ja riskid haavatavuse lahendamiseks.

Haavatavuse pealkiri

CVE number

Avalikustada

Ära kasutada

TLS/SSL-i tüssamine nõrkus

CVE-2016-0149

Jah

Ei

Haavatavuse lahendus

Microsofti turvabülletään MS16-065 kasutusele muudatus põhjustab esimese TLS-i kirje pärast handshake jagada. See põhjustab SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient ja HttpClient (kus põhineb HttpWebRequest) voogude tagasi ühe baidi esimene lugeda kohe järgneb ülejäänud (n-1) baiti järjestikuste loeb. See käitumise muutus ilmneb ainult rakenduste jaoks, mis kasutavad TLS 1.0 + šifri ploki Aheldamise, kuid mitte, kui nad kasutavad TLS 1.1 või TLS 1.2.

Märkus. Eeltingimus, peate installima Microsoft turvabülletääni MS12-006 selle värskenduse.

See muudatus võib põhjustada mõned rakendused, mis põhinevad .NET Frameworki murda. Selles artiklis kirjeldatakse kahte meetodit, mille abil saate värskendada oma taotluse pärast seda, kui rakendate Microsofti turvabülletään MS16-065õigesti töötada.

Ühilduvusprobleemide kergendamise

Variant 1: Aktiveerige TLS 1.2 protokoll

See muudab rakenduse kasutamine TLS 1.2 protokolli registri muutmise või programmiliselt konfigureerimise protokolli versioon.

  • Registri muutmine

    NB!
    Järgige hoolikalt selles jaotises toodud juhiseid. Registri valesti muutmine võib tekitada suuri probleeme. Enne muutmist registri taastamine kui peaks probleeme tekkima.

    .NET Framework 4,0 ja .NET Framework 4.5.x rakendusi, mis töötavad .NET Framework 4.5 ja uuemad versioonid aktiveerida vaikimisi protokolli TLS 1.2 ja TLS 1.1 TLS 1.0, lubades SchUseStrongCrypto registrivõtit. See registrivõti on käsitletud Soovitatud toimingute osas Microsoft Security Advisory 2960358 teema Microsoft TechNeti veebisaidil.

    NB! See registri muudatus toimib ainult siis, kui täidetud on järgmised tingimused:

    • Rakendused, mis kasutavad ServicePointManager vastavalt API-d on ServicePointManager.SecurityProtocol väärtuse selgesõnaliselt seadmine . Sellise klassi näiteks System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestja System.Net.Mail.SmtpClient. Sätte ServicePointManager.SecurityProtocol koodi ülimuslik registrit.

    • Rakendused kasutavad SslStream AuthenticateAsClient(String) ülekoormus.


  • Programmiliselt konfigureerimise protokolli versioon

    .NET Framework 4,0 ja 4,5 rakenduste .NET Framework 4.5 ja uuemad versioonid, mis töötavad ning kasutavad SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) ülekoormuse peab olema kompileeritud, määrates SslProtocols.Tls12, SslProtocols.Tls11ja SslProtocols.Tls kolmanda parameetriga. Kasutamine SslStream klassi täieliku kirjelduse leiate SslStream klassi teema Microsoft Developer (MSDN) veebisaiti.

    Märkus. .NET Frameworki 4.6 ja uuemad versioonid kasutavad TLS 1.2 ja TLS 1.1 TLS 1.0 protokolli vaikesätted. See on kirjeldatud Microsoft Security Advisory 2960358 teema Microsoft TechNeti veebisaidil.


2. võimalus: Pide tükeldada paketid

See värskendus põhjustab ühe kirje tükeldada mitu kirjet. Seega, kui rakendus on saadaval ühe Read kõne täielik kirje oota, sellised rakendused võib murda. Veenduge, et rakendus käitub korralikult, veenduge, et rakendus käsitleb split paketid, tehes Stream.Read kõne õigesti. Saate selle proovi kood saadaval siin viitena parandamine rakenduse Read kõne õigesti teha.

Proovi HTTP-taotluse, mis näitab erinevust käitumist enne (leevendamine) ja pärast (ilma leevendamine) installitud värskendused 3147461 ja 3147458 , lugege jaotist "Lisateavet".

Täielik Stream.Read meetod näiteks teemast Stream.Read meetod (Byte [], Int32, Int32) Microsoft Developer (MSDN) veebisaiti.

Lahendused rakenduste ühilduvusega seotud probleemid

Hoiatus! Lahendustest võib muuta arvuti või võrgu nõrgemaks pahatahtlike kasutajate või pahatahtliku tarkvara, näiteks viiruseid. Me ei soovita lahendustest, vaid teavitame lahendustest, et saaksite ise otsustada. Kasutage lahendustest omal vastutusel.

1. meetod: Värskendage registrivõtmeid (saadaval kõik versioonid .NET Framework)

Keelake SCH_SEND_AUX_RECORD struktuuri (globaalne)

Keelata üksikute rakenduste SCH_SEND_AUX_RECORD struktuur

Keelake SCH_SEND_AUX_RECORD struktuuri (globaalne)

Kõik rakendused, lisage järgmine registri alamvõti:

Registri asukoht: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
DWORD-nimi: SchSendAuxRecord
Value data: 0
Märkus. < Version_number > kohatäide on v4.0.30319 või v2.0.50727, olenevalt versioonist.

32-bitised rakendused, mis töötavad 64-bitiste arvutite, samuti lisage järgmine registri alamvõti:

Registri asukoht: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
DWORD-nimi: SchSendAuxRecord
Value data: 0
Märkus. < Version_number > kohatäide on v4.0.30319 või v2.0.50727, olenevalt versioonist.

Lahendus

Selles artiklis kirjeldatud turvaline režiim ajutiseks keelamiseks klõpsake vastavat linki alla laadida REG-faili ja topeltklõpsake allalaaditud REG-faili registris muudatusi tegema.

Rakenduste suunatud Microsoft .NET Framework 3.5:

Download ManualOptOutSchSendAuxRecord20.reg faili allalaadimine.
Rakenduste suunatud Microsoft .NET Framework 4.0 ja uuemad versioonid:

Download ManualOptOutSchSendAuxRecord40.reg faili allalaadimine.
Selles artiklis kirjeldatud turvaline režiim uuesti lubamiseks klõpsake vastavat linki alla laadida REG-faili ja topeltklõpsake allalaaditud REG-faili registris muudatusi tegema.

Rakenduste suunatud Microsoft .NET Framework 3.5:

Download ManualOptInSchSendAuxRecord20.reg faili allalaadimine.
Rakenduste suunatud Microsoft .NET Framework 4.0 ja uuemad versioonid:

Download ManualOptInSchSendAuxRecord40.reg faili allalaadimine.
Microsofti tugifailide värskenduste allalaadimise kohta lisateavet hõlmava Microsofti teabebaasi artikli kuvamiseks klõpsake järgmist artiklinumbrit:

119591 kuidas Microsofti tugifailide hankimine võrguteenuste kauduMicrosoft skannis seda faili viiruste leidmiseks. Microsoft kasutas uusimat viirusetõrjetarkvara, mis oli faili postitamise päeval saadaval. Faili talletatakse täiustatud turvalisusega serverites, mis aitab takistada faili volitamata muutmist.


Keelata üksikute rakenduste SCH_SEND_AUX_RECORD struktuur

Kõik rakendused, lisage järgmine registri alamvõti:

Registri asukoht: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
DWORD-nimi: Täieliku failitee .exe rakenduste (näiteks C:\MyApp\MyApp.exe)
Value data: 0
Märkus. < Version_number > kohatäide on v4.0.30319 või v2.0.50727, olenevalt versioonist.

32-bitised rakendused, mis töötavad 64-bitiste arvutite, samuti lisage järgmine registri alamvõti:

Registri asukoht: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
DWORD-nimi: Täieliku failitee .exe rakenduste (näiteks C:\MyApp\MyApp.exe)
Value data: 0 (ainult kehtiv väärtus on 0. Muud väärtust ignoreeritakse.)
Märkus. < Version_number > kohatäide on v4.0.30319 või v2.0.50727, olenevalt versioonist.

2. meetod: Rakenduse tasemel (saadaval ainult .NET Frameworki versiooni 4.6 ja uuemate versioonide puhul) konfiguratsiooni muutmine

Alates .NET Frameworki 4.6, saate muuta konfiguratsiooni rakenduse tasemel kood või rakenduse konfigureerimine või registri muutmise kaudu.

.NET Frameworki 4.6 saate seada lüliti, kasutades ühte järgmistest meetoditest. Nendes näidetes turvalisuse funktsiooni keelamiseks.

  • Programmiliselt

    Esimene asi, mida tuleks teha rakenduse käivitamisel järgmine kood. Seda sellepärast, et punkti Teenusehalduri lähtestada ainult üks kord.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Rakenduse konfigureerimine

    Rakenduse konfigureerimine muutmiseks lisage järgmine kirje:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Registrivõti (arvuti globaalne)

    Registri asukohad: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Väärtus: Switch.System.Net.DontEnableSchSendAuxRecord
    Tüüp: String
    Väärtus: Täidetud

    Märkus. Switch.System.Net.DontEnableSchSendAuxRecord = False kõik rakendused.

Lisateabe saamiseks

Järgnev on näide kliendi/serveri side muster enne ja pärast selle värskenduse installimist. See teave on ette nähtud illustratsioon kindlaks teha mis tahes rakenduse purunemise selle paranduse installimise tõttu.

Ilma leevendamine

Koos leevendamine

[Server] ootab ühendused (127.0.0.1:4431)
[Klient] Localhost:4431 ühendamine
[Server] Klient on ühendatud.
[Klient] Ühendatud. Autentimine...
[Server] Kliendi autentida.
[Klient] Saates taotluse (94 baiti)
[Klient] Ootan vastust...

[Server] Saadud 94 baiti: <<< saada / HTTP/1.0
Host: contoso.com
Kasutajaagendi: Rakenduse testimisel

>>>
[Server] Vastas 476 baiti.

[Kliendi 1: 476 baiti] Vastus: <<<<< HTTP/1.1 200 OK

>>>>>

[Server] ootab ühendused (127.0.0.1:4431)
[Klient] Localhost:4431 ühendamine
[Server] Klient on ühendatud.
[Klient] Ühendatud. Autentimine...
[Server] Kliendi autentida.
[Klient] Saates taotluse (94 baiti)
[Klient] Ootan vastust...
[Server] Saadud 1 baiti: <<< G >>>
[Server] Saadud 93 baiti: <<< ET / HTTP/1.0
Host: contoso.com
Kasutajaagendi: Rakenduse testimisel

>>>
[Server] Vastas 476 baiti.
[Kliendi 1: 1 baiti] Vastus: <<<<< H >>>>>
[Kliendi 2: 475 baiti] Vastus: <<<<< TTP/1.1 200 OK

>>>>>


Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×