

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.

# Consultez les GuardDuty résultats d'Amazon
<a name="querying-guardduty"></a>

[Amazon GuardDuty](https://aws.amazon.com/guardduty/) est un service de surveillance de la sécurité qui aide à identifier les activités inattendues, potentiellement non autorisées ou malveillantes dans votre AWS environnement. Lorsqu'il détecte une activité inattendue et potentiellement malveillante, il GuardDuty génère des [résultats](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html) de sécurité que vous pouvez exporter vers Amazon S3 à des fins de stockage et d'analyse. Après avoir exporté vos résultats vers Simple Storage Service (Amazon S3), vous pouvez utiliser Athena pour les interroger. Cet article explique comment créer une table dans Athena pour vos GuardDuty résultats et les interroger.

Pour plus d'informations sur Amazon GuardDuty, consultez le [guide de GuardDuty l'utilisateur Amazon](https://docs.aws.amazon.com/guardduty/latest/ug/).

## Conditions préalables
<a name="querying-guardduty-prerequisites"></a>
+ 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](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html) dans le guide de GuardDuty l'utilisateur Amazon.

## Créez un tableau dans Athena pour les résultats GuardDuty
<a name="querying-guardduty-creating-a-table-in-athena-for-guardduty-findings"></a>

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**

1. Ouvrez la console à l'adresse [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Collez l'instruction DDL suivante dans la console Athena. Modifiez les valeurs `LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/account-id/GuardDuty/'` pour qu'elles correspondent à vos GuardDuty résultats dans Amazon S3.

   ```
   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\$1CURSOR\$1ERROR : Row is not a valid JSON Object ou HIVE\$1CURSOR\$1ERROR : : 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 JSON](https://github.com/rcongiu/Hive-JSON-Serde#json-data-files) dans la SerDe documentation OpenX sur. GitHub 

1. 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
<a name="querying-guardduty-examples"></a>

Les exemples suivants montrent comment interroger les GuardDuty résultats d'Athéna.

**Example – 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
```

**Example – 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
<a name="querying-guardduty-tips"></a>

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` ou `json_extract`. Pour de plus amples informations, veuillez consulter [Extraction de données JSON à partir de chaînes](extracting-data-from-JSON.md).
+ 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échargement des fichiers de résultats des requêtes à l’aide de la console Athena](saving-query-results.md).