
הטקסט המלא של הדקות הראשונות בהרצאה «בעיות אבטחה עיקריות בפרוטוקול ARP» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
לאחר שלמדנו מהו פרוטוקול ARP וראינו איך תשלחת חבילת בקשה וראינו גם חבילת תשובה, נבין כעת מהן בעיות אבטחה העיקריות שיש בפרוטוקול הזה.
יש להבין לפני שהפרוטוקול הזה הוא ישן מאוד, לפני 50 שנה בערך פיתחו אותו, לא חשבו בכלל על העניין של אבטחת מידע, חשבו רק בראש של תפעול איך לגרום למחשב לתקשר עם מחשב אחר.
היום אנחנו בעידן אחר אבל הפרוטוקול נשאר מפעם וצריך להתמודד עם בעיות אבטחה שקיימות בו. הבעיה הראשונה היא שכל בקשה או תשובה של חבילת ארפ מאושרת מיד, בלי שום עימות.
2. המחשב בוטח בתשובה ומקבל אותה גם אם הוא בכלל לא שלח בקשה. מה זה אומר בפועל? בואו נחזור לפרוטוקול ארפ ונראה בוויירשארק, אוקיי, זה סניפר שבזכותו תפסתי את הבקשה ואת התשובה.
ויירשארק זה סניפר שאפשר לתקל ממש בתוך הפקטות, תוך חבילות המידע, מה קורה שם ולראות איך הם פועלים. התוקף יכול לשלוח תשובה ולהגיד למחשב הקורבן:
תקשיב, אני הראוטר, אני דילינק, אני נמצא מאחורי הכתובת IP הזאת, קל מאוד לזייף כתובת IP, והמק שלי הוא כזה וכזה.
המק הוא של התוקף והמק האמיתי שלו אבל את כתובת הIP הוא זייף לכתובת של הראוטר. אז הבעיה היא קריטי שהמחשב קורבן בוטח בתשובה ומקבל אותה אפילו אם הוא בכלל לא פנה ושלח בקשה.
זה אומר שהקורבן יבוא לטבלת הארפ שלו וכאן תהיה לנו רשומה של 10.0.0.138 המק שלה יהיה המק של התוקף. אם מחשב א' קיבל תשובת ארפ מבלי ששלח בקשה זה סיכום של מה שאמרנו עד עכשיו.
הפרוטוקול בכלל לא בודק אם מחשב א' קודם שולח בקשה. מחשב א' בוטח בתשובה ומעדכן את טבלת הארפ שלו במאק החדש, בדיוק מה שהסברתי.
בואו נראה את זה. תוקף יכול לנצל את שתי הבעיות האלה כדי לבצע ניתוב של חבילות מידע היישר אליו. דבר ראשון, התוקף שולח לקורבן תשובת ארפ. אמרנו שאפשר לשלוח תשובה בלבד גם אם אף אחד לא שאל אותנו ולא ביקש מאיתנו כלום, עם ה-IP האמיתי של הראוטר, והמק של התוקף עצמו.
אנחנו רואים כאן ה-IP האמיתי של הראוטר, sender IP address, אבל במק אנחנו שמים את המק שלנו בתור התוקפים. מחשב הקורבן מקבל ומעדכן את תשובת ה-ARP בטבלה שלו, למרות שלא שלח שום בקשה.
כעת טבלת ה-ARP של הקורבן מצביעה על המק של התוקף כאילו הוא הראוטר. כאן בטבלה יש לנו רשומה של 10.0.0.138 והמק של התוקף. כעת אם הקורבן ירצה לשלוח מידע לראוטר אז המידע הזה יגיע לתוקף.
אתם יכולים לראות את האקר שולח תשובת ארפ, איי-פי הוא שם את הראוטר של האיי-פי, סליחה, את האיי-פי של הראוטר האמיתי, מתמק הוא שם את המק שלו עצמו והוא אומר לו תקשיב אני הראוטר אבל פה לא מספיק, שולח עוד בקשה, תוקף בונה תשובה נוספת, תשובת ארפ נוספת והפעם שולח אותה אל הראוטר.
זכרו, בהתחלה תוקף שלח את התשובה לקליינט ושינה לו את טבלת הארפ. כרגע הוא בונה תשובה נוספת ושולח אותה לראוטר.
אותו דבר עם איי-פי האמיתי של הקורבן. האיי-פי שהוא שולח לו כאן בבקשה יהיה הפעם של הקורבן, זה יהיה, פה יהיה 10.0.0.5, אבל המאק, עוד פעם הוא ייתן את המאק שלו עצמו.
כעת טבלת הארפ בראוטר מצביעה על המאק של התוקף כאילו הוא הקורבן. תקום עד עכשיו, התוקף אומר לראוטר אני הקורבן, כאן הוא אומר לו, אני, תקשיב, אני 10.2.7, אני הקורבן שלך, אני הלקוח שלך, במקרה הזה זה הלקוח, ולקורבן הוא אומר,
תקשיב, אני 10.2.1, הראוטר שלך. אוקיי, לראוטר הוא אומר אני 10.2.7 ולקורבן הוא אומר אני 10.2.1. יוצא שראוטר חושב שאני הקורבן והקורבן חושב שאני הראוטר, יוצא שאני התוקף נמצא באמצע של התקשורת בין הקורבן לראוטר.
מהות הדבר, כל חבילות המידע שעוברות אל הקורבן או מהקורבן יעברו דרך התוקף. אוקיי, כי כשהראוטר ירצה לשלוח חבילות מידע אל הקליינט שלו הוא יבנה חבילה ואנחנו יודעים שכשרוצים לשלוח חבילה צריכים לשים בדסטיניישן, בטארגט, את אותו מחשב שאנחנו רוצים לשלוח אליו כמו פה.
אוקיי target IP אבל המק בסופו של דבר