איסוף יומנים של CA ACF2

גרסת כלי הניתוח: 2.0

נתמך ב:

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

‫Broadcom ACF2 (Access Control Facility 2) for z/OS הוא מוצר אבטחה למחשבי מיינפריים שמספק בקרת גישה, אימות וביקורת למערכות IBM z/OS. ‫ACF2 רושם אירועי אבטחה ברשומות של IBM System Management Facility‏ (SMF) (סוג ברירת המחדל 230), כולל ניסיונות אימות, הפרות של גישה למערך נתונים, אירועי גישה למשאבים, רישום ביומן של פקודות TSO ושינויים במסד נתונים. צריך להעביר את רשומות ה-SMF האלה אל Chronicle באמצעות סוכן צד שלישי, כמו BMC AMI Defender for z/OS.

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

חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין סוכן BMC AMI Defender for z/OS
  • אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • ‫BMC AMI Defender for z/OS מותקן ופועל ב-z/OS LPAR שבו ACF2 פעיל
  • גישה לשינוי קובצי הפרמטרים של BMC AMI Defender בערכת הנתונים amihlq.CZAGENT.PARM
  • הרשאה להפעיל או לשנות את המשימה שהופעלה CZAGENT ב-z/OS

קבלת קובץ אימות להטמעת נתונים ב-Google SecOps

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

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
  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
      

      השירות צריך להופיע כפעיל (פועל).

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

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

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

איתור קובץ ההגדרות

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • ‫Windows:

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

עריכת קובץ ההגדרות

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

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/acf2_logs:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CA_ACF2
        raw_log_field: body
        ingestion_labels:
          env: production
          source: acf2
    
    service:
      pipelines:
        logs/acf2_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/acf2_logs
    
  2. מחליפים את ה-placeholders הבאים:

    • הגדרות המקלט:

      • ‫listen_address: צריך להגדיר את הערך 0.0.0.0:514 כדי להאזין לכל הממשקים ביציאת UDP‏ 514

        • במערכות Linux שפועלות ללא הרשאות root, משתמשים ביציאה 1514 ומעלה
        • התאמה של היציאה הזו להגדרת הצהרת השרת של BMC AMI Defender
    • הגדרות של כלי הייצוא:

      • ‫creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:

        • ‫Linux: /etc/bindplane-agent/ingestion-auth.json
        • ‫Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • ‫customer_id: מחליפים את YOUR_CUSTOMER_ID ב-customer ID. פרטים נוספים זמינים במאמר בנושא קבלת מזהה לקוח ב-Google SecOps.

      • ‫endpoint: כתובת URL של נקודת קצה אזורית:

        • ארה"ב: malachiteingestion-pa.googleapis.com
        • אירופה: europe-malachiteingestion-pa.googleapis.com
        • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
        • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
      • ‫log_type: הערך שמוגדר הוא CA_ACF2 (תווית להטמעה ב-Chronicle של יומני ACF2)

      • ‫ingestion_labels: תוויות אופציונליות לסיווג יומנים (אפשר להתאים אישית לפי הצורך)

שמירת קובץ ההגדרות

אחרי שמסיימים לערוך, שומרים את הקובץ:

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

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

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

    1. מריצים את הפקודה הבאה:

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

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

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

    1. בוחרים אחת מהאפשרויות האלה:

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

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

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

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

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

הגדרת BMC AMI Defender for z/OS להעברת רשומות ACF2 SMF

עורכים את החבר $$$SERVR parameter member

  1. Sign in to the z/OS system using TSO/ISPF or a 3270 emulator.
  2. Navigate to the BMC AMI Defender parameter library:
    1. Enter ISPF at the TSO READY prompt.
    2. Select option 2 (Edit).
    3. In the ISPF Library field, enter the data set name: amihlq.CZAGENT.PARM (replace amihlq with your installation high-level qualifier).
    4. Press Enter.
  3. Edit the $$$SERVR:
    1. מזינים E לצד $$$SERVR member.
    2. Press Enter.
  4. Locate the SERVER statement section (approximately line 40-60).
  5. Uncomment one of the SERVER statements by removing the leading semicolon (;).
  6. Configure the SERVER statement with the Bindplane agent IP address and port:

    SERVER bindplane-host-ip:514 TRANS(UDP) MAXMSG(2000)
    
    • Replace bindplane-host-ip with the IP address of the Bindplane agent host (for example, 192.168.1.100).
    • If using a non-standard port (for example, 1514), specify: bindplane-host-ip:1514.
    • TRANS(UDP) specifies UDP transport protocol (recommended for syslog).
    • MAXMSG(2000) sets the maximum message length to 2000 bytes (ACF2 records may require larger sizes).
  7. Verify the OPTIONS statement for syslog format:

    1. Scroll up to locate the OPTIONS statements (approximately line 10-30).
    2. Ensure one of the following OPTIONS statements is uncommented based on your preferred format:

      OPTIONS IF(RFC 3164) SIEM(RFC 3164) TIMESTAMP INSTNAME(SIEM.Agent)
      
      • RFC 3164: Standard syslog format (recommended for Chronicle)
      • CEF: Common Event Format (alternative)
      • LEEF: Log Event Extended Format (alternative)
      • JSON: JSON format (alternative)
  8. Save the changes:

    1. Press F3 to exit the editor.
    2. Type SAVE when prompted.
    3. Press Enter.

