Raccogli i log di Rubrik Security Cloud

Supportato in:

Questo documento spiega come importare i log di Rubrik Security Cloud in Google Security Operations utilizzando i webhook. Rubrik Security Cloud (RSC) è una piattaforma di sicurezza dei dati basata su SaaS che fornisce funzionalità di backup, ripristino, rilevamento delle anomalie e governance dei dati in ambienti cloud e on-premise. RSC genera eventi di sicurezza, log di controllo e log delle attività operative in formato JSON PagerDuty Common Event Format (DP-CEF) che possono essere inviati a Google SecOps per il monitoraggio e l'analisi centralizzati.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Accesso con privilegi alla console Rubrik Security Cloud con autorizzazioni per gestire i webhook
  • Connettività di rete da Rubrik Security Cloud all'endpoint webhook di Google SecOps
  • Accesso alla console Google Cloud per la creazione di chiavi API

Crea un feed webhook in Google SecOps

Creare il feed

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Rubrik Security Cloud Events).
  5. Seleziona Webhook come Tipo di origine.
  6. Seleziona Rubrik Security Cloud come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • (Facoltativo) Delimitatore di divisione: lascia vuoto, poiché ogni richiesta webhook contiene un singolo evento.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  9. Fai clic su Avanti.
  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Genera e salva la chiave segreta

Dopo aver creato il feed, devi generare una chiave segreta per l'autenticazione:

  1. Nella pagina dei dettagli del feed, fai clic su Genera chiave segreta.
  2. Una finestra di dialogo mostra la chiave segreta.
  3. Copia e salva la chiave segreta in modo sicuro.

Recuperare l'URL dell'endpoint del feed

  1. Vai alla scheda Dettagli del feed.
  2. Nella sezione Endpoint Information (Informazioni sull'endpoint), copia l'URL dell'endpoint del feed.
  3. Salva questo URL per i passaggi successivi.
  4. Fai clic su Fine.

Crea una chiave API Google Cloud

Google SecOps richiede una chiave API per l'autenticazione. Crea una chiave API con limitazioni nella console Google Cloud .

Creare la chiave API

  1. Vai alla pagina Credenziali della consoleGoogle Cloud .
  2. Seleziona il tuo progetto (quello associato alla tua istanza Google SecOps).
  3. Fai clic su Crea credenziali > Chiave API.
  4. Viene creata una chiave API e visualizzata in una finestra di dialogo.
  5. Fai clic su Modifica chiave API per limitare la chiave.

Limitare la chiave API

  1. Nella pagina delle impostazioni Chiave API:
    • Nome: inserisci un nome descrittivo (ad esempio, Google SecOps Webhook API Key).
  2. In Limitazioni API:
    1. Seleziona Limita chiave.
    2. Nel menu a discesa Seleziona API, cerca e seleziona API Google SecOps (o API Chronicle).
  3. Fai clic su Salva.
  4. Copia il valore della chiave API dal campo Chiave API nella parte superiore della pagina.
  5. Salva la chiave API in modo sicuro.

Configurare un webhook di Rubrik Security Cloud

Crea l'URL webhook

  • Combina l'URL dell'endpoint Google SecOps, la chiave API e la chiave segreta del feed. Entrambe le credenziali vengono passate come parametri di ricerca:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET>
    
    • Esempio:

      https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=AIzaSyD...&secret=a1b2c3d4...
      

Crea un webhook in Rubrik Security Cloud

  1. Accedi a Rubrik Security Cloud all'indirizzo https://<account>.my.rubrik.com.
  2. Fai clic sull'icona dell'ingranaggio nell'angolo in alto a destra e seleziona Impostazioni.
  3. Fai clic su Notifiche e seleziona Webhook.
  4. Fai clic su Aggiungi webhook.
  5. Viene visualizzata la procedura guidata Aggiungi webhook.
  6. In Provider, seleziona Generico.

  7. In Nome webhook, inserisci un nome descrittivo (ad esempio, Google SecOps Integration).

  8. In Endpoint, incolla l'URL webhook completo riportato sopra, inclusi i parametri di ricerca key e secret. L'autenticazione viene eseguita tramite l'URL, quindi il pulsante di attivazione/disattivazione Autenticazione può rimanere disattivato.

  9. Fai clic su Avanti.

  10. Fai clic su Testa webhook per verificare che la configurazione del webhook specificata funzioni e fai clic su Avanti.

  11. Viene visualizzata la finestra Seleziona evento e gravità.

  12. Seleziona gli eventi che RSC invia all'endpoint webhook configurato:

    1. Nella sezione Eventi, seleziona i tipi di eventi da inoltrare:

      • Backup
      • Recupero
      • Anomalia
      • Ricerca di minacce
      • Monitoraggio delle minacce
      • Configurazione
      • Diagnostica
      • Sincronizzazione
      • Manutenzione
      • Sistema
    2. In Audit, seleziona i tipi di audit da inoltrare. I tipi di controllo dell'autenticazione alimentano le mappature di accesso del parser.

    3. In Gravità, seleziona i livelli di gravità per l'attivazione degli avvisi:

      • Critico
      • Avviso
      • Informativa
  13. Fai clic su Avanti.

  14. Rivedi i dettagli della configurazione nella finestra Conferma e fai clic su Salva.

Verifica che il webhook funzioni

Controlla lo stato del webhook di Rubrik Security Cloud

  1. Accedi a Rubrik Security Cloud.
  2. Vai a Impostazioni > Notifiche > Webhook.
  3. Controlla la colonna Stato del webhook (dovrebbe essere visualizzato Attivato).
  4. Controlla la presenza di eventuali messaggi di errore nei dettagli del webhook.

Controllare lo stato del feed Google SecOps

  1. Vai a Impostazioni SIEM > Feed in Google SecOps.
  2. Controlla la colonna Stato del feed webhook (deve essere Attivo).
  3. Controlla il conteggio Eventi ricevuti (deve aumentare).

Verifica i log in Google SecOps

  1. Vai a Ricerca > Ricerca UDM.
  2. Utilizza la query seguente:

    metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocase
    
  3. Regola l'intervallo di tempo sull'ultima ora.

  4. Verifica che gli eventi vengano visualizzati nei risultati.

Riferimento al payload webhook

  • Per impostazione predefinita, Rubrik Security Cloud invia gli eventi nel formato PagerDuty Common Event Format (DP-CEF). Di seguito è riportato un esempio di payload evento:

    {
      "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": ""
      }
    }
    

