Raccogli i log di accesso al server AWS S3
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.
- Accedi alla console AWS Management.
- Accedi alla console Amazon S3.
- Vai ad Amazon S3 > Buckets.
- Seleziona un bucket esistente o creane uno nuovo.
- Fai clic su Proprietà.
- Nella sezione Registrazione dell'accesso al server, fai clic su Modifica.
- Seleziona Attiva.
- 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.
- Fai clic su Salva modifiche.
- 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:
- Per informazioni su qualsiasi origine di logging, consulta Endpoint e quote di AWS Identity and Access Management.
- Per informazioni sulle origini di logging S3, consulta Endpoint e quote di Amazon Simple Storage Service.
- Per informazioni sulle origini di logging SQS, consulta Endpoint e quote di Amazon Simple Queue Service.
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:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nell'elenco Tipo di origine, seleziona Amazon S3 o Amazon SQS.
- Nell'elenco Tipo di log, seleziona Accesso al server AWS S3.
- Fai clic su Avanti.
- 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.
- 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
- Se utilizzi Amazon S3, specifica i valori per i seguenti campi:
- 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.