Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Amazon GuardDuty
Per ulteriori informazioni su Amazon GuardDuty, consulta la Amazon GuardDuty User Guide.
Prerequisiti
-
Abilita la GuardDuty funzionalità per esportare i risultati in Amazon S3. Per i passaggi, consulta Esportazione dei risultati nella Amazon GuardDuty User Guide.
Crea una tabella in Athena per i risultati GuardDuty
Per interrogare GuardDuty i tuoi risultati con Athena, devi creare una tabella per essi.
Per creare una tabella in Athena per i risultati GuardDuty
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Incollare la seguente istruzione DDL nella console Athena. Modifica i valori in
LOCATION 's3://amzn-s3-demo-bucket
modo che rimandino ai tuoi GuardDuty risultati in Amazon S3./AWSLogs/
account-id
/GuardDuty/'CREATE EXTERNAL TABLE `gd_logs` ( `schemaversion` string, `accountid` string, `region` string, `partition` string, `id` string, `arn` string, `type` string, `resource` string, `service` string, `severity` string, `createdat` string, `updatedat` string, `title` string, `description` string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
account-id
/GuardDuty/' TBLPROPERTIES ('has_encrypted_data'='true')Nota
SerDe Si aspetta che ogni documento JSON si trovi su una singola riga di testo senza caratteri di terminazione di riga che separano i campi del record. Se il testo JSON è in un bel formato di stampa, potresti ricevere un messaggio di errore come
HIVE_CURSOR_ERROR: Row is not a valid JSON Object o HIVE_CURSOR_ERROR:: Unexpected end-of-input: expected: expected close marker for OBJECT
quando tenti di interrogare la tabella dopo averla JsonParseException creata
. Per ulteriori informazioni, consulta JSON Data Filesnella documentazione di SerDe OpenX su. GitHub -
Eseguire la query nella console Athena per registrare la tabella
gd_logs
. Al termine della query, i risultati sono pronti per le query da Athena.
Query di esempio
Gli esempi seguenti mostrano come interrogare GuardDuty i risultati di Athena.
Esempio Estrazione dei dati DNS
La seguente query restituisce informazioni sulle EC2 istanze Amazon che potrebbero esfiltrare dati tramite query DNS.
SELECT
title,
severity,
type,
id AS FindingID,
accountid,
region,
createdat,
updatedat,
json_extract_scalar(service, '$.count') AS Count,
json_extract_scalar(resource, '$.instancedetails.instanceid') AS InstanceID,
json_extract_scalar(service, '$.action.actiontype') AS DNS_ActionType,
json_extract_scalar(service, '$.action.dnsrequestaction.domain') AS DomainName,
json_extract_scalar(service, '$.action.dnsrequestaction.protocol') AS protocol,
json_extract_scalar(service, '$.action.dnsrequestaction.blocked') AS blocked
FROM gd_logs
WHERE type = 'Trojan:EC2/DNSDataExfiltration'
ORDER BY severity DESC
Esempio - Accesso utente IAM non autorizzato
La query seguente restituisce tutti i tipi di risultati UnauthorizedAccess:IAMUser
per un'entità principale IAM da tutte le Regioni.
SELECT title,
severity,
type,
id,
accountid,
region,
createdat,
updatedat,
json_extract_scalar(service, '$.count') AS Count,
json_extract_scalar(resource, '$.accesskeydetails.username') AS IAMPrincipal,
json_extract_scalar(service,'$.action.awsapicallaction.api') AS APIActionCalled
FROM gd_logs
WHERE type LIKE '%UnauthorizedAccess:IAMUser%'
ORDER BY severity desc;
GuardDuty Suggerimenti per interrogare i risultati
Quando si crea la query, tenere a mente i seguenti punti.
-
Per estrarre dati dai campi JSON nidificati, utilizzare le funzioni
json_extract
ojson_extract_scalar
di Presto. Per ulteriori informazioni, consulta Estrarre dati JSON dalle stringhe. -
Assicurarsi che tutti i caratteri nei campi JSON siano in minuscolo.
-
Per informazioni sul download dei risultati delle query, consulta Scarica i file dei risultati delle query utilizzando la console Athena.