TunnelCrack מול TunnelVision: מה כל אחד מהם באמת שובר
TunnelCrack ו-TunnelVision מנצלים חריגות ניתוב שונות: בדקו את חריגת הרשת המקומית, את נתיב השרת ואת אפשרות DHCP 121 לכל גרסת לקוח.
שני שמות מחקר משמשים לסירוגין לכל תעבורת VPN שיוצאת מהמנהרה, אבל המנגנונים שמאחוריהם אינם זהים. TunnelCrack מתאר שתי משפחות של חריגות ניתוב; TunnelVision מתאר נתיב שמסופק על ידי DHCP במכשיר הקצה. אף אחד מהם לא שובר את ההצפנה, ואף אחד מהם לא אומר לכם מה עושה היום גרסת לקוח מסוימת. חמש בדיקות מפרידות בין המנגנונים לבין הכותרת.
שלב ראשון: תנו שם למנגנון שאתם בודקים
החשיפה של TunnelCrack מאוגוסט 2023 מתארת שתי משפחות התקפה. במקרה של הרשת המקומית, תעבורה שהלקוח מחשיב כשייכת לרשת המקומית מקבלת חריגת גישה מקומית ויוצאת מהמנהרה. במקרה של כתובת השרת, הנתיב שהלקוח צריך כדי להגיע לשרת ה-VPN עצמו נמצא מחוץ למנהרה, ותוקף ששולט בכתובת הזו יכול לנצל את החריגה.
TunnelVision הוא דוח נפרד על נתיבים סטטיים ללא מחלקה שמסופקים על ידי DHCP. שרת DHCP זדוני יכול לתת למכשיר הקצה נתיבים שמשנים את הנתיב שהתעבורה עוברת בו, כולל הנתיב אל שרת ה-VPN. הדוח מכיר בעבודה קודמת על השפעות ניתוב קשורות, מה שמזכיר שהמנגנון הבסיסי ישן יותר מהשם.
| Case | Exception it abuses |
|---|---|
| TunnelCrack local network | Traffic classified as local bypasses the tunnel |
| TunnelCrack server address | The route to the VPN server sits outside the tunnel |
| TunnelVision | DHCP option 121 installs routes that redirect traffic |
השאירו את השמות צמודים למנגנונים שלהם. החלת תיקון לאחד מפני שהשני בכותרות היא הדרך שבה סקירה מייצרת תנועה בלי כיסוי.
שלב שני: הסתכלו בחריגת הגישה המקומית
רוב הלקוחות מחריגים תעבורת רשת מקומית כדי שמדפסות, שידור מסך ושיתוף קבצים ימשיכו לעבוד כשהמנהרה פעילה. החריגה הזו היא החלטת מדיניות עם עלות ביטחונית: תוקף באותה רשת יכול להציג את עצמו כמארח מקומי, והתעבורה שמגיעה אליו מעולם לא נכנסה למנהרה.
שאלו אם פרופיל הפריסה באמת זקוק לחריגה. כוח עבודה מרוחק שלעולם לא משתמש בגילוי מקומי יכול לעתים קרובות לכבות אותה, ואת השירותים המקומיים שנותרו אפשר להשיג בנתיב מתועד. היכן שהחריגה נדרשת, אמרו אילו יעדים היא מכסה במקום לתאר אותה כתעבורה מקומית.
הבדיקה היא שאלת תצורה, לא לכידת מנות. קראו את הגדרת הפרופיל ואת התיעוד של הלקוח עבור הגרסה שאתם פורסים, כי ברירת המחדל שונה בין מוצרים ובין גרסאות של אותו מוצר. כתבו את התשובה לצד הפרופיל, כדי שהבודק הבא לא יצטרך להסיק אותה מהתנהגות. חריגה שאיש לא תיעד היא חריגה שאיש לא בודק.
שלב שלישי: הסתכלו איך נלמדת כתובת השרת
הלקוח חייב להגיע לשרת ה-VPN לפני שקיימת מנהרה, ולכן היעד הזה מנותב מחוץ למנהרה לפי התכנון. אם הכתובת נלמדת משם, שלב הפענוח הוא חלק מנתיב האמון, ותוקף שיכול לענות לשאילתה הזו יכול לכוון את הלקוח למארח שהוא שולט בו.
נעיצת הכתובת, שימוש בתעודה מאומתת עם השם הנכון וסירוב ליפול חזרה לשרת לא מאומת מפחיתים כולם את החשיפה. אף אחד מהם לא מסיר את הצורך להגיע לשרת מחוץ למנהרה; הם משנים מי יכול לענות לכתובת הזו.
resolvectl query vpn.lab.example
ip route get 198.51.100.24
ip rule show
חיפוש הנתיב מראה את הממשק שהלקוח ישתמש בו לכתובת השרת, וזו החריגה בצורה מוחשית. אם החיפוש מחזיר את ממשק המנהרה, הלקוח כלל לא יכול להקים את המנהרה, ולכן נתיב חיצוני צפוי והשאלה היא רק איך נבחר היעד שלו.
שלב רביעי: הסתכלו בנתיבים שמספק DHCP
נתיבים סטטיים ללא מחלקה מאפשרים לשרת DHCP לחלק רשומות בטבלת הניתוב, ומכשיר הקצה מקבל אותן בדרך כלל בלי לשאול. ברשת שבה תוקף יכול לענות ל-DHCP מהר יותר מהשרת החוקי, הרשומות האלה יכולות להפנות מחדש תעבורה שהמשתמש חושב שנמצאת בתוך המנהרה.
השוו את הנתיבים במכשיר הקצה לנתיבים שאתם מצפים להם. נתיב ברירת מחדל או קידומת רחבה שמצביעה על שער הרשת המקומי כשהמנהרה פעילה היא החתימה ששווה חקירה, והיא נראית בלי שום תעבורת תקיפה.
ip route show table all
ip route get 203.0.113.55
nmcli -g ipv4.ignore-auto-routes con show "Wired connection 1"
ההגדרה האחרונה היא הבקרה בצד מכשיר הקצה שרבים מהלקוחות והפלטפורמות חושפים בצורה כזו או אחרת: התעלמות מנתיבים שמספקת הרשת. כיבוי קבלה אוטומטית של נתיבים הוא פשרה, כי הוא מכבה גם ניתוב מפוצל חוקי משרת DHCP ארגוני, לכן החליטו לפי סוג רשת ולא באופן גלובלי.
שלב חמישי: הפרידו בין ההודעה לגרסה הנוכחית
התקפה שפורסמה מתארת התנהגות שנצפתה בגרסאות לקוח מסוימות בזמן מסוים. היא לא קובעת שהמחשב הנייד שלפניכם נפגע, והיא לא קובעת שתוקן. שתי הטענות דורשות את מספר הגרסה בפועל ואת ההודעה הנוכחית של הספק.
רשמו את גרסת הלקוח, הפלטפורמה, הגדרות הפרופיל ששולטות בחריגות שלמעלה ואת התאריך שבו בדקתם. הרשומה הזו מזדקנת ביושר, בעוד הערה שאומרת שה-VPN תוקן ל-TunnelCrack לא מזדקנת ביושר. קראו אותה שוב בכל עדכון של הלקוח, כי ברירת מחדל של פרופיל יכולה להשתנות תחת גרסה שלא נגעתם בה.
כשאתם מאמתים באמת, השתמשו בתוכנית מאושרת נגד מכשיר הקצה שלכם ונגד יעד בלתי מזיק. שחזור ההתקפה נגד משתמשים אחרים ברשת משותפת אינו בדיקה, וכיבוי אימות עמיתים או הצפנת היישום כדי להקל על תצפית מסיר את ההגנה שניסיתם למדוד.
לבסוף, שמרו על הגנה ברמת היישום בתמונה. חריגת ניתוב יכולה לחשוף תעבורה שהמנהרה הייתה נושאת, אבל TLS של היישום עדיין מגן על התעבורה הזו מקצה לקצה. שתי השכבות נכשלות באופן בלתי תלוי, ולכן ערוץ בקרה מחובר אינו הוכחה שכל זרם הלך בנתיב המיועד.