איסוף יומני HPE iLO
במאמר הזה מוסבר איך להטמיע יומנים של HPE iLO ב-Google Security Operations באמצעות סוכן Bindplane.
HPE iLO (Integrated Lights-Out) הוא מעבד לניהול שרתים מרחוק שמפיק הודעות syslog לאירועי חומרה, ניסיונות אימות, שאילתות DNS ושינויים בסטטוס המערכת. המנתח משתמש ב-JSON ובהתאמת דפוסים של grok כדי לחלץ שדות מפורמטים של יומני HP iLO וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין ממשק הניהול של HPE iLO
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה מיוחדת ל-HPE iLO
קבלת פרטי כניסה ל-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 (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
- לוחצים על 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 ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את כלי הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות SIEM > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile.
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sc query observiq-otel-collectorהשירות אמור להופיע כ-RUNNING.
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shמחכים שההתקנה תסתיים.
מאמתים את ההתקנה על ידי הרצת:
sudo systemctl status observiq-otel-collectorהשירות אמור להופיע כ-active (running).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרה של סוכן Bindplane לקליטת syslog ושליחה ל-Google SecOps
מאתרים את קובץ התצורה
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ התצורה
מחליפים את כל התוכן של
config.yamlבהגדרות הבאות:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/hpe_ilo: 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: HPE_ILO raw_log_field: body service: pipelines: logs/hpe_ilo_to_chronicle: receivers: - udplog exporters: - chronicle/hpe_ilo
פרמטרים להגדרה
מחליפים את ה-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
- Linux:
-
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/hpe_ilo: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: HPE_ILO raw_log_field: body
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- Linux: מקישים על
Ctrl+O, אחר כך עלEnterואז עלCtrl+X - Windows: לוחצים על קובץ > שמירה
- Linux: מקישים על
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
כדי להפעיל מחדש את הסוכן של Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:
שורת פקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorמסוף השירותים:
- לוחצים על
Win+R, מקלידיםservices.mscולוחצים על Enter. - מאתרים את observIQ OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- לוחצים על
הגדרת syslog ב-HPE iLO
- נכנסים לממשק המשתמש באינטרנט של HPE iLO.
- עוברים לכרטיסייה ניהול > Syslog מרוחק.
- לוחצים על Enable (הפעלה) של iLO Remote Syslog.
- מזינים את פרטי ההגדרה הבאים:
- יציאת Syslog מרוחקת: מזינים את מספר היציאה של Bindplane (לדוגמה,
514). - שרת Syslog מרוחק: מזינים את כתובת ה-IP של Bindplane.
- יציאת Syslog מרוחקת: מזינים את מספר היציאה של Bindplane (לדוגמה,
- לוחצים על שליחת Syslog לבדיקה ומוודאים שהוא התקבל.
- לוחצים על אישור.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
data |
השדה הזה מנותח וממופה לשדות שונים ב-UDM על סמך התוכן שלו. | |
data.HOSTNAME |
principal.hostname | ממופה כשהתבנית הראשונה של grok בשדה 'message' תואמת, או כשהשדה 'description' מכיל את הערך 'Host'. קובע אם event_type הוא STATUS_UPDATE. |
data.HOSTNAME |
network.dns.questions.name | מאוכלס על ידי תבנית grok שתואמת ל-"DATA" ב-"message". משמש לאכלוס dns.questions אם הוא לא ריק ולא מכיל את "(?i)not found". |
data.HOSTNAME |
target.user.user_display_name | מאוכלס על ידי תבנית grok שתואמת ל-"DATA" ב-"message". |
data.IP |
target.ip | מאוכלס על ידי תבניות grok שתואמות ל-"IP" ב-"message" או ב-"summary". |
data.WORD |
metadata.product_event_type | מאוכלס על ידי תבנית grok שתואמת ל-"WORD" ב-"message". |
data.GREEDYDATA |
security_result.summary | מאוכלס על ידי תבנית grok שתואמת ל-"GREEDYDATA" ב-"message". משמש לקביעת network.application_protocol ו-event_type על סמך התוכן שלו. |
data.TIMESTAMP_ISO8601 |
metadata.event_timestamp | הערך מאוכלס על ידי פלאגין התאריך על סמך פורמטים שונים של חותמות זמן. |
data.MONTHNUM |
לא ממופים | |
data.MONTHDAY |
לא ממופים | |
data.YEAR |
לא ממופים | |
data.TIME |
לא ממופים | |
data.HOST |
principal.hostname | ממופה כשדפוס ה-grok השני בשדה "הודעה" תואם. |
data.INT |
לא ממופים | |
data.UserAgent |
network.http.user_agent | ממופה כשהשדה description מכיל את הערך User-Agent. |
data.Connection |
security_result.description | ממופה כשהשדה description מכיל את הערך Connection. |
| לא רלוונטי | metadata.event_type | ברירת המחדל היא GENERIC_EVENT. הערך משתנה ל-STATUS_UPDATE אם המיפוי של data.HOSTNAME אל principal.hostname מצליח, ל-NETWORK_DNS אם question מאוכלס, או ל-USER_LOGIN אם summary מכיל Browser login. |
| לא רלוונטי | metadata.vendor_name | הוזן קוד קשיח ל-HP. |
| לא רלוונטי | metadata.log_type | הגדרת הערך HPE_ILO. |
| לא רלוונטי | network.application_protocol | מגדירים את הערך LDAP אם summary מכיל את הערך LDAP, או את הערך DNS אם question מאוכלס. |
| לא רלוונטי | extensions.auth.type | הגדרה בתור MACHINE אם summary מכיל את Browser login. |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.