• על אבטחת מידע בקצרה – מתקפה מסוג DOS ‏(Denial of Service)

    הכירו את אופי פעולת ה"העמסה" הנקראת מתקפת DOS


    פורסם ב: 29 מרץ 2008
    הדפס כתבה
    כתוב לעורך
    X

    שלח לחבר

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

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

    ניקח כדוגמה את כתובת הדואר האלקטרוני שלי שמופץ באמצעות הכרטיס ביקור שלי וחושף את כתובת הדואר האלקטרוני במקום העבודה – adir[a.t]email.com. ברוב הארגונים ה- alias name שהוא החלק הראשון של כתובת הדואר האלקטרוני הוא גם שם החשבון שאיתו אנו מבצעים Logon למערכת. במקרה הזה שם החשבון יהיה soltz. את המידע הזה כל האקר יכול להשיג משיחת חולין עם עובד בארגון מסויים או לחלופין באמצעות שימוש בפקודה VRFY * (במידה ולא חסמת אפשרות זו כדי לבצע זאת בהקדם). כאשר מתחברים ב- Telnet לפורט 25 (SMTP). בצורה כזו ההאקר כבר השיג 50% מחשבון המשתמש ומה שנותר לו להשיג כעת הוא סיסמאת המשתמש, שלא פעם היא 12345 או 11111 וכו.

    תת-קטגוריה של מתקפת DOS נקראת Syn Attack שמטרתה לשבש תהליך הנקרא three-way handshake ובכך למנוע את היכולת לעבוד מול המערכת המותקפת. שיטת הפעולה היא לא לסיים במזיד תקשורת שהחלה. כדי להבין כיצד מתבצעת מתקפת Syn יש להבין תחילה כמה מוסגי מפתח בפרוטוקול התקשורת TCP/IP. כדי לבצע תקשורת בין שני מחשבים באמצעות פרוטוקול TCP/IP מתקיים תהליך שנקרא במונחים מקצועיים three-way handshake. תהליך זה מתאר את הדרך שבה שני מחשבים מסכימים על פתיחה בשיחה (Session). לצורך כך, נניח שאליס ובוב מעוניינים לשוחח. אליס פונה לבוב בבקשה לשיחה (Syn) ובוב מאשר את בקשתה של אליס ע"י שליחת Syn/Ack ‏(Acknowledgment), אך עדיין ממתין לאישרור מאליס על מנת לוודא שהיא אכן מודעת לכך שבוב מעוניין לשוחח איתה. ברגע שאליס תשלח לבוב אישרור (Ack), בוב יפתח בשיחה.


    איור 1: תהליך יצירת תקשורת בין שני מחשבים

    ציור 1 מתאר תהליך תקין של יצירת connection בין מחשב A למחשב B. בהנחה שהמשתמש במחשב A מעוניין להשבית את מחשב B התהליך המתואר יתחיל אולם לעולם לא יסתיים. שלב 3 ו- 4 לעולם לא יושלמו כפי שמתואר בציור 6.


    איור 2: תהליך יצירת תקשורת בין שני מחשבים

    בכדי ליישם מתקפה מסוג Syn כל שצריך לעשות הוא לדאוג לשלוח בקשה לתקשורת ולעולם לא לסיים את הבקשה וכך השרת המותקף שומר בזכרון (Cache memory) בקשות להתקשרות, ושולח Syn/Ack חמש פעמים נוספות ובכל פעם מגדיל את זמן ההמתנה לאשרור מהמחשב ששלח את הבקשה.
    ההמתנה הראשונה לאישרור נמשכת כ- 3 שניות, במידה והמחשב לא מקבל אישרור הוא שולח שוב Syn/Ack והפעם ממתין 6 שיניות במידה ושוב הוא לא קיבל אישרור הוא ישלח פעם נוספת Syn/Ack והפעם ימתין 12 שניות וכן הלאה עד הפעם החמישית והאחרונה. סה"כ זמן ההמתנה לאישרור יכול להגיע לכ- 189 שניות. במידה וכמות הבקשות גדולה מאוד ואף בקשה כזו לא מסתיימת המחשב המותקף עשוי לקרוס.

    לדוגמה: מחשב A שולח למחשב B כמות בלתי מוגבלת של בקשת Syn כאשר כתובת ה- IP של ה- Source אינה נכונה או לחלופין כתובת ה- IP של ה- Source וה- Destination הן אותה כתובת (מתקפה זו הנה תת קטגוריה של DOS attack והיא מכונה Land attack). כאשר מחשב B ינסה להשיב Syn/Ack למחשב A, הוא לעולם לא יקבל אשרור חזרה ממחשב A מאחר שהכתובת שניתנה לא לא הייתה נכונה.


    איור 3: מתקפת Syn

    במידה וקיים חשש שמחשב מסויים עומד תחת מתקפת Syn ניתן להריץ את הפקודה הבא כדי לאשר או לבטל את החשש:

    C:\> netstat -n -p tcp
    Active Connections

    Proto Local Address Foreign Address State
    TCP 127.0.0.1:1030 127.0.0.1:1032 ESTABLISHED
    TCP 127.0.0.1:1032 127.0.0.1:1030 ESTABLISHED
    TCP 10.57.8.190:21 10.57.14.154:1256 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1257 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1258 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1259 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1260 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1261 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1262 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1263 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1264 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1265 SYN_RECEIVED
    TCP 10.57.8.190:21 10.57.14.154:1266 SYN_RECEIVED
    TCP 10.57.8.190:4801 10.57.14.221:139 TIME_WAIT

    מתקפות מסוג Syn מתבצעות בשכבות נמוכות מאוד בדר"כ בשכבת ה- Network ולכן בדרך כלל ההגנה מפניהם היא ע"י מערכת ההפעלה או ע"י אפליקציה השולטת ב- TCP stuck . מערכת ההפעלה Windows 2000 מאפשרת הגנה מפני מתקפות כאלו ע"י עריכה ישירה של ה- Registry. וכמובן שמעבר לכך רצוי להתקין שרת Firewall שיספק רמת אבטחה נוספת כגון שרת ISA.

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\ SynAttackProtect

    Value Type: REG_DWORD
    Valid Range: 0, 1, 2
    0 (no synattack protection)
    1 (reduced retransmission retries and delayed RCE (route cache entry) creation if
    the TcpMaxHalfOpen and TcpMaxHalfOpenRetried settings are satisfied.)
    2 (in addition to 1 a delayed indication to Winsock is made.)

    דוגמאות נוספות למתקפות DOS הן ICMP Bombing ו- Ping of Death. מתקפות אילו פועלות על פי אותו עקרון ומטרתם להפיל את המחשב הנתקף.

    הפקודה Ping.exe נועדה לאפשר בדיקת תקשורת בין מחשבים המחוברים ברשת וזאת על ידי שליחת ארבעה Packet של 32 bytes. פקודה זו מבוססת על פרוטוקול ICMP בסביבות מיקרוסופטיות (בסביבת Unix היא מבוססת על ICMP או על UDP).

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

    C:\ > ping 169.254.1.1 -l 1000 -t

    Pinging 169.254.1.1 with 1000 bytes of data:

    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255
    Reply from 169.254.1.1: bytes=1000 time<10ms TTL=255

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

    אם נפתח את הרעיון הזה ניתן לשלוח Ping of death יותר קטלני במידה ונערוך את ה- Packets שאנחנו שולחים
    ונשנה בכתובת IP את כתובת ה- Source ובמקום הכתובת של המחשב שלנו נשלח את הכתובת של המחשב המיועד או לחלופין
    את כתובת ה- Broadcast של הרשת אליה משתייך המחשב המותקף. הפעם נשיג אפקט פחות מאכזב,
    המחשב המותקף יקבל אינסוף Packets כאשר כתובת השולח של אותם Packets היא הרשת עצמה.
    המחשב המותקף יענה בפרוטוקול ICMP לכל המחשבים ברשת ואילו יענו לו חזרה וכן הלאה.


    איור 4

    1. Ping Email.microsoft.com
    2. Reply received 208.217.177.120: bytes = 32 time = 20ms TTL=116
    ראוי לציין שכיום השיטות למתקפת Ping of death לא בהכרח מבוססות על פרוטוקול ICMP.

    תגיות: ,

    הוספת תגובה
תגובה אחת לכתבה זו. הוסף תגובה
תגובה חדשה
בעת שליחת תגובתך הינך מסכים לתנאי השימוש באתר.