דלג לתוכן הראשי
היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.

סיכום

קיימת פגיעות של גילוי מידע קיימת בפרוטוקול אבטחת שכבת התעבורה פרוטוקול Secure Sockets Layer (TLS/SSL) כפי מיושמת ברכיב ההצפנה של Microsoft .NET Framework. תוקף שיצליח לנצל את הפגיעות המתוארת יוכל לפענח תעבורת TLS/SSL מוצפן.

כדי לנצל הפגיעות זו, תוקף צריך תחילה להחדיר נתונים שאינם מוצפנים לתוך ערוץ אבטחה ולאחר מכן לבצע התקפה (MiTM) man בבאמצע בין הלקוח היעד לשרת לגיטימיות. עדכון זה מטפל בפגיעות על-ידי שינוי האופן ברכיב ההצפנה .NET שולח ומקבל מנות רשת מוצפנת.

פגיעות זו הוא קבוע כחלק עלון אבטחה של Microsoft MS16-065. עדכון זה משנה את האופן בו רכיב ההצפנה של .NET Framework שולח ומקבל מנות רשת מוצפנת.

הטבלה הבאה מכילה קישורים לערך רגיל עבור כל פגיעות ברשימה פגיעויות נפוצות ואחת מהן חשיפה.

פגיעות כותרת

מספר ה-CVE

בפומבי

לנצל

פגיעות זיוף של TLS/SSL

CVE-2016-0149

כן

לא

פגיעות רזולוציה

השינוי שהונהגו במסגרת עלון אבטחה של Microsoft MS16-065 גורמת הרשומה הראשונה של TLS לאחר לחיצת היד שיש לפצל. פעולה זו גורמת את SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient ו- HttpClient (היכן בהתבסס על HttpWebRequest) זרמי להחזרת בית בודד עבור קריאה ראשונה, ומיד אחריו הבתים יתר (n-1) בקריאות רצופות. שינוי אופן פעולה זה מתרחש רק עבור יישומים המשתמשים TLS 1.0 + שרשור בלוק צופן, אך לא כאשר הם משתמשים TLS 1.1 או TLS 1.2.

הערה כתנאי מוקדם, עליך להתקין את עלון אבטחה MS12-006 של Microsoft כדי לאפשר עדכון זה.

שינוי זה עשוי לגרום שיישומים מסוימים המבוססים על .NET Framework לשבירה. מאמר זה מתאר שתי הגישות שבאפשרותך להשתמש כדי לעדכן את היישום לפעול כהלכה לאחר החלת עלון אבטחה של Microsoft MS16-065.

גורמים מקלים לגבי בעיות תאימות

אפשרות מס ' 1: לעבור הפרוטוקול TLS 1.2

אפשרות זו הופכת את היישום להשתמש בפרוטוקול TLS 1.2 על-ידי שינוי הרישום, או באופן תוכניתי קביעת התצורה של פרוטוקול גירסה.

  • שנה את הרישום

    חשוב
    בצע את השלבים במקטע זה בזהירות. עלולות להתרחש בעיות חמורות אם תשנה את הרישום באופן שגוי. לפני שתבצע בו שינויים, לגבות את הרישום עבור שחזור במקרה לגרום לבעיות.

    את 4.0 מסגרת .NET ויישומים את .NET Framework 4.5.x הפועלים ב- .NET Framework 4.5 וגירסאות מאוחרות יותר ניתן לעבור פרוטוקול ברירת המחדל TLS 1.2, TLS 1.1 ו- TLS 1.0 על-ידי הפעלת את מפתח הרישום SchUseStrongCrypto . מפתח רישום זה נידון בסעיף פעולות מומלצות של הנושא 2960358 עלון יידוע בנושא אבטחה של Microsoft באתר האינטרנט של Microsoft TechNet.

    חשוב שינוי זה ברישום יפעלו רק אם התנאים הבאים מתקיימים:

    • יישומים המשתמשים APIs מבוסס על ServicePointManager אתה מגדיר את הערך ServicePointManager.SecurityProtocol במפורש . דוגמאות של מחלקות כאלה כוללות System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestו- System.Net.Mail.SmtpClient. הגדרת ServicePointManager.SecurityProtocol בקוד קדימות על פני הרישום.

    • יישומים עושים שימוש עומס יתר של SslStream AuthenticateAsClient(String) .


  • קביעת תצורה של גירסת פרוטוקול באופן תוכניתי

    את 4.0 מסגרת .NET ו- 4.5 יישומים הפועלים ב- .NET Framework 4.5 וגירסאות מאוחרות יותר ולהשתמש בהם עומס יתר של SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) חייב להיות recompiled, ציון SslProtocols.Tls12, SslProtocols.Tls11ו- SslProtocols.Tls כמו הפרמטר השלישי. לקבלת תיאור מלא של אופן השימוש המחלקה SslStream, עיין בנושא מחלקה SslStream באתר האינטרנט של Microsoft מפתחים (MSDN).

    הערה .NET Framework 4.6 וגירסאות מאוחרות יותר להשתמש TLS 1.2, TLS 1.1 ו- TLS 1.0 כברירות פרוטוקול. זה נידון בנושא 2960358 עלון יידוע בנושא אבטחה של Microsoft באתר האינטרנט של Microsoft TechNet.


