איסוף יומנים של InterSystems Caché
במסמך הזה מוסבר איך להטמיע יומנים של InterSystems Caché ב-Google Security Operations באמצעות סוכן Bindplane.
InterSystems Caché היא פלטפורמה של מסדי נתונים ואפליקציות עם ביצועים גבוהים, שמשמשת בתחום שירותי הבריאות והשירותים הפיננסיים. הוא יוצר יומני ביקורת לפעולות במסד הנתונים, לגישת משתמשים ולאירועים במערכת. הכלי לניתוח מחלץ שדות מנתוני ביקורת של Caché וממפה אותם למודל הנתונים המאוחד (UDM), תוך תיעוד של זהות המשתמש, מאפייני הרשת, פרטי התהליך, פעולות הקבצים ותוצאות האבטחה.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין שרת InterSystems Caché
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישת הרשאות למופע InterSystems Caché עם הרשאה להגדיר יומני ביקורת ולייצא יומנים
קבלת קובץ אימות להטמעת נתונים ב-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/intersystems_cache: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: INTERSYSTEMS_CACHE raw_log_field: body service: pipelines: logs/intersystems_cache: receivers: - udplog exporters: - chronicle/intersystems_cache
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
-
udplog: סוג הנמען על סמך הפרוטוקול:-
udplogל-UDP syslog -
tcplogעבור Syslog ב-TCP -
syslogעבור Syslog RFC 3164/5424
-
-
0.0.0.0: כתובת ה-IP להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - כתובת IP ספציפית להאזנה בממשק אחד
-
-
514: מספר היציאה להאזנה (לדוגמה,514, 1514, 6514)
-
הגדרות של הכלי לייצוא:
-
<customer_id>: מספר הלקוח מהשלב הקודם malachiteingestion-pa.googleapis.com: Regional endpoint URL:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
- משנים את
creds_file_pathבהתאם לפלטפורמה:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
שמירת קובץ ההגדרות
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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 ב-InterSystems Caché
InterSystems Caché כותבת אירועי ביקורת למסד הנתונים הפנימי שלה לביקורת. מגדירים העברה של syslog כדי לשלוח את האירועים האלה לסוכן Bindplane.
הפעלה והגדרה של רישום ביומן ביקורת
- פותחים את Caché Management Portal.
- עוברים אל System Administration > Security > Auditing > Configure System Events.
- מפעילים את אירועי הביקורת שרוצים לתעד (לדוגמה,
%System/%Login/LoginFailure,%System/%Security/Protect). - לוחצים על Save.
הגדרת העברה של syslog
- בפורטל הניהול, עוברים אל System Administration > Security > Auditing > Configure Audit (ניהול מערכת > אבטחה > ביקורת > הגדרת ביקורת).
- הפעלת העברה של אירועי ביקורת ל-syslog.
- מספקים את פרטי ההגדרה הבאים:
- שרת Syslog: מזינים את כתובת ה-IP של מארח הסוכן Bindplane (לדוגמה,
192.168.1.100). - יציאה: מזינים
514(חייב להיות זהה ליציאת המקלט של Bindplane). - פרוטוקול: בוחרים באפשרות UDP (חייב להיות זהה לסוג המקלט של Bindplane).
- שרת Syslog: מזינים את כתובת ה-IP של מארח הסוכן Bindplane (לדוגמה,
לוחצים על Save.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
deviceNtDomain |
about.administrative_domain |
שם שונה/מיפוי |
deviceExternalId |
about.asset.asset_id |
מיפוי ישיר |
device_product |
about.asset.asset_id |
מיפוי ישיר |
device_vendor |
about.asset.asset_id |
מיפוי ישיר |
fileHash |
about.file.full_path |
מיפוי ישיר |
filePath |
about.file.full_path |
שם שונה/מיפוי |
_hash |
about.file.sha256 |
שם שונה/מיפוי |
fileHash |
about.file.sha256 |
שם שונה/מיפוי |
fsize |
about.file.size |
שם שונה/מיפוי |
dvchost |
about.hostname |
שם שונה/מיפוי |
ips |
about.ip |
ממוזג |
dvc_mac |
about.mac |
מיפוי: slot ← mac_address |
dvcmac |
about.mac |
ממוזג |
mac_address |
about.mac |
ממוזג |
deviceTranslatedAddress |
about.nat_ip |
ממוזג |
Emne |
about.process.command_line |
מיפוי ישיר |
Path |
about.process.command_line |
מיפוי ישיר |
Subject |
about.process.command_line |
מיפוי ישיר |
deviceProcessName |
about.process.command_line |
שם שונה/מיפוי |
dvcpid |
about.process.pid |
שם שונה/מיפוי |
permissions |
about.resource.attribute.permissions |
ממוזג |
additional_cfp1 |
additional.fields |
ממוזג |
additional_cfp2 |
additional.fields |
ממוזג |
additional_cfp3 |
additional.fields |
ממוזג |
additional_cfp4 |
additional.fields |
ממוזג |
additional_cn1 |
additional.fields |
ממוזג |
additional_cn2 |
additional.fields |
ממוזג |
additional_cn3 |
additional.fields |
ממוזג |
additional_cs1 |
additional.fields |
ממוזג |
additional_cs2 |
additional.fields |
ממוזג |
additional_cs3 |
additional.fields |
ממוזג |
additional_cs4 |
additional.fields |
ממוזג |
additional_cs5 |
additional.fields |
ממוזג |
additional_cs6 |
additional.fields |
ממוזג |
additional_cs7 |
additional.fields |
ממוזג |
additional_devicePayloadId |
additional.fields |
ממוזג |
additional_eventId |
additional.fields |
ממוזג |
additional_field |
additional.fields |
ממוזג |
additional_field_key |
additional.fields |
מיפוי: smb_stage1 ← additional_smb_stage1 |
additional_flexString1 |
additional.fields |
ממוזג |
additional_fname |
additional.fields |
ממוזג |
additional_smb_stage1 |
additional.fields |
ממוזג |
cs2 |
additional.fields |
מיפוי: arc_test ← additional_cs2 |
cs5_label |
additional.fields |
ממוזג |
event_name |
extensions.auth.type |
מיפוי: logout ← AUTHTYPE_UNSPECIFIED, login ← AUTHTYPE_UNSPECIFIED |
field_intermediary |
intermediary |
ממוזג |
msg |
metadata.description |
שם שונה/מיפוי |
Generated |
metadata.event_timestamp |
הניתוח הוא yyyy-MM-ddTHH:mm:ss |
Received |
metadata.event_timestamp |
הניתוח הוא yyyy-MM-ddTHH:mm:ss |
rt |
metadata.event_timestamp |
הניתוח הוא yyyy-MM-ddTHH:mm:ssZ |
event_name |
metadata.event_type |
מיפוי: logout ← USER_LOGOUT, login ← USER_LOGIN, `"LogSpyware","LogPredictiveMachin... |
device_event_class_id |
metadata.product_event_type |
מיפוי ישיר |
event_name |
metadata.product_event_type |
מיפוי ישיר |
externalId |
metadata.product_log_id |
מיפוי ישיר |
device_product |
metadata.product_name |
מיפוי ישיר |
device_version |
metadata.product_version |
מיפוי ישיר |
device_vendor |
metadata.vendor_name |
שם שונה/מיפוי |
app_protocol_output |
network.application_protocol |
מיפוי ישיר |
deviceDirection |
network.direction |
מיפוי: 0 ← INBOUND, 1 ← OUTBOUND |
requestMethod |
network.http.method |
שם שונה/מיפוי |
agentZoneURI |
network.http.referral_url |
מיפוי ישיר |
requestClientApplication |
network.http.user_agent |
שם שונה/מיפוי |
ip_protocol_out |
network.ip_protocol |
מיפוי ישיר |
in |
network.received_bytes |
שם שונה/מיפוי |
out |
network.sent_bytes |
שם שונה/מיפוי |
sntdom |
principal.administrative_domain |
שם שונה/מיפוי |
sourceServiceName |
principal.application |
שם שונה/מיפוי |
Group_name |
principal.group.group_display_name |
מיפוי ישיר |
Gruppenavn |
principal.group.group_display_name |
מיפוי ישיר |
Device_name |
principal.hostname |
מיפוי ישיר |
Enhetsnavn |
principal.hostname |
מיפוי ישיר |
shost |
principal.hostname |
שם שונה/מיפוי |
principal_ip |
principal.ip |
ממוזג |
shost |
principal.ip |
ממוזג |
mac |
principal.mac |
ממוזג |
sourceTranslatedAddress |
principal.nat_ip |
ממוזג |
sourceTranslatedPort |
principal.nat_port |
שם שונה/מיפוי |
spt |
principal.port |
שם שונה/מיפוי |
sproc |
principal.process.command_line |
שם שונה/מיפוי |
spid |
principal.process.pid |
שם שונה/מיפוי |
principal_role |
principal.user.attribute.roles |
ממוזג |
suser |
principal.user.user_display_name |
מיפוי ישיר |
suid |
principal.user.userid |
שם שונה/מיפוי |
_action |
security_result.action |
ממוזג |
act |
security_result.action |
מיפוי: accept ← _action, deny ← _action |
Action_Taken |
security_result.action_details |
מיפוי ישיר |
act |
security_result.action_details |
מיפוי ישיר |
cat |
security_result.category_details |
ממוזג |
Scan_Type |
security_result.description |
מיפוי ישיר |
Type |
security_result.description |
מיפוי ישיר |
msg_data_2 |
security_result.description |
מיפוי ישיר |
infection_channel_label |
security_result.detection_fields |
ממוזג |
operasjon_label |
security_result.detection_fields |
ממוזג |
operation_label |
security_result.detection_fields |
ממוזג |
permission_label |
security_result.detection_fields |
ממוזג |
spyware_Grayware_Type_label |
security_result.detection_fields |
ממוזג |
threat_probability_label |
security_result.detection_fields |
ממוזג |
tillatelse_label |
security_result.detection_fields |
ממוזג |
mwProfile |
security_result.rule_name |
מיפוי ישיר |
severity |
security_result.severity |
מיפוי: "0", "1", "2", "3", "LOW" → LOW, `"4", "5", "6", "MEDIUM", "SUBSTANTIAL", "INFO"... |
severity |
security_result.severity_details |
מיפוי ישיר |
Result |
security_result.summary |
מיפוי ישיר |
appcategory |
security_result.summary |
מיפוי ישיר |
reason |
security_result.summary |
שם שונה/מיפוי |
Spyware |
security_result.threat_name |
מיפוי ישיר |
Unknown_Threat |
security_result.threat_name |
מיפוי ישיר |
Virus_Malware_Name |
security_result.threat_name |
מיפוי ישיר |
oldFilePath |
src.file.full_path |
שם שונה/מיפוי |
oldFileSize |
src.file.size |
שם שונה/מיפוי |
old_permissions |
src.resource.attribute.permissions |
ממוזג |
dntdom |
target.administrative_domain |
שם שונה/מיפוי |
app |
target.application |
מיפוי ישיר |
destinationServiceName |
target.application |
שם שונה/מיפוי |
ahost |
target.hostname |
מיפוי ישיר |
temp_dhost |
target.hostname |
מיפוי ישיר |
IPv6_Address |
target.ip |
ממוזג |
agt |
target.ip |
ממוזג |
dst_ip |
target.ip |
ממוזג |
ipv6 |
target.ip |
מיפוי: - ← IPv6_Address |
atz |
target.location.country_or_region |
מיפוי ישיר |
amac |
target.mac |
ממוזג |
mac_address |
target.mac |
ממוזג |
destination_translated_address |
target.nat_ip |
ממוזג |
destinationTranslatedPort |
target.nat_port |
שם שונה/מיפוי |
dpt |
target.port |
שם שונה/מיפוי |
dproc |
target.process.command_line |
שם שונה/מיפוי |
File_name |
target.process.file.full_path |
מיפוי ישיר |
Infected_Resource |
target.process.file.full_path |
מיפוי ישיר |
Object |
target.process.file.full_path |
מיפוי ישיר |
Objekt |
target.process.file.full_path |
מיפוי ישיר |
dpid |
target.process.pid |
שם שונה/מיפוי |
resource_Type_label |
target.resource.attribute.labels |
ממוזג |
request |
target.url |
מיפוי ישיר |
target_role |
target.user.attribute.roles |
ממוזג |
CustomerName |
target.user.user_display_name |
מיפוי ישיר |
temp_duser |
target.user.user_display_name |
מיפוי ישיר |
Bruker |
target.user.userid |
מיפוי ישיר |
User_value |
target.user.userid |
מיפוי ישיר |
temp_duid |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | extensions.auth.type |
קבוע: AUTHTYPE_UNSPECIFIED |
| לא רלוונטי | metadata.event_type |
קבוע: USER_LOGOUT |
| לא רלוונטי | network.direction |
קבוע: INBOUND |
| לא רלוונטי | security_result.severity |
קבוע: LOW |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.