איסוף יומנים של 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

יצירת הפיד

  1. עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Rubrik Security Cloud Events).
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות Rubrik Security Cloud בתור Log type.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:
    • תו מפריד לפיצול (אופציונלי): משאירים את השדה ריק כי כל בקשת webhook מכילה אירוע אחד.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה.
  9. לוחצים על הבא.
  10. בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.

יצירה ושמירה של המפתח הסודי

אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:

  1. בדף הפרטים של הפיד, לוחצים על יצירת מפתח סודי.
  2. תיפתח תיבת דו-שיח עם המפתח הסודי.
  3. מעתיקים את המפתח הסודי ושומרים אותו במקום מאובטח.

איך מקבלים את כתובת ה-URL של נקודת הקצה של הפיד

  1. עוברים לכרטיסייה פרטים של הפיד.
  2. בקטע Endpoint Information, מעתיקים את Feed endpoint URL.
  3. שומרים את כתובת ה-URL הזו לשלבים הבאים.
  4. לוחצים על סיום.

יצירת מפתח API של Google Cloud

כדי לבצע אימות ב-Google SecOps, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud .

יצירת מפתח ה-API

  1. נכנסים לדף Credentials במסוףGoogle Cloud .
  2. בוחרים את הפרויקט (הפרויקט שמשויך למכונה של Google SecOps).
  3. לוחצים על Create credentials > מפתח API.
  4. מפתח ה-API נוצר ומוצג בתיבת דו-שיח.
  5. לוחצים על Edit API key כדי להגביל את מפתח ה-API.

הגבלת מפתח ה-API

  1. בדף ההגדרות של מפתח ה-API:
    • שם: מזינים שם תיאורי (לדוגמה, Google SecOps Webhook API Key).
  2. בקטע API restrictions:
    1. בוחרים באפשרות Restrict key.
    2. בתפריט הנפתח Select APIs, מחפשים ובוחרים את Google SecOps API (או Chronicle API).
  3. לוחצים על Save.
  4. מעתיקים את הערך של מפתח ה-API מהשדה API key שבחלק העליון של הדף.
  5. שומרים את מפתח ה-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

  1. נכנסים ל-Rubrik Security Cloud בכתובת https://<account>.my.rubrik.com.
  2. לוחצים על סמל גלגל השיניים בפינה השמאלית העליונה ובוחרים באפשרות הגדרות.
  3. לוחצים על Notifications (התראות) ובוחרים באפשרות Webhooks (תגובות לפעולה מאתר אחר).
  4. לוחצים על Add Webhook (הוספת תגובה לפעולה מאתר אחר).
  5. מופיע אשף הוספת ה-webhook.
  6. בשדה Provider, בוחרים באפשרות Generic.

  7. בקטע שם ה-Webhook, מזינים שם תיאורי (לדוגמה, Google SecOps Integration).

  8. בשדה Endpoint (נקודת קצה), מדביקים את ה-webhook URL המלא מלמעלה, כולל הפרמטרים של השאילתה key ו-secret. האימות מתבצע באמצעות כתובת ה-URL, כך שהמתג Authentication יכול להישאר במצב כבוי.

  9. לוחצים על הבא.

  10. לוחצים על Test Webhook כדי לוודא שהגדרת ה-webhook שצוינה פועלת, ואז לוחצים על Next.

  11. נפתח החלון בחירת אירוע וחומרה.

  12. בוחרים את האירועים ש-RSC שולח לנקודת הקצה (endpoint) של ה-webhook שהוגדרה:

    1. בקטע אירועים, בוחרים את סוגי האירועים שרוצים להעביר:

      • גיבוי
      • שחזור
      • Anomaly
      • איתור איומים
      • מעקב אחרי איומים
      • Configuration
      • אבחון
      • סנכרון
      • תחזוקה
      • מערכת
    2. בקטע ביקורת, בוחרים את סוגי הביקורת שרוצים להעביר. סוגי ביקורת האימות מזינים את מיפויי ההתחברות של המנתח.

    3. בקטע חומרה, בוחרים את רמות החומרה שיפעילו התראות:

      • קריטי
      • אזהרה
      • מידע
  13. לוחצים על הבא.

  14. בודקים את פרטי ההגדרה בחלון Confirmation ולוחצים על Save.

איך לוודא שה-webhook פועל

בדיקת הסטטוס של ה-webhook של Rubrik Security Cloud

  1. נכנסים ל-Rubrik Security Cloud.
  2. עוברים אל הגדרות > התראות > תגובות לפעולה מאתר אחר (webhook).
  3. בודקים את העמודה סטטוס של ה-webhook (הסטטוס צריך להיות מופעל).
  4. בודקים אם מופיעות הודעות שגיאה בפרטי ה-webhook.

בדיקת הסטטוס של הפיד ב-Google SecOps

  1. ב-Google SecOps, עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
  2. בודקים את העמודה סטטוס של פיד ה-webhook (הסטטוס צריך להיות פעיל).
  3. בודקים את הספירה של אירועים שהתקבלו (היא אמורה לעלות).

אימות היומנים ב-Google SecOps

  1. עוברים אל חיפוש > חיפוש ב-UDM.
  2. משתמשים בשאילתה הבאה:

    metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocase
    
  3. משנים את טווח הזמן לשעה האחרונה.

  4. מוודאים שהאירועים מופיעים בתוצאות.

הפניה למטען הייעודי (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.