מחבר: וין ט. נגוין - ראש צוות
מָבוֹא
פגיעות במערכת מחשב היא חולשה שתוקף יכול לנצל כדי להשתמש במערכת באופן לא מורשה [1]. Software פגיעות, בפרט, היא אתגר אבטחת סייבר שארגונים חייבים להתמודד איתו באופן קבוע, בשל האופי והמורכבות המשתנים ללא הרף של תוכנה.
השיטות הנפוצות ביותר בהן משתמשים ארגונים כדי להעריך את הסיכון שלהם לפגיעויות ברשתות המחשבים שלהם ניתנות לקבץ לשתי קטגוריות עיקריות: מבוססות רשת ובסיסות מארח [2]. שיטות מבוססות רשת בודקות את הרשת מבלי להתחבר לכל מארח, כדי לזהות שירותים, מכשירים ונתונים פגיעים במעבר. שיטות מבוססות מארח מתחברות לכל מארח ואוספות רשימה של תוכנות, רכיבים ותצורות פגיעות. כל קטגוריה מטפלת בסיכון בדרכים שונות, אך אף אחת מהן אינה יכולה לזהות פגיעויות אלא אם כן תוכנה פגיעה כבר פרוסה במארח.
בפועל, הערכות מתוזמנות בדרך כלל כך שלא ישפיעו על הפעילות הרגילה. זה משאיר חלון הזדמנויות בין הזמן שבו התוכנה הפגיעה נפרסת לבין הזמן שבו מתחילה ההערכה, שתוקפים יכולים להשתמש בו כדי לפגוע במארח, וכך גם ברשת.
מצב זה דורש שיטת סריקה שיכולה לסגור את החלון ולהפחית את הסיכון הכולל לפגיעות. OPSWAT file-based vulnerability assessment הטכנולוגיה עושה זאת על ידי שיוך קבצים בינאריים (כגון קבצי התקנה, קובץ הפעלה, ספרייה דינמית וכו') לפגיעויות שדווחו. שיטה זו יכולה לזהות רכיבי תוכנה פגיעים לפני פריסתם, כך שאנליסטים של אבטחה ומנהלי מערכת יוכלו לנקוט בפעולה מתאימה במהירות, ובכך לסגור את החלון.
בסעיפים הבאים, נסביר את הטכנולוגיה ואת מקרי השימוש שלה ביתר פירוט וניתן דוגמאות למתקפות ידועות הקשורות למקרי שימוש אלה. לאחר מכן נציג הדגמת ניצול ונסכם לגבי הטכנולוגיה והפוטנציאל שלה.
מדוע נדרשת שיטת גילוי נוספת
מגבלות השיטות המסורתיות
שיטות מסורתיות לגילוי פגיעויות תוכנה פועלות ברמה מופשטת. כאשר סריקה מבוססת רשת בודקת רשת מחשבים וסריקה מבוססת מארח אוספת נתונים ממכונה, הן בדרך כלל קובעות אילו בדיקות להריץ בהתבסס על סביבת המערכת, כדי להבטיח ביצועים גבוהים (זמן סריקה, רוחב פס רשת, שימוש בזיכרון וכו') ולסנן תוצאות לא רלוונטיות. לעיתים, שיטות הערכה מסתמכות על סביבת המערכת לקבלת מידע עד כדי כך שהן אינן מבצעות בדיקות מתאימות, עקב ייחודיות באותה סביבה עליה הן מסתמכות.
לדוגמה, אם שירות רשת פגיע מושבת לפני ביצוע הערכה (בטעות או במכוון), הסריקה לא תזהה פגיעות כלשהן בשירות. כמו כן, מחיקת מפתח הרישום של Windows המכיל את נתיב ההתקנה של יישום עלולה להשאיר את היישום עצמו ואת הפגיעויות שלו שלמים ולא מזוהים על ידי סריקה מבוססת מארח. בשני המקרים, שיטות הסריקה פחות יעילות מכיוון שהן מסתמכות על טביעת הרגל של המוצר המותקן.
מוצר מותקן הוא אוסף של קבצים (כגון קובץ הרצה, ספרייה, מסד נתונים וכו') הארוזים יחד ומשולבים עם לוגיקת פריסה. לוגיקת הפריסה בדרך כלל עוקבת אחר מוסכמה לכתיבת טביעת הרגל של המוצר למיקום (לדוגמה, הרישום במערכת ההפעלה Windows, פורט 3306 עבור MySQL). טביעת רגל זו אינה מגדירה את המוצר עצמו וניתן לשנותה בכל עת במהלך חיי המוצר. לכן, הסתמכות על טביעת הרגל (כפי שעושות סריקות מבוססות רשת וסריקות מבוססות מארח) כדי לזהות את המוצר ואת הפגיעות שלו כרוכה בסיכון לזיהוי שגוי.
הצגת סריקה מבוססת קבצים
File-based vulnerability assessment שונה משיטות הערכה מסורתיות. כפי שמרמז שמו, הוא פועל על בסיס קובץ אחר קובץ ומתעלם מכל האבסטרקציות המוצר ברמה גבוהה. על ידי ניתוח כל פגיעות מדווחת ומיפוי שלהן למתקיני מוצר וקבצי רכיבים עיקריים (פטנט אמריקאי 9749349 B1), file-based vulnerability assessment יכול לזהות האם קובץ בינארי משויך לפגיעות, ובכך לחשוף פגיעויות גם כאשר המוצר אינו פועל או שטביעת הרגל שלו שונתה.
בעוד שההבדל בין סריקה מבוססת קבצים לסריקה מבוססת רשת ברור, ההבדל בין סריקה מבוססת קבצים לסריקה מבוססת מארח אינו כה ברור. ניתן לטעון שסריקה מבוססת מארח אינה מסתמכת לחלוטין על טביעת הרגל של המוצר, אלא שהיא בודקת גם את גרסת הקובץ של הרכיב/ים העיקרי/ים של המוצר. לכן, ניתן לשנות את לוגיקת הסריקה כך שתבדוק רק את גרסת הקובץ הזו, ובכך להפוך סריקה מבוססת קבצים לתת-קבוצה של סריקה מבוססת מארח.
זה לא המצב, שכן:
- סריקה מבוססת מארח לרוב מתוכנתת לשימוש הן בסביבת המערכת והן בשטח המוצר כדי לסנן אילו בדיקות לבצע.
- על ידי התמקדות במציאה וניתוח של הקבצים הגורמים לפגיעויות, סריקה מבוססת קבצים יכולה לזהות פגיעויות שקשה לזהות בשיטה מבוססת מארח ומתאימה למקרי שימוש רבים יותר.
סריקה מבוססת קבצים יכולה לשמש לזיהוי מתקינים פגיעים, חבילות קושחה, קבצי ספרייה, קבצי רכיבי מוצר וכו' העוברים אל ומחוץ לרשתות דרך שערים או אל ומאת נקודות הקצה (דרך דוא"ל, כונני הבזק וכו'). זה מאפשר למנהלי מערכת ולמשתמשים לבדוק את הפגיעות של מוצר לפני השימוש בו ולהבטיח הגנה כאשר המארח אינו נתמך על ידי שיטות הסריקה מבוססות המארח או הרשת בהן משתמש הארגון כעת.

File-based vulnerability assessment ניתן להשתמש בטכנולוגיה גם כדי לגלות פגיעויות פוטנציאליות במכונות קיימות. מכיוון ששיטות סריקה מסורתיות בדרך כלל מבצעות בדיקות פגיעויות על סמך דיווחים מעורפלים ברמה גבוהה במקורות חשיפה ציבוריים, הסריקה עצמה נעצרת לעתים קרובות ברמה גבוהה (טביעת רגל של המוצר) ואינה נכנסת לפרטים של הפגיעות או של המוצר המדווח.
עם זאת, מכיוון שמוצרים משתמשים לעתים קרובות מחדש ברכיבים זה של זה (ספריות דינמיות ושירותים משותפים הם כמה דוגמאות), עדכון מוצר פגיע או אפילו סילוקו אינו תמיד מבטיח שהקבצים הגורמים לפגיעות נעלמו. ייתכן שהם עדיין נמצאים איפשהו במערכת הקבצים ולספק פלטפורמה לתוקפים לחבר מחדש את הרכיבים הללו ולזרוע הרס. לקבצים אלה יש לעתים קרובות את כל השלמות שניתן לבקש. יש להם מטרה ברורה, הם ידועים באופן נרחב, מגיעים ממקורות מהימנים, יש להם חתימות תקפות ועדיין קיימים בחלק מחבילות התוכנה העדכניות ביותר. File-based vulnerability assessment טכנולוגיה מאפשרת למנהלי מערכות לסרוק את המכונות ולמצוא קבצים פגיעים אורבים לפני שלתוקפים יש הזדמנות להשתמש בהם.

אתגרים עם הטכנולוגיה
ועדיין, לפעולה ברמת הקובץ יש מגבלות. היא עשויה לסמן קובץ כפגיע כאשר הפגיעות דורשת טעינה של מספר קבצים יחד כדי שתופעל (תוצאה חיובית כוזבת). זה נובע בין היתר מחוסר ההקשר (על ידי סריקת קובץ יחיד) וחוסר הבהירות של דוחות הגילוי. היא עשויה גם לסמן קובץ פגיע באמת כנקי (תוצאה שלילית כוזבת), עקב חוסר שלמות של מסד הנתונים של הקבצים, ושוב, חוסר הבהירות של הדוחות.
בְּ OPSWAT אנו מבינים זאת ומשפרים כל הזמן את שלנו file-based vulnerability assessment טכנולוגיה, כך שתכסה יותר פגיעויות, תוך הפחתת שיעורי חיובי/שלילי שגוי. שילבנו טכנולוגיה זו ברבים מהמוצרים שלנו MetaDefender משפחה (כגון MetaDefender Core , MetaDefender Cloud , Drive , Kiosk , ICAP Server וכו'), כדי לסייע לארגונים לספק הגנה מעמיקה על הרשתות הקריטיות שלהם [3].
ניצולים ידועים
קשה מספיק למנהלי מערכות לנטר את דוחות הגילוי של כל התוכנות שהארגון משתמש בהן, שלא לדבר על לדעת ולנטר את כל הרכיבים בתוך התוכנה הזו. זה מאפשר לתוכנה המשתמשת ברכיבים ישנים המכילים פגיעויות להתחמק מגילוי ולחדור לתוך ארגונים. זה יכול להפוך רכיבים פגיעים לבעיה גדולה.
דוגמה לכך היא CVE-2019-12280 [4], פגיעות בלתי מבוקרת של נתיב חיפוש ספרייה ב-Dell SupportAssist. היא מאפשרת למשתמש בעל הרשאות נמוכות לבצע קוד שרירותי תחת הרשאות SYSTEM ולקבל שליטה מלאה על מכונה. במקור היא הגיעה מרכיב שסופק על ידי PC-Doctor לאבחון מכונות. שני הספקים פרסמו תיקונים כדי לתקן את הבעיה.
דוגמה נוספת היא CVE-2012-6706 [5], פגיעות קריטית של פגיעה בזיכרון שעלולה להוביל להפעלת קוד שרירותי ולפגיעה במכונה בעת פתיחת קובץ שנוצר במיוחד. במקור דווח כי היא משפיעה על מוצרי האנטי-וירוס של Sophos, אך מאוחר יותר התגלה כי מקורה ברכיב בשם UnRAR, המטפל בחילוץ קבצים [6].
פגיעויות מסוג זה לעיתים קרובות אינן ניתנות לדיווח מלא, מכיוון שישנם מוצרים רבים מדי המשתמשים ברכיבים הפגיעים. לכן, גם כאשר מנהלי מערכת יודעים על כל מוצר שנמצא בשימוש ועוקבים אחריו מקרוב במקורות גילוי נפוצים, עדיין יש מקום רב לתוקף לחדור דרכו.
הַדגָמָה
בואו נבחן מקרוב מקרה שבו רכיב פגיע גורם לבעיות במארח. נשתמש בגרסה ישנה של Total Commander [7] המכילה UnRAR.DLL [8] המושפע מ-CVE-2012-6706 [5]. שימו לב ש-CVE זה אינו מדווח על Total Commander. משתמשים מתקדמים עם הרשאות ניהול משתמשים לעתים קרובות בתוכנה זו, כך שניצול מוצלח של הפגיעות עשוי לסייע לתוקף להשתמש במארח כדי להשתלט על רשת של ארגון.
מפרט הדגמה:
- מערכת הפעלה: Windows 10 1909 x64.
- Software Total Commander גרסה 8.01 x86 עם ספריית UnRAR גרסה 4.20.1.488.
- הנתונים המעובדים נוצרו על ידי קבוצת המחקר של גוגל לאבטחה ב-Exploit-DB [9].
פגיעה בזיכרון מתרחשת כאשר Total Commander משתמש ב-UnRAR.DLL כדי לחלץ קובץ שנוצר במיוחד. לאחר מכן, התוקף יכול להריץ קוד שרירותי על המכונה עם הרשאות של משתמש Total Commander. תוקפים מתוחכמים עלולים לשתול קבצים לגיטימיים לכאורה אך פגיעים בכל רחבי המכונה לצורך התקפות נוספות.

גרסאות עדכניות של Total Commander אינן סובלות מפגיעות זו, מכיוון שהן משתמשות בגרסה חדשה יותר של UnRAR.DLL. לכן, כמו תמיד, על המשתמשים לעדכן את התוכנה שלהם, גם אם אין דוח גילוי נאות לגביהם, ובמיוחד אם לא ביצעו עדכון במשך זמן רב (גרסה זו של Total Commander שוחררה בשנת 2012).
מַסְקָנָה
Software פגיעויות מאפשרות לתוקפים לקבל גישה או להשתלט על משאבי ארגון. שתי שיטות נפוצות לגילוי פגיעויות הן סריקה מבוססת רשת וסריקה מבוססת מארח. הן בדרך כלל פועלות ברמת הפשטה גבוהה ועשויות להחמיץ מידע חשוב, עקב שינויים בסביבת המחשב.
OPSWAT של file-based vulnerability assessment הטכנולוגיה פועלת ברמת הקובץ כדי להתריע למנהלי המערכת על מתקיני תוכנה ורכיבים פגיעים הנכנסים ויוצאים מהארגון, ובכך להפחית את סיכוני האבטחה הן לפני הפריסה והן במהלך השימוש. הטכנולוגיה שולבה ב MetaDefender מוצרים כגון Core , Cloud API , Drive , Kiosk וכו' כדי לכסות מגוון רחב של מקרי שימוש.
גילוי פגיעויות על בסיס קובץ אחר קובץ שונה משיטות מסורתיות, ויש לו פוטנציאל חדש, מקרי שימוש חדשים, כמו גם אתגרים. OPSWAT אנו משפרים ללא הרף את הטכנולוגיה שלנו כדי להתגבר על האתגרים ולסייע בהגנה על הרשתות הקריטיות של ארגונים מפני איומי סייבר המתפתחים ללא הרף.
הפניות
[1] "פגיעות (מחשוב)", [באינטרנט].
[2] "סורק פגיעויות", [באינטרנט].
[3] " MetaDefender - פלטפורמה מתקדמת למניעת איומים", [באינטרנט ].
[4] "CVE-2019-12280 - MetaDefender ," [באינטרנט].
[5] "CVE-2012-6706 - MetaDefender ," [באינטרנט].
[6] "בעיה 1286 - מסנן VMSF_DELTA ב-unrar מאפשר כתיבה שרירותית לזיכרון - Project Zero", [באינטרנט].
[7] "טוטאל קומנדר - בית", [באינטרנט].
[8] "ארכיון WinRAR - RARLAB," [באינטרנט] .
[9] "unrar 5.40 - סינון 'VMSF_DELTA' כתיבה שרירותית לזיכרון", [מקוון].
