כיצד גורמי איום מנצלים את ה- Message Block במערכת חלונות?

כיצד גורמי איום מנצלים את ה- Message Block במערכת חלונות?

חלק מתוכנות הכופר והקוד הזדוני הטרויאני ההרסניים ביותר מסתמכים על פרצות ב- Windows Server Message Block (SMB) כדי לנוע דרך הרשת הארגונית. ה- Windows SMB הוא פרוטוקול המשמש מחשבים לצורך שיתוף קבצים ומדפסות, וכן כדי לאפשר גישה לשירותים מרוחקים.

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

פרצות SMB היו כלי מוצלח ביותר עבור גורמי האיום, כשהן שימשו בחלק מההתפרצויות הגדולות והמתוחכמות ביותר של השנים האחרונות. למעשה, הטלמטריה של מוצרי Malwarebytes זיהו 5,315 מופעים של Emotel ו- 6,222 מופעים של TrickBot ברשתות עסקיות – ב- 30 יום בלבד.

מה הופך את הפירצה ליעילה כל כך?

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

לדוגמא, תוכנת הכופר WannaCry, אשר השתמשה בפירצת ה- SMB, הושקה במאי 2017, והיא עדיין ממשיכה להתפשט. להן גרף מתוך נתוני הטלמטריה, נכון לנובמבר 2018.

עברה יותר משנה מחצי  של התפשטות הודות למכונות שלא עודכנו.

מי מנצל את ה- SMB?

כרגע, ישנם שלושה כלי פריצה בשטח אשר משתמשים בפירצת SMB. כלים אלה מכונים EternalBlue, EternalRomance (המשמש את NotPetya, Bad Rabbit ו- TrickBot), ו- EternalChanpion. קיים גם כלי פריצה רביעי בשם EternalSynergy, אבל עד עתה נראה רק PoC שלו – ללא פעילות ממשית בשטח.

כל כלי הפריצה האלה דלפו מקבוצת ShadowBrokets, שלכאורה גנבו אותם מה- NSA. פחות מחודש לאחר ש- ShadowBrokers פרסמו את “הממצאים”, WannaCry כבר יצא לפעולה בשטח. מאז, מספר התקפות נרחבות של קוד זדוני הסתמכו על הפירצה כדי לחדור לרשתות של ארגונים, כולל NotPetya ו- Bad Rabbit ב- 2017, וכעת Emotel ו- TrickBot, אשר ממשיכים לפעול לאורך הרבעון השלישי והרביעי של 2018.

להלן סקירה של חלק מדרכי הפעולה של כלי הפריצה:

Eternal Blue

באג בתהליך של העברת File Extended Attributes ממבנה OS2 למבנה NT על ידי פרוטוקול SMB יכול להוביל ל- Buffer Overflow במאגר ה- non-paged kernel. המאגר מורכב מכתובות זיכרון וירטואלי המוקצות לזיכרון פיזי, כל עוד האובייקטים של התואמים בקרנל נמצאים.

ה- Buffer Overflow הוא פגם בתוכנה המאפשר לנתונים הנכתבים לאזור מסוים בזיכרון (Buffer) לצאת מהגבולות (overflow), והדבר המאפשר לכתוב את הנתונים לאזורים סמוכים בזיכרון. המשמעות היא שהתוקף מסוג לשלוט בתוכן של אזור מסוים בזיכרון שהוא לא אמור להיות מסוגלים לגשת אליו. במקרה של EternalBlue, התוקפים היו מסוגלים לשלוט בתוכן עם הרשאות הפעלה, דבר המוביל לפירצה של “הפעלת קוד מרחוק” (RCE) או ליכולת להפעיל פקודות על מכונת מטרה ברשת.

EternalRomance

EternalRomance היא פירצת RCE המנצלת את CVE-2017-0145 כנגד הפרוטוקול המיושן SMBv1. יש לציין כי שיתוף קבצים על גבי SMB בדרך כלל משמש רק ברשתות מקומיות, וכי הפורטים של SMB בדרך כלל חסומים מפני האינטרנט. עם זאת, אם לתוקף יש גישה לנקודת קצה פרוצה המריצה SMB, היכולת שלו להפעיל קוד זדוני עבור הקרנל ממקום מרוחק – היא בעיה חמורה.

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

במקרים אחרים פירצת בלבול יכולה להוביל ל- heap write או heap spray. זוהי שיטה המשמשת בדרך כלל בכלי פריצה הממקמים כמויות גדולות של קוד באזור זיכרון שהתוקף מצפה שאותו הוא יהיה מסוגל לקרוא. בדרך כלל, יחידות הקוד מצביעות לתחילת הקוד הממשי שכלי הפריצה רוצה להריץ.

לאחר שתהליך ה- Spray מסתיים, כלי הפריצה משתמש בהדלפת נתונים.

EternalCampion

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

במקביל, פעולה היא סוג של בקשה אשר יכולה להקיף מספר פאקטים. לדוגמא, אם הבקשה גדולה מדי מכדי להתאים ל- Message Block יחיד, יכולה להיווצר פעולה בגודל המתאים, והיא תאחסן את הנתונים אשר מתקבלים ממספר SMB.

הפירצה מנוצלת בשתי דרכים. האחת עבור information leak והשניה באמצעות הפעלה של קוד מרחוק. כדי לעשות זאת, פאקט יחיד המכיל מספר SMB נשלח לשרת. חבילת המידע מכילה 3 מרכיבים:

  • בקשה לפעולה ראשית שתופעל מיידית
  • פעולה משנית המפעילה את הבאג של race condition
  • מערך של פעולות ראשיות אשר מבצעות heap spray מתוך מטרה למקם את מבנה הפעולה מאחורי הבקשה הראשית.

מניעה ותיקון

על אף העוצמה שפירצת SMB מספקת לתוקפים, יש תיקון אחד פשוט כדי למנוע מהפירצה להפוך לבעיה: עדכן את המערכות שלך!

הפירצה פועלת אך ורק על גרסאות של חלונות 7, ומיקרוסופט פרסמה עדכון לפירצה תחת Microsoft Security Bulletin MS17-010, כך שאין סיבה שרשתות יישארו חשופות. באמצעות התקנת העדכון, כל הדאגות ייפתרו מיידית.

בנוסף, פתרון אבטחת הסייבר Malwarebytes Endpoint Protection מציע טכנולוגיה חדשנית נגד כלי פריצה, והוא יכול לחסום איומים כגון EternalBlue מלהצניח את הקוד הזדוני שלהם ולפגוע במערכות.

.

Share this post