"DGA: The Invisible Code" (איך תוכנות זדוניות חומקות מזיהוי)

(של ברונו ריצ'יו)
26/09/24

Il אלגוריתם יצירת דומיין (DGA) היא טכניקה המשמשת פושעי סייבר ליצירה אוטומטית של סדרה של שמות דומיין (הכתובות שבהן אנו משתמשים כדי לגשת לאתרים). טכניקה זו משמשת כדי להקל על התקשורת בין התוכנה הזדונית לבין השרת שממנו היא מקבלת הוראות, הנקראות שרת פיקוד ובקרה (C2).

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

למה זה כל כך רלוונטי?

אסטרטגיה זו מייצגת משנה משחק בתחום אבטחת הסייבר, מכיוון שהיא מאפשרת לתוקפים להימנע מגילוי והפחתה על ידי אמצעי אבטחה מסורתיים. בעוד בעבר תוכנה זדונית התבססה על תחומים סטטיים (שם דומיין קבוע ונקבע מראש אשר מוכנס לקוד התוכנה הזדונית), או כתובות IP מקודדות (בדומה לתחום סטטי, אך במקום שם תחום, התוכנה הזדונית מכילה כתובת IP ספציפית מקודדת בקוד שלה, תמיד קבועה ו קָבוּעַ מִרֹאשׁ) כדי לתקשר עם שרתי C2 שלהם, האימוץ של DGA הציג א עליז של חוסר חיזוי מה שגורם להתערבות של קבוצה כחולה. דומיינים שנוצרו באופן דינמי הם תמיד חדש, המאפשר לתוקפים להחליף במהירות דומיינים שנפרצו או חסומים תוך שמירה על תקשורת עם התוכנה הזדונית. התקפות מבוססות DGA מוגדרות כהתפתחות של "התחמקות". אלגוריתמים אלו יכולים לייצר אלפי שמות מתחם מדי יום, שבכל אחד מהם ניתן ליצור קשר עם שרת C2, ובכך להבטיח המשך פעילות גם בנוכחות חסימות או תפיסות של דומיינים זדוניים ידועים. גישה זו מספקת לפושעי סייבר א יתרון אסטרטגי, מכיוון שקשה הרבה יותר להגנות מסורתיות, כגון חומות אש או מערכות סינון DNS, לחסום ניסיונות תקשורת. אחד ההיבטים הקריטיים ביותר של טכניקה זו הוא היכולת שלה לשמור על התמדה על פני רשתות שנפגעו. THE DGA לא רק שהם מאפשרים לפושעי סייבר להסתגל במהירות לאמצעי נגד שננקטו על ידי קורבנות (בין אם חברות או יחידים), אלא שהם גם מקשים על הרשויות לשבש לחלוטין את התקשורת בין התוכנה הזדונית לשרתי C2: תוקפים יכולים לשמור על שליטה ברשתות הבוטים שלהם אפילו לאחר שחלק מהתשתיות שלהם פורקו. בהקשר שבו ה איומי סייבר נעשה יותר ויותר מתוחכם וקשה לזיהוי, DGAs מייצגים את אחד האתגרים המשמעותיים ביותר עבור אנשי אבטחת סייבר.

ממה זה מורכב?

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

הדומיינים שנוצרו עשויים להיראות בלתי מזיקים או אקראיים לחלוטין. לדוגמה, תוכנות זדוניות יכולות ליצור דומיינים כמו abc123.net, xyz789.it או italia.it מדי יום, וליצור אלפי וריאציות אפשריות. גישה זו מאפשרת לתוכנות זדוניות לחמוק משיטות סינון DNS מסורתיות, שכן המגוון והנפח של הדומיינים מאפשרים לצוותי אבטחה לחסום את כולם באופן מנע. במקרים רבים, אני פושעי רשת הם משתמשים רק בחלק קטן מהדומיינים שנוצרו, מה שמקשה על פתרונות אבטחה לחזות אילו מהתחומים הללו ישמשו בפועל לתקשורת.

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

תרשים דוגמה של תהליך יצירת תחום זדוני.

תרשים פרוצדורלי של התקפת DGA

במתקפת DGA התוכנה הזדונית מבצעת את האלגוריתם בכל פעם אשר חייב ליצור חיבור עם שרת הפיקוד והבקרה (C2). תהליך זה מתרחש בשלושה שלבים עיקריים:

  1. קלט פרמטר: הגדרת הקריטריונים ה"מתמטיים" שבזכותם מתרחש היצירה המתמדת של התחומים.

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

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

גם אם DGAs מבוססים על "פסאודו" דומיינים שנוצרו באקראי, הAI (בינה מלאכותית) מאפשרת לך ליצור דומיינים על סמך מילים אמיתיות, יצירת שמות מתחם שנראים לגיטימיים, ובכך להגדיל את הסיכוי להתעלמות מדומיינים על ידי מערכות סינון.

מטרה ומטרות של התקפות DGA

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

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

DGAs משמשים גם עבור להפיץ תוכנות זדוניות. הם מאפשרים לבוטנטים ולתוכנות כופר לשמור על תקשורת מתמדת עם שרתי C2, דרכם תוקפים שולחים מטענים חדשים, עדכונים או פקודות. לדוגמה, רשת בוט יכולה לקבל הוראות באילו מטרות לפגוע או אילו נתונים לגנוב.

דוגמה להתקפה עם DGA: "Conficker"

אחת התוכנות הזדוניות המסוכנות ביותר המשתמשות ב- DGA זה היה ללא ספק Conficker2. שוחרר לראשונה ב 2008, Conficker היה אחד מה תולעת, תוכנות זדוניות המשכפלות את עצמו ברשתות מחוברות, (כמו וירוסים ביולוגיים) הנפוצה והקשה ביותר להכחדה בהיסטוריה של אבטחת מחשבים.

להלן המאפיינים שהופכים אותו לאחד הערמומיים ביותר:

שימוש מתוחכם ב-DGA: Conficker ידוע בשימוש ב-DGA יעיל ביותר. בכל יום היא יצרה מספר רב של דומיינים (עד 50.000) שהתוכנה הזדונית יכולה להשתמש בהם כדי להתחבר לשרתי פיקוד ובקרה. זה הקשה על חסימה או השבתה של תשתית הפקודה של התוכנה הזדונית, שכן התחומים השתנו ללא הרף ולא ניתן היה לצפות את כולם.

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

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

חלק מהקושי בהסרת זיהום Conficker טמון ביכולת שלו לחסום גישה לאתרים הקשורים לאבטחה ואנטי וירוס. בנוסף, הפונקציונליות הפעלה אוטומטית על מערכות Windows, מופעל כברירת מחדל, אפשר הפצה והפעלה קלה כאשר מקל USB נגוע ב-CONFICKER חובר למחשב לא נגוע. כדי לסבך עוד יותר את העניינים, מספר לא מבוטל של מכונות לא עודכן מסיבות שונות: בחלק מהמקרים מדובר בפיראטיות, באחרים מדובר במערכות מדור קודם המריצות תוכניות ישנות הנתמכות רק על ידי גרסאות ישנות יותר של Windows. ההדבקה של Conficker הדגישה בעיות אבטחה רבות שטופלו לאחר מכן באופן פעיל עם עדכונים במערכות הפעלה חדשות של Windows. הוא גם הדגיש את הצורך לבצע תיקון באופן קבוע ולשפר את הניהול של מערכות מדור קודם, במיוחד אלו המחוברות לרשת הארגונית.

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

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