איסוף יומנים של בקר אלחוטי ונקודת גישה של Aruba
גרסת המנתח: 12.0
במאמר הזה מוסבר איך להטמיע יומנים של Aruba Wireless Controller ושל נקודת גישה ב-Google Security Operations באמצעות סוכן Bindplane.
בקרים ונקודות גישה אלחוטיים של Aruba יוצרים הודעות syslog לאירועים אלחוטיים, שיוכי לקוחות, אימות, בקרת גישה ופעולות מערכת. המנתח מעבד הודעות syslog, ומחלץ שדות שקשורים לפרטים של הישות שזיהתה את האירוע, המתווך ונקודת הגישה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין בקר הרשת האלחוטית של Aruba
- אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
- גישה עם הרשאות לבקר אלחוטי של Aruba
קבלת פרטי כניסה ל-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.
- לוחצים על יצירת חשבון שירות.
- מזינים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
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בספריית Bindplane Collector (/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 (הגדרות SIEM > פרופיל).
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של 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השירות צריך להופיע כפעיל (פועל).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן 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/aruba_wireless: 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: ARUBA_WIRELESS raw_log_field: body service: pipelines: logs/aruba_wireless_to_chronicle: receivers: - udplog exporters: - chronicle/aruba_wireless
פרמטרים להגדרה
מחליפים את ה-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/aruba_wireless: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARUBA_WIRELESS 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"
- לוחצים על
הגדרת בקר אלחוטי ונקודת גישה של Aruba
- נכנסים לממשק המשתמש האינטרנטי של בקר Aruba.
- בתפריט העליון, לוחצים על Configuration > System.
- לוחצים על Logging כדי לפתוח את דף הגדרות הרישום ביומן.
- בקטע שרתי Syslog, לוחצים על + הוספה כדי להוסיף שרת Syslog חדש.
- ממלאים את הפרטים הבאים:
- שם: מזינים שם ייחודי לשרת syslog, לדוגמה,
Google SecOps Syslog. - כתובת IP: מזינים את כתובת ה-IP של Bindplane.
- יציאה: מזינים את מספר היציאה של Bindplane (בדרך כלל
514ל-UDP). - מתקן רישום ביומן: בוחרים באפשרות local 6 (בדרך כלל משמשת למכשירי רשת).
- רמת רישום ביומן: בוחרים באפשרות מידע כדי לתעד יומני מידע.
- פורמט: בוחרים בפורמט bsd-standard (זהו פורמט ברירת המחדל של syslog שמשמש בקרי Aruba).
- שם: מזינים שם ייחודי לשרת syslog, לדוגמה,
- לוחצים על שליחה כדי לשמור את ההגדרות.
- לוחצים על שינויים בהמתנה.
לוחצים על פריסת השינויים כדי להחיל את ההגדרות החדשות של שרת ה-syslog.
עוברים להגדרות של רמת הרישום ביומן ומגדירים את רמת הרישום ביומן למידע בכל אחת מהקטגוריות הבאות:
- רשת
- הכול
- אשכול
- DHCP
- GP
- ניידות
- Packet-Dump
- SDN
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
Additional Info |
read_only_udm.security_result.description |
הערך של Additional Info מהיומן הגולמי ממופה לשדה security_result.description ב-UDM. |
AP |
read_only_udm.target.hostname |
כשהוא מופיע ביומן הגולמי, הערך שאחרי AP: נשלף וממופה לשדה ה-UDM target.hostname. |
BSSID |
read_only_udm.target.mac, read_only_udm.principal.resource.name (כשסוג המשאב הוא BSSID) |
ערך ה-BSSID מהיומן הגולמי ממופה ל-target.mac. הוא משמש גם כשם המשאב כשהערך של principal.resource.type הוא BSSID. |
COMMAND |
read_only_udm.principal.process.command_line |
ערך הפקודה מהיומן הגולמי ממופה לשדה principal.process.command_line ב-UDM. |
Dst-MAC |
read_only_udm.target.mac |
אם הוא קיים, הערך של Dst-MAC מהיומן הגולמי ממופה לשדה target.mac ב-UDM. |
SERVER |
read_only_udm.target.hostname |
אם הוא קיים, שם השרת מהיומן הגולמי ממופה לשדה ה-UDM target.hostname. |
SERVER-IP |
read_only_udm.target.ip |
אם כתובת ה-IP של השרת מופיעה ביומן הגולמי, היא ממופה לשדה target.ip ב-UDM. |
Src-MAC |
read_only_udm.principal.mac |
אם הוא קיים, הערך Src-MAC מהיומן הגולמי ממופה לשדה ה-UDM principal.mac. |
SSID |
read_only_udm.target.resource.name (כשסוג המשאב הוא SSID) |
הערך של ה-SSID מיומן הגולמי משמש כשם המשאב כשהערך של target.resource.type הוא SSID. |
USER |
read_only_udm.target.user.userid |
אם הוא קיים, מזהה המשתמש מהיומן הגולמי ממופה לשדה ה-UDM target.user.userid. |
USERIP |
read_only_udm.principal.ip, read_only_udm.observer.ip |
אם היא קיימת, כתובת ה-IP של המשתמש מהיומן הגולמי ממופה לשדות principal.ip ו-observer.ip ב-UDM. |
USERMAC |
read_only_udm.principal.mac |
אם קיים, כתובת ה-MAC של המשתמש מיומן הגולמי ממופה לשדה UDM principal.mac. |
USERNAME |
read_only_udm.principal.user.userid |
אם הוא קיים, שם המשתמש מיומן הגולמי ממופה לשדה UDM principal.user.userid. |
action |
read_only_udm.security_result.action |
ערך הפעולה מהיומן הגולמי (למשל, permit, deny) ממופה לשדה ה-UDM security_result.action. |
apname |
read_only_udm.target.hostname |
אם הוא קיים, שם נקודת הגישה מהיומן הגולמי ממופה לשדה target.hostname ב-UDM. |
bssid |
read_only_udm.target.mac |
אם הוא קיים, הערך של BSSID מהיומן הגולמי ממופה לשדה target.mac ב-UDM. |
collection_time.seconds |
read_only_udm.metadata.event_timestamp.seconds |
ערך השניות של זמן האיסוף מיומן הגולמי ממופה לשדה metadata.event_timestamp.seconds ב-UDM. |
device_ip |
read_only_udm.intermediary.ip |
כתובת ה-IP של המכשיר מיומן הגולמי או מ-logstash ממופה לשדה UDM intermediary.ip. |
dstip |
read_only_udm.target.ip |
אם יש ערך, כתובת ה-IP של היעד מיומן הגולמי ממופה לשדה target.ip ב-UDM. |
dstport |
read_only_udm.target.port |
אם היא קיימת, יציאת היעד מהיומן הגולמי ממופה לשדה ה-UDM target.port. |
event_id |
read_only_udm.metadata.product_event_type |
מזהה האירוע מהיומן הגולמי משמש ליצירת השדה metadata.product_event_type ב-UDM, עם הקידומת Event ID:. |
event_message |
read_only_udm.security_result.summary |
הודעת האירוע מהיומן הגולמי ממופה לשדה ה-UDM security_result.summary. |
log.source.address |
read_only_udm.observer.ip |
כתובת מקור היומן ממופה לשדה ה-UDM observer.ip. |
log_type |
read_only_udm.metadata.log_type |
סוג היומן מיומן הגולמי ממופה לשדה metadata.log_type ב-UDM. |
logstash.collect.host |
read_only_udm.observer.ip או read_only_udm.observer.hostname |
המארח לאיסוף של logstash ממופה ל-observer.ip אם זו כתובת IP, או ל-observer.hostname אם זה שם מארח. |
logstash.ingest.host |
read_only_udm.intermediary.hostname |
מארח ההטמעה של Logstash ממופה לשדה intermediary.hostname ב-UDM. |
logstash.process.host |
read_only_udm.intermediary.hostname |
המארח של תהליך ה-logstash ממופה לשדה intermediary.hostname ב-UDM. |
program |
read_only_udm.target.application |
שם התוכנית מהיומן הגולמי ממופה לשדה ה-UDM target.application. |
serverip |
read_only_udm.target.ip |
אם כתובת ה-IP של השרת מופיעה ביומן הגולמי, היא ממופה לשדה target.ip ב-UDM. |
servername |
read_only_udm.target.hostname |
אם השם מופיע, הוא ממופה מהיומן הגולמי לשדה target.hostname ב-UDM. |
srcip |
read_only_udm.principal.ip |
אם היא קיימת, כתובת ה-IP של המקור מהיומן הגולמי ממופה לשדה principal.ip ב-UDM. |
srcport |
read_only_udm.principal.port |
אם היא קיימת, יציאת המקור מהיומן הגולמי ממופה לשדה ה-UDM principal.port. |
syslog_host |
read_only_udm.intermediary.hostname |
מארח ה-syslog מיומן הגולמי ממופה לשדה intermediary.hostname ב-UDM. |
timestamp |
read_only_udm.metadata.event_timestamp |
חותמת הזמן מהיומן הגולמי מנותחת וממופה לשדה ה-UDM metadata.event_timestamp. |
userip |
read_only_udm.principal.ip, read_only_udm.observer.ip |
אם היא קיימת, כתובת ה-IP של המשתמש מהיומן הגולמי ממופה לשדות principal.ip ו-observer.ip ב-UDM. |
usermac |
read_only_udm.principal.mac |
אם קיים, כתובת ה-MAC של המשתמש מיומן הגולמי ממופה לשדה UDM principal.mac. |
username |
read_only_udm.principal.user.userid |
אם הוא קיים, שם המשתמש מיומן הגולמי ממופה לשדה UDM principal.user.userid. הערך נגזר מ-event_id ומהלוגיקה בתוך מנתח התוכן. נקבע על ידי המנתח על סמך מזהה האירוע והתוכן של הודעת היומן. הוזן קוד קשיח ל-Wireless. מקודד בתוך הקוד ל-Aruba. נקבע על ידי המנתח על סמך מזהה האירוע והתוכן של הודעת היומן. נקבע על ידי המנתח על סמך מזהה האירוע והתוכן של הודעת היומן. חולץ מהודעת היומן הגולמית באמצעות ביטוי רגולרי. נקבע על ידי המנתח על סמך מזהה האירוע והתוכן של הודעת היומן. אובייקט ריק נוסף כש-event_type הוא USER_LOGIN או אירוע אימות קשור. הערך נקבע על ידי מנתח התקשורת על סמך פרוטוקול הרשת שבו נעשה שימוש באירוע (למשל, TCP, UDP, ICMP, IGMP). מכיל שדות נוספים שחולצו מהיומן הגולמי על סמך תנאים ספציפיים. לדוגמה, אם יש פרמטר ap_name, הוא מתווסף כצמד מפתח/ערך. הערך מוגדר ל-BSSID כש-BSSID קיים בהקשר של הגורם הראשי. הערך מוגדר כ-SSID כשיש SSID בהקשר של היעד. מכיל צמדי מפתח/ערך של מידע רלוונטי על הזיהוי שנשלף מהיומן הגולמי, כמו BSSID או SSID. |
event_code |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
function_name |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
thread_id |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
station_macaddress |
event.idm.read_only_udm.principal.mac |
מופה מיומן השינויים |
station_macaddress |
event.idm.read_only_udm.principal.asset.mac |
מופה מיומן השינויים |
event_details |
event.idm.read_only_udm.security_result.summary |
מופה מיומן השינויים |
application |
event.idm.read_only_udm.principal.application |
מופה מיומן השינויים |
version |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
priority |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
module |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
instance |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
role |
event.idm.read_only_udm.principal.user.attribute.roles.name |
מופה מיומן השינויים |
policy |
event.idm.read_only_udm.security_result.rule_name |
מופה מיומן השינויים |
command_status |
event.idm.read_only_udm.target.resource.attribute.labels |
מופה מיומן השינויים |
p_host |
event.idm.read_only_udm.principal.ip |
מופה מיומן השינויים |
p_host |
event.idm.read_only_udm.principal.asset.ip |
מופה מיומן השינויים |
p_host |
event.idm.read_only_udm.principal.hostname |
מופה מיומן השינויים |
p_host |
event.idm.read_only_udm.principal.asset.hostname |
מופה מיומן השינויים |
t_user |
event.idm.read_only_udm.target.user.userid |
מופה מיומן השינויים |
p_ip |
event.idm.read_only_udm.principal.ip |
מופה מיומן השינויים |
p_ip |
event.idm.read_only_udm.principal.asset.ip |
מופה מיומן השינויים |
cmd |
event.idm.read_only_udm.target.process.command_line |
מופה מיומן השינויים |
node |
event.idm.read_only_udm.target.resource.name |
מופה מיומן השינויים |
principal_ip_value |
event.idm.read_only_udm.principal.ip |
מופה מיומן השינויים |
p_port |
event.idm.read_only_udm.principal.port |
מופה מיומן השינויים |
t_hostname |
event.idm.read_only_udm.intermediary.hostname |
מופה מיומן השינויים |
details |
metadata.description |
מופה מיומן השינויים |
ap_name |
additional.fields |
מופה מיומן השינויים |
logstash.irm_site", "logstash.irm_environment", "logstash.irm_region |
additional.fields |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.