Limiti e best practice per i webhook

Limiti per le richieste

Limite Valore
Max single log line 1 MB
QPS max (query al secondo) 15.000
Timeout richieste 90 secondi
Comportamento di ripetizione Gestita dal mittente. Google SecOps restituisce HTTP 429 quando viene superato il limite di burst; il sistema di invio deve memorizzare nel buffer e riprovare.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
audit_info_label additional.fields Unita
effectiveThroughput_label additional.fields Unita
group_label additional.fields Unita
isPolarisAudit_label additional.fields Unita
label_name_label additional.fields Unita
node_label additional.fields Unita
orgID_label additional.fields Unita
snappable_name_label additional.fields Unita
snappable_type_label additional.fields Unita
snapshot_date_label additional.fields Unita
type_label additional.fields Unita
userNote_label additional.fields Unita
has_target extensions.auth.type Mappato: true → AUTHTYPE_UNSPECIFIED
hunt_date metadata.event_timestamp Analizzato come ISO8601
timestamp metadata.event_timestamp Analizzato come ISO8601
has_principal metadata.event_type Mappato: true → SCAN_HOST, true → STATUS_UPDATE
has_target metadata.event_type Mappato: true → USER_LOGIN
custom_details.eventName metadata.product_event_type Mappato direttamente
custom_details.id metadata.product_log_id Mappato direttamente
source metadata.product_name Mappato direttamente
custom_details.url metadata.url_back_to_product Mappato direttamente
custom_details.dataTransferredInBytes network.sent_bytes Mappato direttamente
custom_details.customerID principal.administrative_domain Mappato direttamente
domain principal.domain.name Mappato direttamente
custom_details.ipAddress principal.ip Unita
ip_address principal.ip Unita
is_ip_assigned principal.ip Mappato: false → ip_address
custom_details.clusterName principal.resource.name Mappato direttamente
custom_details.clusterId principal.resource.product_object_id Mappato direttamente
user_email principal.user.email_addresses Unita
custom_details.auditUserName principal.user.user_display_name Mappato direttamente
user_name principal.user.user_display_name Mappato direttamente
action_name security_result.action Unita
custom_details.status security_result.action_details Mappato direttamente
category_temp security_result.category Unita
class security_result.category_details Unita
confidence security_result.confidence_details Mappato direttamente
custom_details.errorMessage security_result.description Mappato direttamente
access_type_label security_result.detection_fields Unita
action_date_label security_result.detection_fields Unita
detection_time_label security_result.detection_fields Unita
directories_snoozed_label security_result.detection_fields Unita
directories_unsnoozed_label security_result.detection_fields Unita
document_count_label security_result.detection_fields Unita
encryption_level_label security_result.detection_fields Unita
errorCode_label security_result.detection_fields Unita
errorId_label security_result.detection_fields Unita
errorReason_label security_result.detection_fields Unita
errorRemedy_label security_result.detection_fields Unita
event_info_label security_result.detection_fields Unita
failed_document_count_label security_result.detection_fields Unita
file_matches_label security_result.detection_fields Unita
files_created_count_label security_result.detection_fields Unita
files_modified_count_label security_result.detection_fields Unita
files_removed_count_label security_result.detection_fields Unita
files_suspicious_count_label security_result.detection_fields Unita
hash_tf_version_label security_result.detection_fields Unita
identity_name_label security_result.detection_fields Unita
num_files_with_matches_label security_result.detection_fields Unita
num_hash_matches_label security_result.detection_fields Unita
num_of_violating_identities_label security_result.detection_fields Unita
num_yara_rule_matches_label security_result.detection_fields Unita
obj_failed_label security_result.detection_fields Unita
obj_partially_succeeded_label security_result.detection_fields Unita
obj_succeeded_label security_result.detection_fields Unita
object_matches_label security_result.detection_fields Unita
policy_name_label security_result.detection_fields Unita
reason_label security_result.detection_fields Unita
remediation_type_label security_result.detection_fields Unita
remedy_label security_result.detection_fields Unita
risk_name_label security_result.detection_fields Unita
seriesID_label security_result.detection_fields Unita
seriesId_label security_result.detection_fields Unita
skipped_document_count_label security_result.detection_fields Unita
strain_name_label security_result.detection_fields Unita
successful_document_count_label security_result.detection_fields Unita
total_accessible_files_at_risk_count_label security_result.detection_fields Unita
vm_count_label security_result.detection_fields Unita
yara_tf_version_label security_result.detection_fields Unita
hunt_name security_result.rule_name Mappato direttamente
hunt_type security_result.rule_type Mappato direttamente
is_severity_assigned security_result.severity Mappato: false → INFORMATIONAL, false → MEDIUM
severity security_result.severity Mappato: INFO → INFORMATIONAL, WARNING → MEDIUM
severity_name security_result.severity Mappato: INFO → INFORMATIONAL, WARNING → MEDIUM
severity security_result.severity_details Mappato direttamente
severity_name security_result.severity_details Mappato direttamente
summary security_result.summary Mappato direttamente
threat_feed_type security_result.threat_feed_name Mappato direttamente
custom_details.logicalSizeInBytes target.file.size Mappato direttamente
client_id_label target.labels Unita
client_name_label target.labels Unita
custom_details.location target.location.name Mappato direttamente
custom_details.objectName target.resource.name Mappato direttamente
object_name target.resource.name Mappato direttamente
resource_name target.resource.name Mappato direttamente
custom_details.objectId target.resource.product_object_id Mappato direttamente
component target.resource.resource_subtype Mappato direttamente
custom_details.objectType target.resource.resource_subtype Mappato direttamente
is_object_type_assigned target.resource.resource_type Mappato: false → UNSPECIFIED
class target.user.email_addresses Mappato: Login → user_email
user_email target.user.email_addresses Unita
each_group target.user.group_identifiers Unita
custom_details.auditUserName target.user.user_display_name Mappato direttamente
user_name target.user.user_display_name Mappato direttamente
custom_details.auditUserId target.user.userid Mappato direttamente
N/D extensions.auth.type Costante: AUTHTYPE_UNSPECIFIED
N/D metadata.event_type Costante: USER_LOGIN
N/D metadata.product_name Costante: RUBRIK SECURITY CLOUD
N/D metadata.vendor_name Costante: RUBRIK
N/D principal.resource.resource_type Costante: CLUSTER
N/D security_result.severity Costante: INFORMATIONAL
N/D target.resource.resource_type Costante: UNSPECIFIED

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.