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

בחרו טענה נצפית אחת

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

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

עובדות הגדרה שקורא צריך כדי לחזור על המדידה

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

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

אמרו מה נמדד ומה זה אומר

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

curl -s https://icanhazip.com
curl -s https://ipinfo.io/ip; echo
resolvectl status --no-pager | head -15

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

מה שייך לרשומה, ומה חייב להימחק

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

FieldWhat to write
ClaimOne testable sentence naming the profile, the network and the observation
Observer and scopeWho could see the traffic or the record, and under which conditions
SetupClient and server versions, profile name, access network, address families, split-tunnel rules, event under test
Raw resultTool output with a timestamp, exit addresses from both echo services, resolver answer
What it does not supportRetention, third-party access, correlation, untested address families

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

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

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