לדלג לתוכן

מיפוי משטח תקיפה - Attack Surface Mapping - איך בונים תמונה מלאה של המטרה לפני שמתחילים

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

אז מה זה בעצם משטח תקיפה

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

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

אילו מרכיבים כוללים במיפוי

מיפוי מקיף בדרך כלל עובר על כמה שכבות:

  • תת-דומיינים. אתרים גדולים כמעט תמיד מריצים עשרות עד מאות תת-דומיינים - סביבות בדיקה, פורטלים פנימיים, שירותי API נפרדים, אתרי שיווק ישנים. חלקם מאובטחים פחות מהאתר הראשי, וזו בדיוק הסיבה שהם יעד אטרקטיבי.
  • שירותים ופורטים חשופים. מעבר לאתר עצמו, שרתים חושפים לפעמים שירותים נוספים - מסדי נתונים שהוגדרו לא נכון, פאנלים ניהוליים, שירותי ניטור - שלא היו אמורים להיות נגישים מהרשת הציבורית.
  • טביעת אצבע טכנולוגית - Fingerprinting. זיהוי אילו טכנולוגיות המערכת בנויה עליהן - איזה framework, איזה שרת web, איזה CMS - עוזר לצמצם את הכיוונים ולדעת אילו חולשות ידועות רלוונטיות בכלל.
  • נקודות כניסה - Entry Points. כל טופס, כל שדה קלט, כל אנדפוינט API, כל מנגנון העלאת קבצים, וכל תהליך הרשמה או התחברות. אלה הם המקומות שבהם המערכת מקבלת קלט מהמשתמש, ולכן הם המקומות שבהם רוב החולשות מתגלות בסופו של דבר.
  • אינטגרציות עם צד שלישי. שירותי תשלום, ספקי אימות, ווידג'טים חיצוניים, ו-API-ים של שירותים אחרים - כל אחד מהם מרחיב את משטח התקיפה מעבר לקוד שהצוות עצמו כתב.

למה מיפוי הופך בדיקה מבולגנת לתהליך מסודר

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

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

איך בונים את המפה בפועל

התהליך המעשי משלב כלים אוטומטיים עם עבודה ידנית:

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

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

למי זה מיועד ומתי עושים את זה

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

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

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

הצטרפו לקהילה בדיסקורד

לסיכום

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