איסוף יומנים מ-Rubrik Security Cloud
במאמר הזה מוסבר איך להטמיע יומנים של Rubrik Security Cloud ב-Google Security Operations באמצעות ווּבְּהוּקים. Rubrik Security Cloud (RSC) היא פלטפורמה לאבטחת נתונים מבוססת-SaaS, שמספקת יכולות גיבוי, שחזור, גילוי אנומליות וניהול נתונים בסביבות ענן ובסביבות מקומיות. RSC יוצר אירועי אבטחה, יומני ביקורת ויומני פעילות תפעולית בפורמט JSON של PagerDuty Common Event Format (PD-CEF), שאפשר להעביר ל-Google SecOps לצורך ניתוח וניטור מרכזיים.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- גישת אדמין למסוף Rubrik Security Cloud עם הרשאות לניהול וווב-הוקים
- קישוריות רשת מ-Rubrik Security Cloud לנקודת הקצה של ה-webhook ב-Google SecOps
- גישה ל Google Cloud מסוף ליצירת מפתח API
יצירת פיד של webhook ב-Google SecOps
יצירת הפיד
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Rubrik Security Cloud Events). - בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Rubrik Security Cloud בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול (אופציונלי): לא ממלאים את השדה כי כל בקשת webhook מכילה אירוע יחיד.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה.
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
יצירה ושמירה של המפתח הסודי
אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:
- בדף פרטי הפיד, לוחצים על יצירת מפתח סודי.
- תיפתח תיבת דו-שיח עם המפתח הסודי.
- מעתיקים את המפתח הסודי ושומרים אותו בצורה מאובטחת.
קבלת כתובת ה-URL של נקודת הקצה של הפיד
- עוברים לכרטיסייה פרטים של הפיד.
- בקטע Endpoint Information, מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד.
- שומרים את כתובת ה-URL הזו כדי להשתמש בה בשלבים הבאים.
- לוחצים על סיום.
יצירת מפתח API Google Cloud
מערכת Google SecOps דורשת מפתח API לצורך אימות. יוצרים מפתח API מוגבל במסוף Google Cloud .
יצירת מפתח API
- נכנסים אל Google Cloud הדף Credentials במסוף.
- בוחרים את הפרויקט (הפרויקט שמשויך למופע Google SecOps).
- לוחצים על Create credentials > API key.
- מפתח API נוצר ומוצג בתיבת דו-שיח.
- לוחצים על Edit API key כדי להגביל את המפתח.
הגבלת מפתח ה-API
- בדף ההגדרות API key:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Webhook API Key).
- שם: מזינים שם תיאורי (לדוגמה,
- בקטע API restrictions (הגבלות על API):
- בוחרים באפשרות הגבלת מקש.
- בתפריט הנפתח Select APIs (בחירת ממשקי API), מחפשים את Google SecOps API (או Chronicle API) ובוחרים בו.
- לוחצים על Save.
- מעתיקים את הערך של מפתח ה-API מהשדה מפתח ה-API בחלק העליון של הדף.
שומרים את מפתח ה-API בצורה מאובטחת.
הגדרת webhook של Rubrik Security Cloud
הרכבת כתובת ה-URL של ה-webhook
משלבים את כתובת ה-URL של נקודת הקצה של Google SecOps, את מפתח ה-API ואת המפתח הסודי של הפיד. שני פרטי הכניסה מועברים כפרמטרים של שאילתה:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET>לדוגמה:
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=AIzaSyD...&secret=a1b2c3d4...
יצירת webhook ב-Rubrik Security Cloud
- נכנסים ל-Rubrik Security Cloud בכתובת
https://<account>.my.rubrik.com. - לוחצים על סמל גלגל השיניים בפינה השמאלית העליונה ובוחרים באפשרות הגדרות.
- לוחצים על התראות ובוחרים באפשרות Webhooks.
- לוחצים על Add Webhook (הוספת Webhook).
- מופיע האשף להוספת Webhook.
בקטע ספק, בוחרים באפשרות כללי.
בקטע שם התגובה לפעולה מאתר אחר (webhook), מזינים שם תיאורי (לדוגמה,
Google SecOps Integration).בקטע Endpoint (נקודת קצה), מדביקים את כתובת ה-URL המלאה של ה-webhook מהשלב הקודם, כולל פרמטרים של שאילתה
keyו-secret. האימות מתבצע באמצעות כתובת ה-URL, ולכן אפשר להשאיר את המתג אימות במצב מושבת.לוחצים על הבא.
לוחצים על Test Webhook כדי לוודא שההגדרה של ה-webhook שצוין פועלת, ואז לוחצים על Next.
מופיע החלון Select event and severity (בחירת אירוע ורמת חומרה).
בוחרים את האירועים ש-RSC שולח לנקודת הקצה (endpoint) של ה-webhook שהוגדרה:
בקטע אירועים, בוחרים את סוגי האירועים שרוצים להעביר:
- גיבוי
- שחזור
- אנומליה
- איתור איומים
- מעקב אחרי איומים
- Configuration
- אבחון
- סנכרון
- תחזוקה
- מערכת
בקטע Audit, בוחרים את סוגי הביקורת שרוצים להעביר. סוגי ביקורת של אימות מזינים את מיפויי הכניסה של מנתח התוכן.
בקטע חומרה, בוחרים את רמות החומרה שיפעילו התראות:
- קריטי
- אזהרה
- מידע
לוחצים על הבא.
בודקים את פרטי ההגדרה בחלון אישור ולוחצים על שמירה.
אימות הפעולה של ה-webhook
בדיקת הסטטוס של ה-webhook של Rubrik Security Cloud
- נכנסים ל-Rubrik Security Cloud.
- עוברים אל הגדרות > התראות > Webhooks.
- בודקים את העמודה סטטוס של ה-Webhook (צריך להופיע פעיל).
- בודקים אם יש הודעות שגיאה בפרטי ה-webhook.
בדיקת הסטטוס של הפיד ב-Google SecOps
- עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים) ב-Google SecOps.
- בודקים את העמודה סטטוס של פיד ה-Webhook (הסטטוס צריך להיות פעיל).
בודקים את הספירה של אירועים שהתקבלו (הספירה צריכה לעלות).
אימות יומנים ב-Google SecOps
- עוברים אל חיפוש > חיפוש UDM.
משתמשים בשאילתה הבאה:
metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocaseמשנים את טווח הזמן לשעה האחרונה.
מוודאים שהאירועים מופיעים בתוצאות.
הפניה למטען הייעודי (payload) של ה-webhook
כברירת מחדל, Rubrik Security Cloud שולח אירועים בפורמט Common Event של PagerDuty (PD-CEF). דוגמה למטען ייעודי (payload) של אירוע:
{ "summary": "Failed backup of vSphere VM 'example-vm'.", "source": "Rubrik Security Cloud", "severity": "critical", "timestamp": "2024-07-18T06:39:40.46Z", "class": "Backup", "custom_details": { "seriesId": "ccd7a8a5-4c58-4c88-bff9-7bdffddb6099", "id": "c2b47274-6323-4025-b307-afed1cfb7574", "type": "Event", "objectId": "83c4a80a-4a57-5699-b399-651089135586", "objectName": "example-vm", "objectType": "VmwareVm", "status": "Failure", "clusterId": "6a271636-9392-4cba-90c5-bdbe227854ab", "clusterName": "production-cluster", "eventName": "Snapshot.BackupFailed", "errorId": "Snapshot.VmwareSnapshotError", "errorCode": "", "errorRemedy": "", "errorReason": "", "auditUserName": "", "auditUserId": "", "location": "vcenter.example.com", "url": "", "customerID": "rubrik-customer", "logicalSizeInBytes": "", "dataTransferredInBytes": "", "effectiveThroughput": "" } }
מגבלות ושיטות מומלצות לשימוש ב-Webhook
מגבלות על בקשות
| הגבלה | ערך |
|---|---|
| Max single log line | 1MB |
| מספר QPS מקסימלי (שאילתות לשנייה) | 15,000 |
| זמן קצוב לתפוגה של בקשה | 90 שניות |
| התנהגות של ניסיון חוזר | בניהול השולח. Google SecOps מחזיר HTTP 429 כשחורגים ממגבלת ההעלאה המהירה. מערכת השליחה צריכה לשמור את הנתונים במאגר ולנסות שוב. |
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
audit_info_label |
additional.fields |
ממוזג |
effectiveThroughput_label |
additional.fields |
ממוזג |
group_label |
additional.fields |
ממוזג |
isPolarisAudit_label |
additional.fields |
ממוזג |
label_name_label |
additional.fields |
ממוזג |
node_label |
additional.fields |
ממוזג |
orgID_label |
additional.fields |
ממוזג |
snappable_name_label |
additional.fields |
ממוזג |
snappable_type_label |
additional.fields |
ממוזג |
snapshot_date_label |
additional.fields |
ממוזג |
type_label |
additional.fields |
ממוזג |
userNote_label |
additional.fields |
ממוזג |
has_target |
extensions.auth.type |
מיפוי: true → AUTHTYPE_UNSPECIFIED |
hunt_date |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
timestamp |
metadata.event_timestamp |
ניתוח הכתובות שברשימה: ISO8601 |
has_principal |
metadata.event_type |
מיפוי: true ← SCAN_HOST, true ← STATUS_UPDATE |
has_target |
metadata.event_type |
מיפוי: true → USER_LOGIN |
custom_details.eventName |
metadata.product_event_type |
מיפוי ישיר |
custom_details.id |
metadata.product_log_id |
מיפוי ישיר |
source |
metadata.product_name |
מיפוי ישיר |
custom_details.url |
metadata.url_back_to_product |
מיפוי ישיר |
custom_details.dataTransferredInBytes |
network.sent_bytes |
מיפוי ישיר |
custom_details.customerID |
principal.administrative_domain |
מיפוי ישיר |
domain |
principal.domain.name |
מיפוי ישיר |
custom_details.ipAddress |
principal.ip |
ממוזג |
ip_address |
principal.ip |
ממוזג |
is_ip_assigned |
principal.ip |
מיפוי: false → ip_address |
custom_details.clusterName |
principal.resource.name |
מיפוי ישיר |
custom_details.clusterId |
principal.resource.product_object_id |
מיפוי ישיר |
user_email |
principal.user.email_addresses |
ממוזג |
custom_details.auditUserName |
principal.user.user_display_name |
מיפוי ישיר |
user_name |
principal.user.user_display_name |
מיפוי ישיר |
action_name |
security_result.action |
ממוזג |
custom_details.status |
security_result.action_details |
מיפוי ישיר |
category_temp |
security_result.category |
ממוזג |
class |
security_result.category_details |
ממוזג |
confidence |
security_result.confidence_details |
מיפוי ישיר |
custom_details.errorMessage |
security_result.description |
מיפוי ישיר |
access_type_label |
security_result.detection_fields |
ממוזג |
action_date_label |
security_result.detection_fields |
ממוזג |
detection_time_label |
security_result.detection_fields |
ממוזג |
directories_snoozed_label |
security_result.detection_fields |
ממוזג |
directories_unsnoozed_label |
security_result.detection_fields |
ממוזג |
document_count_label |
security_result.detection_fields |
ממוזג |
encryption_level_label |
security_result.detection_fields |
ממוזג |
errorCode_label |
security_result.detection_fields |
ממוזג |
errorId_label |
security_result.detection_fields |
ממוזג |
errorReason_label |
security_result.detection_fields |
ממוזג |
errorRemedy_label |
security_result.detection_fields |
ממוזג |
event_info_label |
security_result.detection_fields |
ממוזג |
failed_document_count_label |
security_result.detection_fields |
ממוזג |
file_matches_label |
security_result.detection_fields |
ממוזג |
files_created_count_label |
security_result.detection_fields |
ממוזג |
files_modified_count_label |
security_result.detection_fields |
ממוזג |
files_removed_count_label |
security_result.detection_fields |
ממוזג |
files_suspicious_count_label |
security_result.detection_fields |
ממוזג |
hash_tf_version_label |
security_result.detection_fields |
ממוזג |
identity_name_label |
security_result.detection_fields |
ממוזג |
num_files_with_matches_label |
security_result.detection_fields |
ממוזג |
num_hash_matches_label |
security_result.detection_fields |
ממוזג |
num_of_violating_identities_label |
security_result.detection_fields |
ממוזג |
num_yara_rule_matches_label |
security_result.detection_fields |
ממוזג |
obj_failed_label |
security_result.detection_fields |
ממוזג |
obj_partially_succeeded_label |
security_result.detection_fields |
ממוזג |
obj_succeeded_label |
security_result.detection_fields |
ממוזג |
object_matches_label |
security_result.detection_fields |
ממוזג |
policy_name_label |
security_result.detection_fields |
ממוזג |
reason_label |
security_result.detection_fields |
ממוזג |
remediation_type_label |
security_result.detection_fields |
ממוזג |
remedy_label |
security_result.detection_fields |
ממוזג |
risk_name_label |
security_result.detection_fields |
ממוזג |
seriesID_label |
security_result.detection_fields |
ממוזג |
seriesId_label |
security_result.detection_fields |
ממוזג |
skipped_document_count_label |
security_result.detection_fields |
ממוזג |
strain_name_label |
security_result.detection_fields |
ממוזג |
successful_document_count_label |
security_result.detection_fields |
ממוזג |
total_accessible_files_at_risk_count_label |
security_result.detection_fields |
ממוזג |
vm_count_label |
security_result.detection_fields |
ממוזג |
yara_tf_version_label |
security_result.detection_fields |
ממוזג |
hunt_name |
security_result.rule_name |
מיפוי ישיר |
hunt_type |
security_result.rule_type |
מיפוי ישיר |
is_severity_assigned |
security_result.severity |
מיפוי: false ← INFORMATIONAL, false ← MEDIUM |
severity |
security_result.severity |
מיפוי: INFO ← INFORMATIONAL, WARNING ← MEDIUM |
severity_name |
security_result.severity |
מיפוי: INFO ← INFORMATIONAL, WARNING ← MEDIUM |
severity |
security_result.severity_details |
מיפוי ישיר |
severity_name |
security_result.severity_details |
מיפוי ישיר |
summary |
security_result.summary |
מיפוי ישיר |
threat_feed_type |
security_result.threat_feed_name |
מיפוי ישיר |
custom_details.logicalSizeInBytes |
target.file.size |
מיפוי ישיר |
client_id_label |
target.labels |
ממוזג |
client_name_label |
target.labels |
ממוזג |
custom_details.location |
target.location.name |
מיפוי ישיר |
custom_details.objectName |
target.resource.name |
מיפוי ישיר |
object_name |
target.resource.name |
מיפוי ישיר |
resource_name |
target.resource.name |
מיפוי ישיר |
custom_details.objectId |
target.resource.product_object_id |
מיפוי ישיר |
component |
target.resource.resource_subtype |
מיפוי ישיר |
custom_details.objectType |
target.resource.resource_subtype |
מיפוי ישיר |
is_object_type_assigned |
target.resource.resource_type |
מיפוי: false → UNSPECIFIED |
class |
target.user.email_addresses |
מיפוי: Login → user_email |
user_email |
target.user.email_addresses |
ממוזג |
each_group |
target.user.group_identifiers |
ממוזג |
custom_details.auditUserName |
target.user.user_display_name |
מיפוי ישיר |
user_name |
target.user.user_display_name |
מיפוי ישיר |
custom_details.auditUserId |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | extensions.auth.type |
קבוע: AUTHTYPE_UNSPECIFIED |
| לא רלוונטי | metadata.event_type |
קבוע: USER_LOGIN |
| לא רלוונטי | metadata.product_name |
קבוע: RUBRIK SECURITY CLOUD |
| לא רלוונטי | metadata.vendor_name |
קבוע: RUBRIK |
| לא רלוונטי | principal.resource.resource_type |
קבוע: CLUSTER |
| לא רלוונטי | security_result.severity |
קבוע: INFORMATIONAL |
| לא רלוונטי | target.resource.resource_type |
קבוע: UNSPECIFIED |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.