Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Amazon GuardDuty
Pour plus d'informations sur Amazon GuardDuty, consultez le guide de GuardDuty l'utilisateur Amazon.
Prérequis
-
Activez la GuardDuty fonctionnalité d'exportation des résultats vers Amazon S3. Pour connaître les étapes à suivre, consultez la section Exportation des résultats dans le guide de GuardDuty l'utilisateur Amazon.
Créez un tableau dans Athena pour les résultats GuardDuty
Pour interroger vos GuardDuty conclusions auprès d'Athéna, vous devez créer un tableau pour celles-ci.
Pour créer un tableau dans Athena pour les résultats GuardDuty
Ouvrez la console à l'adresse https://console.aws.amazon.com/athena/
. -
Collez l'instruction DDL suivante dans la console Athena. Modifiez les valeurs
LOCATION 's3://amzn-s3-demo-bucket
pour qu'elles correspondent à vos GuardDuty résultats dans 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')Note
Il SerDe s'attend à ce que chaque document JSON se trouve sur une seule ligne de texte sans aucun caractère de fin de ligne séparant les champs de l'enregistrement. Si le texte JSON est dans un joli format d'impression, vous pouvez recevoir un message d'erreur tel que
HIVE_CURSOR_ERROR : Row is not a valid JSON Object
ouHIVE_CURSOR_ERROR : : Unexpected JsonParseException end-of-input : expected close marker for OBJECT
lorsque vous essayez d'interroger la table après l'avoir créée. Pour plus d'informations, consultez la section Fichiers de données JSONdans la SerDe documentation OpenX sur. GitHub -
Exécutez la requête dans la console Athena pour enregistrer la table
gd_logs
. Une fois la requête terminée, vous pouvez interroger les résultats à partir d'Athena.
Exemples de requêtes
Les exemples suivants montrent comment interroger les GuardDuty résultats d'Athéna.
Exemple – Exfiltration de données DNS
La requête suivante renvoie des informations sur les EC2 instances Amazon susceptibles d'exfiltrer des données via des requêtes 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
Exemple – Accès utilisateur IAM non autorisé
La requête suivante renvoie tous les types de résultat UnauthorizedAccess:IAMUser
pour un principal IAM à partir de toutes les régions.
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;
Conseils pour interroger GuardDuty les résultats
Lorsque vous créez votre requête, gardez les points suivants à l'esprit.
-
Pour extraire des données à partir de champs JSON imbriqués, utilisez les fonctions Presto
json_extract_scalar
oujson_extract
. Pour de plus amples informations, veuillez consulter Extraire des données JSON à partir de chaînes. -
Assurez-vous que tous les caractères des champs JSON sont en minuscules.
-
Pour plus d'informations sur le téléchargement des résultats de requête, veuillez consulter Téléchargez les fichiers de résultats des requêtes à l'aide de la console Athena.