קובצי OVPN לא מוכרים: סיכון מקומי ואמון מרחוק
פרופיל יכול להשפיע על הלקוח במחשב שלך ולבחור את המפעיל שרואה את התעבורה שלך. בחן את שתי ההחלטות לפני ייבוא הקובץ.
התייחס לקובץ OVPN כאל קלט לתוכנית, ולא כאל תעודה שהתוכן שלו אינו מזיק. בדיקת כתובת השרת עונה רק לאן הפרופיל רוצה להתחבר, ולא לשום דבר אחר. בקובץ הזה נמצאות שתי החלטות אמון נפרדות: מה הלקוח רשאי לעשות במחשב שלך, ואיזה מפעיל מקבל את התעבורה. שם פרוטוקול מוכר לא מכריע אף אחת מהן.
שתי החלטות מסתתרות בקובץ אחד
ההחלטה הראשונה מקומית. הפרופיל הוא שפת תצורה, והלקוח שקורא אותו עשוי לתמוך בהנחיות שטוענות תוספים, מריצות סקריפט או משנות כיצד מיושמים ניתוב ו-DNS. ההחלטה השנייה מרוחקת. יהיה תוכן הקובץ אשר יהיה, מפעיל היציאה רואה את התעבורה שמגיעה אליו.
ערבוב השניים מייצר עצה גרועה בשני הכיוונים: פרופיל שנראה נקי ממפעיל לא מוכר, או הפרופיל של מפעיל מוכר עם וו שאיש לא קרא. פרופיל שבטוח מקומית עדיין יכול למסור את התעבורה שלך למי שלא היית בוחר.
קרא את הפרופיל לפני שכל לקוח יעשה זאת
קרא את הקובץ כטקסט לפני שכל לקוח מעבד אותו. חפש הנחיות שמצביעות מחוץ לקובץ, מפנות לקובצי הפעלה או משנות הרשאות, והשווה את הרשימה הזו לתמיכה המתועדת של הלקוח. חיפוש קצר אינו סקירת אבטחה, אבל הוא אומר לך אם הפרופיל הוא רשימת שרתים או משהו יותר.
grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn
תוצאה ריקה מרגיעה ואינה חד משמעית, כי אפשרויות יכולות להשפיע זו על זו או לבוא מקובץ כלול. התייחס לרשימה המסוננת כאל סיבה להמשיך לקרוא, לא כאל פסק דין.
ההוראות שמגיעות יחד עם הפרופיל ראויות לאותה בחינה כמו הפרופיל. ארבע בקשות אמורות לעצור אותך: הפעלת סקריפטים, התקנת עזר או ספרייה, הרצת הלקוח כמנהל, או החלשת הגבלת ייבוא. כל אחת מהן מזיזה את גבול האמון החוצה, ואף אחת מהן אינה חלק רגיל מייבוא רשימת שרתים.
קרא גם את הקובץ כולו פעם אחת, כי קל יותר לשפוט שורה לא מוכרת בהקשר מאשר ברשימה מסוננת. אם שורה אינה מוכרת, חפש אותה במדריך של הלקוח שלך במקום לנחש.
מה הלקוח יבצע בפועל
המדריך של 2.6 Community OpenVPN מתעד את שלבי script-security: רמה 1 היא ברירת המחדל וחוסמת סקריפטים שמוגדרים על ידי המשתמש, ואילו רמה 2 מתירה אותם. טעינת תוספים היא מתקן נפרד עם הנחיה משלו. לכן אותו קובץ יכול לומר דברים שונים בלקוחות שונים. לקוחות ניידים ולקוחות ספק עשויים לקבל סט מצומצם יותר של הנחיות, או אף אחד מהווים.
שיטת ההפעלה חשובה לא פחות מהלקוח. פרופיל שמופעל על ידי עזר בעל הרשאות יכול לעשות יותר מפרופיל שמופעל במרחב המשתמש, וההבדל הזה הוא סיבה לקרוא את הנחיית הייבוא ולא לבטל אותה.
גם הגרסה חשובה, כי הרמות האלה מוגדרות לכל מהדורה ולקוח שפיגר בכמה גרסאות עשוי לא ליישם את אותה מדיניות. קרא את המדריך שמתאים לבנייה שאתה מריץ, ולא את החדש ביותר שתמצא. אם הלקוח לא מציג שום מחרוזת גרסה בשום מקום, זו כבר סיבה להאט.
השווה את המפעיל, לא רק את הכתובת
השווה מפעילים כפי שאתה משווה כל מתווך אחר. שאל מי מפעיל את היציאה, מה הם רושמים, ואיך הפרופיל הגיע אליך. עמוד הורדה מאומת וטביעת אצבע תואמת אומרים יותר משם מארח מוכר. שרת נגיש מוכיח רק שמשהו ענה.
פרטי ההתחברות הם החלק שאנשים טועים בו תחת לחץ. אל תקליד סיסמת חשבון לא קשור בפרופיל שהורדת כי שם השרת נראה מוכר. פרופיל יכול לשאת גם מפתח פרטי בגלוי, ולכן פרסום הקובץ כולו בשרשור סקירה מוסר את המפתח לשרשור.
הפעלת HTTPS מאומתת כראוי עדיין מסתירה את תוכן העמוד מכל מי שרק מעביר מנות, ולכן היציאה אינה רואה אוטומטית כל סיסמה. היא כן רואה לאילו אתרים אתה מגיע, וכדאי לומר את הגבול הזה בדיוק ולא בהגזמה.
כשמקור הקובץ נשאר לא ברור, או שלהרשאה שהוא מבקש אין הסבר שתוכל לקבל, החלף את הפרופיל באחד ממקור שאפשר להטיל עליו אחריות. בחיבור עבודה מנוהל, המנהל צריך לאשר את הלקוח ואת התצורה כהחלטה אחת ולא כשתיים. שום דבר כאן אינו דורש שתוכיח זדון קודם; סירוב גישה הוא תשובה לגיטימית.