אפשרות 2: נקודת האחיזה לפצל מנות

עדכון זה גורם לרשומה בודדת ניתן לפצל רשומות מרובות. לכן, אם יישום מצפה הרשומה מלאה תהיה זמינה בקריאה לקריאה יחיד, כגון יישומי עשויים להיפסק. ודא כי היישום מתנהג כראוי, ודא שבו היישום מטפל מנות פיצול על-ידי ביצוע השיחה Stream.Read כראוי. באפשרותך להשתמש את דוגמת הקוד זמין כאן כהפניה כיצד לתקן את היישום כדי לבצע את השיחה לקריאה כראוי.

עבור בקשת HTTP לדוגמה אשר מציג את ההבדל בהתנהגות לפני (עם הפחתת הסיכון) ואת לאחר (ללא הפחתת הסיכון) הותקנו עדכונים 3147461 ו- 3147458 , עיין בסעיף 'מידע נוסף'.

לדוגמה מלאה של השיטה Stream.Read , עיין בנושא שיטת Stream.Read (Byte [], Int32, Int32) באתר האינטרנט של Microsoft מפתחים (MSDN).

דרכים לעקיפת הבעיה כדי בעיות של תאימות יישומים

אזהרה דרכים אלה לעקיפת הבעיה עלולה להפוך את המחשב או הרשת לפגיעים יותר להתקפות של משתמשים זדוניים או של תוכנות זדוניות כגון וירוסים. דרכים אלה לעקיפת הבעיה לא מומלץ, אך אנו מספקים המידע כך שתוכל ליישם דרכי שיקול דעתך. השתמש דרכי באחריותך הבלעדית.

שיטה 1: עדכן את מפתחות הרישום (זמין עבור כל הגירסאות של .NET Framework)

בטל את מבנה SCH_SEND_AUX_RECORD (כללי)

בטל את מבנה SCH_SEND_AUX_RECORD עבור יישומים נפרדים

בטל את מבנה SCH_SEND_AUX_RECORD (כללי)

עבור כל היישומים, להוסיף את מפתח המשנה הבא של הרישום:

במיקום הרישום: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
שם ה-DWORD: SchSendAuxRecord
נתוני ערך: 0
הערה מציין המיקום < version_number > הוא v4.0.30319 או v2.0.50727, בהתאם לגירסת.

עבור יישומי 32 סיביות הפועלות במחשבי 64-סיביות, יש להוסיף גם את מפתח המשנה הבא של הרישום:

במיקום הרישום: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
שם ה-DWORD: SchSendAuxRecord
נתוני ערך: 0
הערה מציין המיקום < version_number > הוא v4.0.30319 או v2.0.50727, בהתאם לגירסת.

פתרון הבעיה

כדי לבטל באופן זמני את מצב מאובטח המתוארות במאמר זה, לחץ על הקישור המתאים כדי להוריד את קובץ ה-. reg ולאחר מכן לחץ פעמיים על קובץ ה-. reg שהורד כדי לבצע השינויים ברישום.

עבור יישומים פילוח של Microsoft .NET Framework 3.5:

Download הורד עכשיו את הקובץ ManualOptOutSchSendAuxRecord20.reg.
עבור יישומים פילוח של Microsoft .NET Framework 4.0 וגירסאות מתקדמות יותר:

Download הורד עכשיו את הקובץ ManualOptOutSchSendAuxRecord40.reg.
כדי להפעיל מחדש במצב מאובטח המתוארות במאמר זה, לחץ על הקישור המתאים כדי להוריד את קובץ ה-. reg ולאחר מכן לחץ פעמיים על קובץ ה-. reg שהורד כדי לבצע השינויים ברישום.

עבור יישומים פילוח של Microsoft .NET Framework 3.5:

Download הורד עכשיו את הקובץ ManualOptInSchSendAuxRecord20.reg.
עבור יישומים פילוח של Microsoft .NET Framework 4.0 וגירסאות מתקדמות יותר:

Download הורד עכשיו את הקובץ ManualOptInSchSendAuxRecord40.reg.
לקבלת מידע נוסף אודות אופן ההורדה של קובצי תמיכה של Microsoft, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

