Raccogli i log di accesso al server AWS S3

Supportato in:

Questo documento spiega come raccogliere i log di accesso al server AWS S3 configurando un feed di Google Security Operations. Il parser estrae i campi utilizzando i pattern grok, gestisce i potenziali input JSON e mappa i campi estratti all'UDM. Esegue trasformazioni dei dati, conversioni di tipo e logica condizionale in base alla presenza e ai valori di campi specifici per garantire una rappresentazione accurata dell'UDM.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso con privilegi ad AWS.

Configurare il logging degli accessi al server AWS S3

Google SecOps supporta la raccolta dei log utilizzando Amazon S3 tramite Amazon SQS.

  1. Accedi alla console AWS Management.
  2. Accedi alla console Amazon S3.
  3. Vai ad Amazon S3 > Bucket.
  4. Seleziona un bucket esistente o creane uno nuovo.
  5. Fai clic su Proprietà.
  6. Nella sezione Log degli accessi al server, fai clic su Modifica.
  7. Seleziona Attiva.
  8. Nel campo Bucket di destinazione, inserisci un nome per il nuovo bucket a cui inviare gli oggetti record di log o seleziona un bucket esistente come target.
  1. Fai clic su Salva modifiche.
  2. Per creare la coda SQS per il bucket S3, configura un'istanza Amazon SQS con lo spazio di archiviazione S3. Per saperne di più, consulta Configurare un bucket per le notifiche (argomento SNS o coda SQS).

In base al servizio e alla regione, identifica gli endpoint per la connettività facendo riferimento alla seguente documentazione AWS: * Per informazioni su qualsiasi origine di log, consulta Endpoint e quote di AWS Identity and Access Management. * Per informazioni sulle origini di log S3, consulta Endpoint e quote di Amazon Simple Storage Service. * Per informazioni sulle origini di log di SQS, consulta Endpoint e quote di Amazon Simple Queue Service.

Configura un feed in Google SecOps per importare i log di accesso al server AWS S3

  1. Nel menu Google SecOps, vai a Impostazioni > Feed > Aggiungi nuovo.
  2. Nell'elenco Tipo di origine, seleziona Amazon S3 o Amazon SQS.
  3. Nell'elenco Tipo di log, seleziona Accesso al server AWS S3.
  4. Fai clic su Avanti.
  5. Google SecOps supporta la raccolta dei log utilizzando un ID chiave di accesso e un metodo segreto. Per creare l'ID chiave di accesso e il segreto, consulta Configurare l'autenticazione dello strumento con AWS.
  6. In base alla configurazione dell'accesso al server AWS S3 che hai creato, specifica i valori per i parametri di input:
    • Se utilizzi Amazon S3, specifica i valori per i seguenti campi:
      • Regione
      • URI S3
      • L'URI è un
      • Opzione di eliminazione dell'origine
      • ID chiave di accesso
      • Chiave di accesso segreta
    • Se utilizzi Amazon SQS, specifica i valori per i seguenti campi:
      • Regione
      • Nome coda
      • Numero account
      • ID chiave di accesso alla coda
      • Mettere in coda la chiave di accesso segreta
      • Opzione di eliminazione dell'origine
  7. Fai clic su Avanti, quindi su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: valore di aclRequired
