שלוש נקודות תורפה שנמצאו בערימות TCP של לינוקס המובילות לשלילת שירות מרחוק

קריסת לינוקס

Recientemente פרסמה את החדשות על זיהוי מספר נקודות תורפה קריטיות בערימות TCP של לינוקס ו- FreeBSD זה מאפשר לתוקף להתחיל מרחוק כשל בליבה או לגרום לצריכה מוגזמת של משאבים על ידי עיבוד חבילות TCP מעוצבות במיוחד (חבילת מוות).

הבעיות נגרמות על ידי שגיאות בידיות בגודל המרבי של חסימת הנתונים בחבילת TCP (MSS, גודל קטע מקסימאלי) ובמנגנון לזיהוי חיבורים סלקטיביים (SACK, זיהוי TCP סלקטיבי).

מהי הכרה סלקטיבית?

זיהוי TCP סלקטיבי (SACK) זהו מנגנון שבו מקלט הנתונים יכול ליידע את השולח על כל הסגמנטים שהתקבלו בהצלחה.

זה מאפשר לשולח להעביר מחדש את פלחי הזרם החסרים מתוך הסט 'הידוע' שלו. כאשר TCP SACK מושבת, נדרשת קבוצה גדולה יותר של שידורים חוזרים כדי לשדר מחדש רצף שלם.

בגרעין הלינוקס הבעיות מתוקנות בגרסאות 4.4.182, 4.9.182, 4.14.127, 4.19.52 ו- 5.1.11. הפתרון ל- FreeBSD זמין כתיקון.

עדכוני חבילות גרעין משוחררים עבור דביאן, RHEL, SUSE / openSUSE, ALT, אובונטו, פדורה ו- Arch Linux.

CVE-2019-11477 (פאניקה של SACK)

הבעיה מתבטא בגרעינים של לינוקס החל מיום 2.6.29 ומאפשר לך לקרוס את הליבה (בהלה) בעת שליחת סדרת חבילות SACK עקב הצפה שלמה בבקר.

להתקפה, מספיק להגדיר את ערך MSS ל- 48 בתים עבור חיבור TCP ושליחת רצף של חבילות SACK מסודרות בצורה מסוימת.

מהות הבעיה היא שהמבנה tcp_skb_cb (מאגר שקעים) מיועד לאחסון 17 שברים ("הגדר MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17").

בתהליך שליחת מנות, היא ממוקמת בתור השליחה ו- tcp_skb_cb מאחסן פרטים על החבילה, כגון מספר הרצף, הדגלים, כמו גם השדות "tcp_gso_segs" ו- "tcp_gso_size" המשמשים למשלוח מידע על פילוח לבקר (TSO, Segment Segment Download) לעיבוד פלחים בצד כרטיס הרשת.

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

כפתרון להגנה, באפשרותך להשבית עיבוד SACK או לחסום חיבורים עם MSS קטן (עובד רק כאשר אתה מגדיר sysctl net.ipv4.tcp_mtu_probing ל- 0 ועשוי לשבור קצת נורמלי עם MSS נמוך).

CVE-2019-11478 (איטיות SACK)

הכישלון הזה גורם להפרעה במנגנון SACK (בעת שימוש בליבת לינוקס ב 4.15) או צריכת משאבים מוגזמת.

הבעיה מתבטאת כאשר מעובדים חבילות SACK בעלות מבנה מיוחד אשר באמצעותן ניתן לפצל את תור השידור החוזר (TCP retransmission). הפתרונות להגנה דומים לפגיעות הקודמות

CVE-2019-5599 (איטיות SACK)

מאפשר לגרום לפיצול של מפת החבילות שנשלחת בעת עיבוד רצף SACK בתוך חיבור TCP יחיד וגורם לפעולה לחיפוש רשימה עתירת משאבים.

הבעיה מתבטאת ב- FreeBSD 12 עם מנגנון זיהוי אובדן מנות RACK. כדרך לעקיפת הבעיה ניתן להשבית את מודול RACK (לא נטען כברירת מחדל, מושבת על ידי ציון sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019-11479

הפגם מאפשר לתוקף לגרום לליבת הלינוקס לחלק את התגובות למספר מקטעי TCP, שכל אחד מהם כולל 8 בתים בלבד של נתונים, מה שעלול להוביל לעלייה משמעותית בתעבורה, להגדלת עומס המעבד ולערוץ תקשורת סתום.

בנוסף, הוא צורך משאבים נוספים (כוח מעבד וכרטיס רשת).

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

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

משתמש מרוחק יכול לעורר בעיה זו על ידי הגדרת גודל המקטע המרבי (MSS) של חיבור TCP בגבול הנמוך ביותר שלו (48 בתים) ושליחת רצף של חבילות SACK המיוצרות במיוחד.

כדרך לעקיפת הבעיה, מומלץ לחסום חיבורים עם MSS נמוך.


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.