119591 כיצד לקבל קבצי תמיכה של Microsoft משירותים מקווניםMicrosoft סרקה קובץ זה לאיתור וירוסים. Microsoft השתמשה בתוכנת איתור הווירוסים העדכנית ביותר שהיתה זמינה בתאריך פרסום הקובץ. הקובץ מאוחסן בשרתים בעלי אבטחה מוגברת המסייעים למנוע שינויים בלתי מורשים בקובץ.


בטל את מבנה SCH_SEND_AUX_RECORD עבור יישומים נפרדים

עבור כל היישומים, להוסיף את מפתח המשנה הבא של הרישום:

במיקום הרישום: HKEY_LOCAL_MACHINE\Software\Microsoft\. \System.Net.ServicePointManager.SchSendAuxRecord NETFramework\ < version_number >
שם ה-DWORD: הנתיב המלא עבור ה. .exe היישום (לדוגמה, C:\MyApp\MyApp.exe)
נתוני ערך: 0
הערה מציין המיקום < version_number > הוא v4.0.30319 או v2.0.50727, בהתאם לגירסת.

עבור יישומי 32 סיביות הפועלות במחשבי 64-סיביות, יש להוסיף גם את מפתח המשנה הבא של הרישום:

במיקום הרישום: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. \System.Net.ServicePointManager.SchSendAuxRecord NETFramework\ < version_number >
שם ה-DWORD: הנתיב המלא עבור ה. .exe היישום (לדוגמה, C:\MyApp\MyApp.exe)
נתוני ערך: 0 (הערך החוקי היחיד הוא 0. כל ערך אחר תתעלם.)
הערה מציין המיקום < version_number > הוא v4.0.30319 או v2.0.50727, בהתאם לגירסת.

שיטה 2: שינוי תצורה ברמת היישום (זמין רק עבור .NET Framework גירסה 4.6 וגירסאות מאוחרות יותר)

החל מ- 4.6 Framework של .NET, שניתן לשנות את התצורה ברמת היישום באמצעות שינויי תצורה או רישום קוד או יישום.

ב- 4.6 Framework של .NET, באפשרותך להגדיר את המתג באמצעות כל אחת מהשיטות הבאות. דוגמאות אלה להשבית את תכונת האבטחה.

  • באופן תוכניתי

    הדבר הראשון היישום עליך לעשות הוא להפעיל את הקוד הבא. הסיבה לכך היא מנהל נקודת שירות לאתחל פעם אחת בלבד.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • תצורת יישום

    כדי לשנות את תצורת היישום, הוסף את הערך הבא:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • מפתח הרישום (המחשב כללית)

    מיקומי רישום: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    ערך: Switch.System.Net.DontEnableSchSendAuxRecord
    סוג: מחרוזת
    ערך: אמת

    הערה Switch.System.Net.DontEnableSchSendAuxRecord = False עבור כל היישומים.

מידע נוסף

להלן הוא תבנית תקשורת שרת/לקוח לדוגמה לפני והן אחרי התקנת עדכון זה. מידע זה מסופק להמחשה לזיהוי תאונות שבר כל יישום עקב ההתקנה של תיקון זה.

ללא להפחתת הסיכון מאלה

עם להפחתת הסיכון

[שרת] ממתין חיבורים (127.0.0.1:4431)
[לקוח] התחברות localhost:4431
[שרת] הלקוח מחובר.
[לקוח] מחובר. אימות...
[שרת] לקוח מאומתת.
[לקוח] שליחת בקשה (94 הבייטים)
[לקוח] ממתין לתשובה...

[שרת] התקבלו 94 הבייטים: <<< לקבל / HTTP/1.0
Host: contoso.com
סוכן משתמש: בדיקת יישום

>>>
[שרת] השיב עם 476 בתים.

[לקוח 1: 476 בתים] תגובה: <<<<< אישור HTTP/1.1 200

>>>>>

[שרת] ממתין חיבורים (127.0.0.1:4431)
[לקוח] התחברות localhost:4431
[שרת] הלקוח מחובר.
[לקוח] מחובר. אימות...
[שרת] לקוח מאומתת.
[לקוח] שליחת בקשה (94 הבייטים)
[לקוח] ממתין לתשובה...
[שרת] 1 בתים שהתקבלו: <<< G >>>
[שרת] 93 בתים שהתקבלו: <<< ET / HTTP/1.0
Host: contoso.com
סוכן משתמש: בדיקת יישום

>>>
[שרת] השיב עם 476 בתים.
[לקוח בתים 1: 1] תגובה: <<<<< H >>>>>
[לקוח 2: 475 בתים] תגובה: <<<<< אישור TTP/1.1 200

>>>>>


זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×