איסוף יומנים של Microsoft IAS או Network Policy Server ‏(NPS)

נתמך ב:

במסמך הזה מוסבר איך אוספים יומנים של Microsoft Internet Authentication Service ‏(IAS) או Network Policy Server ‏(NPS) על ידי הגדרת פיד של Google SecOps באמצעות Microsoft Azure Blob Storage V2.

‫Microsoft Network Policy Server ‏(NPS) הוא ההטמעה של מיקרוסופט לשרת ולשרת proxy של RADIUS (שירות משתמשים לחיוג ואימות מרחוק). NPS מאפשר ניהול מרכזי של אימות, הרשאה וחשבונאות של גישה לרשת עבור חיבור דרך VPN, נקודות גישה אלחוטיות, מתגי אימות 802.1X וגישה מרחוק בחיוג. NPS נקרא בעבר Internet Authentication Service (IAS) ב-Windows Server 2003 ובגרסאות קודמות. מכיוון ש-NPS פועל כתפקיד של Windows Server ללא יכולות ייצוא מקוריות לענן, במדריך הזה נעשה שימוש ב-Azure Monitor Agent כדי לאסוף קובצי יומן של חשבונות NPS ממערכת הקבצים המקומית ולנתב אותם דרך סביבת עבודה של Log Analytics אל Azure Blob Storage.

לפני שמתחילים

  • ודאו שאתם עומדים בדרישות המוקדמות הבאות:

  • מכונה של Google SecOps

  • גישה עם הרשאות מיוחדות לפורטל Microsoft Azure עם הרשאות:

    • יצירת חשבונות אחסון
    • יצירה וניהול של סביבות עבודה לניתוח נתוני יומן
    • יצירת כללים לאיסוף נתונים
    • יצירת כללים לייצוא נתונים
    • ניהול מפתחות הגישה
  • ‫Windows Server 2016 ואילך עם תפקיד NPS מותקן

  • הרשאת אדמין לשרת ה-NPS

  • קישוריות רשת משרת ה-NPS ל-Azure (תעבורת HTTPS יוצאת ביציאה 443)

הגדרת רישום ביומן וחשבונאות של NPS

מפעילים את NPS כדי לתעד בקשות אימות וחשבונאות בקובץ טקסט מקומי בפורמט IAS.

הפעלת יומני חשבונאות של NPS

  1. ב-Windows Server שבו פועל NPS, פותחים את Server Manager.
  2. עוברים אל Tools > Network Policy Server.
  3. בעץ של מסוף ה-NPS, לוחצים על Accounting.
  4. בחלונית הפרטים, בקטע Accounting, לוחצים על Configure Accounting.
  5. באשף Accounting Configuration, בוחרים באפשרות Log to a text file on the local computer ולוחצים על Next.
  6. בדף Configure Log File Properties, מגדירים את הפרטים הבאים:
    • בקטע תיעוד המידע הבא ביומן, מסמנים את התיבות של המידע שרוצים לתעד ביומן:
      • בקשות בנושא הנהלת חשבונות
      • בקשות אימות
      • סטטוס חשבונאי תקופתי
      • סטטוס האימות התקופתי
    • בקטע Logging failure action, בוחרים באפשרות If logging fails, discard connection requests אם רוצים ש-NPS יפסיק את העיבוד כשקובצי היומן לא זמינים. אם רוצים ש-NPS ימשיך לעבד גם אם הרישום ביומן נכשל, משאירים את התיבה לא מסומנת.
  7. לוחצים על הבא.
  8. בודקים את הסיכום ולוחצים על סיום.

