איסוף יומנים של 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
- יוצרים קטגוריה של Amazon S3 לפי המדריך למשתמש: יצירת קטגוריה
- שומרים את שם הקטגוריה ואת האזור שלה לעיון בעתיד (לדוגמה,
tanium-asset-logs). - יוצרים משתמש לפי המדריך למשתמש: יצירת משתמש IAM.
- בוחרים את המשתמש שנוצר.
- לוחצים על הכרטיסייה פרטי כניסה מאובטחים.
- לוחצים על Create Access Key בקטע Access Keys.
- בקטע Use case, בוחרים באפשרות Third-party service.
- לוחצים על הבא.
- אופציונלי: מוסיפים תג תיאור.
- לוחצים על Create access key (יצירת מפתח גישה).
- לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
- לוחצים על סיום.
- לוחצים על הכרטיסייה הרשאות.
- בקטע Permissions policies, לוחצים על Add permissions.
- לוחצים על הוספת הרשאות.
- בוחרים באפשרות Attach policies directly.
- מחפשים את המדיניות AmazonS3FullAccess.
- בוחרים את המדיניות.
- לוחצים על הבא.
- לוחצים על הוספת הרשאות.
הגדרת Tanium Connect לייצוא ל-S3
- נכנסים ל-Tanium Console עם הרשאות אדמין.
- עוברים אל Modules (מודולים) > Connect (חיבור) > Overview (סקירה כללית) ולוחצים על Create Connection (יצירת חיבור).
- לוחצים על יצירה.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Asset S3 Export). - תיאור: תיאור אופציונלי של הקישור הזה.
- הפעלה: בוחרים באפשרות הפעלה כדי להפעיל את הכלל לפי לוח זמנים.
- שם: מזינים שם תיאורי (לדוגמה,
- לוחצים על הבא.
- בהגדרות של Source (מקור):
- מקור: בוחרים באפשרות שאלה שמורה.
- שאלה: בוחרים שאלה שמורה קיימת שמחזירה נתוני נכסים, או יוצרים שאלה חדשה עם חיישנים שקשורים לנכסים (לדוגמה, שם מחשב, כתובת IP, פלטפורמת מערכת הפעלה, דומיין).
- קבוצת מחשבים: בוחרים את קבוצת המחשבים לטירגוט לצורך איסוף נתוני נכסים.
- לוחצים על הבא.
- בהגדרת היעד:
- יעד: בוחרים באפשרות 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.
- לוחצים על הבא.
- בהגדרות עיצוב:
- פורמט: בוחרים באפשרות JSON כדי לייצא נתונים מובְנים.
- עמודות: בוחרים את שדות הנכסים שרוצים לייצא ומעצבים אותם בהתאם.
- לוחצים על הבא.
- בהגדרות של לוח הזמנים:
- תזמון: מגדירים את לוח הזמנים של השליחה (לדוגמה, כל שעה או כל יום).
- תאריך/שעת התחלה: מגדירים מתי החיבור יתחיל לפעול.
- לוחצים על שמירה כדי ליצור את החיבור ולהתחיל ייצוא אוטומטי של S3.
(אופציונלי) יצירת משתמש ומפתחות IAM לקריאה בלבד ל-Google SecOps
- עוברים אל AWS Console > IAM > Users > Add users.
- לוחצים על הוספת משתמשים.
- מזינים את פרטי ההגדרה הבאים:
- משתמש: מזינים
secops-reader. - Access type: בוחרים באפשרות Access key — Programmatic access.
- משתמש: מזינים
- לוחצים על יצירת משתמש.
- מצרפים מדיניות קריאה מינימלית (מותאמת אישית): משתמשים > secops-reader > הרשאות > הוספת הרשאות > צירוף מדיניות ישירות > יצירת מדיניות.
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" } ] }שם =
secops-reader-policy.לוחצים על Create policy(יצירת מדיניות) > מחפשים או בוחרים > Next(הבא) > Add permissions (הוספת הרשאות).
יוצרים מפתח גישה עבור
secops-reader: פרטי כניסה מאובטחים > מפתחות גישה > יצירת מפתח גישה > מורידים את.csv(מדביקים את הערכים האלה בפיד).
הגדרה של פיד ב-Google SecOps להטמעה של יומני Tanium Asset
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על + הוספת פיד חדש.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Tanium Asset logs). - בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
- בוחרים באפשרות Tanium Asset בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- S3 URI:
s3://tanium-asset-logs/tanium/assets/ - אפשרויות למחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.
- גיל מקסימלי של קובץ: כולל קבצים ששונו במספר הימים האחרונים. ברירת המחדל היא 180 ימים.
- מזהה מפתח הגישה: מפתח גישה של משתמש עם גישה לקטגוריית S3.
- מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות הטמעה: התווית שנוספה לאירועים מהפיד הזה.
- S3 URI:
- לוחצים על הבא.
- בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.
אפשרות 2: הגדרת ייצוא של יומני נכסים של Tanium באמצעות syslog ו-Bindlane
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים אחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים אל Google Cloud המסוף ובוחרים את Google Cloud הפרויקט שמקושר למופע של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מזינים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- Service account name: מזינים שם לחשבון (לדוגמה,
- לוחצים על Create and continue.
- בקטע Grant this service account access to project לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
- לוחצים על המשך ואז על סיום.
- לוחצים על חשבון השירות שיצרתם ועוברים לכרטיסייה Keys.
- לוחצים על Add key > Create new key.
- בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
- שומרים את קובץ המפתח בתור
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כך שיתאים לנתיב שבו שמרתם אותו. - עוברים אל IAM & Admin > Settings (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
- מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
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
ניגשים לקובץ התצורה:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/opt/observiq-otel-collector/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו פנקס הרשימות).
- מאתרים את הקובץ
עורכים את הקובץ
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
- נכנסים למסוף Tanium עם הרשאות אדמין.
- עוברים אל Modules > Connect > Overview (מודולים > חיבור > סקירה כללית) ולוחצים על Create Connection (יצירת חיבור).
- לוחצים על יצירה.
- מספקים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Asset Integration). - תיאור: תיאור אופציונלי של הקישור הזה.
- הפעלה: בוחרים באפשרות הפעלה כדי להפעיל את הכלל לפי לוח זמנים.
- שם: מזינים שם תיאורי (לדוגמה,
- לוחצים על הבא.
- בהגדרות של Source (מקור):
- מקור: בוחרים באפשרות שאלה שמורה.
- שאלה: בוחרים שאלה שמורה קיימת שמחזירה נתוני נכסים, או יוצרים שאלה חדשה עם חיישנים שקשורים לנכסים.
- קבוצת מחשבים: בוחרים את קבוצת המחשבים לטירגוט לצורך איסוף נתוני נכסים.
- לוחצים על הבא.
- בהגדרות היעד:
- יעד: בוחרים באפשרות SIEM/Syslog.
- שם: מזינים שם ליעד (לדוגמה,
Chronicle Asset Syslog). - מארח: מזינים את כתובת ה-IP של Bindplane.
- יציאה: מזינים את מספר היציאה של Bindplane (לדוגמה,
514). - פרוטוקול: בוחרים באפשרות UDP.
- Format: בוחרים באפשרות SYSLOG RFC 5424.
- אזור זמן: בוחרים באזור הזמן UTC כדי לשמור על עקביות אוניברסלית בין המערכות.
- לוחצים על הבא.
- בהגדרות עיצוב:
- פורמט: בוחרים באפשרות JSON.
- עמודות: בוחרים את שדות הנכסים שרוצים להעביר (לדוגמה, שם המחשב, כתובת IP, פלטפורמת מערכת ההפעלה, דומיין).
- לוחצים על הבא.
- בהגדרות של לוח הזמנים:
- Schedule: מגדירים את לוח הזמנים של השליחה (לדוגמה, כל שעה).
- תאריך/שעת התחלה: מגדירים מתי החיבור יתחיל לפעול.
- לוחצים על שמירה כדי ליצור את החיבור ולהתחיל בהעברה.
טבלת מיפוי 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.