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

יצירת הפיד

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

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

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

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

קבלת כתובת ה-URL של נקודת הקצה של הפיד

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

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

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

יצירת מפתח API

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

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

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

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

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

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

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

  11. מופיע החלון Select event and severity (בחירת אירוע ורמת חומרה).

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

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

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

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

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

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

אימות הפעולה של ה-webhook

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

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

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

  1. עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים) ב-Google SecOps.
  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 שולח אירועים בפורמט 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.