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 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 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 > 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
  • Hub dei contenuti > Pacchetti di contenuti

Configurare i feed da Impostazioni SIEM > Feed

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

Per configurare un singolo 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. Nell'elenco Tipo di origine, seleziona Amazon S3 o Amazon SQS.
  5. Nell'elenco Tipo di log, seleziona Accesso al server AWS S3.
  6. Fai clic su Avanti.
  7. 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.
  8. 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 di conto
      • ID chiave di accesso alla coda
      • Chiave di accesso segreta della coda
      • Opzione di eliminazione dell'origine
  9. Fai clic su Avanti, quindi su Invia.

Configurare i feed dall'hub dei contenuti

Puoi configurare il feed di importazione in Google SecOps utilizzando Amazon SQS (opzione preferita) o Amazon S3.

Specifica i valori per i seguenti campi:

  • Regione: la regione in cui è ospitato il bucket S3 o la coda SQS.
  • Nome coda: nome della coda SQS da cui leggere i dati di log.
  • Numero di account: il numero di account proprietario della coda SQS.
  • ID chiave di accesso alla coda: ID chiave di accesso all'account di 20 caratteri. Ad esempio, AKIAOSFOODNN7EXAMPLE.
  • Queue Secret Access Key (Chiave di accesso segreta della coda): chiave di accesso segreta di 40 caratteri. Ad esempio, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.
  • Opzione di eliminazione dell'origine: opzione per eliminare file e directory dopo il trasferimento dei dati.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

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 non elaborato 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: 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 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: "Signature Version"
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.