הגדרת המאפיינים של קובץ היומן

  1. בעץ של מסוף NPS, לוחצים על Accounting.
  2. בחלונית הפרטים, בקטע Log File Properties, לוחצים על Change Log File Properties.
  3. לוחצים על הכרטיסייה קובץ יומן.
  4. בשדה Directory, מאמתים או משנים את המיקום של קובץ היומן:
    • מיקום ברירת המחדל: %systemroot%\System32\LogFiles
    • כדי לשמור על הסדר, כדאי לציין ספרייה ייעודית (לדוגמה, C:\NPSLogs)
  5. בתפריט הנפתח פורמט, בוחרים באפשרות IAS (גרסה קודמת).

  6. בקטע Create a new log file, בוחרים את מרווח הזמן להחלפת קובצי יומן:

    • מדי יום (מומלץ לרוב הסביבות)
    • כל שבוע
    • חודשית
    • אף פעם (גודל קובץ בלתי מוגבל)
    • כאשר קובץ היומן מגיע לגודל הזה (צריך לציין את הגודל ב-MB)
  7. אם רוצים ש-NPS ימחק קובצי יומן ישנים כשאין מספיק מקום בכונן, בוחרים באפשרות When the disk is full delete older log files (כשהכונן מלא, צריך למחוק קובצי יומן ישנים).

  8. לוחצים על אישור כדי לשמור את ההגדרה.

  9. מוודאים שנוצרים קובצי יומן בספרייה שהוגדרה.

הגדרת חשבון Azure Storage

יצירת חשבון אחסון

  1. ב-Azure portal, מחפשים את Storage accounts.
  2. לוחצים על ‎+ Create.
  3. ממלאים את פרטי ההגדרה הבאים:

    הגדרה ערך
    מינוי בוחרים את המינוי ל-Azure.
    קבוצת משאבים בחירת קבוצה קיימת או יצירת קבוצה חדשה
    שם חשבון האחסון מזינים שם ייחודי (לדוגמה, npsiaslogs)
    אזור בוחרים את האזור (לדוגמה, East US).
    ביצועים רגיל (מומלץ)
    יתירות ‫GRS (אחסון משוכפל גיאוגרפית) או LRS (אחסון משוכפל מקומית)
  4. לוחצים על Review + create.

  5. בודקים את הסקירה הכללית של החשבון ולוחצים על יצירה.

  6. מחכים עד שהפריסה תסתיים.

קבלת פרטי הכניסה לחשבון האחסון

  1. עוברים אל Storage Account שיצרתם.
  2. בסרגל הניווט שמימין, בוחרים באפשרות Access keys בקטע Security + networking.
  3. לוחצים על הצגת מפתחות.
  4. מעתיקים ושומרים את הפרטים הבאים לשימוש בהמשך:
    • Storage account name: שם חשבון האחסון (לדוגמה, npsiaslogs)
    • מפתח 1 או מפתח 2: מפתח הגישה המשותף (מחרוזת אקראית של 512 ביט בקידוד base-64)

קבלת נקודת קצה של Blob Service

  1. באותו חשבון אחסון, בוחרים באפשרות Endpoints בתפריט הניווט הימני.
  2. מעתיקים ושומרים את כתובת ה-URL של נקודת הקצה של Blob service.
    • לדוגמה: https://npsiaslogs.blob.core.windows.net/

יצירת סביבת עבודה לניתוח נתוני יומן

כדי לקבל יומני טקסט בהתאמה אישית מ-Azure Monitor Agent לפני הייצוא שלהם ל-Azure Blob Storage, צריך סביבת עבודה של Log Analytics.

  1. ב-Azure portal, מחפשים את סביבות עבודה של ניתוח נתוני יומן.
  2. לוחצים על ‎+ Create.
  3. ממלאים את פרטי ההגדרה הבאים:

    הגדרה ערך
    מינוי בוחרים את המינוי ל-Azure.
    קבוצת משאבים בוחרים את אותה קבוצת משאבים כמו בחשבון האחסון.
    שם מזינים שם ייחודי (לדוגמה, nps-ias-workspace)
    אזור בוחרים את אותו אזור שבו נמצא חשבון האחסון.
  4. לוחצים על Review + Create.

  5. בודקים את ההגדרות ולוחצים על יצירה.

  6. מחכים עד שהפריסה תסתיים.

יצירת טבלת יומנים בהתאמה אישית

יוצרים טבלה בהתאמה אישית בסביבת העבודה של ניתוח נתוני היומן כדי לאחסן את נתוני היומן של NPS/IAS.

  1. בפורטל Azure, עוברים אל סביבת העבודה של ניתוח נתוני יומן שיצרתם.
  2. בתפריט הניווט הימני, בקטע הגדרות, לוחצים על טבלאות.
  3. לוחצים על ‎+ Create > New custom log (DCR-based).
  4. בשדה Table name, מזינים NpsIasLogs. השם המלא של הטבלה יהיה NpsIasLogs_CL.
  5. לוחצים על יצירה.

