איסוף יומנים של ForgeRock OpenAM

גרסת המנתח: 4.0

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומני ForgeRock OpenAM ב-Google Security Operations באמצעות סוכן Bindplane.

‫ForgeRock OpenAM הוא פתרון לניהול הרשאות גישה שיוצר הודעות syslog לאירועי אימות, החלטות של בקרת גישה, פעילות בסשן ושינויים בהגדרות. הכלי לניתוח מחלץ שדות מיומני ביקורת בפורמט JSON וממפה אותם למודל הנתונים המאוחד (UDM).

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

חשוב לוודא שיש לכם את הדברים הבאים:

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות רשת בין סוכן Bindplane לבין שרת ForgeRock OpenAM
  • אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • גישת אדמין למסוף AM (לדוגמה, amAdmin)

קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane

כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
  1. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים אל IAM & Admin > Service Accounts (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
  3. לוחצים על Create service account.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם חשבון השירות: מזינים שם לחשבון (לדוגמה, bindplane-ingest).
    • Service account description: מזינים תיאור (לדוגמה, Bindplane agent log ingestion).
  5. לוחצים על Create and continue.
  6. בקטע Grant this service account access to project, לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
  7. לוחצים על המשך ואז על סיום.
  8. לוחצים על חשבון השירות שיצרתם ועוברים לכרטיסייה Keys.
  9. לוחצים על Add key > Create new key.
  10. בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
  11. שומרים את קובץ המפתח בשם ingestion-auth.json בספריית Bindplane Collector (/opt/observiq-otel-collector/ingestion-auth.json ב-Linux או C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json ב-Windows), או מעדכנים את creds_file_path ב-config.yaml כך שיתאים לנתיב שבו שומרים את הקובץ.
  12. עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.

אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.

איך מוצאים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile.
  3. מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת הסוכן של Bindplane

מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.

התקנה ב-Windows

  1. פותחים את שורת הפקודה או את PowerShell כאדמין.
  2. מריצים את הפקודה הבאה:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. מחכים שההתקנה תסתיים.

  4. מאמתים את ההתקנה על ידי הרצת:

    sc query observiq-otel-collector
    

    השירות אמור להופיע כ-RUNNING.

התקנה ב-Linux

  1. פותחים טרמינל עם הרשאות root או sudo.
  2. מריצים את הפקודה הבאה:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

  4. מאמתים את ההתקנה על ידי הרצת:

    sudo systemctl status observiq-otel-collector
    

    השירות אמור להופיע כ-active (running).

מקורות מידע נוספים להתקנה

אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.

הגדרת סוכן Bindplane להטמעת syslog ושליחה אל Google SecOps

מאתרים את קובץ התצורה

  • ‫Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

עריכת קובץ התצורה

  • מחליפים את כל התוכן של config.yaml בהגדרות הבאות:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/openam:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: OPENAM
        raw_log_field: body
    
    service:
      pipelines:
        logs/openam_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/openam
    

פרמטרים להגדרה

מחליפים את ה-placeholders הבאים:

  • הגדרת מקלט:

    • ‫listen_address: כתובת ה-IP והיציאה להאזנה:
      • 0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • יציאה 514 היא יציאת syslog רגילה (נדרשת הרשאת root ב-Linux; אפשר להשתמש ב-1514 ללא הרשאת root)
  • הגדרת הייצוא:

    • ‫creds_file_path: הנתיב המלא לקובץ מפתח JSON של חשבון השירות (אפשרות 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫customer_id: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫location: מחליפים את <LOCATION> באזור של המכונה של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט שמופיע בקטע IAM & Admin > Settings.
    • ‫endpoint: צריך להשאיר את ההגדרה chronicle.googleapis.com.

מייצא API להטמעה מדור קודם

  • אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק exporters בקוד הבא. מגדירים את creds_file_path לנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים את malachiteingestion-pa.googleapis.com בנקודת הקצה האזורית (לדוגמה, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/openam:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: OPENAM
        raw_log_field: body
    

שמירת קובץ התצורה

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • ‫Linux: מקישים על Ctrl+O, אחר כך על Enter ואז על Ctrl+X.
    • ‫Windows: לוחצים על קובץ > שמירה.

מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.

  • כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:

    sudo systemctl restart observiq-otel-collector
    
    1. מוודאים שהשירות פועל:

      sudo systemctl status observiq-otel-collector
      
    2. בודקים אם יש שגיאות ביומנים:

      sudo journalctl -u observiq-otel-collector -f
      
  • כדי להפעיל מחדש את הסוכן של Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:

    • שורת הפקודה או PowerShell כאדמין:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • מסוף השירותים:

      1. לוחצים על Win+R, מקלידים services.msc ולוחצים על Enter.
      2. מאתרים את observIQ OpenTelemetry Collector.
      3. לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
      4. מוודאים שהשירות פועל:

        sc query observiq-otel-collector
        
      5. בודקים אם יש שגיאות ביומנים:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

הגדרת רכיבי handler של syslog ל-ForgeRock OpenAM

  1. נכנסים למסוף AM כאדמינים (לדוגמה, amAdmin).
  2. כדי ליצור את ה-גורם מטפל באירועים בהגדרה הגלובלית, עוברים אל הגדרה > שירותים גלובליים > יומן ביקורת.
    • כדי ליצור את הגורם המטפל באירועים בתחום, עוברים אל Realms > Realm Name > Services > Audit Logging.
  3. לוחצים על Add a Secondary Configuration > Syslog (הוספת הגדרה משנית > Syslog).
  4. מספקים את פרטי ההגדרה הבאים:
    • שם: מזינים שם לגורם המטפל באירועים (לדוגמה, Syslog Event Handler).
    • שם המארח של השרת: מזינים את כתובת ה-IP של סוכן Bindplane.
    • יציאת השרת: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה, 514 ל-UDP).
    • פרוטוקול תעבורה: בוחרים באפשרות UDP.
    • זמן קצוב לתפוגת החיבור: מזינים את מספר השניות לחיבור (לדוגמה, 120).
    • אופציונלי: מפעילים את האפשרות אגירת נתונים.
  5. לוחצים על יצירה.
  6. בכרטיסייה General Handler Configuration, בוחרים באפשרות Enabled כדי להפעיל את הגורם המטפל באירועים.
  7. בוחרים את הנושאים של יומני הביקורת:
    • גישה
    • פעילות
    • אימות
    • הגדרות אישיות
  8. לוחצים על Save.
  9. בכרטיסייה Syslog Configuration (הגדרת Syslog), מזינים את פרטי ההגדרה הבאים:
    • שם המארח של השרת: מזינים את כתובת ה-IP של Bindplane.
    • יציאת השרת: מזינים את מספר היציאה של Bindplane.
    • זמן קצוב לתפוגת החיבור: מזינים את מספר השניות לחיבור (לדוגמה, 120).
    • פרוטוקול העברה: בוחרים באפשרות UDP.
    • ‫Facility: בוחרים באפשרות Local0.
    • כל הנושאים מוגדרים ברמת חומרה INFORMATIONAL.
  10. לוחצים על Save.
  11. בכרטיסייה Buffering (אגירת נתונים), בוחרים באפשרות Buffering Enabled (אגירת נתונים מופעלת) כדי להפעיל אותה.
  12. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
client.ip principal.ip כתובת ה-IP של הלקוח ששולח את הבקשה.
client.ip principal.asset.ip כתובת ה-IP של נכס הלקוח ששולח את הבקשה.
client.port principal.port היציאה שמשמשת את הלקוח ששולח את הבקשה.
entries[0].info.authLevel principal.resource.resource_subtype רמת האימות שמשויכת לאירוע. עם הקידומת "authLevel:‎".
entries[0].info.displayName security_result.description שם תיאורי לצומת בעץ האימות.
entries[0].info.ipAddress principal.asset.ip כתובת ה-IP שמשויכת לחשבון המשתמש באירוע.
entries[0].info.ipAddress principal.ip כתובת ה-IP שמשויכת לחשבון המשתמש באירוע.
entries[0].info.nodeId principal.resource.id המזהה הייחודי של הצומת בעץ האימות. הערך מתחיל ב-nodeId:.
entries[0].info.nodeOutcome principal.resource.attribute.labels.value התוצאה של הצומת בעץ האימות.
entries[0].info.nodeType principal.resource.type סוג הצומת בעץ האימות. עם הקידומת "nodeType:".
entries[0].info.treeName principal.resource.name השם של עץ האימות. עם הקידומת "treeName:‎".
eventName metadata.product_event_type שם האירוע הגולמי מיומני OpenAM.
http.request.headers.host[0] target.asset.hostname שם המארח של שרת היעד, שחולץ מהכותרת host.
http.request.headers.host[0] target.hostname שם המארח של שרת היעד, שחולץ מהכותרת host.
http.request.headers.user-agent[0] network.http.user_agent סוכן המשתמש של בקשת ה-HTTP.
http.request.method network.http.method ה-method של ה-HTTP שמשמשת בבקשה.
http.request.path target.url הנתיב של כתובת ה-URL של בקשת ה-HTTP.
info.failureReason security_result.summary הסיבה לכשל באימות. מקודד בתוך הקוד ל-"SSO". נקבע לפי לוגיקה שמבוססת על eventName ושדות אחרים. הערכים האפשריים: GENERIC_EVENT,‏ USER_LOGIN,‏ USER_LOGOUT,‏ NETWORK_HTTP או STATUS_UPDATE. הערך מוטמע בקוד כ-"OPENAM". מקודד באופן קשיח ל-"OpenAM". הערך מוטמע בקוד כ-ForgeRock.
principal target.user.userid מזהה המשתמש שמעורב באירוע, שחולץ מהשדות userId, principal או runAs.
result security_result.action_details תוצאת האירוע (למשל, "SUCCESSFUL",‏ "FAILED").
response.detail.reason security_result.summary הסיבה לכשל באירוע של תוצאת גישה.
response.status security_result.action_details סטטוס התגובה באירוע של תוצאת גישה.
runAs target.user.userid מזהה המשתמש שמשויך לאירוע, שחולץ מהשדות userId, principal או runAs.
security_result.action security_result.action הפעולה שבוצעה כתוצאה מאירוע האבטחה (למשל, "ALLOW",‏ "BLOCK").
server.ip target.asset.ip כתובת ה-IP של שרת היעד.
server.ip target.ip כתובת ה-IP של שרת היעד.
server.port target.port היציאה של שרת היעד.
timestamp metadata.event_timestamp חותמת הזמן של האירוע.
trackingIds metadata.product_log_id מזהה לצורכי מעקב שמשויך לאירוע.
transactionId metadata.product_deployment_id מזהה העסקה שמשויך לאירוע.
userId target.user.userid מזהה המשתמש שמעורב באירוע, שחולץ מהשדות userId, principal או runAs.
userId target.user.group_identifiers מזהי הקבוצות שמשויכים למשתמש.
am_group target.user.group_identifiers מזהי הקבוצות שמשויכים למשתמש.
am_user target.user.email_addresses כתובת האימייל של המשתמש, אם היא מופיעה בשדה am_user.
loginID[0] target.user.userid מזהה ההתחברות ששימש באירוע.
loginID[0] target.user.email_addresses כתובת האימייל ששימשה לכניסה, אם היא מופיעה בשדה loginID.
hostip intermediary.hostname שם המארח של מכשיר מתווך.
hostip intermediary.ip כתובת ה-IP של מכשיר ביניים.
src_ip principal.asset.ip כתובת ה-IP של המקור.
src_ip principal.ip כתובת ה-IP של המקור.
desc metadata.description תיאור האירוע.
payload metadata.description המטען הייעודי של האירוע.
http.request.headers.host.0 tatget.hostname מופה מיומן השינויים
http.request.headers.user-agent.0 network.http.user_agent מופה מיומן השינויים
extensions.auth.type SSO מופה מיומן השינויים

יומן שינויים

צפייה ביומן השינויים של כלי הניתוח הזה

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