Rubrik Security Cloud-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Rubrik Security Cloud-Logs mit Webhooks in Google Security Operations aufnehmen. Rubrik Security Cloud (RSC) ist eine SaaS-basierte Datensicherheitsplattform, die Funktionen für Backup, Wiederherstellung, Anomalieerkennung und Daten-Governance in Cloud- und On-Premise-Umgebungen bietet. RSC generiert Sicherheitsereignisse, Audit-Logs und Logs zu Betriebsaktivitäten im JSON-Format des PagerDuty Common Event Format (PD-CEF), die zur zentralen Überwachung und Analyse an Google SecOps gesendet werden können.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf die Rubrik Security Cloud-Konsole mit Berechtigungen zum Verwalten von Webhooks
- Netzwerkverbindung von Rubrik Security Cloud zum Google SecOps-Webhook-Endpunkt
- Zugriff auf die Google Cloud Console zum Erstellen von API-Schlüsseln
Webhook-Feed in Google SecOps erstellen
Feed erstellen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Rubrik Security Cloud Events. - Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Rubrik Security Cloud als Log type (Protokolltyp) aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Trennzeichen für Aufteilung (optional): Lassen Sie das Feld leer, da jede Webhook-Anfrage ein einzelnes Ereignis enthält.
- Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Secret-Schlüssel generieren und speichern
Nachdem Sie den Feed erstellt haben, müssen Sie einen Secret-Schlüssel für die Authentifizierung generieren:
- Klicken Sie auf der Feed-Detailseite auf Geheimen Schlüssel generieren.
- Ein Dialogfeld mit dem geheimen Schlüssel wird angezeigt.
- Kopieren Sie den geheimen Schlüssel und speichern Sie ihn sicher.
Feed-Endpunkt-URL abrufen
- Rufen Sie den Tab Details des Feeds auf.
- Kopieren Sie im Bereich Endpunktinformationen die Feed-Endpunkt-URL.
- Speichern Sie diese URL für die nächsten Schritte.
- Klicken Sie auf Fertig.
Google Cloud API-Schlüssel erstellen
Für Google SecOps ist ein API-Schlüssel für die Authentifizierung erforderlich. Erstellen Sie einen eingeschränkten API-Schlüssel in der Google Cloud Console.
API-Schlüssel erstellen
- Rufen Sie die Seite Anmeldedaten in derGoogle Cloud Console auf.
- Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Google SecOps-Instanz verknüpft ist).
- Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
- Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
- Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
API-Schlüssel einschränken
- Auf der Seite mit den API-Schlüssel-Einstellungen:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps Webhook API Key.
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Gehen Sie unter API-Einschränkungen so vor:
- Wählen Sie Schlüssel einschränken aus.
- Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die API aus.
- Klicken Sie auf Speichern.
- Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
Speichern Sie den API-Schlüssel sicher.
Rubrik Security Cloud-Webhook konfigurieren
Webhook-URL erstellen
Kombinieren Sie die Google SecOps-Endpunkt-URL, den API-Schlüssel und den Feed-Secret-Schlüssel. Beide Anmeldedaten werden als Abfrageparameter übergeben:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET>Beispiel:
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=AIzaSyD...&secret=a1b2c3d4...
Webhook in Rubrik Security Cloud erstellen
- Melden Sie sich unter
https://<account>.my.rubrik.comin der Rubrik Security Cloud an. - Klicken Sie rechts oben auf das Zahnradsymbol und wählen Sie Einstellungen aus.
- Klicken Sie auf Benachrichtigungen und wählen Sie Webhooks aus.
- Klicken Sie auf Webhook hinzufügen.
- Der Assistent zum Hinzufügen von Webhooks wird angezeigt.
Wählen Sie unter Anbieter die Option Allgemein aus.
Geben Sie unter Webhook-Name einen aussagekräftigen Namen ein, z. B.
Google SecOps Integration.Fügen Sie unter Endpunkt die vollständige Webhook-URL von oben ein, einschließlich der Suchparameter
keyundsecret. Die Authentifizierung erfolgt über die URL, daher kann die Ein/Aus-Schaltfläche Authentifizierung deaktiviert bleiben.Klicken Sie auf Weiter.
Klicken Sie auf Webhook testen, um zu prüfen, ob die angegebene Webhook-Konfiguration funktioniert, und klicken Sie auf Weiter.
Das Fenster Ereignis und Schweregrad auswählen wird angezeigt.
Wählen Sie die Ereignisse aus, die von RSC an den konfigurierten Webhook-Endpunkt gesendet werden:
Wählen Sie unter Ereignisse die weiterzuleitenden Ereignistypen aus:
- Sicherung
- Notfallwiederherstellung
- Anomalie
- Suche nach Bedrohungen
- Threat Monitoring
- Configuration
- Diagnose
- Synchronisieren
- Wartung
- System
Wählen Sie unter Audit die weiterzuleitenden Audit-Typen aus. Authentifizierungs-Audit-Typen werden in die Anmeldezuordnungen des Parsers eingespeist.
Wählen Sie unter Schweregrad die Schweregrade aus, bei denen Benachrichtigungen ausgelöst werden sollen:
- Kritisch
- Warnung
- Informationsbezogen
Klicken Sie auf Weiter.
Prüfen Sie die Konfigurationsdetails im Fenster Bestätigung und klicken Sie auf Speichern.
Funktion des Webhooks prüfen
Webhook-Status von Rubrik Security Cloud prüfen
- Melden Sie sich in der Rubrik Security Cloud an.
- Rufen Sie die Einstellungen> „Benachrichtigungen“ > „Webhooks“ auf.
- Prüfen Sie in der Spalte Status, ob für Ihren Webhook Aktiviert angezeigt wird.
- Achten Sie in den Webhook-Details auf Fehlermeldungen.
Google SecOps-Feedstatus prüfen
- Rufen Sie in Google SecOps die SIEM-Einstellungen > Feeds auf.
- Prüfen Sie die Spalte Status für Ihren Webhook-Feed. Sie sollte Aktiv lauten.
Prüfen Sie die Anzahl der Empfangenen Ereignisse. Sie sollte sich erhöhen.
Logs in Google SecOps prüfen
- Gehen Sie zu Suche > UDM-Suche.
Verwenden Sie die folgende Abfrage:
metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocaseStellen Sie den Zeitraum auf die letzte Stunde ein.
Prüfen Sie, ob Ereignisse in den Ergebnissen angezeigt werden.
Referenz zur Webhook-Nutzlast
Rubrik Security Cloud sendet Ereignisse standardmäßig im PagerDuty Common Event Format (PD-CEF). Hier sehen Sie ein Beispiel für eine Ereignisnutzlast:
{ "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-Limits und Best Practices
Anfragelimits
| Limit | Wert |
|---|---|
| Maximale Länge einer einzelnen Logzeile | 1 MB |
| Maximale Anzahl von Abfragen pro Sekunde | 15.000 |
| Zeitlimit für Anfragen | 90 Sekunden |
| Wiederholungsverhalten | Vom Absender verwaltet. Google SecOps gibt HTTP 429 zurück, wenn das Burst-Limit überschritten wird. Das sendende System muss die Anfragen puffern und noch einmal versuchen. |
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
audit_info_label |
additional.fields |
Zusammengeführt |
effectiveThroughput_label |
additional.fields |
Zusammengeführt |
group_label |
additional.fields |
Zusammengeführt |
isPolarisAudit_label |
additional.fields |
Zusammengeführt |
label_name_label |
additional.fields |
Zusammengeführt |
node_label |
additional.fields |
Zusammengeführt |
orgID_label |
additional.fields |
Zusammengeführt |
snappable_name_label |
additional.fields |
Zusammengeführt |
snappable_type_label |
additional.fields |
Zusammengeführt |
snapshot_date_label |
additional.fields |
Zusammengeführt |
type_label |
additional.fields |
Zusammengeführt |
userNote_label |
additional.fields |
Zusammengeführt |
has_target |
extensions.auth.type |
Zugeordnet: true → AUTHTYPE_UNSPECIFIED |
hunt_date |
metadata.event_timestamp |
Als ISO8601 geparst |
timestamp |
metadata.event_timestamp |
Als ISO8601 geparst |
has_principal |
metadata.event_type |
Zugeordnet: true → SCAN_HOST, true → STATUS_UPDATE |
has_target |
metadata.event_type |
Zugeordnet: true → USER_LOGIN |
custom_details.eventName |
metadata.product_event_type |
Direkt zugeordnet |
custom_details.id |
metadata.product_log_id |
Direkt zugeordnet |
source |
metadata.product_name |
Direkt zugeordnet |
custom_details.url |
metadata.url_back_to_product |
Direkt zugeordnet |
custom_details.dataTransferredInBytes |
network.sent_bytes |
Direkt zugeordnet |
custom_details.customerID |
principal.administrative_domain |
Direkt zugeordnet |
domain |
principal.domain.name |
Direkt zugeordnet |
custom_details.ipAddress |
principal.ip |
Zusammengeführt |
ip_address |
principal.ip |
Zusammengeführt |
is_ip_assigned |
principal.ip |
Zugeordnet: false → ip_address |
custom_details.clusterName |
principal.resource.name |
Direkt zugeordnet |
custom_details.clusterId |
principal.resource.product_object_id |
Direkt zugeordnet |
user_email |
principal.user.email_addresses |
Zusammengeführt |
custom_details.auditUserName |
principal.user.user_display_name |
Direkt zugeordnet |
user_name |
principal.user.user_display_name |
Direkt zugeordnet |
action_name |
security_result.action |
Zusammengeführt |
custom_details.status |
security_result.action_details |
Direkt zugeordnet |
category_temp |
security_result.category |
Zusammengeführt |
class |
security_result.category_details |
Zusammengeführt |
confidence |
security_result.confidence_details |
Direkt zugeordnet |
custom_details.errorMessage |
security_result.description |
Direkt zugeordnet |
access_type_label |
security_result.detection_fields |
Zusammengeführt |
action_date_label |
security_result.detection_fields |
Zusammengeführt |
detection_time_label |
security_result.detection_fields |
Zusammengeführt |
directories_snoozed_label |
security_result.detection_fields |
Zusammengeführt |
directories_unsnoozed_label |
security_result.detection_fields |
Zusammengeführt |
document_count_label |
security_result.detection_fields |
Zusammengeführt |
encryption_level_label |
security_result.detection_fields |
Zusammengeführt |
errorCode_label |
security_result.detection_fields |
Zusammengeführt |
errorId_label |
security_result.detection_fields |
Zusammengeführt |
errorReason_label |
security_result.detection_fields |
Zusammengeführt |
errorRemedy_label |
security_result.detection_fields |
Zusammengeführt |
event_info_label |
security_result.detection_fields |
Zusammengeführt |
failed_document_count_label |
security_result.detection_fields |
Zusammengeführt |
file_matches_label |
security_result.detection_fields |
Zusammengeführt |
files_created_count_label |
security_result.detection_fields |
Zusammengeführt |
files_modified_count_label |
security_result.detection_fields |
Zusammengeführt |
files_removed_count_label |
security_result.detection_fields |
Zusammengeführt |
files_suspicious_count_label |
security_result.detection_fields |
Zusammengeführt |
hash_tf_version_label |
security_result.detection_fields |
Zusammengeführt |
identity_name_label |
security_result.detection_fields |
Zusammengeführt |
num_files_with_matches_label |
security_result.detection_fields |
Zusammengeführt |
num_hash_matches_label |
security_result.detection_fields |
Zusammengeführt |
num_of_violating_identities_label |
security_result.detection_fields |
Zusammengeführt |
num_yara_rule_matches_label |
security_result.detection_fields |
Zusammengeführt |
obj_failed_label |
security_result.detection_fields |
Zusammengeführt |
obj_partially_succeeded_label |
security_result.detection_fields |
Zusammengeführt |
obj_succeeded_label |
security_result.detection_fields |
Zusammengeführt |
object_matches_label |
security_result.detection_fields |
Zusammengeführt |
policy_name_label |
security_result.detection_fields |
Zusammengeführt |
reason_label |
security_result.detection_fields |
Zusammengeführt |
remediation_type_label |
security_result.detection_fields |
Zusammengeführt |
remedy_label |
security_result.detection_fields |
Zusammengeführt |
risk_name_label |
security_result.detection_fields |
Zusammengeführt |
seriesID_label |
security_result.detection_fields |
Zusammengeführt |
seriesId_label |
security_result.detection_fields |
Zusammengeführt |
skipped_document_count_label |
security_result.detection_fields |
Zusammengeführt |
strain_name_label |
security_result.detection_fields |
Zusammengeführt |
successful_document_count_label |
security_result.detection_fields |
Zusammengeführt |
total_accessible_files_at_risk_count_label |
security_result.detection_fields |
Zusammengeführt |
vm_count_label |
security_result.detection_fields |
Zusammengeführt |
yara_tf_version_label |
security_result.detection_fields |
Zusammengeführt |
hunt_name |
security_result.rule_name |
Direkt zugeordnet |
hunt_type |
security_result.rule_type |
Direkt zugeordnet |
is_severity_assigned |
security_result.severity |
Zugeordnet: false → INFORMATIONAL, false → MEDIUM |
severity |
security_result.severity |
Zugeordnet: INFO → INFORMATIONAL, WARNING → MEDIUM |
severity_name |
security_result.severity |
Zugeordnet: INFO → INFORMATIONAL, WARNING → MEDIUM |
severity |
security_result.severity_details |
Direkt zugeordnet |
severity_name |
security_result.severity_details |
Direkt zugeordnet |
summary |
security_result.summary |
Direkt zugeordnet |
threat_feed_type |
security_result.threat_feed_name |
Direkt zugeordnet |
custom_details.logicalSizeInBytes |
target.file.size |
Direkt zugeordnet |
client_id_label |
target.labels |
Zusammengeführt |
client_name_label |
target.labels |
Zusammengeführt |
custom_details.location |
target.location.name |
Direkt zugeordnet |
custom_details.objectName |
target.resource.name |
Direkt zugeordnet |
object_name |
target.resource.name |
Direkt zugeordnet |
resource_name |
target.resource.name |
Direkt zugeordnet |
custom_details.objectId |
target.resource.product_object_id |
Direkt zugeordnet |
component |
target.resource.resource_subtype |
Direkt zugeordnet |
custom_details.objectType |
target.resource.resource_subtype |
Direkt zugeordnet |
is_object_type_assigned |
target.resource.resource_type |
Zugeordnet: false → UNSPECIFIED |
class |
target.user.email_addresses |
Zugeordnet: Login → user_email |
user_email |
target.user.email_addresses |
Zusammengeführt |
each_group |
target.user.group_identifiers |
Zusammengeführt |
custom_details.auditUserName |
target.user.user_display_name |
Direkt zugeordnet |
user_name |
target.user.user_display_name |
Direkt zugeordnet |
custom_details.auditUserId |
target.user.userid |
Direkt zugeordnet |
| – | extensions.auth.type |
Konstante: AUTHTYPE_UNSPECIFIED |
| – | metadata.event_type |
Konstante: USER_LOGIN |
| – | metadata.product_name |
Konstante: RUBRIK SECURITY CLOUD |
| – | metadata.vendor_name |
Konstante: RUBRIK |
| – | principal.resource.resource_type |
Konstante: CLUSTER |
| – | security_result.severity |
Konstante: INFORMATIONAL |
| – | target.resource.resource_type |
Konstante: UNSPECIFIED |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten