איסוף יומנים של Tanium Asset

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומני Tanium Asset ב-Google Security Operations בשתי שיטות שונות.

אתם יכולים לבחור בין ייצוא מקורי של Tanium Connect ל-Amazon S3 לבין העברה בזמן אמת של syslog באמצעות Bindplane. בשתי השיטות משתמשים במודול Tanium Connect כדי לחלץ נתוני נכסים מ-Tanium ולהעביר אותם ל-Chronicle לצורך ניתוח ומעקב.

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

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

  • מופע של Google SecOps
  • גישת הרשאות למסוף Tanium (מודול Connect) כדי להגדיר יעדי ייצוא
  • בוחרים את שיטת השילוב המועדפת:
    • אפשרות 1 (מומלצת): גישה עם הרשאות ל-AWS‏ (S3, ‏ IAM) לייצוא מקורי של S3
    • אפשרות 2: מארח Windows 2016 ואילך או Linux עם systemd להתקנת סוכן Bindplane

אפשרות 1: הגדרת ייצוא של יומני Tanium Asset באמצעות AWS S3

יצירת קטגוריה ב-Amazon S3

  1. יוצרים קטגוריה של Amazon S3 לפי המדריך למשתמש: יצירת קטגוריה
  2. שומרים את שם הקטגוריה ואת האזור שלה לעיון בעתיד (לדוגמה, tanium-asset-logs).
  3. יוצרים משתמש לפי המדריך למשתמש: יצירת משתמש IAM.
  4. בוחרים את המשתמש שנוצר.
  5. לוחצים על הכרטיסייה פרטי כניסה מאובטחים.
  6. לוחצים על Create Access Key בקטע Access Keys.
  7. בקטע Use case, בוחרים באפשרות Third-party service.
  8. לוחצים על הבא.
    • אופציונלי: מוסיפים תג תיאור.
  9. לוחצים על Create access key (יצירת מפתח גישה).
  10. לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
  11. לוחצים על סיום.
  12. לוחצים על הכרטיסייה הרשאות.
  13. בקטע Permissions policies, לוחצים על Add permissions.
  14. לוחצים על הוספת הרשאות.
  15. בוחרים באפשרות Attach policies directly.
  16. מחפשים את המדיניות AmazonS3FullAccess.
  17. בוחרים את המדיניות.
  18. לוחצים על הבא.
  19. לוחצים על הוספת הרשאות.

הגדרת Tanium Connect לייצוא ל-S3

  1. נכנסים ל-Tanium Console עם הרשאות אדמין.
  2. עוברים אל Modules (מודולים) > Connect (חיבור) > Overview (סקירה כללית) ולוחצים על Create Connection (יצירת חיבור).
  3. לוחצים על יצירה.
  4. מזינים את פרטי ההגדרה הבאים:
    • שם: מזינים שם תיאורי (לדוגמה, Google SecOps Asset S3 Export).
    • תיאור: תיאור אופציונלי של הקישור הזה.
    • הפעלה: בוחרים באפשרות הפעלה כדי להפעיל את הכלל לפי לוח זמנים.
  5. לוחצים על הבא.
  6. בהגדרות של Source (מקור):
    • מקור: בוחרים באפשרות שאלה שמורה.
    • שאלה: בוחרים שאלה שמורה קיימת שמחזירה נתוני נכסים, או יוצרים שאלה חדשה עם חיישנים שקשורים לנכסים (לדוגמה, שם מחשב, כתובת IP, פלטפורמת מערכת הפעלה, דומיין).
    • קבוצת מחשבים: בוחרים את קבוצת המחשבים לטירגוט לצורך איסוף נתוני נכסים.
  7. לוחצים על הבא.
  8. בהגדרת היעד:
    • יעד: בוחרים באפשרות AWS S3.
    • שם: מזינים שם יעד (לדוגמה, Chronicle Asset S3).
    • מזהה מפתח הגישה של AWS: מזינים את מזהה מפתח הגישה של משתמש ה-IAM.
    • AWS Secret Access Key: מזינים את מפתח הגישה הסודי של משתמש ה-IAM.
    • S3 Bucket Name: tanium-asset-logs.
    • S3 Key Prefix: tanium/assets/ (קידומת אופציונלית לארגון).
    • ‫Region (אזור): בוחרים את אזור AWS שבו נמצאת קטגוריית ה-S3.
  9. לוחצים על הבא.
  10. בהגדרות עיצוב:
    • פורמט: בוחרים באפשרות JSON כדי לייצא נתונים מובְנים.
    • עמודות: בוחרים את שדות הנכסים שרוצים לייצא ומעצבים אותם בהתאם.
  11. לוחצים על הבא.
  12. בהגדרות של לוח הזמנים:
    • תזמון: מגדירים את לוח הזמנים של השליחה (לדוגמה, כל שעה או כל יום).
    • תאריך/שעת התחלה: מגדירים מתי החיבור יתחיל לפעול.
  13. לוחצים על שמירה כדי ליצור את החיבור ולהתחיל ייצוא אוטומטי של S3.

(אופציונלי) יצירת משתמש ומפתחות IAM לקריאה בלבד ל-Google SecOps

  1. עוברים אל AWS Console > IAM > Users > Add users.
  2. לוחצים על הוספת משתמשים.
  3. מזינים את פרטי ההגדרה הבאים:
    • משתמש: מזינים secops-reader.
    • Access type: בוחרים באפשרות Access key — Programmatic access.
  4. לוחצים על יצירת משתמש.
  5. מצרפים מדיניות קריאה מינימלית (מותאמת אישית): משתמשים > secops-reader > הרשאות > הוספת הרשאות > צירוף מדיניות ישירות > יצירת מדיניות.
  6. ‫JSON:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-asset-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-asset-logs"
        }
      ]
    }
    
  7. שם = secops-reader-policy.

  8. לוחצים על Create policy(יצירת מדיניות) > מחפשים או בוחרים > Next(הבא) > Add permissions (הוספת הרשאות).

  9. יוצרים מפתח גישה עבור secops-reader: פרטי כניסה מאובטחים > מפתחות גישה > יצירת מפתח גישה > מורידים את .csv (מדביקים את הערכים האלה בפיד).

הגדרה של פיד ב-Google SecOps להטמעה של יומני Tanium Asset

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על + הוספת פיד חדש.
  3. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Tanium Asset logs).
  4. בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
  5. בוחרים באפשרות Tanium Asset בתור סוג היומן.
  6. לוחצים על הבא.
  7. מציינים ערכים לפרמטרים הבאים של הקלט:
    • S3 URI: s3://tanium-asset-logs/tanium/assets/
    • אפשרויות למחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.
    • גיל מקסימלי של קובץ: כולל קבצים ששונו במספר הימים האחרונים. ברירת המחדל היא 180 ימים.
    • מזהה מפתח הגישה: מפתח גישה של משתמש עם גישה לקטגוריית S3.
    • מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות הטמעה: התווית שנוספה לאירועים מהפיד הזה.
  8. לוחצים על הבא.
  9. בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.

אפשרות 2: הגדרת ייצוא של יומני נכסים של Tanium באמצעות syslog ו-Bindlane

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

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

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
  1. נכנסים אל Google Cloud המסוף ובוחרים את Google Cloud הפרויקט שמקושר למופע של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  3. לוחצים על Create service account.
  4. מזינים את פרטי ההגדרה הבאים:
    • Service account name: מזינים שם לחשבון (לדוגמה, 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 בספריית ה-collector של Bindplane (/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 (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את הייצוא.

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

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

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

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

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

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

התקנת חלונות

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

התקנה ב-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
    

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

לאפשרויות התקנה נוספות, קראו את מדריך ההתקנה של סוכן Bindplane.

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

  1. ניגשים לקובץ התצורה:

    • מאתרים את הקובץ config.yaml. בדרך כלל, הוא נמצא בספרייה /opt/observiq-otel-collector/ ב-Linux או בספריית ההתקנה ב-Windows.
    • פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה, nano,‏ vi או פנקס הרשימות).
  2. עורכים את הקובץ config.yaml באופן הבא:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        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
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'TANIUM_ASSET'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • מחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית שלכם.
    • מחליפים את <LOCATION> באזור של מכונת Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com.
    • מחליפים את <PROJECT_NUMBER> במספר הפרויקט מתוך IAM & Admin > Settings.
    • מחליפים את <PLACEHOLDER_CUSTOMER_ID> במספר הלקוח בפועל.
    • מעדכנים את /path/to/ingestion-authentication-file.json לנתיב הקובץ שבו נשמר קובץ המפתח של חשבון השירות (אפשרות 1) בשלב 1.

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

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

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'TANIUM_ASSET'
        raw_log_field: body
        ingestion_labels:
    

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

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

    sudo systemctl restart observiq-otel-collector
    
  • כדי להפעיל מחדש את הסוכן של Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:

    net stop observiq-otel-collector && net start observiq-otel-collector
    

הגדרת העברה של Syslog ב-Tanium Asset

  1. נכנסים למסוף Tanium עם הרשאות אדמין.
  2. עוברים אל Modules > Connect > Overview (מודולים > חיבור > סקירה כללית) ולוחצים על Create Connection (יצירת חיבור).
  3. לוחצים על יצירה.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם: מזינים שם תיאורי (לדוגמה, Google SecOps Asset Integration).
    • תיאור: תיאור אופציונלי של הקישור הזה.
    • הפעלה: בוחרים באפשרות הפעלה כדי להפעיל את הכלל לפי לוח זמנים.
  5. לוחצים על הבא.
  6. בהגדרות של Source (מקור):
    • מקור: בוחרים באפשרות שאלה שמורה.
    • שאלה: בוחרים שאלה שמורה קיימת שמחזירה נתוני נכסים, או יוצרים שאלה חדשה עם חיישנים שקשורים לנכסים.
    • קבוצת מחשבים: בוחרים את קבוצת המחשבים לטירגוט לצורך איסוף נתוני נכסים.
  7. לוחצים על הבא.
  8. בהגדרות היעד:
    • יעד: בוחרים באפשרות SIEM/Syslog.
    • שם: מזינים שם ליעד (לדוגמה, Chronicle Asset Syslog).
    • מארח: מזינים את כתובת ה-IP של Bindplane.
    • יציאה: מזינים את מספר היציאה של Bindplane (לדוגמה, 514).
    • פרוטוקול: בוחרים באפשרות UDP.
    • Format: בוחרים באפשרות SYSLOG RFC 5424.
    • אזור זמן: בוחרים באזור הזמן UTC כדי לשמור על עקביות אוניברסלית בין המערכות.
  9. לוחצים על הבא.
  10. בהגדרות עיצוב:
    • פורמט: בוחרים באפשרות JSON.
    • עמודות: בוחרים את שדות הנכסים שרוצים להעביר (לדוגמה, שם המחשב, כתובת IP, פלטפורמת מערכת ההפעלה, דומיין).
  11. לוחצים על הבא.
  12. בהגדרות של לוח הזמנים:
    • ‫Schedule: מגדירים את לוח הזמנים של השליחה (לדוגמה, כל שעה).
    • תאריך/שעת התחלה: מגדירים מתי החיבור יתחיל לפעול.
  13. לוחצים על שמירה כדי ליצור את החיבור ולהתחיל בהעברה.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
application_name entity.metadata.source_labels.value הערך נלקח מהשדה application_name אם הוא קיים ביומן הגולמי.
application_vendor entity.metadata.source_labels.value הערך נלקח מהשדה "application_vendor" אם הוא קיים ביומן הגולמי.
application_version entity.metadata.product_version הערך נלקח מהשדה application_version אם הוא קיים ביומן הגולמי.
BIOS_Current_Language entity.metadata.source_labels.value הערך נלקח מהשדה BIOS_Current_Language אם הוא קיים ביומן הגולמי.
BIOS_Release_Date entity.metadata.source_labels.value הערך נלקח מהשדה BIOS_Release_Date אם הוא קיים ביומן הגולמי.
BIOS_Vendor entity.metadata.source_labels.value הערך נלקח מהשדה BIOS_Vendor אם הוא קיים ביומן הגולמי.
BIOS_Version entity.metadata.product_version הערך נלקח מהשדה BIOS_Version אם הוא קיים ביומן הגולמי.
Chassis Type entity.entity.asset.category הערך נלקח מהשדה "סוג המארז" אם הוא קיים ביומן הגולמי.
Computer ID entity.entity.asset.product_object_id הערך נלקח מהשדה 'מזהה מחשב' אם הוא קיים ביומן הגולמי. המאפיין הזה משמש גם לאכלוס של entity.relations.entity.asset.asset_id עם הקידומת id:.
Computer Name entity.entity.asset.hostname הערך נלקח מהשדה "שם המחשב" אם הוא קיים ביומן הגולמי.
Count entity.metadata.source_labels.value הערך נלקח מהשדה "ספירה" אם הוא קיים ביומן הגולמי.
Endpoint Fingerprint entity.entity.asset.hardware.serial_number הערך נלקח מהשדה "טביעת אצבע של נקודת קצה" אם הוא קיים ביומן הגולמי.
IP Address entity.entity.asset.ip הערכים נלקחים מהשדה "כתובת IP" ומתווספים כמערך של כתובות IP נפרדות.
Last Logged In User entity.relations.entity.user.userid הערך נלקח מהשדה 'המשתמש האחרון שהתחבר', אחרי הסרת קידומת הדומיין, אם היא קיימת ביומן הגולמי.
Last Reboot entity.entity.asset.last_boot_time הערך מנותח מהשדה 'הפעלה מחדש אחרונה' ומעוצב כחותמת זמן אם הוא קיים ביומן הגולמי.
MAC Address entity.entity.asset.mac הערכים נלקחים מהשדה 'כתובת MAC' ומוסיפים אותם למערך ככתובות MAC נפרדות.
Manufacturer entity.entity.asset.hardware.manufacturer הערך נלקח מהשדה 'יצרן' אם הוא קיים ביומן הגולמי.
Operating System entity.entity.asset.platform_software.platform_version הערך נלקח מהשדה "מערכת הפעלה" אם הוא קיים ביומן הגולמי. משמש לקביעת הערך של entity.entity.asset.platform_software.platform (WINDOWS, LINUX או MAC).
platform entity.entity.asset.platform_software.platform_version הערך נלקח מהשדה "פלטפורמה" אם הוא קיים ביומן הגולמי. משמש לקביעת הערך של entity.entity.asset.platform_software.platform (WINDOWS,‏ LINUX או MAC).
serial_number entity.entity.asset.hardware.serial_number הערך נלקח מהשדה serial_number אם הוא קיים ביומן הגולמי.
version entity.entity.asset.platform_software.platform_version הערך נלקח מהשדה "version" אם הוא קיים ביומן הגולמי. המאפיין הזה משמש לקביעת הערך של entity.entity.asset.platform_software.platform (WINDOWS,‏ LINUX או MAC).
לא רלוונטי entity.metadata.collected_timestamp מוגדר ל-create_time של הקבוצה.
לא רלוונטי entity.metadata.vendor_name תמיד מוגדר כ-"TANIUM_ASSET".
לא רלוונטי entity.metadata.product_name תמיד מוגדר כ-"TANIUM_ASSET".
לא רלוונטי entity.metadata.entity_type תמיד מוגדר כ-"ASSET".
לא רלוונטי entity.relations.entity_type תמיד מוגדר כ-"USER".
לא רלוונטי entity.relations.relationship תמיד מוגדר כ-"OWNS".
comp_serial_num _asset_entity.asset.product_object_id מופה מיומן השינויים
application_name", "count", "application_vendor", "BIOS_Release_Date", "BIOS_Vendor", and "BIOS_Current_Language metadata.source_labels מופה מיומן השינויים
application_version" and "BIOS_Version metadata.product_version מופה מיומן השינויים
computer_id entity.asset.asset_id מופה מיומן השינויים
comp_serial_num hardware.serial_number מופה מיומן השינויים

יומן שינויים

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

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