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

העיטוף יוצר שתי תצוגות

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

sudo tcpdump -i tun0 -n -s 0
sudo tcpdump -i eth0 -n host 198.51.100.20 and udp port 51820

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

בתוך המנהרה המנה רגילה

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

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

בחוץ רק המעטפה וצורתה

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

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

כתובת העמית והיגיינת לכידה

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

wg show
ss -tunp | grep 51820

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

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

מאמרים קשורים