הוספת שרת ה-NPS ל-Azure Arc

מכיוון ש-NPS פועל ב-Windows Server מקומי, צריך להוסיף את השרת ל-Azure Arc לפני שמתקינים את Azure Monitor Agent.

רישום של שרת ה-NPS ב-Azure Arc

  1. ב-Azure portal, מחפשים את Azure Arc.
  2. בתפריט הניווט הימני, בקטע Infrastructure, לוחצים על Machines.
  3. לוחצים על + הוספה/יצירה > הוספת מכונה.
  4. בקטע Add servers with Azure Arc, בוחרים באפשרות Generate script בקטע Add a single server.
  5. מזינים את פרטי ההגדרה הבאים:
    • Subscription: בוחרים את המינוי ל-Azure.
    • Resource group: בוחרים את אותה קבוצת משאבים שבה השתמשתם קודם.
    • ‫Region: בוחרים את אותו אזור כמו של סביבת העבודה ב-Log Analytics.
    • מערכת הפעלה: בוחרים באפשרות Windows.
    • שיטת קישוריות: בוחרים באפשרות נקודת קצה ציבורית (או שרת proxy אם הרשת דורשת זאת).
  6. לוחצים על הורדה והפעלה של הסקריפט.
  7. מעתיקים את סקריפט PowerShell שנוצר לשרת ה-NPS.
  8. בשרת ה-NPS, פותחים את PowerShell כאדמין ומריצים את הסקריפט:

    & '.\OnboardingScript.ps1'
    
  9. פועלים לפי ההוראות במסך כדי לבצע אימות באמצעות Azure ולהשלים את תהליך ההצטרפות.

  10. אחרי שהסקריפט מסתיים, חוזרים אל Azure portal > Azure Arc > Machines ומוודאים ששרת ה-NPS מופיע עם הסטטוס Connected.

התקנת Azure Monitor Agent

התקנת Azure Monitor Agent בשרת שמופעל בו Arc

  1. ב-Azure portal, עוברים אל Azure Arc > Machines.
  2. בוחרים את שרת ה-NPS מרשימת המכונות.
  3. בתפריט הניווט הימני, בקטע הגדרות, לוחצים על תוספים.
  4. לוחצים על + הוספה.
  5. בוחרים באפשרות Azure Monitor Agent מרשימת התוספים.
  6. לוחצים על הבא.
  7. לוחצים על Review + create.
  8. לוחצים על יצירה.
  9. מחכים עד שההתקנה של התוסף תסתיים. הסטטוס ישתנה לההקצאה הצליחה.

יצירת כלל לאיסוף נתונים (DCR) לקובצי יומן של NPS

כלל איסוף נתונים (DCR) מורה לסוכן Azure Monitor לאסוף את קובצי היומן של NPS IAS ולשלוח אותם לסביבת העבודה של ניתוח נתוני יומן.

  1. ב-Azure portal, מחפשים את Monitor.
  2. בתפריט הניווט הימני, בקטע הגדרות, לוחצים על כללים לאיסוף נתונים.
  3. לוחצים על ‎+ Create.
  4. בכרטיסייה Basics, מזינים את פרטי ההגדרה הבאים:
    • Rule Name: מזינים dcr-nps-ias-logs.
    • Subscription: בוחרים את המינוי ל-Azure.
    • Resource Group: בוחרים את אותה קבוצת משאבים שבה השתמשתם קודם.
    • ‫Region: בוחרים את אותו אזור כמו של סביבת העבודה ב-Log Analytics.
    • סוג הפלטפורמה: בוחרים באפשרות Windows.
  5. לוחצים על הבא: משאבים.
  6. בכרטיסייה משאבים:
    1. לוחצים על + הוספת מקורות מידע.
    2. מרחיבים את קבוצת המשאבים ובוחרים את שרת ה-NPS שמופעל ב-Azure Arc.
    3. לוחצים על אישור.
  7. לוחצים על השלב הבא: איסוף ומסירה.
  8. בכרטיסייה איסוף ומסירה:

    1. לוחצים על + הוספה של מקור נתונים.
    2. בתפריט הנפתח Data source type, בוחרים באפשרות Custom Text Logs.
    3. בשדה File pattern, מזינים את הנתיב לקובצי היומן של NPS:

      C:\Windows\System32\LogFiles\IN*.log
      
    4. בתפריט הנפתח Table name, בוחרים באפשרות NpsIasLogs_CL.

    5. בשדה Record delimiter, בוחרים באפשרות End of line.

    6. בשדה Transform, מזינים source כדי לשלוח את נתוני היומן הגולמיים ללא שינוי.

    7. לוחצים על הוספה של מקור נתונים.

  9. בקטע Destination, מוודאים שסביבת העבודה של Log Analytics שיצרתם מופיעה ברשימה.

  10. לוחצים על Next: Review + create.

  11. בודקים את ההגדרות ולוחצים על Create.

