O Amazon GuardDuty
Para obter mais informações sobre o Amazon GuardDuty, consulte o Manual do usuário do Amazon GuardDuty.
Pré-requisitos
-
Habilite o recurso GuardDuty para exportar as descobertas para o Amazon S3. Para conhecer as etapas, consulte Exporting findings (Exportar descobertas) no Guia do usuário do Amazon GuardDuty.
Criar uma tabela no Athena para as descobertas do GuardDuty
Para consultar as descobertas do GuardDuty no Athena, crie uma tabela para elas.
Para criar uma tabela no Athena para as descobertas do GuardDuty
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
Copie a instrução DDL a seguir no console do Athena. Modifique os valores em
LOCATION 's3://amzn-s3-demo-bucket
para apontar para as descobertas do GuardDuty no 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
O SerDe espera que cada documento JSON esteja em uma única linha de texto, sem caracteres de terminação de linha separando os campos no registro. Se o texto JSON estiver formatado para impressão, você poderá receber uma mensagem de erro como
HIVE_CURSOR_ERROR: Row is not a valid JSON Object
(HIVE_CURSOR_ERROR: a linha não é um objeto JSON válido) ouHIVE_CURSOR_ERROR: JsonParseException: Unexpected end-of-input: expected close marker for OBJECT
(HIVE_CURSOR_ERROR: JSONParseException: Fim de entrada inesperado: marcador de fechamento esperado para OBJECT) quando tentar consultar a tabela após criá-la. Para obter mais informações, consulte JSON Data Filesna documentação do OpenX SerDe no GitHub. -
Execute a consulta no console do Athena para registrar a tabela
gd_logs
. Quando a consulta for concluída, as descobertas estarão prontas para serem consultadas no Athena.
Consultas de exemplo
Os exemplos a seguir mostram como consultar as descobertas do GuardDuty no Athena.
exemplo – Exfiltração de dados de DNS
A consulta a seguir retorna informações sobre as instâncias do Amazon EC2 que podem estar exfiltrando dados por meio das consultas de 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
exemplo – Acesso de usuário do IAM não autorizado
A consulta a seguir retorna todos os tipos de descoberta UnauthorizedAccess:IAMUser
referentes a um principal do IAM de todas as regiões.
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;
Dicas para consultar descobertas do GuardDuty
Ao criar a consulta, mantenha os seguintes pontos em mente.
-
Para extrair dados de campos JSON aninhados, use as funções
json_extract
oujson_extract_scalar
do Presto. Para ter mais informações, consulte Extrair dados JSON de strings. -
Certifique-se de que todos os caracteres nos campos JSON estejam em minúsculas.
-
Para obter informações sobre como baixar resultados de consulta, verifique Baixar arquivos de resultados de consultas via console do Athena.