זיוף IP זיוף כתובת האייפי זיוף כתובת IP הקדמה בסיסית אני מניח שרוב רובכם של הקוראים יודעים על כתובות ה IP ואיך הן מייצגות באופן חד משמעי (הכוונה לכתובות חוקיות "חיצוניות" בלבד) את הציוד המחובר לרשת האינטרנט. זאת אומרת שכתובת ה IP מהווה את אמצעי הזיהוי הגלובלי היחידי של המחשב, הנתב, או כל דבר אחר אשר מעוניין להיות מחובר לרשת, או ליתר הדיוק לתקשר עם שאר המחוברים באופן תקין ורב פעמי. מכאן ברור שחשוב לשמור על אמינות מסוימת שמספקות כתובת הזיהוי הללו לצרכי גילוי מי נמצא בצידו השני של כבל הרשת. כל התעבורה ברשת האינטרנט (בפרוטוקול TCP/IP) מבוססת על שתי כתובות IP - כתובת המקור וכתובת היעד. בלי מספרים אלה לא תיתכן העברת נתונים בין שתי עמדות קצה. הקדמה מתקדמת תחילה אסביר כיצד מתבצעת העברת הנתונים בפרוטוקול ה TCP/IP. בהתחלה צריכים שתי עמדות הקצה ליצור קו תקשורת וירטואלי ביניהם עליו יעברו הנתונים. תהליך יצירת קו התקשורת הזה נקרא בשפה המקצועית Three Way Handshake או בתרגום חופשי לשפת הקודש לחיצת ידיים משולשת. אסביר למה התכוון המשורר באומרו: נגדיר שתי תחנות רשת - תחנה א`, ותחנה ב` - תחנה א` רוצה לשלוח נתונים לתחנה ב` כאשר היא מן הסתם יודעת את כתובת ה IP שלה (וזה כל הדרוש על מנת ליזום התקשרות). - כעת תחנה א` משדרת "בקשת יצירת התקשרות" לתחנה ב`. - בבקשה זו תחנה א` מזהה את עצמה בתור "תחנה א`. כתובת IP מספר X.X.X.X. מספר זיהוי 123EA54CD8". - הבקשה מגיעה לתחנה ב` האחרונה צריכה לבדוק אותה ולשלוח מנה (חבילת מידע - Data Packet) בתור תגובה. - תחנה א` תקבל את תגובת תחנה ב` ותגיב בשליחת מידע מסוים בתלות ובשינוי במספר הזיהוי הראשוני שהתקבל מתחנה א` (וזה חשוב). - בהגיע המידע בחזרה לתחנה א` ייווצר ערוץ התקשורת בין שתי התחנות, בעוד שהתחנה המשדרת (תחנה א`) תיכנס למצב SENDING ואילו התחנה המקבלת (תחנה ב` בדוגמא זו) למצב האזנה, קרי LISTENING. הסיבה לשם: 1. שליחת בקשת התקשרות 2. תגובה 3. תגובה לתגובה הקדמה סופית בדוגמא שנתתי, כאשר תחנה ב` מקבלת בקשת התקשרות היא לא מגיבה תגובה חסרת משמעות. במנת המידע שהיא שולחת חזרה לתחנה המבקשת יכלל מספר סידורי (Sequence Number) שהוא מעין מספר זיהוי נוסף שנועד להגיד לתחנה המבקשת כי בקשתה נקלטה. לא אכנס לתהליכי יצירת המספר הסידורי במסגרת הזמן העומד לרשותי, רק אגיד שהאלגוריתם שונה בכל מערכת ומערכת. יותר מזה, שונה בכל יישומי הפרוטוקול, אך בכל המקרים זהו באמת אלגוריתם מכאן שיש תבנית מסוימת למספר. להזכירכם, הפעולות בעת יצירת הקשר: 1. שליחת בקשה בצירוף מספר סידורי של תחנה א` 2. קליטת הבקשה, שינוי מספר סידורי א`, שליחת מספר סידורי עצמי (של תחנה ב`) 3. קליטת הבקשה, בדיקת מספר א` השונה על מצב תאימות לאלגוריתם, שליחת מספר סידורי ב` עם השינוי. אם שלושת השלבים נחלו הצלחה ייווצר ערוץ התקשורת בין שתי התחנות. בעיית הזיוף עכשיו הגענו למהות המאמר (עד לכאן הייתה ההקדמה..). ישנם מקרים בהם מחשבים מסתמכים רבות על יחסי אמונה בינם לבין עצמם - מעין מעגל אמון בין מספר מוגבל של עמדות. נאמר, רק מחשב LEXUS רשאי לבצע לוגין לשרת הדומיין. מכאן שיש עניין לגרום לאותו שרת הדומיין (נקרא לו בפשטות Skippy) להאמין שיש לי הזהות לעשות לוגין למערכת או במילים אחרות לגרום לו לחשוב שאני הוא LEXUS (ולא VLAD-KITCHEN-COMPUTER). לשם כך צריך התוקף (אני) לעשות מספר דברים; א. לנטרל את LEXUS (האמיתי) שלא יפריע ב. לשלוח בקשת יצירת התקשרות ל SKIPPY. ג. להגיב בצורה נכונה כדי שייווצר הערוץ. ד. סיימנו. הבעיה נעוצה בסעיף ג`, שכן תגובות SKIPPY נשלחות ל LEXUS האמיתי והוא... עסוק מעל הראש בטיפול באיזה flood נחמד. מכאן קיבל העניין את השם Blind Spoofing, שכן אני מנחש את המספר הסידורי על עיוור. אם ניחשתי באופן נכון - התמזל מזלי וקיבלתי גישת אמון (Trusted Connection) לשרת הפורנו הטוב במדינה הלא הוא SKIPPY (לא אמרתי את זה..), אם לא אז לא. שיטת הניחוש המדעי כמובן שהתוקף לא ינסה לנחש את המספר הסידורי כפי שרוב עם ישראל מנסה כבר יובל לזכות בכמה מליונים בהגרלת הלוטו השבועית. תוקף חכם (ותוקפים לא חכמים לא עוסקים במתקפות spoofing) ישב זמן לא קטן וישקיע בניתוח התעבורה (מנות המידע) בין LEXUS ל SKIPPY, וישים תשומת לב מיוחדת ל Sequence NUmbers שהן מחליפים ביניהם. כשהוא מזהה תבנית כלשהו - הגיע הזמן לנסות. סיכום כפי שבוודאי הבנתם (או לא, אם סיבכתי את העניינים יתר על המידה) מתקפת spoofing היא כלל לא קלה ליישום וגם לא נפוצה משהו. אבל, זה עדיין מקרה די מעניין ולכן ההרצאה. מה גם שמסיבה לא ברורה כל הנושא לוט ערפל עבור רוב האנשים (אפילו המומחים בתחום). מקווה שזה יעזור לכם מתישהו(=^.^=)ממני נטלי
|