קבלת גישה מרחוק ל-VPC מחייבת בדיקות סירוב
התחברות VPN שעובדת היא השורה הראשונה בטבלת הקבלה, לא האחרונה. כתבו את הסירובים הצפויים לכל תפקיד ובדקו את הבקרות שמחליטות עליהם.
קבלת גישה מרחוק היא טבלה של תוצאות צפויות, לא צילום מסך של עמוד שעובד. לכל קבוצה, כתבו מה אמור להצליח ומה אמור להיכשל, ואז הריצו את שניהם מול זהויות בדיקה ייעודיות בחלון מבוקר. הסירובים הם החלק שמוכיח את הגבול; התחברות מוצלחת מוכיחה רק שהמנהרה קיימת. כל זה עובד עם מוצר ה-VPN שכבר נבחר.
השתמשו בחשבונות נפרדים לבדיקות, ותייגו אותם כך שאיש לא יטעה לזהות בדיקה עם חריגה אמיתית.
כתבו את הגבול כתוצאות צפויות
התחילו מהתפקידים ולא מהרכיבים: מי צריך איזה שירות, מאיפה, ועם איזו זהות. קחו VPC להמחשה: קבוצה אחת צריכה את סביבת הבדיקות דרך HTTPS, אחרת צריכה מסד נתונים בייצור, וקבוצה שלישית וקטנה יותר מנהלת את השער עצמו. כל שורה מקבלת היתר צפוי וסירוב צפוי, כולל השירות השכן והחשבון השכן שלא אמורים לעבוד. הטבלה הזו היא קריטריון הקבלה, ואנשים שאינם מריצים את הבדיקות יכולים לעבור עליה.
בדקו את ההתחברות למסד הנתונים בנפרד מנתיב הרשת. פורט TCP נגיש לא אמור לגרום לחשבון מסד נתונים לא מאושר להצליח, וחברות ב-VPN לא אמורה ליצור תפקיד IAM בענן או להעניק גישה ניהולית ל-API. אלה שלוש בקרות בלתי תלויות, והן נכשלות באופן בלתי תלוי.
נתיב אינו הרשאה
נתיב מאפשר מסלול; הוא אינו מעניק הרשאה. החזקת נתיב היא תחליף חלש להגבלה שנאכפת ביעד, מפני שלקוח תמיד יכול להוסיף נתיב משלו. קבוצת האבטחה, ההענקה של מסד הנתונים וההרשאה של היישום עצמו נשארות הבקרות שמחליטות. כשבדיקה מצליחה באופן בלתי צפוי, הסתכלו קודם במדיניות היעד ולא בטבלת הניתוב שרציתם שלקוח יהיה לו.
זו גם הסיבה שבדיקות הסירוב מכוונות לצד השרת: את התוצאות האלה אי אפשר לשנות על ידי עריכת הלקוח.
איזה מקור הבקרה רואה בפועל?
כתובת המקור שהבקרה מעריכה תלויה בארכיטקטורת השער. שער המתארח ב-EC2 עשוי להעביר מאגר מנותב, לתרגם לכתובת שלו עצמו או להציג כתובת אחרת לאחר NAT; Client VPN מנוהל מתחבר ל-subnet ופועל לפי המודל שלו. קבוצות אבטחה ו-ACL של הרשת רואות את מה שמגיע לאחר העיבוד הזה. בדיקת כלל מול הנחת מקור שגויה היא דרך נפוצה לבנות גבול שנראה נכון ומקבל תעבורה שגויה.
קשרו כל תוצאה לאירוע השימושי הקטן ביותר: זהות ומושב, משאב, פעולה, זמן וההחלטה. קריאת API ב-CloudTrail, רשומת זרימה ב-VPC ויומן מושב VPN עונים על שאלות שונות, ואף אחד מהם לבדו אינו ביקורת של היישום.
הסירו זהות ובדקו אותה שוב
כללו את ההסרה באותה טבלה. הסירו זהות בדיקה, אשרו שמושב חדש נדחה, ואז אשרו בנפרד כיצד מטופלים מושבים קיימים, מפני שאלה התנהגויות שונות עם בעלים שונים. בדקו מה קורה לאחר הפעלה מחדש או החלפה של השער, כדי שחריגה שהוספה ביד לא תיעלם בשקט ולא תחזור רחבה יותר. גבול שמחזיק רק עד הפריסה הבאה אינו גבול.
שום דבר מזה אינו מחליף עבודת תיקונים, שחזור או מחזור חיים של אישורים. הוא הופך הבטחה צרה יותר למדידה: האנשים הנכונים מגיעים לשירותים הנכונים, בעוד נתיבים, חשבונות ומשטחי ניהול סמוכים נשארים מחוץ להענקה.
שמרו את הטבלה עם הפריסה והריצו אותה שוב כאשר השער משתנה. הבדיקות זולות; ההנחות שמאחוריהן לא.