איסוף יומנים של Rubrik Security Cloud
במסמך הזה מוסבר איך להטמיע יומנים של Rubrik Security Cloud ב-Google Security Operations באמצעות תגובות לפעולה מאתר אחר (webhooks). Rubrik Security Cloud (RSC) היא פלטפורמת SaaS לאבטחת מידע, שמספקת יכולות גיבוי, שחזור, זיהוי אנומליות ומשילות מידע (data governance) בסביבות ענן ובסביבות מקומיות. RSC יוצר אירועי אבטחה, יומני ביקורת ויומני פעילות תפעולית בפורמט JSON של PagerDuty Common Event Format (PD-CEF), שאפשר לשלוח ל-Google SecOps לצורך מעקב וניתוח מרכזיים.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- גישה עם הרשאות למסוף Rubrik Security Cloud, עם הרשאות לניהול של רשתות לפעולות אינטרנט (webhooks)
- קישוריות רשת מ-Rubrik Security Cloud לנקודת הקצה של ה-webhook ב-Google SecOps
- גישה למסוף Google Cloud כדי ליצור מפתח API
איך יוצרים פיד של webhook ב-Google SecOps
יצירת הפיד
- עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Rubrik Security Cloud Events). - בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Rubrik Security Cloud בתור Log type.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול (אופציונלי): משאירים את השדה ריק כי כל בקשת webhook מכילה אירוע אחד.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה.
- לוחצים על הבא.
- בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.
יצירה ושמירה של המפתח הסודי
אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:
- בדף הפרטים של הפיד, לוחצים על יצירת מפתח סודי.
- תיפתח תיבת דו-שיח עם המפתח הסודי.
- מעתיקים את המפתח הסודי ושומרים אותו במקום מאובטח.
איך מקבלים את כתובת ה-URL של נקודת הקצה של הפיד
- עוברים לכרטיסייה פרטים של הפיד.
- בקטע Endpoint Information, מעתיקים את Feed endpoint URL.
- שומרים את כתובת ה-URL הזו לשלבים הבאים.
- לוחצים על סיום.
יצירת מפתח API של Google Cloud
כדי לבצע אימות ב-Google SecOps, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud .
יצירת מפתח ה-API
- נכנסים לדף Credentials במסוףGoogle Cloud .
- בוחרים את הפרויקט (הפרויקט שמשויך למכונה של Google SecOps).
- לוחצים על Create credentials > מפתח API.
- מפתח ה-API נוצר ומוצג בתיבת דו-שיח.
- לוחצים על Edit API key כדי להגביל את מפתח ה-API.
הגבלת מפתח ה-API
- בדף ההגדרות של מפתח ה-API:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Webhook API Key).
- שם: מזינים שם תיאורי (לדוגמה,
- בקטע API restrictions:
- בוחרים באפשרות Restrict key.
- בתפריט הנפתח Select APIs, מחפשים ובוחרים את Google SecOps API (או Chronicle API).
- לוחצים על Save.
- מעתיקים את הערך של מפתח ה-API מהשדה API key שבחלק העליון של הדף.
שומרים את מפתח ה-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. - לוחצים על סמל גלגל השיניים בפינה השמאלית העליונה ובוחרים באפשרות הגדרות.
- לוחצים על Notifications (התראות) ובוחרים באפשרות Webhooks (תגובות לפעולה מאתר אחר).
- לוחצים על Add Webhook (הוספת תגובה לפעולה מאתר אחר).
- מופיע אשף הוספת ה-webhook.
בשדה Provider, בוחרים באפשרות Generic.
בקטע שם ה-Webhook, מזינים שם תיאורי (לדוגמה,
Google SecOps Integration).בשדה Endpoint (נקודת קצה), מדביקים את ה-webhook URL המלא מלמעלה, כולל הפרמטרים של השאילתה
keyו-secret. האימות מתבצע באמצעות כתובת ה-URL, כך שהמתג Authentication יכול להישאר במצב כבוי.לוחצים על הבא.
לוחצים על Test Webhook כדי לוודא שהגדרת ה-webhook שצוינה פועלת, ואז לוחצים על Next.
נפתח החלון בחירת אירוע וחומרה.
בוחרים את האירועים ש-RSC שולח לנקודת הקצה (endpoint) של ה-webhook שהוגדרה:
בקטע אירועים, בוחרים את סוגי האירועים שרוצים להעביר:
- גיבוי
- שחזור
- Anomaly
- איתור איומים
- מעקב אחרי איומים
- Configuration
- אבחון
- סנכרון
- תחזוקה
- מערכת
בקטע ביקורת, בוחרים את סוגי הביקורת שרוצים להעביר. סוגי ביקורת האימות מזינים את מיפויי ההתחברות של המנתח.
בקטע חומרה, בוחרים את רמות החומרה שיפעילו התראות:
- קריטי
- אזהרה
- מידע
לוחצים על הבא.
בודקים את פרטי ההגדרה בחלון Confirmation ולוחצים על Save.
איך לוודא שה-webhook פועל
בדיקת הסטטוס של ה-webhook של Rubrik Security Cloud
- נכנסים ל-Rubrik Security Cloud.
- עוברים אל הגדרות > התראות > תגובות לפעולה מאתר אחר (webhook).
- בודקים את העמודה סטטוס של ה-webhook (הסטטוס צריך להיות מופעל).
- בודקים אם מופיעות הודעות שגיאה בפרטי ה-webhook.
בדיקת הסטטוס של הפיד ב-Google SecOps
- ב-Google SecOps, עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- בודקים את העמודה סטטוס של פיד ה-webhook (הסטטוס צריך להיות פעיל).
בודקים את הספירה של אירועים שהתקבלו (היא אמורה לעלות).
אימות היומנים ב-Google SecOps
- עוברים אל חיפוש > חיפוש ב-UDM.
משתמשים בשאילתה הבאה:
metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocaseמשנים את טווח הזמן לשעה האחרונה.
מוודאים שהאירועים מופיעים בתוצאות.
הפניה למטען הייעודי (payload) של ה-webhook
כברירת מחדל, Rubrik Security Cloud שולח אירועים בפורמט PagerDuty Common Event Format (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
מגבלות על בקשות
| הגבלה | ערך |
|---|---|
| שורה אחת מקסימלית ביומן | 1MB |
| מספר QPS (שאילתות לשנייה) מקסימלי | 15,000 |
| פסק זמן לבקשה | 90 שניות |
| התנהגות של ניסיון חוזר | בניהול השולח. Google SecOps מחזיר את קוד השגיאה HTTP 429 כשיש חריגה מהגבלת הפרצים. המערכת השולחת צריכה לשמור את הנתונים במאגר זמני ולנסות שוב. |
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | Logic (פונקציה לוגית) |
|---|---|---|
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.