פעם התקפת DDoS הייתה דורשת הרבה משאבים ומחשבים, אבל היום אפשר להפוך כל ראוטר למכונת מלחמה משומנת
לפני זמן מה, כדי לייצר התקפת DDoS רצינית, התוקף היה צריך לשלוט ברשת זומבים – מאות או אלפי מחשבים ברחבי העולם שעליהם הוא הצליח להתקין בדרך כלשהי תוכנת שליטה שמאפשרת לו להוציא מהם התקפות. להקים ולנהל רשת כזו זה לא עסק פשוט.
אבל העולם מתקדם והיום יש שיטות פשוטות יותר לתקוף באינטרנט, כשאחת השיטות הפשוטות והנפוצות ביותר היא DNS Apmlification. לא צריך להחדיר כלום לשום דבר כדי לייצר התקפות במימדי ענק, שכמעט בלתי אפשרי לאתר את מקורן.
איך זה עובד?
כשאתם רוצים להגיע לאתר כלשהו, נאמר hwzone.co.il, אתם צריכים לדעת מהי כתובת ה- IP שלו. את התרגום בין שם הדומיין לכתובת IP מבצע עבורכם שרת ה-DNS. בקיצור, השרת אליו אתם פונים, בדרך כלל זה של ספק האינטרנט שלכם, פונה לאחד מהשרתים הראשיים שכתובתם קבועה ושואל אותם מי אחראי על הדומיין il. כשהוא מקבל תשובה, הוא פונה לאותו שרת ושואל אותו מי אחראי על הדומיין co.il. את שרת ה- DNS שאחראי על co.il הוא שואל מהי כתובתו של hwzone.co.il ואת התשובה הסופית שהוא מקבל, הוא מעביר אל המחשב שלכם. הפעולה הזו נקראת שאילתת DNS רקורסיבית.
אבל אפשר לשאול שרתי DNS גם שאלות אחרות, לא רק "מהי כתובת ה- IP של הדומיין". ישנן שאילתות שעבור דומיינים מסויימים, מפיקות תשובות מאוד גדולות. למשל, השאילתה הקטנטנה הבאה:
> set type=any > fkfkfkfr.com.
מחזירה את התשובה הזו:
Server: google-public-dns-a.google.com Address: 8.8.8.8 Non-authoritative answer: fkfkfkfr.com nameserver = ns5.fkfkfkfr.com fkfkfkfr.com nameserver = ns6.fkfkfkfr.com fkfkfkfr.com internet address = 204.46.43.89 fkfkfkfr.com internet address = 204.46.43.90 fkfkfkfr.com internet address = 204.46.43.91 fkfkfkfr.com internet address = 204.46.43.92 fkfkfkfr.com internet address = 204.46.43.93 fkfkfkfr.com internet address = 204.46.43.94 fkfkfkfr.com internet address = 204.46.43.95 fkfkfkfr.com internet address = 204.46.43.96 fkfkfkfr.com internet address = 204.46.43.97 fkfkfkfr.com internet address = 204.46.43.98 fkfkfkfr.com internet address = 204.46.43.99 fkfkfkfr.com internet address = 204.46.43.100 fkfkfkfr.com internet address = 204.46.43.240 fkfkfkfr.com internet address = 204.46.43.241 fkfkfkfr.com internet address = 204.46.43.242 fkfkfkfr.com internet address = 204.46.43.1 fkfkfkfr.com internet address = 204.46.43.2 fkfkfkfr.com internet address = 204.46.43.3 fkfkfkfr.com internet address = 204.46.43.4 fkfkfkfr.com internet address = 204.46.43.5 fkfkfkfr.com internet address = 204.46.43.6 fkfkfkfr.com internet address = 204.46.43.7 fkfkfkfr.com internet address = 204.46.43.8 fkfkfkfr.com internet address = 204.46.43.9 fkfkfkfr.com internet address = 204.46.43.10 fkfkfkfr.com internet address = 204.46.43.11 fkfkfkfr.com primary name server = ns5.fkfkfkfr.com responsible mail addr = ns6.fkfkfkfr.com serial = 2012291001 refresh = 28800 (8 hours) retry = 86400 (1 day) expire = 3600000 (41 days 16 hours) default TTL = 86400 (1 day)
למעשה, התשובה הרבה יותר ארוכה – יש שם 254 רשומות, מחקתי את רובן. במקרה הזה, השאלה תופסת כמה עשרות בייטים, התשובה היא כמה קילובייטים.
בעיקרון, שרתי DNS שמבצעים רקורסיות אמורים לשרת אך ורק את הלקוחות שלהם: השרתים של נטוויז'ן, למשל, לא יענו לשאילתות מכתובות IP של בזק בין לאומי. אבל לפעמים, בגלל עצלנות, חוסר איכפתיות או חוסר ידע, משאירים את שרת ה- DNS גם פתוח לעולם וגם רקורסיבי. כל מה שהתוקף שלנו צריך לעשות הוא לסרוק את מרחב הכתובות של האינטרנט בחיפוש אחרי שרתי DNS שעונים לכל אחד ומבצעים רקורסיות וכשיש לו רשימה מכובדת של שרתים (או שהוא הוריד אחת כזו מאחד מהפורומים שנוגעים בדבר) הוא יכול לשלוח אליהם המוני שאילתות שכאלו, אבל במקום שכתובת השולח תהיה כתובת ה-IP שלו, הוא שולח אותן עם כתובת IP מזוייפת, זו של הקורבן המיועד שלו.
דוגמה מוחשית
נאמר שכתובת התוקף היא 1.1.1.1, כתובת הקורבן היא 2.2.2.2 וכתובת שרת ה- DNS היא 3.3.3.3. התוקף שולח הרבה שאילתות ל-3.3.3.3 שבהן הוא מבקש את פרטיו של דומיין כמו fkfkfkfr.com, אבל את הבקשות האלו הוא שולח בשמו של 2.2.2.2. שרת ה- DNS, שלא יודע שהכתובת שממנה קיבל את השאלה זוייפה, עונה למי שהוא חושב ששאל ושולח תשובה גדולה ל-2.2.2.2. מאחר שהשאילתות קטנות, התוקף שלנו יכול לייצר המון מהן בזמן קצר. שרתי ה-DNS שמקבלים אותן מחזירים בתגובה תשובות שגדולות בהרבה מהשאילתה המקורית, כלומר מגבירים את ההתקפה.
והתוצאה? תוקף עם רוחב פס יוצא של 10Mbps בלבד, אם הוא שולח שאילתות שהתשובה להן גדולה פי 500 מהשאילתה, יכול לייצר התקפה בגודל 5Gbps בלי להחדיר תוכנת זומבי לאף מחשב ברשת. למעשה, התקפות של מאות גיגה-ביט לשניה הפכו לנפוצות בזכות הגברת DNS (והגברת NTP, שעובדת בצורה דומה).
איך זה קשור אלי?
הרי אין לכם שרת DNS, נכון? אם יש לכם נתב, דווקא יש לכם שרת DNS – הנתב עצמו. בדרך כלל, שרתי ה-DNS מוגדרים לענות באופן רקורסיבי לשאילתות מהרשת הפנימית שלהם בלבד, כך שהם משרתים רק את המחשבים שלכם וזהו, אבל ישנם נתבים שבהם שרתי ה-DNS הושארו פתוחים גם לרשת החיצונית. למה לא? מבחינתכם אין הבדל בין שרת שפתוח רק לכם לשרת שפתוח לכל העולם, בשני המקרים הוא משרת אתכם כמו שצריך, והרי אף אחד לא הולך לשאול דווקא את הנתב שלכם איך מגיעים ל-fkfkfkfr.com אם הוא לא מחובר אליו, נכון? עד שמתחילים לעשות את זה.
אז פתאום האינטרנט מתחיל לזחול. אתם עשויים לחשוד שחדרו לכם לרשת, אבל לא תמצאו שום דבר חשוד על אף מחשב ברשת – אין פרוססים לא ידועים, אין ניצול לא מוסבר של רוחב הפס, ה-CPU לא גבוה בלי סיבה, הכל נראה תקין. אבל אם תבדקו מה יוצא מהנתב, אתם עלולים לגלות שאתם מפציצים במלוא רוחב הפס שלכם, למרות שאתם לא מעלים כלום לאף אחד.
נשמע היפותטי לגמרי? בשבועות האחרונים אני רואה את זה ללא הפסקה אצל הרבה משתמשים ביתיים מספקי אינטרנט שונים. ברוכים הבאים לעולם החדש, בו לא משנה כמה טוב תגנו על המחשב שלכם, הנתב עדיין יכול לשמש כתוקף על חשבונכם.
לחצו כאן למעבר לדיון המקורי בפורום
אם גם אתם חווים בעיות במחשב אתם מוזמנים להיעזר בפורום תמיכה טכנית