PracticU

הגנה מהתקפות DDOS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › הגנה מהתקפות DDOS
מילון מושגים:
DoS - מתקפת מניעת שירות: הצפת שירות בבקשות כדי להעמיס עליו ולמנוע ממשתמשים לגיטימיים לקבל אותו.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
AJAX - טכניקה שמאפשרת לדף אינטרנט לשלוח ולקבל נתונים מהשרת ברקע ולעדכן את התצוגה בלי לטעון מחדש.
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
זיוף - התחזות ברשת בעזרת זיוף זהות, כמו כתובת מקור או שולח, כדי להטעות מערכת או משתמש.

הגנה מהתקפות DDOS
מה עושים כשמישהו שולח לאתר מאות בקשות בבת אחת, ברציפות, עד שמשתמשים אמיתיים כבר לא מקבלים שירות? ההרצאה מגדירה התקפות DoS ו-DDoS ומראה הגבלת בקשות באפליקציית Node.
הרעיון
1. DoS: קיצור של deny of service. תוקף שולח המון בקשות ברצף, והאתר עסוק רק בהן ומונע שירות ממשתמשים אמיתיים.
2. DDoS: distributed deny of service, כלומר הרבה תוקפים מכל מיני מקומות בעולם בבת אחת, מצב חמור עוד יותר.
3. ההדגמה: בקונטרולר של הפורום נוסף console.log, ובדף האינדקס לחצן test dos attack שמבצע בלולאה 100 בקשות Ajax ל-api/forum. הלחיצה הציפה את הקונסול בהודעות, והשרת משרת הכול, כולל גישות לדאטאבייס שהן כבדות יותר מחישוב פשוט.
ההגנה
1. התקנה: npm i express-rate-limit, ספרייה שמודדת כמה בקשות מגיעות מאותו לקוח וחוסמת כשצריך.
2. מיקום: server.use על נתיבי ה-API, כמה שיותר מוקדם, לפני כל דבר אחר ובקרבה לבקשה עצמה. אפשר גם ברמת האתר כולו, אבל אז צריך לבדוק שזה מתאים לכל הדפים.
3. הגדרות: windowMs הוא משך חלון הזמן, ו-max הוא מספר הבקשות המותר בחלון מאותה כתובת IP. בהדגמה חלון של שנייה ו-max של בקשה אחת, עם הודעה "are you a hacker?".
4. התוצאה: במקום 100 בקשות הושלמו שתיים, ולחיצות מהירות מרובות על הפורום החזירו את ההודעה.
5. ערכים מציאותיים: המרצה מציע חלון ארוך יותר או כ-10 בקשות בשנייה, כי זה ריאלי למשתמש רגיל ולא למאות בקשות.
שימו לב
תוקפים יכולים להחליף את כתובת ה-IP בכל בקשה (IP Spoofing), ולפי המרצה אין לכך פתרון מקובל. אפשר להוריד את האתר זמנית עד שההתקפה נרגעת או לספק את כל הבקשות, וזה כבר מעבר לטכניקה שמוצגת בהרצאה.
אחרי ההרצאה אפשר להגדיר הגבלת בקשות ב-Express ולהסביר מה היא מגנה עליו.
השיעור הבא בקורס: קאפצ'ה נגד בוטים - CAPTCHA Against Bots

פרקי ההרצאה: הגנה מהתקפות DDOS

  1. 00:00

    מה הם DoS ו-DDoS

  2. 01:04

    הדפסת בקשות הפורום בקונסול

  3. 01:43

    לחצן לדימוי עומס בקשות

  4. 03:40

    השפעת העומס על השרת

  5. 04:35

    התקנת express-rate-limit

תמלול ההרצאה: הגנה מהתקפות DDOS

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

  1. 00:03

    הסקיוריטי אישו הבא שלנו נקרא DOS. DOS זה קיצור של DENIED OF SERVICE. זה מצב שבו האקר מבקש המון המון המון בקשות בבת אחת מהאתר שלנו, מאות או אלפים בבת אחת לאורך זמן, כמובן בלי הפסקה, בלי הפסקה, ואז האתר שלנו רק משרת את הבקשות שלו ולא יכול לתת שירות אמיתי ליוזרים אמיתיים שרוצים שירות מהאתר.

  2. 00:34

    בגלל זה הוא נחשב Dני of Service. הוא בעצם מונע שירות עבור יוזרים אמיתיים. מונח נוסף שקיים זה DDoS. DDoS זה קיצור של Distributed Dני of Service.

  3. 00:50

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

  4. 01:09

    ראשית בואו נראה מה בעצם קורה או איך האקר יכול לבקש כל כך הרבה בקשות בבת אחת ואז נראה איך אנחנו יכולים למנוע את זה. נלך לקונטרולרים, ניגש רגע לבוא נניח פורום ופה בפורום ברגע שמבקשים את כל ההודעות מהפורום אז נציג console.log user requesting forum messages.

  5. 01:41

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

  6. 01:52

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

  7. 02:12

    ניקח און קליק שווה אטאק פונקציה. בואו ניקח סקריפט ממש כאן כאילו רק לצורך בדיקה עם הפונקציה אטאק. מה שאנחנו רוצים לעשות בפונקציה לרוץ, בואו ניקח אפילו רק 100 פעם לא נפציץ יותר מדי את האתר כל עוד i קטן שווה ל-100.

  8. 02:42

    פלוס פלוס וניקח את jQuery אג'אקס וניתן אובייקט שיש לו URL גלוש לי בבקשה ל-http localhost 3000 api forum זה בעצם טובת שקשורה לפורום אנחנו יכולים לראות את זה פה אם גולשים ל-api פורום אז הפורום קונטרולר מקבל פעולה והנתיב הראשי שלו מחזיר לנו את ההודעות זהו זה כל מה שאנחנו צריכים 100 פעם האקר יכול לקחת את זה ובמשך שלושה ימים

  9. 03:22

    לא להפסיק לעשות איזו הילולה סופית שעושה את זה אז אנחנו רק 100 פעם בואו רגע נעצור נריץ ניגש נפתח את זה האמת ונרפרש את האתר שלנו הנה הלחצן נשים אותו פה מצעד ונלחץ עליו קליק ושימו לב מה קורה כאן בבת אחת ביקשנו מלא מלא מלא הודעות והאתר אין לו ברירה

  10. 03:58

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

  11. 04:20

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

  12. 04:42

    אז אנחנו חוזרים רגע לפה ל-app.js ומה שאנחנו רוצים לעשות זה להתקין איזושהי ספרייה, בואו ניגש לפה, ונתקין npmi את הספרייה express rate limit.

  13. 05:06

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

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: הגנה מהתקפות XSS

ההרצאה הבאה: קאפצ'ה נגד בוטים - CAPTCHA Against Bots

הרצאות קשורות מקורסים אחרים

  • איך להגן על אתר מהתקפות - DDOS & Brute Force
  • הגנה על AD - Active Directory
  • הגנה מהתקפת SQL injection
  • הגנה על AD עם קבוצת - Protected Users

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React