מבוא לאבטחת מידע: DDOS ו- DOS

מאמר פשוט המסביר ממש מהבסיס.
DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde

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

במאמר הקודם דיברנו על Brute force

איך שרת אינטרנט עובד?

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

כשאנו משתמשים בדפדפן ונכנסים לאתר – למשל internet-israel.com, אנו מבצעים מה שנקרא ״קריאה״ או request – הדפדפן שלנו מייצר תקשורת עם שרת האינטרנט ומבקש מידע. מה המידע? באתר אינטרנט פשוט זה פשוט דף ה-HTML וקבצים נוספים שמרכיבים את האתר ומציגים לנו אותו.

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

מחשב עם חץ לכיוון שרת אינטרנט - תביא לי בבקשה את דף האינטרנט ואז חץ נוסף משרת האינטרנט אל המחשב - הנה דף האינטרנט שביקשת

הדיאלוג הזה של שאלה ותשובה הוא הבסיס של HTTP ותקשורת האינטרנט המוכרת לנו (יש פרוטוקולים נוספים אבל אני לא נכנס אליהם). אנחנו שואלים שאלה, השרת נותן תשובה. אם אתם מכירים כלי מפתחים, אפשר ממש לראות את זה. לחצו F12 בדפדפן או cmd + option + j אם אתם במק ועיברו ללשונית network. הכנסו ל-example.com ותוכלו לראות את הבקשה של הדפדפן והתשובה.

צילום דפדפן עם כלי מפתחים ובקשה אל example.com

מהות התקפת DOS

שרת הוא מחשב לכל דבר ועניין ומחשב יכול פתאו להתקל בעומס ולהתקע. מי שגיימר מכיר את זה – משחקים במשחק ״כבד״ שמעמיס על המחשב ולפתע הוא נתקע ו״מגמגם״. למה זה קורה? כי למחשב יש מגבלות זכרון, כוח עיבוד או אפילו מגבלת מקום וכשנתקלים במגבלות האלו, הוא לא יכול לסיים את המשימות שלו בזמן ויש עיכוב בהשלמתן. העיכוב הזה הוא הגמגום.

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

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

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

התקפה כזו מתרחשת כשתוקפים מארגנים התקפה כזו ומבקשים מהמחשב שלהם לבצע מאות קריאות בשניה באמצעות סקריפט. ההתקפה הזו יכולה לגרום לשרת לא להחזיר תשובה למשתמשים לגיטימיים. שם ההתקפה הוא DOS שזה ראשי תבות של denial-of-service – מניעת שירות. יש הרבה מכניקות ודרכים לבצע הצפה של אתר, אבל העקרון הוא אותו עקרון – בקשות שנועדו להעמיס על השרת.

התקפת DDOS

הבעיה עם התקפת DOS היא שקל יחסית למנוע אותה כי היא מתקפה ממקור בודד. כלומר ממחשב אחד שקל לזהותו ולחסום אותו. אם למשל יש מחשב שתוקף אותי, הוא מגיע מכתובת IP אחת ואני יכול לחסום אותה. צעד נוסף הוא פשוט לארגן הרבה תוקפים שכולם ביחד מציפים את השרת המותקף. כיוון שמדובר ברשימה גדולה של תוקפים, אז זו התקפה שהיא מבוזרת. ביזור היא מילה שמשמעותה היא חלוקת סמכויות והתקפה מבוזרת זו התקפה שאין לה מקור אחד אלא מגוון מקורות שכל אחד מהם לוקח חלק במתקפה. ראשי התבות הן distributed denial-of-service.

הכנתי דיאגרמה קטנה שמראה את ההבדל בין DOS ל-DDOS. משתמש אחד שיוצר הרבה בקשות (שזה DOS) מול הרבה משתמשים שכל אחד יוצר הרבה בקשות (זה DDOS)

בגדול איש אחד ששולח הרבה התקפות אל שרת אינטרנט והרבה אנשים ששולחים הרבה התקפות אל שרת אינטרנט.

איך בעצם יוצרים מתקפת DDOS

יש כמה דרכים ליצור מתקפה כזו – בפשטות – אפשר ממש להתארגן כמו פעם – באמצעות תקשורת רגילה. ראינו את זה במבצעי אנונימוס שונים שמבקשים מאנשים להפעיל תוכנה על המחשב שיוצרת בקשות אל היעדים. אפשר גם לראות את זה באתרים כמו https://fuck-hamas.com שהוקם על מנת להלחם בחמאס ומאפשר לאנשים לשלוח הרבה בקשות אל אתרי חמאס או אתרים אחרים.

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

התגוננות מ-DDOS

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

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

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

סיקור בתקשורת

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

מאקו: מתקפות הסייבר המרובות בחודש אפריל: "כמות האתרים שנפגעה עצומה"

Ynet: אתר הביטוח הלאומי נפל לזמן קצר בשל מתקפת סייבר: "לא נפרצו מאגרי מידע"

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

מקורות ומידע נוסף

מאמר מומלץ באתר של נעם רותם על DOS והתקפת DDOS

ניתוח משפטי של השלכות התקפת DOS – האתר של עורך הדין גיא אופיר

מאמר על התקפת DOS באתר מיקרוסופט

קלאודפלייר – הסבר ועבודה איתו

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

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

גלילה לראש העמוד