איסוף יומנים של Check Point Harmony
גרסת כלי הניתוח: 3.0
במסמך הזה מוסבר איך להטמיע יומנים של Check Point Harmony Email and Collaboration (HEC) ב-Google Security Operations באמצעות Bindplane. קוד המנתח הזה מחלץ צמדי מפתח/ערך מהודעות syslog של Check Point Harmony וממפה אותם למודל נתונים מאוחד (UDM). הוא קודם מבצע נורמליזציה של פורמט ההודעה, ואז מנתח באופן איטרטיבי את השדות וממפה אותם לקטגוריות UDM כמו principal, target, network ו-security_result, כדי להעשיר את הנתונים לצורך ניתוח אבטחה.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows 2016 ואילך, או מארח Linux עם
systemd - אם מריצים מאחורי שרת proxy, היציאות של חומת האש פתוחות
- גישת הרשאות ל-Check Point Harmony HEC (Infinity Portal)
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents.
- מורידים את קובץ האימות להטמעת נתונים. שומרים את הקובץ בצורה מאובטחת במערכת שבה תותקן 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
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות מפורטות במדריך ההתקנה.
הגדרה של סוכן Bindplane להטמעה של Syslog ושליחה אל Google SecOps
- ניגשים לקובץ ההגדרה:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/etc/bindplane-agent/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו Notepad).
- מאתרים את הקובץ
עורכים את הקובץ
config.yamlבאופן הבא:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CHECKPOINT_HARMONY' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- מחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית.
- מחליפים את
<customer_id>במזהה הלקוח בפועל. - מעדכנים את
/path/to/ingestion-authentication-file.jsonלנתיב שבו נשמר קובץ האימות בקטע קבלת קובץ אימות להעברה ל-Google SecOps.
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart bindplane-agentכדי להפעיל מחדש את סוכן Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:
net stop BindPlaneAgent && net start BindPlaneAgent
הגדרת Syslog עבור Check Point Harmony HEC
- נכנסים לממשק האינטרנט של Infinity Portal > Harmony Email & Collaboration.
- עוברים אל הגדרות > מעקב > SIEM.
- לוחצים על הוספת שרת SIEM.
- מספקים את פרטי ההגדרה הבאים:
- מארח: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane.
- פרוטוקול: בוחרים באפשרות UDP.
- (אופציונלי) אסימון: מזינים תג אופציונלי ליומנים.
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| פעולה | security_result.action_details | ממופים ישירות. |
| security_result.action | ממופה ל-ALLOW, BLOCK, ALLOW_WITH_MODIFICATION או QUARANTINE על סמך הערך של שדה הפעולה. | |
| additional_info | additional.fields.value.string_value | ממופה ישירות עם המקש = additional_info. |
| analyzed_on | security_result.detection_fields.value | ממופה ישירות עם המקש = analyzed_on. |
| client_name | additional.fields.value.string_value | ממופה ישירות עם המקש = client_name. |
| client_version | intermediary.platform_version | ממופים ישירות. |
| confidence_level | security_result.detection_fields.value | ממופה ישירות עם המקש = confidence_level. |
| security_result.confidence | המיפוי הוא לערכים UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE או HIGH_CONFIDENCE, בהתאם לערך של השדה confidence_level. | |
| description | security_result.description | ממופים ישירות. |
| dst | target.ip | ממופים ישירות. |
| dst_dns_name | security_result.detection_fields.value | ממופה ישירות עם המקש = dst_dns_name. |
| dst_machine_name | security_result.detection_fields.value | ממופה ישירות עם המקש = dst_machine_name. |
| target.asset.hostname | ממופים ישירות. | |
| target.hostname | ממופים ישירות. | |
| dst_user_dn | security_result.detection_fields.value | ממופה ישירות עם המקש = dst_user_dn. |
| dst_user_name | target.user.userid | ממופים ישירות. |
| ep_rule_id | security_result.rule_id | מיפוי ישיר אם rule_uid ריק. |
| שגיאות | security_result.summary | ממופים ישירות. |
| event_type | metadata.product_event_type | ממופים ישירות. |
| file_md5 | target.process.file.md5 | ממופה ישירות אם הערך הוא גיבוב MD5 תקין ולא אפסים בלבד. |
| target.file.md5 | ממופה ישירות אם הערך הוא גיבוב MD5 תקין ולא אפסים בלבד. | |
| file_name | target.process.file.full_path | ממופים ישירות. |
| file_sha1 | target.process.file.sha1 | הערך ממופה ישירות אם הוא גיבוב (hash) תקין באלגוריתם SHA-1 ולא מכיל רק אפסים. |
| target.file.sha1 | הערך ממופה ישירות אם הוא גיבוב (hash) תקין באלגוריתם SHA-1 ולא מכיל רק אפסים. | |
| file_sha256 | target.process.file.sha256 | ממופה ישירות אם הערך הוא גיבוב (hash) תקין באלגוריתם SHA256 ולא אפסים בלבד. |
| target.file.sha256 | ממופה ישירות אם הערך הוא גיבוב (hash) תקין באלגוריתם SHA256 ולא אפסים בלבד. | |
| file_size | target.file.size | ממופים ישירות. |
| file_type | target.file.file_type | מופה ל-FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF או FILE_TYPE_XLSX על סמך הערך של השדה file_type. |
| סימונים | additional.fields.value.string_value | ממופה ישירות עם המקש = flags. |
| fw_subproduct | additional.fields.value.string_value | ממופה ישירות עם מפתח = fw_subproduct אם המוצר ריק. |
| metadata.product_name | ממופה ישירות אם המוצר ריק. | |
| host_type | security_result.detection_fields.value | ממופה ישירות עם המקש = host_type. |
| ifdir | network.direction | ממופה ישירות אחרי ההמרה לאותיות רישיות. |
| ifname | security_result.detection_fields.value | ממופה ישירות עם המקש = ifname. |
| installed_products | security_result.detection_fields.value | ממופה ישירות עם המקש = installed_products. |
| is_scanned | security_result.detection_fields.value | ממופה ישירות עם המקש = is_scanned. |
| layer_name | security_result.detection_fields.value | ממופה ישירות עם המקש = layer_name. |
| security_result.rule_set_display_name | ממופים ישירות. | |
| layer_uuid | security_result.detection_fields.value | ממופה ישירות עם המקש = layer_uuid. |
| security_result.rule_set | ממופים ישירות. | |
| loguid | metadata.product_log_id | ממופים ישירות. |
| machine_guid | principal.asset.attribute.labels.value | ממופה ישירות עם המקש = machine_guid. |
| malware_action | security_result.detection_fields.value | ממופה ישירות עם המקש = malware_action. |
| malware_family | security_result.detection_fields.value | ממופה ישירות עם המקש = malware_family. |
| media_authorized | security_result.detection_fields.value | ממופה ישירות עם המקש = media_authorized. |
| media_class_id | security_result.detection_fields.value | ממופה ישירות עם המקש = media_class_id. |
| media_description | security_result.detection_fields.value | ממופה ישירות עם המקש = media_description. |
| media_encrypted | security_result.detection_fields.value | ממופה ישירות עם המקש = media_encrypted. |
| media_manufacturer | security_result.detection_fields.value | ממופה ישירות עם המקש = media_manufacturer. |
| media_type | security_result.detection_fields.value | ממופה ישירות עם המקש = media_type. |
| methods | security_result.detection_fields.value | ממופה ישירות עם המקש = methods. |
| originsicname | security_result.detection_fields.value | ממופה ישירות עם המקש = originsicname. |
| origin | intermediary.ip | ממופים ישירות. |
| os_version | principal.asset.platform_software.platform_patch_level | ממופים ישירות. |
| outzone | security_result.detection_fields.value | ממופה ישירות עם המקש = outzone. |
| parent_rule | security_result.detection_fields.value | ממופה ישירות עם המקש = parent_rule. |
| peer_gateway | intermediary.ip | ממופים ישירות. |
| policy_guid | security_result.detection_fields.value | ממופה ישירות עם המקש = policy_guid. |
| policy_name | security_result.detection_fields.value | ממופה ישירות עם המקש = policy_name. |
| policy_number | security_result.detection_fields.value | ממופה ישירות עם המקש = policy_number. |
| policy_type | security_result.detection_fields.value | ממופה ישירות עם המקש = policy_type. |
| מוצר | additional.fields.value.string_value | ממופה ישירות עם המקש = product. |
| metadata.product_name | ממופים ישירות. | |
| product_family | additional.fields.value.string_value | ממופה ישירות עם המקש = product_family. |
| program_name | additional.fields.value.string_value | ממופה ישירות עם המקש = program_name. |
| protection_name | security_result.detection_fields.value | ממופה ישירות עם המקש = protection_name. |
| protection_type | security_result.detection_fields.value | ממופה ישירות עם המקש = protection_type. |
| reading_data_access | security_result.detection_fields.value | ממופה ישירות עם המקש = reading_data_access. |
| rule_action | security_result.detection_fields.value | ממופה ישירות עם המקש = rule_action. |
| rule_name | security_result.rule_name | ממופים ישירות. |
| rule_uid | security_result.rule_id | ממופה ישירות אם ep_rule_id ריק. |
| s_port | principal.port | ממופים ישירות. |
| סכמה | security_result.detection_fields.value | ממופה ישירות עם המקש = scheme. |
| sequencenum | additional.fields.value.string_value | ממופה ישירות עם המקש = sequencenum. |
| שירות | target.port | ממופים ישירות. |
| service_id | security_result.detection_fields.value | ממופה ישירות עם המקש = service_id. |
| session_uid | network.session_id | ממופים ישירות. |
| src | principal.ip | ממופים ישירות. |
| src_dns_name | security_result.detection_fields.value | ממופה ישירות עם המקש = src_dns_name. |
| src_machine_name | security_result.detection_fields.value | ממופה ישירות עם המקש = src_machine_name. |
| principal.asset.hostname | ממופים ישירות. | |
| principal.hostname | ממופים ישירות. | |
| src_user_dn | security_result.detection_fields.value | ממופה ישירות עם המקש = src_user_dn. |
| src_user_name | principal.user.userid | ממופים ישירות. |
| principal.user.email_addresses | כתובת האימייל מחולצת מהשדה src_user_name אם הוא קיים ובפורמט userid (email). |
|
| te_verdict_determined_by | security_result.detection_fields.value | ממופה ישירות עם המקש = te_verdict_determined_by. |
| חותמת זמן | metadata.event_timestamp | ממופים ישירות. |
| trusted_domain | security_result.detection_fields.value | ממופה ישירות עם המקש = trusted_domain. |
| משתמש | principal.user.userid | ממופה ישירות אם src_user_name ריק. |
| principal.user.email_addresses | כתובת האימייל מחולצת משדה המשתמש אם היא קיימת והיא בפורמט userid (email). |
|
| user_name | principal.user.email_addresses | ממופה ישירות אם הערך הוא כתובת אימייל תקינה. |
| user_sid | principal.user.windows_sid | ממופים ישירות. |
| התוצאה | security_result.detection_fields.value | ממופה ישירות עם המקש = verdict. |
| גרסה | additional.fields.value.string_value | ממופה ישירות עם המקש = version. |
| vpn_feature_name | security_result.detection_fields.value | ממופה ישירות עם המקש = vpn_feature_name. |
| web_client_type | security_result.detection_fields.value | ממופה ישירות עם המקש = web_client_type. |
| metadata.log_type | השדה הזה מקודד באופן קשיח לערך CHECKPOINT_HARMONY. |
|
| metadata.vendor_name | השדה הזה מקודד באופן קשיח לערך CHECKPOINT_HARMONY. |
|
| principal.asset.platform_software.platform | ממופה ל-WINDOWS, MAC או LINUX על סמך הערך בשדה os_name. | |
| network.ip_protocol | ממופה ל-TCP, ל-UDP, ל-ICMP, ל-IP6IN4 או ל-GRE על סמך הערך של שדה הפרוטוקול ושדות אחרים כמו service ו-service_id. | |
| security_result.severity | ממופה לערכים LOW, MEDIUM, HIGH או CRITICAL על סמך הערך של שדה החומרה. | |
| metadata.event_type | הערך של השדה הזה הוא NETWORK_CONNECTION אם יש גם את המשתמש הראשי וגם את היעד, STATUS_UNCATEGORIZED אם יש רק את המשתמש הראשי, ו-GENERIC_EVENT בכל מקרה אחר. |
|
label |
event.idm.read_only_udm.network.email.to |
מופה מיומן השינויים |
entityLink |
event.idm.read_only_udm.metadata.url_back_to_product |
מופה מיומן השינויים |
actionType |
event.idm.read_only_udm.security_result.action_details |
מופה מיומן השינויים |
eventId |
event.idm.read_only_udm.metadata.product_log_id |
מופה מיומן השינויים |
eventCreated |
event.idm.read_only_udm.metadata.event_timestamp |
מופה מיומן השינויים |
type |
event.idm.read_only_udm.metadata.product_event_type |
מופה מיומן השינויים |
act.createTime |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
act.relatedEntityId |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
customerId |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
saas |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
state |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
entityId |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
connectivity_state |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
actions.actionType |
event.idm.read_only_udm.security_result.action |
מופה מיומן השינויים |
senderAddress |
event.idm.read_only_udm.network.email.from |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.