Raccogliere 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 Google Security Operations. Il parser estrae i campi utilizzando i pattern grok, gestisce il potenziale input JSON e mappa i campi estratti all'UDM. Esegue trasformazioni dei dati, conversioni dei tipi e logica condizionale in base alla presenza e ai valori di campi specifici per garantire una rappresentazione accurata di UDM.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Accesso privilegiato ad AWS

Come configurare il logging dell'accesso 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 > Buckets.
  4. Seleziona un bucket esistente o creane uno nuovo.
  5. Fai clic su Proprietà.
  6. Nella sezione Registrazione dell'accesso 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 destinazione.
  1. Fai clic su Salva modifiche.
  2. Per creare la coda SQS per il bucket S3, configura un'istanza Amazon SQS con l'archiviazione S3. Per saperne di più, consulta Configurazione di 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:

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed > Aggiungi nuovo feed
  • Hub dei contenuti > Pacchetti di contenuti > Inizia

Come configurare il feed di accesso al servizio AWS S3

  1. Fai clic sul pacchetto Amazon Cloud Platform.
  2. Individua il tipo di log Accesso al servizio AWS S3.
  3. 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 la sezione Configurare l'autenticazione dello strumento con AWS.
  4. Specifica i valori nei seguenti campi.

    • Tipo di origine: Amazon SQS V2
    • Nome coda: il nome della coda SQS da cui leggere
    • URI S3: l'URI del bucket.
      • s3://your-log-bucket-name/
        • Sostituisci your-log-bucket-name con il nome effettivo del bucket S3.
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.

    • Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.

    • ID chiave di accesso alla coda SQS: una chiave di accesso all'account che è una stringa alfanumerica di 20 caratteri.

    • Chiave di accesso segreta della coda SQS: una chiave di accesso all'account che è una stringa alfanumerica di 40 caratteri.

    Opzioni avanzate

    • Nome feed: un valore precompilato che identifica il feed.
    • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
    • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
  5. Fai clic su Crea feed.

Per ulteriori informazioni sulla configurazione di più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
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 il campo bucket è presente.
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 la conversione in un numero intero senza segno e la sostituzione di "-" con "0".
ciphersuite network.application_protocol: "HTTPS" Il parser imposta application_protocol su "HTTPS" se il campo ciphersuite è presente.
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 log grezzo hostheader, con la potenziale rimozione del numero di porta.
hostheader target.port Estratto dal campo log grezzo hostheader se è presente un numero di porta.
hostid target.resource.attribute.labels.key: "S3 Extended Request ID"
target.resource.attribute.labels.value: Value of 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 la conversione 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 la conversione in un numero intero senza segno e la sostituzione di "-" 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: "Access Point ARN"
target.resource.attribute.labels.value: Value of 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 la conversione in un numero intero, la sostituzione di "-" con "0" e il riempimento con zeri per rappresentare i nanosecondi.
signatureversion target.resource.attribute.labels.key: "Versione della firma"
target.resource.attribute.labels.value: Valore di signatureversion
Mappato direttamente dal campo del log non elaborato signatureversion.
time metadata.event_timestamp Analizzato dal campo del log non elaborato time e convertito 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 il valore predefinito di event_type 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: "AWS S3 Server Access" Il parser imposta product_name su "AWS S3 Server Access".
(Parser Logic) metadata.product_version: "HTTP/http_version" Il parser 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 ciphersuite non è presente.
(Parser Logic) timestamp Il parser imposta l'evento timestamp sull'ora corrente quando l'evento viene elaborato.

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