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

שורש במאגר המערכת אינו מפתח אוניברסלי

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

המאגר חשוב לא פחות מהתעודה: חבילה ברמת המשתמש ועוגן ברמת המערכת מגיעים לצרכנים שונים.

מפו כל מאמת ומקור האמון שלו

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

ls /usr/local/share/ca-certificates
trust list | grep -i -E "vpn|corp"

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

בדקו את אימות העמית של ה-VPN עצמו

VPN עם CA פרטי או טביעת אצבע מפורשת מעריך את השער לפי התצורה שלו עצמו. השוו בין מה שהלקוח מצפה לו לבין מה שהשער מציג.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 -subject

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

תחמו את האירוע מעבר לתעודה

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

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

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