איסוף יומני HP Linux
במאמר הזה מוסבר איך להטמיע יומני מערכת של מערכת ההפעלה HP-UX ב-Google Security Operations באמצעות סוכן Bindplane.
HP-UX היא מערכת הפעלה ארגונית של UNIX לשרתי HP Integrity ו-PA-RISC. יומני המערכת של HP-UX מתעדים אירועי אימות, ביצוע תהליכים, נתוני ביקורת אבטחה ופעילות כללית במערכת. קובצי Syslog מאוחסנים באופן מקומי בנתיב /var/adm/syslog/.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין שרת HP-UX
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה עם הרשאות (root) לשרת HP-UX
קבלת פרטי כניסה ל-Google SecOps עבור סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים אל Google Cloud המסוף ובוחרים את Google Cloud הפרויקט שמקושר למופע של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מספקים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
- לוחצים על 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 לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את 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/hp_linux: 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: HP_LINUX raw_log_field: body ingestion_labels: env: production service: pipelines: logs/hpux_to_chronicle: receivers: - udplog exporters: - chronicle/hp_linux
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת המקלט:
-
udplog: סוג המקלט לפי הפרוטוקול:-
udplogל-UDP syslog -
tcplogל-syslog של TCP
-
-
0.0.0.0: כתובת ה-IP להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - כתובת IP ספציפית להאזנה בממשק אחד
-
-
514: מספר היציאה להאזנה (לדוגמה,514, 1514, 6514)
-
הגדרת הייצוא:
-
hp_linux: שם תיאורי של הכלי לייצוא -
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>: מספר הלקוח מהשלב הקודם -
location: מחליפים את<LOCATION>באזור של המכונה של Google SecOps (לדוגמה,us,europeאוasia-southeast1). המייצא מוסיף את הערך הזה בתחילתchronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות. -
project: מחליפים את<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. -
endpoint: משאירים את הערךchronicle.googleapis.com. -
HP_LINUX: סוג היומן בדיוק כמו שהוא מופיע ב-Chronicle -
ingestion_labels: תוויות אופציונליות בפורמט YAML (לדוגמה,env: production)
-
הגדרת צינור עיבוד הנתונים:
-
hpux_to_chronicle: שם תיאורי של צינור העיבוד
-
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/hp_linux: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: HP_LINUX raw_log_field: body ingestion_labels: env: production
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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 ב-HP-UX
- נכנסים לשרת HP-UX עם הרשאות ברמת הבסיס (root).
עורכים את קובץ התצורה של syslog:
vi /etc/syslog.confמוסיפים את השורה הבאה כדי להעביר את כל הודעות ה-syslog לסוכן Bindplane:
*.* @<BINDPLANE_AGENT_IP>- מחליפים את
<BINDPLANE_AGENT_IP>בכתובת ה-IP של המארח של סוכן Bindplane. - הקידומת
@שולחת יומנים דרך UDP. ב-HP-UX syslog נעשה שימוש ב-UDP כברירת מחדל.
- מחליפים את
כדי להעביר רק מתקנים ספציפיים, משתמשים בשורות נפרדות:
auth.* @<BINDPLANE_AGENT_IP> kern.* @<BINDPLANE_AGENT_IP> *.err @<BINDPLANE_AGENT_IP>שומרים וסוגרים את הקובץ.
מפעילים מחדש את ה-daemon של syslog כדי שהשינויים ייכנסו לתוקף:
/sbin/init.d/syslogd stop /sbin/init.d/syslogd startכדי לוודא שהודעות syslog מתקבלות, בודקים את היומנים של סוכן Bindplane.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
audit_type_label |
additional.fields |
ממוזג |
auth_failures_label |
additional.fields |
ממוזג |
ctladdr_label |
additional.fields |
ממוזג |
da_instance_label |
additional.fields |
ממוזג |
delay_label |
additional.fields |
ממוזג |
dsn_label |
additional.fields |
ממוזג |
event_code_label |
additional.fields |
ממוזג |
mailer_label |
additional.fields |
ממוזג |
msg_id_label |
additional.fields |
ממוזג |
pri_label |
additional.fields |
ממוזג |
raw_severity_label |
additional.fields |
ממוזג |
ssh_version_label |
additional.fields |
ממוזג |
stat_label |
additional.fields |
ממוזג |
suite_label |
additional.fields |
ממוזג |
syslog_priority_label |
additional.fields |
ממוזג |
to_label |
additional.fields |
ממוזג |
tty_label |
additional.fields |
ממוזג |
xdelay_label |
additional.fields |
ממוזג |
process |
extensions.auth.type |
מיפוי: "sshd", "login" → AUTHTYPE_UNSPECIFIED |
msg |
metadata.description |
מיפוי ישיר |
ts |
metadata.event_timestamp |
נותח בתור MMM d HH:mm:ss |
utc |
metadata.event_timestamp |
נותח בתור UNIX_MS |
event_type |
metadata.event_type |
מיפוי ישיר |
action_type |
metadata.product_event_type |
מיפוי ישיר |
centrifyEventID |
metadata.product_log_id |
מיפוי ישיר |
version |
metadata.product_version |
מיפוי ישיר |
message |
network.application_protocol |
מיפוי: (?i)ssh → SSH |
proto |
network.ip_protocol |
מופה: tcp ← TCP |
DASessID |
network.session_id |
מיפוי ישיר |
process |
principal.application |
מיפוי ישיר |
host |
principal.asset.hostname |
מיפוי ישיר |
src_ip |
principal.asset.ip |
ממוזג |
host |
principal.hostname |
מיפוי ישיר |
src_ip |
principal.ip |
ממוזג |
src_port |
principal.port |
מיפוי ישיר |
p_id |
principal.process.pid |
מיפוי ישיר |
principal_user |
principal.user.userid |
מיפוי ישיר |
user |
principal.user.userid |
מיפוי ישיר |
security_result_action |
security_result.action |
ממוזג |
ruleset |
security_result.rule_name |
מיפוי ישיר |
log_level |
security_result.severity |
מופה: INFO ← INFORMATIONAL |
sev |
security_result.severity |
מופה: (?i)ERROR ← ERROR |
log_level |
security_result.severity_details |
מיפוי ישיר |
t_domain |
target.administrative_domain |
מיפוי ישיר |
t_app |
target.application |
מיפוי ישיר |
t_hostname |
target.asset.hostname |
מיפוי ישיר |
target_hostname |
target.asset.hostname |
מיפוי ישיר |
t_hostname |
target.hostname |
מיפוי ישיר |
target_hostname |
target.hostname |
מיפוי ישיר |
target_user |
target.user.userid |
מיפוי ישיר |
user |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | extensions.auth.type |
קבוע: AUTHTYPE_UNSPECIFIED |
| לא רלוונטי | metadata.product_name |
קבוע: HP Linux |
| לא רלוונטי | metadata.vendor_name |
קבוע: HP Linux |
| לא רלוונטי | network.application_protocol |
קבוע: SSH |
| לא רלוונטי | network.ip_protocol |
קבוע: TCP |
| לא רלוונטי | security_result.severity |
קבוע: INFORMATIONAL |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.