הגדרת ייצוא נתונים ל-Azure Blob Storage

יוצרים כלל לייצוא נתונים כדי לייצא באופן רציף את נתוני היומן של NPS/IAS מסביבת העבודה של ניתוח נתוני היומן אל Azure Blob Storage.

יצירת כלל לייצוא נתונים

  1. בפורטל Azure, נכנסים לסביבת העבודה של ניתוח נתוני יומן שיצרתם.
  2. בתפריט הניווט הימני, בקטע הגדרות, לוחצים על ייצוא נתונים.
  3. לוחצים על + כלל ייצוא חדש.
  4. בכרטיסייה Basics, מזינים את פרטי ההגדרה הבאים:
    • שם הכלל: מזינים export-nps-ias-logs.
    • יעד: בוחרים באפשרות חשבון אחסון.
  5. לוחצים על הבא: מקור.
  6. בכרטיסייה Source, בוחרים את הטבלה NpsIasLogs_CL.
  7. לוחצים על הבא: יעד.
  8. בכרטיסייה יעד:
    • Subscription: בוחרים את המינוי שמכיל את חשבון האחסון.
    • ‫Storage Account: בוחרים את חשבון האחסון שיצרתם קודם (לדוגמה, npsiaslogs).
  9. לוחצים על Review + create.
  10. בודקים את ההגדרות ולוחצים על Create.

הגדרת פיד ב-Google SecOps כדי להטמיע יומני Microsoft IAS

  1. עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Microsoft IAS NPS Logs).
  5. בוחרים באפשרות Microsoft Azure Blob Storage V2 בתור Source type.
  6. בוחרים באפשרות Microsoft IAS בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    • ‫Azure URI: מזינים את כתובת ה-URL של נקודת הקצה של Blob Service עם הנתיב של המאגר:
    https://npsiaslogs.blob.core.windows.net/am-NpsIasLogs_CL/
    
    • מחליפים את הערכים בשדות הבאים:
      • ‫npsiaslogs: השם של חשבון האחסון ב-Azure.
      • ‫am-NpsIasLogs_CL: השם של מאגר ה-Blob שנוצר באופן אוטומטי על ידי הכלל לייצוא נתונים.
    • אפשרות מחיקת המקור: בוחרים את אפשרות המחיקה המועדפת:
    • אף פעם: לא למחוק קבצים אחרי ההעברה.
    • מחיקת קבצים שהועברו: מחיקת קבצים אחרי שהם הועברו בהצלחה.
    • מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות אחרי שההעברה מסתיימת.
    • גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים)
    • מפתח משותף: מזינים את ערך המפתח המשותף (מפתח הגישה) ששמרתם קודם מחשבון האחסון.
    • מרחב השמות של הנכס: מרחב השמות של הנכס
    • תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה
  9. לוחצים על הבא.

  10. בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.

הגדרת חומת האש של Azure Storage (אם היא מופעלת)

