מבוא לכלי Nmap - כך נראה השלב הראשון של כל בדיקת חדירות¶
לפני שבודק חדירות מנסה לנצל חולשה כלשהי, יש לו בעיה הרבה יותר בסיסית לפתור - הוא בכלל לא יודע מה יש ברשת שמולו. אילו מכונות פעילות, אילו שירותים רצים עליהן, ואיזו גרסה של כל תוכנה מותקנת. Nmap הוא הכלי שעונה על השאלות האלה, והוא כנראה הכלי הכי נפוץ בעולם אבטחת המידע כולו.
אז מה הבעיה ש-Nmap פותר¶
תארו לכם שאתם מקבלים אישור לבדוק את האבטחה של רשת מסוימת. יש בה כמה עשרות מכונות, ואתם לא יודעים כלום עליהן - לא אילו מהן דולקות, לא אילו שירותים הן מריצות, ולא אילו גרסאות תוכנה מותקנות עליהן. בלי המידע הזה, אין לכם בכלל על מה לעבוד. Nmap, קיצור של Network Mapper, נבנה בדיוק בשביל זה - הוא שולח חבילות רשת מבוקרות למכונות היעד, ולפי התגובות שהוא מקבל הוא בונה מפה מלאה של מה שקיים שם.
התוצאה היא רשימה של מכונות פעילות, ולכל אחת מהן רשימת פורטים פתוחים ואיזה שירות רץ על כל פורט - שרת ווב, שרת מייל, מסד נתונים, ועוד. זה בדיוק המידע שבודק חדירות צריך כדי להחליט לאן להמשיך לחקור.
איך זה עובד ברמת המושג¶
הרעיון הבסיסי של Nmap הוא פשוט למרות שהמימוש שלו מתוחכם מאוד. הכלי שולח חבילות רשת קטנות למכונת היעד ובודק איך היא מגיבה. אם פורט מסוים "עונה" בצורה מסוימת, זה אומר שיש שם שירות שמאזין. אם הוא לא עונה בכלל, או עונה בצורה שמעידה על חסימה, Nmap יודע לסווג את זה בהתאם.
יש כמה שיטות סריקה שכדאי להכיר ברמת המושג. סריקת TCP connect פשוט מנסה לפתוח חיבור מלא לכל פורט, בדיוק כמו שתוכנה רגילה הייתה עושה, וזו הדרך הכי "שקטה" מבחינת מהירות אבל הכי בולטת מבחינת נראות ברשת. סריקת SYN, שידועה גם בתור half-open scanning, שולחת רק את השלב הראשון של תהליך יצירת החיבור ולא משלימה אותו, מה שהופך אותה למהירה יותר ופחות מורגשת בלוגים של המערכת. מעבר לזה, Nmap יודע גם לזהות גרסאות שירותים בדיוק, ואפילו לנסות לזהות באיזו מערכת הפעלה רץ היעד, בהתבסס על התנהגויות עדינות בתגובות הרשת שלו.
מנוע הסקריפטים - NSE¶
מעבר לסריקה הבסיסית, ל-Nmap יש מנוע סקריפטים שנקרא NSE - Nmap Scripting Engine. זו למעשה ספרייה ענקית של סקריפטים קטנים שכל אחד מהם בודק דבר ספציפי - החל מזיהוי חולשות ידועות בגרסת שירות מסוימת, ועד איסוף מידע נוסף על שירות שכבר זוהה. במקום להריץ סריקה בסיסית ואז לבדוק כל שירות בנפרד באופן ידני, NSE מאפשר לצרף שכבה נוספת של בדיקה אוטומטית לתהליך הסריקה עצמו, מה שהופך את Nmap מכלי מיפוי בסיסי לכלי הרבה יותר עוצמתי.
למה זה תמיד השלב הראשון בבדיקת חדירות¶
כמעט כל מתודולוגיית בדיקת חדירות מתחילה בשלב שנקרא recon, או איסוף מידע. בלי לדעת אילו מכונות ושירותים קיימים ברשת, אי אפשר לתכנן שום המשך. Nmap הוא הכלי שהופך את השלב הזה מתהליך ידני ומייגע לתהליך מהיר ומאורגן, ולכן הוא נמצא כמעט בכל תיק כלים של בודק חדירות, מהמתחילים ביותר ועד המומחים הכי ותיקים. חשוב מאוד להדגיש - סריקת רשתות בלי הרשאה מפורשת מבעלי המערכת היא לא חוקית, גם אם היא "רק סריקה" ולא ניצול בפועל. כל תרגול צריך להתבצע על מכונות שהוקמו במיוחד לתרגול, או במסגרת עבודה מורשית עם הסכם ברור.
נקודת המבט של המגן¶
מה שמעניין הוא שהבנת Nmap חשובה לא פחות לצוותי הגנה. סריקת פורטים משאירה טביעת רגל אופיינית בלוגים של הרשת - הרבה חיבורים קצרים ולא שלמים למגוון פורטים בזמן קצר, לפעמים ממקור בודד. צוותי אבטחה שיודעים איך Nmap עובד יודעים בדיוק מה לחפש כדי לזהות סריקה כזאת מוקדם, לפני שהתוקף בכלל מגיע לשלב הבא. זו בדיוק הסיבה שגם מי שרוצה להיות בצד ההגנתי, ולא רק ההתקפי, צריך להכיר את הכלי הזה לעומק.
איך לומדים את זה נכון¶
הדרך הכי טובה להפנים איך Nmap עובד היא לא לקרוא רשימת פרמטרים, אלא להריץ אותו שוב ושוב על סביבות מעבדה מבוקרות, ולראות עם עיניים שלכם איך כל שינוי בשיטת הסריקה משפיע על התוצאה ועל הרעש שהיא יוצרת ברשת. בקורס בדיקות חדירה אנחנו מתחילים בדיוק מהשלב הזה - לומדים לבנות תמונה מלאה של סביבה לפני שמנסים לגעת בה בכלל, כי בלי מיפוי טוב אין בדיקת חדירות אמיתית.
לסיכום¶
Nmap הוא לא כלי תקיפה במובן המסורתי - הוא כלי מודיעין. הוא לא פורץ שום דבר בעצמו, אבל בלעדיו כמעט אי אפשר לדעת בכלל מה יש לפרוץ. זו הסיבה שהוא הכלי הראשון שכל בודק חדירות לומד, והכלי האחרון שהוא מפסיק להשתמש בו.
הצטרפו לקהילה בדיסקורד ובואו ללמוד לתרגל את זה בסביבה חוקית ומבוקרת, יחד עם קהילה שלמה שלומדת בדיוק את אותו הדבר.