איסוף יומנים של NetApp ONTAP
במאמר הזה מוסבר איך להטמיע יומנים של NetApp ONTAP ב-Google Security Operations באמצעות סוכן Bindplane.
NetApp ONTAP היא מערכת הפעלה לאחסון שיוצרת הודעות syslog לאירועי אימות, סטטוס מערכת, פעילות ברשת ופעולות שקשורות לאבטחה. הכלי לניתוח מחלץ שדות מהודעות syslog באמצעות ביטויים רגולריים וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין אשכול NetApp ONTAP
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- הרשאת אדמין ל-NetApp ONTAP cluster דרך SSH
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות 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/netapp_ontap: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: NETAPP_ONTAP raw_log_field: body service: pipelines: logs/netapp_ontap_to_chronicle: receivers: - udplog exporters: - chronicle/netapp_ontap
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
-
listen_address: כתובת ה-IP והיציאה להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - יציאה
514היא יציאת syslog רגילה (נדרשת הרשאת root ב-Linux; אפשר להשתמש ביציאה1514ללא הרשאת root)
-
-
הגדרות של הכלי לייצוא:
-
creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
customer_id: מספר הלקוח שהועתק ממסוף Google SecOps endpoint: Regional endpoint URL:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
-
שמירת קובץ ההגדרות
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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 ב-ONTAP
ניגשים לאשכול ONTAP באמצעות SSH:
ssh admin@<ontap-cluster-ip>- מחליפים את
<ontap-cluster-ip>בכתובת ה-IP לניהול של אשכול ONTAP.
- מחליפים את
בודקים את המסננים וההתראות הקיימים של האירועים:
event filter show event notification showיוצרים יעד syslog. מחליפים את
<syslog-server-ip>ואת<syslog-server-port>בפרטים של Bindplane:event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencryptedאפשרויות אחרות לגבי
-syslog-transport:udp-unencrypted(ברירת מחדל)tcp-unencrypted-
tcp-encrypted(ל-TLS)
מאמתים את יעד ה-syslog:
event notification destination show
הגדרה של מסנני אירועים קיימים
מגדירים מסנני ברירת מחדל לקישור ליעד של syslog:
event notification create -filter-name no-info-debug-events -destinations syslog-ems event notification create -filter-name default-trap-events -destinations syslog-ems
אופציונלי: יצירה והגדרה של מסננים מותאמים אישית
מסנן אירועי אימות (התחברות/התנתקות):
event filter create -filter-name auth_events event filter rule add -filter-name auth_events -type include -message-name *login* -severity info event filter rule add -filter-name auth_events -type include -message-name *logout* -severity infoמסנן שדות של זיהוי אבטחה:
event filter create -filter-name security_fields event filter rule add -filter-name security_fields -type include -message-name *nmsdk_language* -severity infoמחילים כל מסנן על יעד ה-syslog:
event notification create -filter-name auth_events -destinations syslog-ems event notification create -filter-name security_fields -destinations syslog-emsאימות ההתראות:
event notification show
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
code |
לא ממופה | |
description |
metadata.description |
המידע חולץ מהודעת היומן באמצעות תבנית grok. המאפיין הזה מוצג רק כשהתיאור הוא 'יציאה מהחשבון' או 'כניסה לחשבון'. |
intermediary_host |
intermediary.hostname |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
nmsdk_language |
security_result.detection_fields.value |
המידע חולץ מהודעת היומן באמצעות תבנית grok. הערך הזה מתווסף כערך לאובייקט detection_fields עם key = nmsdk_language. |
nmsdk_platform |
security_result.detection_fields.value |
המידע חולץ מהודעת היומן באמצעות תבנית grok. הערך הזה מתווסף כערך לאובייקט detection_fields עם key = nmsdk_platform. |
nmsdk_version |
security_result.detection_fields.value |
המידע חולץ מהודעת היומן באמצעות תבנית grok. הערך הזה מתווסף כ-value לאובייקט detection_fields עם key = nmsdk_version. |
netapp_version |
security_result.detection_fields.value |
המידע חולץ מהודעת היומן באמצעות תבנית grok. הערך הזה מתווסף כ-value לאובייקט detection_fields עם key = netapp_version. |
product_event_type |
metadata.product_event_type |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
security_result.summary |
security_result.summary |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
severity |
security_result.severity |
הערך שמוגדר הוא INFORMATIONAL אם רמת החומרה היא info (לא תלוי באותיות רישיות). |
src_ip |
principal.ip |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
src_port |
principal.port |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
status |
security_result.summary |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
ts |
metadata.event_timestamp.seconds |
הערך חולץ מהודעת היומן באמצעות תבנית grok והומר לחותמת זמן. |
url |
target.url |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
user |
target.user.userid |
המידע חולץ מהודעת היומן באמצעות תבנית grok. |
extensions.auth.type |
אם התיאור הוא 'יציאה מהחשבון' או 'כניסה לחשבון', צריך להגדיר את הערך AUTHTYPE_UNSPECIFIED. | |
metadata.event_type |
הערך שמוגדר הוא USER_LOGIN אם התיאור הוא Logging in (כניסה לחשבון). | |
metadata.event_type |
הערך שמוגדר הוא USER_LOGOUT אם התיאור הוא Logging out (יציאה מהחשבון). | |
metadata.event_type |
אם התיאור הוא לא 'כניסה' או 'יציאה', צריך להגדיר את הערך כ-'SCAN_UNCATEGORIZED'. | |
metadata.log_type |
הערך שצריך להגדיר הוא NETAPP_ONTAP. | |
metadata.product_name |
הערך שצריך להגדיר הוא NETAPP_ONTAP. | |
metadata.vendor_name |
הערך שצריך להגדיר הוא NETAPP_ONTAP. | |
target.platform |
הערך הוא WINDOWS אם nmsdk_platform מכיל windows (לא תלוי באותיות רישיות). | |
accessLocation |
event.idm.read_only_udm.principal.ip |
מופה מיומן השינויים |
accessLocation |
event.idm.read_only_udm.principal.asset.ip |
מופה מיומן השינויים |
deviceId |
event.idm.read_only_udm.principal.asset_id |
מופה מיומן השינויים |
deviceId |
event.idm.read_only_udm.principal.asset.asset_id |
מופה מיומן השינויים |
deviceName |
event.idm.read_only_udm.principal.hostname |
מופה מיומן השינויים |
deviceName |
event.idm.read_only_udm.principal.asset.hostname |
מופה מיומן השינויים |
domain |
event.idm.read_only_udm.principal.administarative_domain |
מופה מיומן השינויים |
entityName |
event.idm.read_only_udm.target.file.names |
מופה מיומן השינויים |
entityPath |
event.idm.read_only_udm.target.file.full_path |
מופה מיומן השינויים |
entityType |
event.idm.read_only_udm.target.resource.attribute.labels |
מופה מיומן השינויים |
extension |
event.idm.read_only_udm.target.resource.attribute.labels |
מופה מיומן השינויים |
entityAccessedTime |
event.idm.read_only_udm.metadata.event_timestamp |
מופה מיומן השינויים |
alertTimestamp |
event.idm.read_only_udm.metadata.event_timestamp |
מופה מיומן השינויים |
id |
event.idm.read_only_udm.metadata.product_log_id |
מופה מיומן השינויים |
userDisplayName |
event.idm.read_only_udm.principal.user.user_display_name |
מופה מיומן השינויים |
userId |
event.idm.read_only_udm.principal.user.userid |
מופה מיומן השינויים |
volumeId |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
volumeName |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
alertType |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
attributes.dataDestructionDetectedEntityCount |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
attributes.changePercentage |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
severity |
security_result.severity_details |
מופה מיומן השינויים |
file_extn |
security_result.detection_fields |
מופה מיומן השינויים |
uid |
metadata.product_log_id |
מופה מיומן השינויים |
product_name |
principal.hostname |
מופה מיומן השינויים |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.