Mappato direttamente dal campo del log non elaborato aclRequired.
authenticationtype extensions.auth.auth_details Mappato direttamente dal campo del log non elaborato authenticationtype.
bucket target.resource.name Mappato direttamente dal campo del log non elaborato bucket.
bucket target.resource.resource_type: "STORAGE_BUCKET" Il parser imposta resource_type su "STORAGE_BUCKET" se è presente il campo bucket.
bucketowner target.resource.product_object_id Mappato direttamente dal campo del log non elaborato bucketowner.
bytes_sent network.sent_bytes Mappato direttamente dal campo del log non elaborato bytes_sent dopo averlo convertito in un numero intero non firmato e sostituito "-" con "0".
ciphersuite network.application_protocol: "HTTPS" Il parser imposta application_protocol su "HTTPS" se è presente il campo ciphersuite.
ciphersuite network.tls.cipher Mappato direttamente dal campo del log non elaborato ciphersuite.
errorcode security_result.action_details Mappato direttamente dal campo del log non elaborato errorcode.
errorcode security_result.action: "BLOCK" Il parser imposta action su "BLOCK" se il campo errorcode contiene "AccessDenied" (senza distinzione tra maiuscole e minuscole).
hostheader target.hostname Estratto dal campo del log non elaborato hostheader, con la potenziale rimozione del numero di porta.
hostheader target.port Estratto dal campo del log non elaborato hostheader se è presente un numero di porta.
hostid target.resource.attribute.labels.key: "ID richiesta estesa S3"
target.resource.attribute.labels.value: valore di hostid
Mappato direttamente dal campo del log non elaborato hostid.
http_capture network.http.method Il metodo HTTP viene estratto dal campo http_capture.
http_capture network.http.version La versione HTTP viene estratta dal campo http_capture.
http_capture target.url L'URL di destinazione viene creato utilizzando hostheader e http_request_uri (estratti da http_capture), con il prefisso "http://" o "https://" in base alla presenza di ciphersuite.
httpstatus network.http.response_code Mappato direttamente dal campo del log non elaborato httpstatus dopo averlo convertito in un numero intero.
object_version_id target.resource.product_object_id Mappato direttamente dal campo del log non elaborato object_version_id.
objectsize target.file.size Mappato direttamente dal campo del log non elaborato objectsize dopo averlo convertito in un numero intero non firmato e sostituito "-" con "0".
operation metadata.product_event_type Mappato direttamente dal campo del log non elaborato operation.
referrer network.http.referral_url Mappato direttamente dal campo del log non elaborato referrer dopo la rimozione delle virgolette.
remoteip metadata.event_type: "USER_RESOURCE_ACCESS" Il parser imposta event_type su "USER_RESOURCE_ACCESS" se il campo remoteip è vuoto.
remoteip principal.ip Mappato direttamente dal campo del log non elaborato remoteip.
requester target.resource.attribute.labels.key: "ARN punto di accesso"
target.resource.attribute.labels.value: valore di requester
Mappato direttamente dal campo del log non elaborato requester.
requester_user principal.user.userid Mappato direttamente dal campo del log non elaborato requester_user.
requestid network.session_id Mappato direttamente dal campo del log non elaborato requestid.
request_time_ms network.session_duration.nanos Mappato direttamente dal campo del log non elaborato request_time_ms dopo averlo convertito in un numero intero, sostituendo "-" con "0" e aggiungendo zeri per rappresentare i nanosecondi.
signatureversion target.resource.attribute.labels.key: "Versione firma"
target.resource.attribute.labels.value: valore di signatureversion
Mappato direttamente dal campo del log non elaborato signatureversion.
time metadata.event_timestamp Analizzata dal campo del log non elaborato time e convertita in un timestamp.
tlsVersion network.tls.version Mappato direttamente dal campo del log non elaborato tlsVersion.
useragent network.http.user_agent Mappato direttamente dal campo del log non elaborato useragent dopo la rimozione delle virgolette.
(Parser Logic) metadata.event_type: "NETWORK_HTTP" Il parser imposta event_type predefinito su "NETWORK_HTTP".
(Parser Logic) metadata.log_type: "AWS_S3_SERVER_ACCESS" Il parser imposta log_type su "AWS_S3_SERVER_ACCESS".
(Parser Logic) metadata.product_name: "Accesso al server AWS S3" Il parser imposta product_name su "Accesso al server AWS S3".
(Parser Logic) metadata.product_version: "HTTP/http_version" L'analizzatore imposta product_version utilizzando http_version estratto.
(Parser Logic) metadata.vendor_name: "AMAZON" Il parser imposta vendor_name su "AMAZON".
(Parser Logic) network.application_protocol: "HTTP" Il parser imposta application_protocol su "HTTP" se il campo application_protocol non è presente.ciphersuite
(Parser Logic) timestamp Il parser imposta l'evento timestamp sull'ora corrente quando l'evento viene elaborato.

Modifiche

2023-07-19

  • Correzione di bug:
  • Pattern Grok modificato per gestire un trattino (-) quando i dati non sono presenti.
  • "aclRequired" è stato mappato a "target.resource.attribute.labels".

2023-05-04

  • Miglioramento:
  • È stato aggiunto il supporto per i log in formato JSON.

2022-07-21

  • Analizzatore sintattico appena creato.

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