הצפת SYN

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

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

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

שיטת הפעולה של ההתקפה[עריכת קוד מקור | עריכה]

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

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

כדי שכתובת ה-IP של התוקף לא תיחשף וכדי שלא ניתן יהיה לחסום את כתובת ה-IP הספציפית שלו ובכך לחסום את ההתקפה, התוקפים משתמשים על פי רוב בהונאת IPאנגלית: IP Spoofing) ובכך לא מאפשרים הבחנה בין החבילות התמימות לבין החבילות התוקפות.

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

ניתן לחשב חסמים תאורטים לקצב שבו תוקף יכול לשלוח חבילות SYN לפי סוג החיבור של המחשב התוקף:

סוג החיבור קצב מקסימלי (חבילות SYN לשנייה)
מודם אנלוגי 87
ISDN, DSL 200
T1 2,343

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

אירועים בולטים[עריכת קוד מקור | עריכה]

ב-5 בפברואר 2000 החלה הצפת SYN רחבת היקף על אתרי אינטרנט רבים שכללו בין היתר את CNN, eBay, יאהו ואמזון התקיפה נמשכה עד 11 בפברואר.

שנה לאחר מכן, בין 4 במאי ל-20 במאי 2001 חברת Gibson Research הותקפה מ-474 מחשבים שונים ברשת באמצעות הצפת SYN. ההתקפה הרוותה לחלוטין שני חיבורי T1 שהיו באחזקת החברה. ילד בן 13 לקח אחריות על ההתקפה.

התמודדות[עריכת קוד מקור | עריכה]

קיימות דרכי התמודדות רבות עם התקפות אלו.

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

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

SYN פרוקסי[עריכת קוד מקור | עריכה]

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

עוגיית SYN[עריכת קוד מקור | עריכה]

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