אם בחשבון Azure Storage שלכם יש חומת אש, אתם צריכים להוסיף את טווחי כתובות ה-IP של Google SecOps.

  1. ב-Azure portal, נכנסים ל-Storage Account.
  2. בקטע Security + networking, לוחצים על Networking.
  3. בקטע Firewalls and virtual networks, בוחרים באפשרות Enabled from selected virtual networks and IP addresses.
  4. בקטע חומת אש, מתחת לטווח כתובות, לוחצים על + הוספת טווח כתובות IP.
  5. מוסיפים כל טווח כתובות IP של Google SecOps בסימון CIDR.

    כדי לקבל את טווחי כתובות ה-IP הנוכחיים:

  6. מוודאים שהתיבה Allow Azure services on the trusted services list to access this storage account מסומנת (נדרש כדי שייצוא הנתונים של ניתוח נתוני יומן יעבוד).

  7. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM Logic (פונקציה לוגית)
packet_type additional.fields מיזוג עם תוויות לכל שדה אם הוא לא ריק
auth_type additional.fields
filter_id additional.fields
framed_netmask additional.fields
framed_address additional.fields
framed_protocol additional.fields
framed_routing additional.fields
framed_mtu additional.fields
framed_compression additional.fields
reason_code additional.fields
extensible_auth_protocol additional.fields
service_type additional.fields
nas_port additional.fields
reply_message additional.fields
nas_identifier additional.fields
device-type additional.fields
coa-push additional.fields
audit-session-id additional.fields
תאריך metadata.event_timestamp משורשר מהתאריך והשעה, ולאחר מכן מנותח בפורמט MM/dd/yyyy HH:mm:ss
פעם metadata.event_timestamp
principal_present metadata.event_type הערך מוגדר כ-"GENERIC_EVENT", ואז כ-"NETWORK_CONNECTION" אם principal_present ו-target_present, אחרת כ-"STATUS_UPDATE" אם principal_present
target_present metadata.event_type
ac-user-agent network.http.parsed_user_agent מומר מ-ac-user-agent אם הניתוח מצליח
ac-user-agent network.http.user_agent הערך הועתק ישירות
session_duration network.session_duration.seconds הערך מועתק ישירות ואז מומר למספר שלם
session_id network.session_id הערך הועתק ישירות
principal_hostname principal.asset.hostname הערך הועתק ישירות
principal_ip principal.asset.ip הערך מ-principal_ip אם כתובת ה-IP תקינה, אחרת calling_station_id אם כתובת ה-IP תקינה
calling_station_id principal.asset.ip
principal_hostname principal.hostname הערך הועתק ישירות
principal_ip principal.ip הערך מ-principal_ip אם כתובת ה-IP תקינה, אחרת calling_station_id אם כתובת ה-IP תקינה
calling_station_id principal.ip
device-mac principal.mac הערך מ-device-mac אם הוא לא ריק (אחרי החלפת - ב-:) אחרת device-public-mac
device-public-mac principal.mac
nat_ip principal.nat_ip הערך הועתק ישירות
device-platform principal.platform צריך להגדיר את הערך "WINDOWS" אם הוא נמצא ב-["Win","win"], את הערך "MAC" אם הוא =~ "mac|iOS", ואת הערך "LINUX" אם הוא =~ "lin"
device-platform-version principal.platform_version הערך הועתק ישירות
device-uid principal.resource.product_object_id הערך הועתק ישירות
user_name principal.user.user_display_name הערך הועתק ישירות
userid principal.user.userid הערך הועתק ישירות
service_name target.application הערך הועתק ישירות
computer_name target.asset.hostname הערך הועתק ישירות
target_ip target.asset.ip הערך מ-target_ip אם כתובת ה-IP תקינה, אחרת called_station_id אם כתובת ה-IP תקינה
called_station_id target.asset.ip
computer_name target.hostname הערך הועתק ישירות
target_ip target.ip הערך מ-target_ip אם כתובת ה-IP תקינה, אחרת called_station_id אם כתובת ה-IP תקינה
called_station_id target.ip
target_port target.port הערך מועתק ישירות ואז מומר למספר שלם
metadata.product_name metadata.product_name מגדירים את הערך "MICROSOFT_IAS"
metadata.vendor_name metadata.vendor_name מגדירים את הערך "MICROSOFT_IAS"

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.