מתג הרג לכל אפליקציה מול נעילת כל המכשיר: מה משתנה
החליטו לפי הקבוצה המוגנת, לא לפי התווית: מה נעצר באפליקציות מוחרגות, בעוזרי רקע ובחיבורים חדשים, ואיך לבדוק כל מקרה.
מתג הרג לכל אפליקציה נשמע כמו הבחירה הזהירה: רק לקוח העבודה מאבד את הרשת כשהמנהרה נופלת, וכל השאר ממשיך לעבוד. ואז מישהו מבחין שהדפדפן האישי בכל זאת טען דף, שעוזר הסנכרון שהגיע עם אותה חבילה המשיך לנסות, ושם שנשמר במטמון עדיין נפתר לכתובת שמעולם לא נגעה במנהרה. התווית שעל התכונה וקבוצת החיבורים שהיא באמת מגנה הם שני דברים שונים. קבעו קודם את הקבוצה המוגנת, כי היא מחליטה אם אכיפה לכל אפליקציה או נעילה ברמת המכשיר היא התיאור הכנה.
התחילו מהקבוצה, לא מהתווית
מדיניות לכל אפליקציה מגנה על אפליקציות נבחרות. נעילת מכשיר מכוונת לגבול רשת רחב יותר, בדרך כלל עם חריגים מתועדים להדפסה מקומית, לתעבורת ניהול או לפורטלי לכידה. אף אחת מהתוויות אינה שלמה עד שתוכלו לענות על שלוש שאלות: מה קורה לאפליקציות מוחרגות, מה קורה לעוזרים שהאפליקציות האלה מפעילות, ומה קורה לחיבורים שנפתחים כשהגנה אינה זמינה.
רשמו את התשובות לפני שאתם נוגעים בהגדרה של הלקוח. אם הדרישה היא "לקוח השכר הזה לא ידבר עם האינטרנט מחוץ למנהרה לעולם, והדפדפן שלי כן", הקבוצה קטנה ואכיפה לכל אפליקציה מתאימה. אם הדרישה היא "שום דבר במכשיר הזה לא מגיע לאינטרנט בלי הגנה, למעט שירות העדכונים", אף מדיניות לכל אפליקציה לא תייצר את זה, כי האפליקציות שלא ציינתם הן הבעיה.
אכיפה לכל אפליקציה מתאימה מזהים, לא שמות תוכניות
אנדרואיד חושף VPN לכל אפליקציה דרך חבילות, ותיעוד VpnService שלו מתאר איך זה משתלב עם פעולה תמידית ועם חסימה. iOS מגדיר VPN לכל אפליקציה דרך פרופיל ניהול ומתאים לפי אפליקציה או לפי דומיין. ב-Windows וב-Linux אין נתיב לכל תהליך כלל, ולכן אותו רעיון מקורב באמצעות כלל חומת אש המוגבל לתוכנית או כלל שמתאים למשתמש הבעלים.
הגבול הוא המזהה, וקל לעקוף מזהים. אפליקציה שמוסרת כתובת URL לדפדפן המערכת, או פותחת מסמך בצופה, עוברת לתהליך שהמדיניות שלכם מעולם לא ציינה. גם אפשרות סיום בנפילה אינה מסנן מנות: היא הורגת את האפליקציה שהגדרתם, בעוד תהליך בן, עובד תור או לשונית דפדפן יכולים להשאיר שקע קיים בחיים.
הנעילה מכסה את מה שמדיניות לכל אפליקציה לא יכולה לראות
נעילה ברמת המכשיר מסירה את הבחירה. כל מנה יוצאת שאינה שייכת למנהרה נזרקת, כולל תעבורה מתהליכים שמדיניות האפליקציות שלכם מעולם לא הכירה. באנדרואיד זה VPN תמידי בשילוב עם הגדרת חסימת חיבורים, והאכיפה מתרחשת במערכת, לא בחלון הלקוח. בשולחני זה כלל חומת אש קבוע או נתיב ברירת מחדל המכוון לשער שאינו נגיש.
המחיר הוא שכל השאר נעצר, ולכן החריגים הופכים לחלק מהתכנון ולא למחשבה שלאחר מעשה. מדפסות מקומיות, גילוי שירותים, כניסה לפורטלי לכידה, סוכני ניהול ועדכוני מערכת הפעלה זקוקים כל אחד לחור מתועד, כי כל אחד מהם הוא נתיב שנשאר פתוח כשהמנהרה למטה. הנעילה חזקה רק כמו הרשומה הקצרה ביותר ברשימה הזאת.
DNS, IPv6 ועוזרי רקע מסתירים את הדליפות
אפליקציה מוגנת שנכשלת בפתרון שם אינה מוכיחה שתשובות מהמטמון או תעבורת IP ישירה חסומות. אם הפותר עדיין נגיש מחוץ למנהרה, השם נפתר והחיבור נכשל, מה שנראה כמו מתג הרג עובד והוא אינו. גרוע מכך, רשומת מטמון עשויה להצביע על כתובת שהמנהרה לא נושאת, ולכן החיבור יוצא ישירות בזמן שהאפליקציה מדווחת על שגיאת VPN.
IPv6 זקוק לכלל משלו בכל פלטפורמה שמפעילה אותו, כי כלל השלכה ל-v4 אינו מכסה נתיב v6. בנייד, הגדרת DNS פרטי יכולה להעביר את הפתרון לערוץ מוצפן שמדיניות המכשיר אינה בודקת. ועוזרי הרקע הם החשוד הרגיל בשולחני: תהליך עדכון או סנכרון במגש מתחיל לפני לקוח ה-VPN ושומר על חיבור משלו, ולכן הוא לעולם לא רואה את הנתיב שהשתנה.
בדקו שלוש אפליקציות ושני מעברים
| Test | What it proves |
|---|---|
| Included app, by name and by direct IP | the policy is applied, not just the resolver |
| Excluded app, same checks | the exclusion is intentional and documented |
| Helper or updater process | nothing inherited an older route |
| Tunnel drop, then Wi-Fi to cellular | the block survives the transition |
הריצו כל שורה פעמיים, פעם עם שם מארח ופעם עם כתובת מפורשת, ופעם נוספת דרך IPv6 אם הרשת מציעה זאת. מעבר פירושו שהאפליקציה הכלולה נעצרה, המוחרגת התנהגה כפי שכתבתם, והעוזר לא חמק החוצה. תעדו את ההתנהגות הישירה שקבעתם שהיא מקובלת, כדי שהמנהל הבא יוכל להבחין בין חריגה מכוונת לתקלה.
לאחר מכן תארו את התוצאה במשפט אחד שמציין את האפליקציות ואת התנאים, למשל: ללקוח השכר אין נתיב מחוץ למנהרה, הדפדפן ישיר לפי תכנון, וכל השאר נעצר כשהמנהרה למטה. אם קשה לכתוב את המשפט הזה, המדיניות היא עדיין שתי מדיניויות שנלחמות זו בזו.