כדי לסייע לסטודנטים שאני מלמד במקומות שונים ואיכשהו תמיד חסרים לי מאמרים שאני יכול לשלוח לסטודנטים המסבירים למי שלומד מדעי המחשב דברים בסיסיים באבטחת מידע ובעברית. יש לא מעט מאמרים (אשתדל לתת קישורים איפה שיש) עם הסברים אבל ההסברים מיועדים לאנשים שלומדים אבטחת מידע ומכילים כבר מונחים מהתחום שפחות רלוונטיים לאנשים שצריכים ללמוד את המבוא. אז כדי לעזור לעצמי, כתבתי סדרת מאמרים שמסבירים מונחים בסיסיים באבטחת מידע ובדגש על ווב ופיתוח ומה שמפתחים מתחילים צריכים לדעת. במאמר זה אני מסביר על התקפה פשוטה וקלה בשם DOS והתקפה נוספת בשם DDOS.
במאמר הקודם דיברנו על Brute force
איך שרת אינטרנט עובד?
אתרי אינטרנט ואפליקציות אינטרנט נמצאים על שרתי אינטרנט. מה זה שרת אינטרנט? זה בעצם מחשב. מחשב לכל דבר שמחובר לאינטרנט. מה ההבדל בין שרת אינטרנט למחשב ביתי או לפטופ? בתיאוריה? כלום. גם בשרת יש מערכת הפעלה (לפעמים גם מערכת הפעלה גרפית כמו חלונות או לינוקס) וגם הוא מחובר לאינטרנט (בכבלים בדרך כלל אבל אפשר גם ב-WiFi). האמת היא שאפשר להפוך גם את המחשב הביתי לשרת אינטרנט – כל מה שצריך זה להתקין עליו תוכנה שיודעת לקבל קריאה מהרשת.
כשאנו משתמשים בדפדפן ונכנסים לאתר – למשל internet-israel.com, אנו מבצעים מה שנקרא ״קריאה״ או request – הדפדפן שלנו מייצר תקשורת עם שרת האינטרנט ומבקש מידע. מה המידע? באתר אינטרנט פשוט זה פשוט דף ה-HTML וקבצים נוספים שמרכיבים את האתר ומציגים לנו אותו.
בואו ונסתכל לדוגמה על אתר אינטרנט בשם example.com. זה אתר אמיתי לגמרי שאפשר להכנס אליו. מה בעצם קורה כשאנו נכנסים אליו? הדפדפן שלנו יוצר עם התוכנה של השרת (השרת, נזכיר לכם, הוא מחשב לכל דבר שיכול להיות זהה לגמרי למחשב שלכם) שיודעת לקבל פנייה מדפדפן ולהחזיר תשובה.
הדיאלוג הזה של שאלה ותשובה הוא הבסיס של HTTP ותקשורת האינטרנט המוכרת לנו (יש פרוטוקולים נוספים אבל אני לא נכנס אליהם). אנחנו שואלים שאלה, השרת נותן תשובה. אם אתם מכירים כלי מפתחים, אפשר ממש לראות את זה. לחצו F12 בדפדפן או cmd + option + j אם אתם במק ועיברו ללשונית network. הכנסו ל-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 – האתר של עורך הדין גיא אופיר
7 תגובות
היי. פוסט מעולה שמסביר בצורה פשוטה את הנושא.
מה שכן , יש אי דיוק לגבי נזקים של התקפת DDOS והאמת גם לגבי DOS.
רשמת שאפשר פשוט לחכות שהמתקפה תעבור כי אין נזק מעבר להשבתת השירות.
אז כיום כשרוב השירותים והמערכות נמצאים בענן וכל משאב עולה כסף , מתקפות DDOS מייצרות נזקים כלכליים רבים במקומות שיש תשלום לפי צריכת משאבים או בארכיטקטורות שיודעות לעשות scale ( לדוגמא להעלות עוד שרתים במקרה של ריבוי בקשות ) .
מנסיון – אתרים פשוטים שספגו מתקפות הגיעו לעלויות מטורפות בגלל אותן מתקפות
נקודה מעולה, אני אוסיף.
כתבת שמדובר ב"רשלנות של בוני האתר"
ומצד שני מובן מהכתבה שאין באמת פתרון לזה
וגם החומת אש עוזרת רק חלקית.
דבר נוסף מה עושים במקרה שהמתקפה הזאת לא פוסקת,
נניח כל רגע זה מגיע מvpn אחר?
כלומר למה אין תופעה של מתקפת כופר של DDOS שאומרת עד שלא תשלמו לא תוכלו להשתמש בדומיין הזה כי הוא כל הזמן מותקף
ותודה על המאמר
בגדול רוב התוקפים של DDOS לא יכולים להוציא לפועל מתקפה ארוכה באורך של יותר מכמה שעות, שלא לדבר על ימים. בוטנט זה דבר יקר לתחזק וככל שמשתמשים בו יותר גם יותר קל לגלות אותו. לא שמעתי על מתקפת DDOS ארוכה של שבועות למשל. במקרים קיצוניים אפשר למשל להציב בפני כל גולש שאילתת CAPTCHA כדי לוודא שהוא אנושי. קלאודפלייר אפילו תומכת בזה.
אחלה נקודות שמחה.
יש חברות שיש להם מוצרי "הגנה מddos". בהפשטה ממש, מה שהם מספקים זה שרתים שלהם שמנגישים cache של האתר שלך, ביחד עם חוקי חסימה חכמים שמנסים לסנן את התעבורה הבעייתית.
ויש מתקפות כופר של ddos. וגם פושעים שמספקים תמורת תשלום ddos as a service.
"הדיאלוג הזה של שאלה ותשובה הוא הבסיס של TCP ותקשורת האינטרנט המוכרת לנו" – התכוונת HTTP ולא TCP כי אין שאלה/תשובה ב TCP
אכן, טעות סופר שתיקנתי – תודה רבה!