Raccogliere i log di AWS CloudWatch
Questo documento spiega come importare i log di AWS CloudWatch in Google Security Operations. AWS CloudWatch è un servizio di monitoraggio e osservabilità che raccoglie i dati operativi sotto forma di log, metriche ed eventi. Questa integrazione ti consente di inviare questi log a Google SecOps per l'analisi e il monitoraggio.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi ad AWS.
Crea un bucket Amazon S3
Ti consigliamo di utilizzare un bucket creato appositamente per i log di CloudWatch.
- Apri la console Amazon S3.
- Se necessario, puoi modificare la Regione.
- Nella barra di navigazione, seleziona la regione in cui si trovano i log di CloudWatch.
- Fai clic su Crea bucket.
- Nome bucket: inserisci un nome significativo per il bucket.
- Regione: seleziona la regione in cui si trovano i dati di CloudWatch Logs.
- Fai clic su Crea.
Crea un utente IAM con accesso completo ad Amazon S3 e CloudWatch Logs
- Apri la console IAM.
- Fai clic su Utenti > Aggiungi utente.
- Inserisci un nome utente (ad esempio CWExport).
- Seleziona Accesso programmatico e Accesso alla Console di gestione AWS.
- Seleziona Password generata automaticamente o Password personalizzata.
- Fai clic su Successivo: autorizzazioni.
- Scegli Collega direttamente i criteri esistenti.
- Cerca e seleziona i criteri AmazonS3FullAccess e CloudWatchLogsFullAccess per l'utente.
- Fai clic su Avanti: tag.
- Fai clic su Successivo: esamina.
- Fai clic su Crea utente.
Configura le autorizzazioni per il bucket Amazon S3
- Nella console Amazon S3, scegli il bucket creato in precedenza.
- Fai clic su Autorizzazioni > Norme del bucket.
Nell'Editor delle norme del bucket, aggiungi le seguenti norme.
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::cw-exported-logs", "Principal": { "Service": "logs.us-east-1.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-east-1.amazonaws.com" } } ] }
Modifica e aggiorna le seguenti variabili
json
:- Sostituisci
cw-exported-logs
con il nome del tuo bucket S3. - Cambia
random-string
con una stringa di caratteri generata in modo casuale. - Assicurati di specificare l'endpoint della regione corretto per Principal.
- Sostituisci
Fai clic su Salva per impostare il criterio appena aggiunto come criterio di accesso al bucket.
Configurare CloudWatch Export
- Accedi come utente IAM che hai creato in precedenza.
- Apri la console CloudWatch.
- Nel menu di navigazione, seleziona Gruppi di log.
- Seleziona il nome di un gruppo di log esistente o creane uno nuovo.
- Scegli Azioni > Esporta dati in Amazon S3.
- Nella schermata Esporta dati in Amazon S3, individua Definisci esportazione dati.
- Imposta l'intervallo di tempo per i dati da esportare utilizzando Da e A.
- Scegli bucket S3: seleziona l'account associato al bucket Amazon S3.
- Nome del bucket S3: seleziona un bucket Amazon S3.
- Prefisso del bucket S3: inserisci la stringa generata in modo casuale specificata nel criterio del bucket.
- Scegli Esporta per esportare i dati dei log in Amazon S3.
- Per visualizzare lo stato dei dati dei log esportati in Amazon S3, seleziona Azioni > Visualizza tutte le esportazioni in Amazon S3.
Configura un feed in Google SecOps per importare i log di AWS CloudWatch
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log AWS CloudWatch).
- Seleziona Amazon S3 come Tipo di origine.
- Seleziona AWS CloudWatch come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Regione: la regione in cui si trova il bucket Amazon S3.
- URI S3: l'URI del bucket.
s3://your-log-bucket-name/
- Sostituisci
your-log-bucket-name
con il nome effettivo del bucket.
- Sostituisci
- L'URI è una: seleziona Directory o Directory che include sottodirectory.
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
Fai clic su Avanti.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
account |
principal.user.userid |
Il valore account del log non elaborato viene mappato al campo principal.user.userid . |
account_id |
principal.user.userid |
Il valore account_id del log non elaborato viene mappato al campo principal.user.userid . |
AlertId |
metadata.product_log_id |
Il valore AlertId del log non elaborato viene mappato al campo metadata.product_log_id . |
arrivalTimestamp |
metadata.event_timestamp |
Il valore di arrivalTimestamp dal log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
attemptsMade |
additional.fields |
Il valore di attemptsMade dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "Attempts Made". |
awsAccountId |
principal.asset_id |
Al valore di awsAccountId dal log non elaborato viene anteposto "ID account AWS: " e mappato al campo principal.asset_id . |
billed_duration |
additional.fields |
Il valore di billed_duration dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "billed_duration". |
BytesIn |
network.received_bytes |
Il valore di BytesIn dal log non elaborato viene convertito in un numero intero non firmato e mappato al campo network.received_bytes . |
cipher |
network.tls.cipher |
Il valore cipher del log non elaborato viene mappato al campo network.tls.cipher . |
Ciphers |
network.tls.client.supported_ciphers |
Il valore di Ciphers dal log non elaborato è suddiviso da virgole e ogni valore viene aggiunto all'array network.tls.client.supported_ciphers . |
cloudwatchLog |
security_result.description |
Il valore cloudwatchLog del log non elaborato viene mappato al campo security_result.description . |
CloudAccountId |
metadata.product_deployment_id |
Il valore CloudAccountId del log non elaborato viene mappato al campo metadata.product_deployment_id . |
CloudType |
target.resource.attribute.cloud.environment |
Il valore di CloudType dal log non elaborato determina il valore di target.resource.attribute.cloud.environment . Se CloudType è "gcp", il valore è "GOOGLE_CLOUD_PLATFORM". Se CloudType è "aws", il valore è "AMAZON_WEB_SERVICES". Se CloudType è "azure", il valore è "MICROSOFT_AZURE". |
Context.Execution.Id |
target.resource.attribute.labels |
Il valore di Context.Execution.Id dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID contesto". |
Context.Execution.Name |
target.resource.attribute.labels |
Il valore di Context.Execution.Name dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Nome contesto". |
Context.Execution.RoleArn |
target.resource.product_object_id |
Il valore Context.Execution.RoleArn del log non elaborato viene mappato al campo target.resource.product_object_id . |
descr |
metadata.description |
Il valore di descr dal log non elaborato, dopo la rimozione degli spazi extra, viene mappato al campo metadata.description , a meno che non sia "-". Se descr è vuoto, viene utilizzato il valore di log . |
destination.name |
target.location.country_or_region |
Il valore destination.name del log non elaborato viene mappato al campo target.location.country_or_region . |
destination.properties.prefix |
target.resource.attribute.labels |
Il valore di destination.properties.prefix dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Prefisso proprietà destinazione". |
detail.additionalEventData.configRuleArn |
security_result.rule_id |
Il valore detail.additionalEventData.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.additionalEventData.configRuleName |
security_result.rule_name |
Il valore detail.additionalEventData.configRuleName del log non elaborato viene mappato al campo security_result.rule_name . |
detail.additionalEventData.managedRuleIdentifier |
additional.fields |
Il valore di detail.additionalEventData.managedRuleIdentifier dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "managedRuleIdentifier". |
detail.additionalEventData.notificationJobType |
additional.fields |
Il valore di detail.additionalEventData.notificationJobType dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "notificationJobType". |
detail.awsAccountId |
principal.asset_id |
Al valore di detail.awsAccountId dal log non elaborato viene anteposto "ID account AWS: " e mappato al campo principal.asset_id . |
detail.awsRegion |
principal.location.name |
Il valore detail.awsRegion del log non elaborato viene mappato al campo principal.location.name . |
detail.configRuleArn |
security_result.rule_id |
Il valore detail.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.configRuleName |
security_result.rule_name |
Il valore detail.configRuleName del log non elaborato viene mappato al campo security_result.rule_name . |
detail.configurationItem.awsAccountId |
principal.user.userid |
Il valore detail.configurationItem.awsAccountId del log non elaborato viene mappato al campo principal.user.userid . |
detail.configurationItem.awsRegion |
target.location.country_or_region |
Il valore detail.configurationItem.awsRegion del log non elaborato viene mappato al campo target.location.country_or_region . |
detail.configurationItem.configuration.complianceType |
security_result.summary |
Il valore detail.configurationItem.configuration.complianceType del log non elaborato viene mappato al campo security_result.summary . |
detail.configurationItem.configuration.targetResourceId |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configuration.targetResourceId dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configuration targetResourceId". |
detail.configurationItem.configuration.targetResourceType |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configuration.targetResourceType dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configuration targetResourceType". |
detail.configurationItem.configurationItemCaptureTime |
_target.asset.attribute.creation_time |
Il valore di detail.configurationItem.configurationItemCaptureTime dal log non elaborato viene convertito in un timestamp e mappato al campo _target.asset.attribute.creation_time . |
detail.configurationItem.configurationItemStatus |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configurationItemStatus dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configurationItemStatus". |
detail.configurationItem.configurationStateId |
target.resource.attribute.labels |
Il valore di detail.configurationItem.configurationStateId dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "configurationItem configurationStateId". |
detail.configurationItem.resourceId |
target.resource.id |
Il valore detail.configurationItem.resourceId del log non elaborato viene mappato al campo target.resource.id . |
detail.configurationItem.resourceType |
target.resource.resource_subtype |
Il valore detail.configurationItem.resourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn |
security_result.rule_id |
Il valore detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn del log non elaborato viene mappato al campo security_result.rule_id . |
detail.eventCategory |
security_result.category_details |
Il valore detail.eventCategory del log non elaborato viene mappato al campo security_result.category_details . |
detail.eventID |
metadata.product_log_id |
Il valore detail.eventID del log non elaborato viene mappato al campo metadata.product_log_id . |
detail.eventName |
additional.fields |
Il valore di detail.eventName dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Nome evento". |
detail.eventSource |
target.application |
Il valore detail.eventSource del log non elaborato viene mappato al campo target.application . |
detail.eventType |
additional.fields |
Il valore di detail.eventType dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Tipo di evento". |
detail.eventVersion |
metadata.product_version |
Il valore detail.eventVersion del log non elaborato viene mappato al campo metadata.product_version . |
detail.managementEvent |
additional.fields |
Il valore di detail.managementEvent dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "detail managementEvent". |
detail.messageType |
target.resource.attribute.labels |
Il valore di detail.messageType dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Tipo di messaggio". |
detail.newEvaluationResult.complianceType |
security_result.summary |
Il valore detail.newEvaluationResult.complianceType del log non elaborato viene mappato al campo security_result.summary . |
detail.newEvaluationResult.configRuleInvokedTime |
additional.fields |
Il valore di detail.newEvaluationResult.configRuleInvokedTime dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_configRuleInvokedTime". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_configRuleName". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resourceId". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
Il valore di detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resourceType". |
detail.newEvaluationResult.resultRecordedTime |
additional.fields |
Il valore di detail.newEvaluationResult.resultRecordedTime dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "newEvaluationResult_resultRecordedTime". |
detail.oldEvaluationResult.configRuleInvokedTime |
additional.fields |
Il valore di detail.oldEvaluationResult.configRuleInvokedTime dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_configRuleInvokedTime". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_configRuleName". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resourceId". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
Il valore di detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resourceType". |
detail.oldEvaluationResult.resultRecordedTime |
additional.fields |
Il valore di detail.oldEvaluationResult.resultRecordedTime dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "oldEvaluationResult_resultRecordedTime". |
detail.readOnly |
additional.fields |
Il valore di detail.readOnly dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "detail readOnly". |
detail.recipientAccountId |
target.resource.attribute.labels |
Il valore di detail.recipientAccountId dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID account destinatario". |
detail.recordVersion |
metadata.product_version |
Il valore detail.recordVersion del log non elaborato viene mappato al campo metadata.product_version . |
detail.requestID |
target.resource.attribute.labels |
Il valore di detail.requestID dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "ID richiesta dettagliata". |
detail.resourceType |
target.resource.resource_subtype |
Il valore detail.resourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
detail.s3Bucket |
about.resource.name |
Il valore detail.s3Bucket del log non elaborato viene mappato al campo about.resource.name . |
detail.s3ObjectKey |
target.resource.attribute.labels |
Il valore di detail.s3ObjectKey dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "s3ObjectKey". |
detail.userAgent |
network.http.user_agent |
Il valore detail.userAgent del log non elaborato viene mappato al campo network.http.user_agent . |
detail.userIdentity.accessKeyId |
target.user.userid |
Il valore detail.userIdentity.accessKeyId del log non elaborato viene mappato al campo target.user.userid . |
detail.userIdentity.accountId |
metadata.product_deployment_id |
Il valore detail.userIdentity.accountId del log non elaborato viene mappato al campo metadata.product_deployment_id . |
detail.userIdentity.arn |
target.user.userid |
Il valore detail.userIdentity.arn del log non elaborato viene mappato al campo target.user.userid . |
detail.userIdentity.principalId |
principal.user.product_object_id |
Il valore detail.userIdentity.principalId del log non elaborato viene mappato al campo principal.user.product_object_id . |
detail.userIdentity.sessionContext.attributes.mfaAuthenticated |
principal.user.attribute.labels |
Il valore di detail.userIdentity.sessionContext.attributes.mfaAuthenticated dal log non elaborato viene aggiunto come coppia chiave-valore a principal.user.attribute.labels con la chiave "mfaAuthenticated". |
detail.userIdentity.sessionContext.sessionIssuer.userName |
target.user.user_display_name |
Il valore detail.userIdentity.sessionContext.sessionIssuer.userName del log non elaborato viene mappato al campo target.user.user_display_name . |
detail.userIdentity.type |
principal.resource.type |
Il valore detail.userIdentity.type del log non elaborato viene mappato al campo principal.resource.type . |
detail-type |
metadata.product_event_type |
Il valore detail-type del log non elaborato viene mappato al campo metadata.product_event_type . |
device |
principal.asset.product_object_id |
Il valore device del log non elaborato viene mappato al campo principal.asset.product_object_id . |
digestPublicKeyFingerprint |
target.file.sha1 |
Il valore digestPublicKeyFingerprint del log non elaborato viene mappato al campo target.file.sha1 . |
digestS3Bucket |
principal.resource.name |
Il valore digestS3Bucket del log non elaborato viene mappato al campo principal.resource.name . |
digestS3Object |
principal.asset.asset_id |
Al valore di digestS3Object dal log non elaborato viene anteposto "Oggetto S3: " e mappato al campo principal.asset.asset_id . |
digestSignatureAlgorithm |
network.tls.cipher |
Il valore digestSignatureAlgorithm del log non elaborato viene mappato al campo network.tls.cipher . |
digestStartTime |
metadata.event_timestamp |
Il valore di digestStartTime dal log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
dimensions.VolumeId |
additional.fields |
Il valore di dimensions.VolumeId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "VolumeId". |
duration |
additional.fields |
Il valore di duration dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "duration". |
errorCode |
security_result.rule_name |
Il valore errorCode del log non elaborato viene mappato al campo security_result.rule_name . |
errorMessage |
security_result.summary |
Il valore errorMessage del log non elaborato viene mappato al campo security_result.summary . |
executionId |
principal.process.pid |
Il valore executionId del log non elaborato viene mappato al campo principal.process.pid . |
host |
principal.hostname , principal.ip |
Il valore di host dal log non elaborato, con i trattini sostituiti da punti, viene analizzato come indirizzo IP e mappato al campo principal.ip se l'operazione ha esito positivo. In caso contrario, viene mappato al campo principal.hostname . |
http_verb |
network.http.method |
Il valore di http_verb dal log non elaborato viene convertito in maiuscolo e mappato al campo network.http.method . |
kubernetes.container_hash |
additional.fields |
Il valore di kubernetes.container_hash dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_hash". |
kubernetes.container_image |
additional.fields |
Il valore di kubernetes.container_image dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_image". |
kubernetes.container_name |
additional.fields |
Il valore di kubernetes.container_name dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "container_name". |
kubernetes.docker_id |
principal.asset_id |
Al valore di kubernetes.docker_id del log non elaborato viene anteposto "id: " e viene mappato al campo principal.asset_id . |
kubernetes.host |
principal.hostname , principal.ip |
Il valore di kubernetes.host dal log non elaborato, con i trattini sostituiti da punti, viene analizzato come indirizzo IP e mappato al campo principal.ip se l'operazione ha esito positivo. In caso contrario, viene mappato al campo principal.hostname . |
kubernetes.namespace |
principal.namespace |
Il valore kubernetes.namespace del log non elaborato viene mappato al campo principal.namespace . |
kubernetes.namespace_name |
principal.namespace |
Il valore kubernetes.namespace_name del log non elaborato viene mappato al campo principal.namespace . |
kubernetes.pod_id |
principal.asset.asset_id |
Al valore di kubernetes.pod_id del log non elaborato viene anteposto "pod_id: " e viene mappato al campo principal.asset.asset_id . |
kubernetes.pod_name |
additional.fields |
Il valore di kubernetes.pod_name dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "nome pod". |
lambdaArn |
principal.hostname |
Il valore lambdaArn del log non elaborato viene mappato al campo principal.hostname . |
level |
security_result.severity |
Il valore di level dal log non elaborato determina il valore di security_result.severity . Se level è "Info", il valore è "INFORMATIONAL". Se level è "Error", il valore è "ERROR". Se level è "Avviso", il valore è "MEDIO". |
log |
metadata.description |
Il valore di log dal log non elaborato viene mappato al campo metadata.description se descr è vuoto. |
logFiles |
about |
Per ogni elemento dell'array logFiles del log non elaborato, viene creato un oggetto about con file.full_path impostato su s3Object , asset.hostname impostato su s3Bucket e file.sha256 impostato su hashValue . |
log_processed.cause |
security_result.summary |
Il valore log_processed.cause del log non elaborato viene mappato al campo security_result.summary . |
log_processed.ids |
intermediary.hostname |
Per ogni elemento dell'array log_processed.ids del log non elaborato, viene creato un oggetto intermediary con hostname impostato sul valore dell'elemento. |
log_processed.level |
security_result.severity |
Il valore log_processed.level del log non elaborato viene mappato al campo security_result.severity . |
log_processed.msg |
metadata.description |
Il valore log_processed.msg del log non elaborato viene mappato al campo metadata.description . |
log_processed.ts |
metadata.event_timestamp |
Il valore di log_processed.ts dal log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
log_type |
metadata.log_type |
Il valore log_type del log non elaborato viene mappato al campo metadata.log_type . Si tratta di un campo personalizzato aggiunto per il contesto. |
logevent.message |
security_result.description |
Il valore logevent.message del log non elaborato viene mappato al campo security_result.description . Viene inoltre analizzato utilizzando grok per estrarre campi aggiuntivi. |
logGroup |
security_result.about.resource.name |
Il valore logGroup del log non elaborato viene mappato al campo security_result.about.resource.name . |
logStream |
security_result.about.resource.attribute.labels |
Il valore di logStream dal log non elaborato viene aggiunto come coppia chiave-valore a security_result.about.resource.attribute.labels con la chiave "logStream". |
memory_used |
additional.fields |
Il valore di memory_used dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "memory_used". |
metric_name |
additional.fields |
Il valore di metric_name dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "metric_name". |
metric_stream_name |
additional.fields |
Il valore di metric_stream_name dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "metric_stream_name". |
namespace |
principal.namespace |
Il valore namespace del log non elaborato viene mappato al campo principal.namespace . |
owner |
principal.user.userid |
Il valore owner del log non elaborato viene mappato al campo principal.user.userid . |
parameters |
additional.fields |
Il valore di parameters dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Parameters". |
Path |
principal.process.file.full_path |
Il valore Path del log non elaborato viene mappato al campo principal.process.file.full_path . |
pid |
principal.process.pid |
Il valore pid del log non elaborato viene mappato al campo principal.process.pid . |
PolicyName |
security_result.rule_name |
Il valore PolicyName del log non elaborato viene mappato al campo security_result.rule_name . |
prin_host |
principal.hostname |
Il valore prin_host del log non elaborato viene mappato al campo principal.hostname . |
principal_hostname |
principal.hostname |
Il valore principal_hostname del log non elaborato viene mappato al campo principal.hostname . |
process |
principal.application |
Il valore process del log non elaborato viene mappato al campo principal.application . |
rawData |
additional.fields |
Il valore di rawData dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Dati non elaborati". |
Recommendation |
security_result.detection_fields |
Il valore di Recommendation dal log non elaborato viene aggiunto come coppia chiave-valore a security_result.detection_fields con la chiave "Consiglio". |
referral_url |
network.http.referral_url |
Il valore referral_url del log non elaborato viene mappato al campo network.http.referral_url . |
region |
principal.location.name |
Il valore region del log non elaborato viene mappato al campo principal.location.name . |
resp_code |
network.http.response_code |
Il valore di resp_code dal log non elaborato viene convertito in un numero intero e mappato al campo network.http.response_code . |
resource_url |
network.http.referral_url |
Il valore resource_url del log non elaborato viene mappato al campo network.http.referral_url . |
ResourceType |
target.resource.resource_subtype |
Il valore ResourceType del log non elaborato viene mappato al campo target.resource.resource_subtype . |
response_body |
additional.fields |
Il valore di response_body dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "Corpo della risposta". |
Role |
target.resource.product_object_id |
Il valore Role del log non elaborato viene mappato al campo target.resource.product_object_id . |
s3_bucket_path |
target.file.full_path |
Il valore s3_bucket_path del log non elaborato viene mappato al campo target.file.full_path . |
sec_result.category |
security_result.category |
Il valore di sec_result.category è dedotto dalla logica dell'analizzatore. Se descr contiene "l'autenticazione è obbligatoria", il valore è "AUTH_VIOLATION". |
sec_result.description |
security_result.description |
Il valore di sec_result.description è dedotto dalla logica dell'analizzatore. Viene impostato sul valore di cloudwatchLog , se presente. |
sec_result.severity |
security_result.severity |
Il valore di sec_result.severity è dedotto dalla logica dell'analizzatore. Viene impostato in base al valore di severity o level . |
sec_result.summary |
security_result.summary |
Il valore di sec_result.summary è dedotto dalla logica dell'analizzatore. Viene impostato sul valore di log_processed.cause o errorMessage , se presente. |
security_result |
security_result |
L'oggetto security_result viene costruito da vari campi e dalla logica del parser. |
serverId |
additional.fields |
Il valore di serverId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "server_id". |
severity |
security_result.severity |
Il valore di severity dal log non elaborato, convertito in maiuscolo e normalizzato, è mappato al campo security_result.severity . |
Source |
principal.hostname |
Il valore Source del log non elaborato viene mappato al campo principal.hostname . |
source |
principal.hostname |
Il valore source del log non elaborato viene mappato al campo principal.hostname . |
SourceIP |
principal.ip |
Il valore SourceIP del log non elaborato viene mappato al campo principal.ip . |
src_port |
principal.port |
Se src_port è "80", viene convertito in un numero intero e mappato al campo principal.port e network.application_protocol è impostato su "HTTP". |
stream |
additional.fields |
Il valore di stream dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "stream". |
subscriptionFilters |
security_result.about.resource.attribute.labels |
Per ogni elemento dell'array subscriptionFilters del log non elaborato, a security_result.about.resource.attribute.labels viene aggiunta una coppia chiave-valore con la chiave "subscriptionFilter" e il valore dell'array. |
support_contact |
target.resource.attribute.labels |
Il valore di support_contact dal log non elaborato viene aggiunto come coppia chiave-valore a target.resource.attribute.labels con la chiave "Contatto dell'assistenza". |
t_ip |
target.ip |
Il valore di t_ip dal log non elaborato, dopo la rimozione dei trattini, viene analizzato come indirizzo IP e mappato al campo target.ip se l'operazione ha esito positivo. |
time |
metadata.event_timestamp |
Il valore di time dal log non elaborato viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
timestamp |
metadata.event_timestamp |
Il valore di timestamp dal log non elaborato viene convertito in un timestamp utilizzando vari formati e mappato al campo metadata.event_timestamp . |
tls |
network.tls.version |
Il valore tls del log non elaborato viene mappato al campo network.tls.version . |
transferDetails.serverId |
additional.fields |
Il valore di transferDetails.serverId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "server_id". |
transferDetails.sessionId |
network.session_id |
Il valore transferDetails.sessionId del log non elaborato viene mappato al campo network.session_id . |
transferDetails.username |
principal.user.user_display_name |
Il valore transferDetails.username del log non elaborato viene mappato al campo principal.user.user_display_name . |
ts |
metadata.event_timestamp |
Il valore di ts dal log non elaborato, combinato con il fuso orario, se disponibile, viene convertito in un timestamp e mappato al campo metadata.event_timestamp . |
type |
metadata.product_event_type |
Il valore type del log non elaborato viene mappato al campo metadata.product_event_type . |
unit |
additional.fields |
Il valore di unit dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "unit". |
url |
target.url |
Il valore url del log non elaborato viene mappato al campo target.url . |
url_back_to_product |
metadata.url_back_to_product |
Il valore url_back_to_product del log non elaborato viene mappato al campo metadata.url_back_to_product . |
User |
principal.user.userid |
Il valore User del log non elaborato viene mappato al campo principal.user.userid . |
user |
target.user.userid , metadata.event_type , extensions.auth.mechanism |
Se user è presente, metadata.event_type è impostato su "USER_LOGIN", extensions.auth.mechanism è impostato su "NETWORK" e il valore di user è mappato a target.user.userid . |
value.count |
additional.fields |
Il valore di value.count dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "count". |
value.max |
additional.fields |
Il valore di value.max dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "max". |
value.min |
additional.fields |
Il valore di value.min dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "min". |
value.sum |
additional.fields |
Il valore di value.sum dal log non elaborato viene convertito in una stringa e aggiunto come coppia chiave-valore a additional.fields con la chiave "somma". |
workflowId |
additional.fields |
Il valore di workflowId dal log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "workflowId". |
Modifiche
2024-02-12
- Miglioramento:
- Timestamp mappato a UNIX_MS.
2023-09-02
- Miglioramento:
- È stato aggiunto un "blocco kv" per analizzare i log in formato chiave-valore.
- "SourceIP" è stato mappato a "principal.ip".
- "prin_host" è stato mappato a "principal.hostname".
- "Utente" è stato mappato a "principal.user.userid".
- "Cifrari" è stato mappato a "network.tls.client.supported_ciphers".
- "executionId" è stato mappato a "principal.process.pid".
- "transferDetails.sessionId" è stato mappato a "network.session_id".
- "transferDetails.username" è stato mappato a "principal.user.user_display_name".
- "transferDetails.serverId", "workflowId", "details.input.initialFileLocation.etag", "details.input.initialFileLocation.backingStore", "details.input.initialFileLocation.bucket", "details.input.initialFileLocation.key",
- "Mode", "Kex" in "additional.fields".
- "BytesIn" è stato mappato a "network.received_bytes".
- "Ruolo" è stato mappato a "target.resource.product_object_id".
2023-08-18
- Miglioramento:
- È stato aggiunto un pattern Grok per analizzare i log non analizzati non elaborati.
2023-07-07
- Miglioramento:
- È stato aggiunto il supporto per i log JSON relativi a "logEvents".
2022-12-17
- "CloudType" è stato mappato a "target.resource.attribute.cloud.environment".
- "AlertId" è stato mappato a "metadata.product_log_id".
- "ResourceType" è stato mappato a "target.resource.resource_subtype".
- "ResourceRegion" è stato mappato a "target.location.country_or_region".
- "Consiglio" è stato mappato a "security_result.detection_fields".
- "PolicyName" e "detail.additionalEventData.configRuleName" sono stati mappati a "security_result.rule_name".
- "detail-type" è stato mappato a "metadata.product_event_type".
- "region" e "detail.awsRegion" sono stati mappati a "principal.location.name".
- "detail.eventSource" è stato mappato a "target.application".
- "detail.requestID" è stato mappato a "target.resource.attribute.labels".
- "detail.userAgent" è stato mappato a "network.http.user_agent".
- "detail.eventVersion" è stato mappato a "metadata.product_version".
- "detail.userIdentity.accountId" è stato mappato a "metadata.product_deployment_id".
- "detail.userIdentity.accessKeyId" è stato mappato a "target.user.userid".
- "detail.userIdentity.type" è stato mappato a "principal.resource.type".
- "detail.userIdentity.principalId" è stato mappato a "principal.user.product_object_id".
- "detail.user.arn" è stato mappato a "target.user.userid".
- "detail.user.sessionContext.sessionIssuer.userName" è stato mappato a "target.user.user_display_name".
- È stata mappata la colonna "detail.user.mfaAuthenticated" a "principal.user.attribute.labels".
- "detail.recipientAccountId" è stato mappato a "target.resource.attribute.labels".
- Sono stati mappati "detail.managementEvent", "detail.eventType", "detail.readOnly", "detail.eventName", "detail.additionalEventData.notificationJobType", "detail.additionalEventData.managedRuleIdentifier", "duration", "billed_duration", "memory_used" ad "additional.fields".
- "detail.eventCategory" è stato mappato a "security_result.category_details".
- "detail.eventID" è stato mappato a "metadata.product_log_id".
- "detail.additionalEventData.configRuleArn" è stato mappato a "security_result.rule_id".
- "livello" è stato mappato a "security_result.severity".
- "src_port" è stato mappato a "principal.port".
- "request_id" è stato mappato a "target.resource.attribute.labels".
- "url" è stato mappato a "target.url".
2022-09-03
- Miglioramento:
- È stato aggiunto grok per analizzare i log appena importati.
- "package" è stato mappato a "event.idm.read_only_udm.principal.process.command_line".
- "session_id" è stato mappato a "event.idm.read_only_udm.network.session_id".
- "network_dir" è stato mappato a "event.idm.read_only_udm.network.direction".
- "porta" è stata mappata a "event.idm.read_only_udm.target.port".
- "digestPublicKeyFingerprint" è stato rimappato da "additional.fields" a "event.idm.read_only_udm.target.file.sha1".
- Sono stati aggiunti altri livelli di log come "AUDIT", "TRACE", "DEBUG", "NOTICE", "ERROR" per la mappatura della gravità.
- È stato duplicato il valore in "target.ip" in "principal.ip" per impostare event_type su "STATUS_UPDATE", riducendo così la percentuale generica.
- Sono state aggiunte condizioni per "event_type" "USER_UNCATEGORIZED", "NETWORK_HTTP", "NETWORK_CONNECTION", "STATUS_UPADTE" per ridurre la percentuale generica.
2022-08-11
- Correzione di bug: "digestS3Bucket" è stato rimappato a "principal.resource.name".
- "kubernetes.pod_name" è stato rimappato a "additional.fields".
2022-05-27
- Miglioramento:
- È stato modificato il valore memorizzato in metadata.product_name in "AWS CloudWatch" e in metadata.vendor_name in "AMAZON".
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.