Edit the $$$CONFG parameter member to enable ACF2 SMF record collection (חבר הפרמטר $CONFG כדי להפעיל איסוף של רשומות ACF2 SMF)

  1. ברשימת החברים במועדון של מערך הנתונים amihlq.CZAGENT.PARM, עורכים את החבר $$$CONFG member:

    1. Type E next to the $$$CONFG.

    2. מקישים על Enter.
  2. מחפשים את המתג לבחירת רשומת ACF2 SMF (מחפשים את ACF2 או SMF 230).

  3. מבטלים את ההערה של הצהרת SELECT עבור ACF2:

    SELECT IF(ACF2) SMF(ACF2)
    
    • ההגדרה הזו מאפשרת איסוף של רשומות ACF2 SMF (סוג ברירת המחדל הוא 230).
    • אם באתר שלכם נעשה שימוש בסוג רשומת SMF שונה עבור ACF2, צריך לאמת את הסוג באמצעות הפקודה: ACF SHOW SYSTEMS ב-TSO.
  4. שומרים את השינויים:

    1. מקישים על F3 כדי לצאת מהעורך.
    2. מקלידים SAVE כשמוצגת בקשה.
    3. מקישים על Enter.
  5. יצירה או עריכה של חבר פרמטר של הצהרת SMF ACF2

    1. ברשימת החברים במערך הנתונים amihlq.CZAGENT.PARM, בודקים אם יש חבר בשם $$$ACF2 or SMFACF2 exists.
    2. If the member does not exist, create it:

      1. Type C (Create) on the command line.
      2. Enter the member name: $$$ACF2.
      3. מקישים על Enter.
    3. עורכים את החבר ומוסיפים את הצהרת ה-SMF ACF2 הבאה:

      SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
      
      • ‫ACF2(230): מציין את סוג רשומת ה-SMF עבור ACF2 (ברירת המחדל היא 230; צריך לאמת עם ACF SHOW SYSTEMS).
      • ‫FACILITY(SECURITY4): מגדיר את מתקן syslog ל-Security ‏ (4).
      • ‫SEVERITY(INFORMATIONAL): הגדרת רמת החומרה כברירת מחדל למידע.

        • סיסמאות לא תקינות או הפרות של הרשאות נשלחות אוטומטית עם רמת חומרה ERROR.
        • הפרות של משאבים נשלחות באופן אוטומטי עם רמת חומרה ERROR.
    4. אפשר גם להגדיר סוגי משנה ורמות חומרה ספציפיים של ACF2:

      SMF ACF2(230) +
        FACILITY(SECURITY4) +
        SEVERITY(INFORMATIONAL) +
        SUBTYPES(P SEV(ERROR)) +
        SUBTYPES(V SEV(ERROR)) +
        SUBTYPES(D SEV(ERROR))
      
      • סוג משנה P: אירועים של סיסמה או הרשאה לא תקינים (חומרת השגיאה ERROR)
      • סוג משנה V: הפרות של משאבים (חומרת השגיאה ERROR)
      • סוג משנה D: הפרות של גישה למערך נתונים (חומרת השגיאה ERROR)
    5. שומרים את השינויים:

      1. מקישים על F3 כדי לצאת מהעורך.
      2. מקלידים SAVE כשמוצגת בקשה.
      3. מקישים על Enter.
    6. רענון קובץ הפרמטרים של BMC AMI Defender

      1. יוצאים מ-ISPF וחוזרים להנחיית TSO READY.
      2. מריצים את הפקודה MODIFY כדי לטעון מחדש את קובץ הפרמטרים:

        F CZAGENT,PARMS
        
        • אם השם שונה, מחליפים את CZAGENT בשם של המשימה שהופעלה ב-BMC AMI Defender.
        • הפקודה הזו טוענת מחדש את קובץ הפרמטרים בלי לעצור את הסוכן.
      3. כדי לאמת את ההגדרה, בודקים את הפלט של CZAPRINT:

        1. ב-ISPF, בוחרים באפשרות 3.4 (DSLIST).
        2. מזינים את התבנית של שם מערך הנתונים: CZAGENT.CZAPRINT (או מוסכמת מתן השמות הספציפית לאתר).
        3. מקישים על Enter.
        4. מזינים B (עיון) לצד קבוצת הנתונים האחרונה של CZAPRINT.
        5. מקישים על Enter.
        6. מחפשים הודעות שמציינות שהחיבור לשרת syslog בוצע בהצלחה:

          • CZA0070I Connected to server bindplane-host-ip:514
          • CZA0100I SMF ACF2 statement processed
      4. אם המשימה CZAGENT started לא פועלת, מפעילים אותה:

        S CZAGENT
        

      אימות העברת יומנים של ACF2

      1. יצירת אירועי אבטחה של ACF2 לצורך בדיקה:

        1. ב-TSO, מנסים לגשת למערך נתונים שאין לכם הרשאה לגשת אליו.
        2. מנסים להיכנס באמצעות סיסמה לא תקינה (משתמשים בחשבון בדיקה).
        3. מריצים פקודת TSO שמתועדת על ידי ACF2.
      2. בודקים את היומנים של סוכן Bindplane כדי לוודא שהתקבלו הודעות syslog של ACF2:

        • Linux:

          sudo journalctl -u observiq-otel-collector -f | grep ACF2
          
        • ‫Windows:

          type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
          
      3. נכנסים למסוף Google SecOps ומוודאים שהיומן של ACF2 נקלט:

        1. עוברים אל חיפוש > חיפוש UDM.
        2. מזינים את השאילתה הבאה:

          metadata.log_type = "CA_ACF2"
          
        3. מוודאים שאירועי האבטחה של ACF2 מופיעים בתוצאות החיפוש.

      טבלת מיפוי UDM

      שדה ביומן מיפוי UDM היגיון
      extensions.auth.mechanism מנגנון האימות שבו נעשה שימוש.
      extensions.auth.type סוג האימות.
      סכום metadata.description תיאור האירוע.
      metadata.event_type סוג האירוע.
      event_type, cat metadata.product_event_type סוג האירוע שספציפי למוצר.
      product_version metadata.product_version גרסת המוצר.
      טרמינל principal.hostname שם המארח שמשויך לחשבון הראשי.
      name principal.user.user_display_name השם המוצג של המשתמש.
      usrName principal.user.userid מזהה המשתמש.
      security_result.action הפעולה שבוצעה על ידי מערכת האבטחה.
      security_result.category הקטגוריה של תוצאת האבטחה.
      מחלקה security_result.category_details פרטים נוספים על קטגוריית תוצאות האבטחה.
      reason security_result.severity רמת החומרה של תוצאת האבטחה.
      reason security_result.severity_details מידע מפורט על חומרת הבעיה.
      logstr security_result.summary סיכום של תוצאת האבטחה.
      job_id target.application האפליקציה שמטורגטת.
      job_group target.group.group_display_name השם המוצג של הקבוצה.
      target.namespace מרחב השמות של היעד.
      dsn target.resource.name שם המשאב.
      vol target.resource.parent משאב ההורה.
      res, dsn target.resource.product_object_id מזהה האובייקט הספציפי למוצר.
      target.resource.resource_type סוג המשאב.
      name target.user.user_display_name השם המוצג של משתמש היעד.
      usrName target.user.userid מזהה המשתמש של משתמש היעד.
      product_name metadata.product_name שם המוצר שיצר את האירוע.
      vendor_name metadata.vendor_name שם הספק.

      יומן שינויים

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

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