שאלה אני תחת DDoS. מה אני יכול לעשות?


זה קנוניקל שאלה על DoS ו- DDoS הפחתת.

מצאתי ספייק תנועה מסיבית באתר שאני מארח היום; אני מקבל אלפי חיבורים שנייה ואני רואה שאני משתמש בכל 100Mbps של רוחב הפס הזמין שלי. אף אחד לא יכול לגשת לאתר שלי כי כל הזמן בקשות, ואני אפילו לא יכול להיכנס לשרת כי פעמים SSH מדי! זה קרה כמה פעמים לפני כן, ובכל פעם זה נמשך כמה שעות והסתלק בכוחות עצמו.

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

הפעלה מחדש של השרת שלי אינה מסייעת; מה אני יכול לעשות כדי להפוך את האתר שלי נגיש שוב, ומה קורה?

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


171
2017-08-19 09:14




עקבתי אחרי זה לאחר קריאת (יצירת קנוני "עזרה, אני מקבל DDOS-ed!" השאלה?). ללא שם: אני רק רציתי לומר עבודה יפה! - AngryWombat
ראה גם http://stackexchange.com/a/792/2379 - Pacerier


תשובות:


אתה חווה התקף מניעת שירות. אם אתה רואה תנועה המגיעה מרשתות מרובות (כתובות IP שונות ברשתות משנה שונות) יש לך הכחשה מבוזרת של שירות (DDoS); אם כל זה מגיע מאותו מקום יש לך DoS הישן פשוט. זה יכול להיות מועיל לבדוק, אם אתה מסוגל; להשתמש netstat לבדוק. אבל זה עלול להיות קשה.

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

אם אתה מנסה להצביע על סוג ההתקפה, ייתכן שתרצה ללכוד תנועה מסוימת (באמצעות wireshark, tcpdump או libpcap). אתה צריך, אם אפשר, אבל גם להיות מודעים לכך שאתה כנראה ללכוד די הרבה תנועה.

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

מבוסס תנועה

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

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

עם זאת, רוב ספקי שירותי האינטרנט וספקי התחבורה יזהו מראש את המתרחש ולפרסם א נתיב שחור עבור השרת שלך. משמעות הדבר היא שהם מפרסמים נתיב לשרת שלך עם עלות קטנה ככל האפשר, דרך 0.0.0.0: הם עושים תנועה לשרת שלך כבר לא ניתנים לניתוב באינטרנט. מסלולים אלה הם בדרך כלל / 32s ובסופו של דבר הם הוסרו. זה לא עוזר לך בכלל; המטרה היא להגן על הרשת של ספק האינטרנט מפני המבול. במשך הזמן, השרת שלך יאבד באופן יעיל גישה לאינטרנט.

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

בקצרה, יש מעט מאוד אתה יכול לעשות על בעיה זו. הפתרון הטוב ביותר לטווח ארוך הוא לארח את השירותים שלך במקומות רבים ושונים באינטרנט אשר יהיה חייב להיות DDoSed בנפרד בו זמנית, מה שהופך את DDoS הרבה יותר יקר. אסטרטגיות זה תלוי בשירות שאתה צריך להגן; DNS יכול להיות מוגן עם מספר רב של שרתי שמות סמכותיים, SMTP עם גיבוי רשומות MX מחליפי דואר, ו- HTTP עם DNS רובין או multihoming (אבל כמה השפלה עשוי להיות מורגש במשך כל מקרה).

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

אם אתה יכול לעשות זאת, שקול להשתמש רשת הפצה תוכן (CDN) כמו Akamai, LightLight ו CDN77, או להשתמש בשירות DDoS קרצוף כמו CloudFlare או פרולקס. שירותים אלה לנקוט בצעדים אקטיביים כדי להקל על סוגים אלה של התקפות, וגם יש רוחב פס זמין כל כך הרבה במקומות שונים כל כך, כי הצפה בהם הוא לא ריאלי בדרך כלל.

אם תחליט להשתמש ב- CloudFlare (או בכל CDN / proxy אחר) זכור להסתיר את ה- IP של השרת שלך. אם תוקף מוצא את ה- IP, הוא יכול שוב DDoS השרת שלך ישירות, עקיפת CloudFlare. כדי להסתיר את ה- IP, השרת שלך לא צריך לתקשר ישירות עם שרתים / משתמשים אחרים, אלא אם הם בטוחים. לדוגמה, השרת שלך לא צריך לשלוח הודעות דוא"ל ישירות למשתמשים. זה לא חל אם אתה מארח את כל התוכן על CDN ואין לך שרת משלך.

כמו כן, כמה VPS וספקי אירוח טובים יותר במיתון התקפות אלה יותר מאחרים. ככלל, ככל שהם גדולים יותר, כך הם יהיו טובים יותר; ספק שהוא מאוד well-peered ויש לו הרבה רוחב פס יהיה טבעי יותר גמיש, ואחד עם פעיל ומאויש באופן מלא צוות פעולות הרשת יוכלו להגיב מהר יותר.

מבוסס על טעינה

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

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

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

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

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

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

לנצל מבוססי

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

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

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

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


183
2017-08-19 09:14



לגבי הפסקה האחרונה שלך, ומה אם אתה מקבל לנצל מבוססי ד DoS? איך אפשר לאתר ולעצור את זה? - Pacerier


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

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

CDN

אם אתה מפעיל שרת אינטרנט, שקול לשים אותו מאחורי CDN כמו CloudFlare או Amazon Cloudfront.

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

ענן פרטי

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

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

כאשר נמל TCP שלך הוא הותקף וכל השאר נכשל

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

המטרה היא לשנות את יציאת האזנה TCP במהירות מספקת, כי botnet לא יכול לשמור על קשר, אומרים פעם אחת כל 10 שניות. זה נעשה באמצעות תוכנית proxy פשוטה המבצעת את הנדידה הנמל. רצף היציאות הוא פסאודו אקראי, אבל חייב להיות מבוסס על זמן השרת. ואת האלגוריתם לחישוב זמן השרת & היציאה חייב להיות מוסתר הלקוח שלך / JavaScript קוד פלאש. התוכנית צריכה גם לשנות את חומת האש כפי שהוא משנה את יציאת האזנה, ואת חומת האש צריכה להיות stateful. אם מישהו מעוניין, אני יעלה את סקריפט node.js שעובד עם אמזון, כדי GitHub.


6
2017-12-05 18:04





שינוי התחום שלך ללכת חור שחור כמו 0.0.0.0 לתקופה קצרה.

דבר אל השרת שלך וספק אם הם יכולים להנפיק לך כתובת IP אחרת כדרך זמנית לגשת לשרת או לראות אם לשרת יש גישה מרחוק לקונסולה (כמו שאתה יושב מולו). מכאן תוכל לראות אם זוהי כתובת IP אחת ולחסום אותה מהאתר או מהתקפה מבוזרת.


3
2018-02-26 07:44



שינוי DNS כמו זה עשוי לעשות יותר נזק מאשר תועלת. בהתחלה הייתי מפחית את TTL של הרשומה, אבל להשאיר את כתובת ה- IP ללא שינוי - עד שיש לי IP חדש כדי להצביע על כך. - kasperd


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


0
2017-11-18 11:42