

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# GuardDuty Amazon-Ergebnisse abfragen
<a name="querying-guardduty"></a>

[Amazon GuardDuty](https://aws.amazon.com/guardduty/) ist ein Sicherheitsüberwachungsservice, der Ihnen hilft, unerwartete und potenziell nicht autorisierte oder böswillige Aktivitäten in Ihrer AWS Umgebung zu identifizieren. Wenn es unerwartete und potenziell bösartige Aktivitäten erkennt, GuardDuty generiert es [Sicherheitsergebnisse](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html), die Sie zur Speicherung und Analyse nach Amazon S3 exportieren können. Nachdem Sie Ihre Ergebnisse in Amazon S3 exportiert haben, können Sie diese mit Athena abfragen. Dieser Artikel zeigt, wie Sie in Athena eine Tabelle für Ihre GuardDuty Ergebnisse erstellen und diese abfragen.

Weitere Informationen zu Amazon GuardDuty finden Sie im [ GuardDuty Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/guardduty/latest/ug/).

## Voraussetzungen
<a name="querying-guardduty-prerequisites"></a>
+ Aktivieren Sie die GuardDuty Funktion zum Exportieren von Ergebnissen nach Amazon S3. Eine Anleitung dazu finden Sie unter [Ergebnisse exportieren](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html) im GuardDuty Amazon-Benutzerhandbuch.

## Erstellen Sie in Athena eine Tabelle für Ergebnisse GuardDuty
<a name="querying-guardduty-creating-a-table-in-athena-for-guardduty-findings"></a>

Um Ihre GuardDuty Ergebnisse von Athena abzufragen, müssen Sie eine Tabelle für sie erstellen.

**Um in Athena eine Tabelle für GuardDuty Ergebnisse zu erstellen**

1. Öffnen Sie die Athena-Konsole unter [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Fügen Sie die folgende DDL-Anweisung in die Athena-Konsole ein. Ändern Sie die Werte so`LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/account-id/GuardDuty/'`, dass sie auf Ihre GuardDuty Ergebnisse in Amazon S3 verweisen.

   ```
   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')
   ```
**Anmerkung**  
Das SerDe erwartet, dass sich jedes JSON-Dokument in einer einzigen Textzeile ohne Zeilenabschlusszeichen befindet, die die Felder im Datensatz trennen. Wenn der JSON-Text ein hübsches Druckformat hat, erhalten Sie möglicherweise eine Fehlermeldung wie HIVE\$1CURSOR\$1ERROR: Row is not a valid JSON Object oder HIVE\$1CURSOR\$1ERROR:: Unerwartet JsonParseException end-of-input: erwarteter Schließpunkt für OBJECT, wenn Sie versuchen, die Tabelle nach ihrer Erstellung abzufragen. Weitere Informationen finden Sie unter [JSON-Datendateien](https://github.com/rcongiu/Hive-JSON-Serde#json-data-files) in der SerDe OpenX-Dokumentation unter GitHub. 

1. Führen Sie die Abfrage in der Athena-Konsole aus, um die `gd_logs`-Tabelle zu registrieren. Wenn die Abfrage abgeschlossen ist, können Sie die Ergebnisse aus Athena abfragen.

## Beispielabfragen
<a name="querying-guardduty-examples"></a>

Die folgenden Beispiele zeigen, wie GuardDuty Ergebnisse von Athena abgefragt werden.

**Example – DNS-Datenexfiltration**  
Die folgende Abfrage gibt Informationen über EC2 Amazon-Instances zurück, die möglicherweise Daten über DNS-Abfragen exfiltrieren.  

```
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 – Unberechtigter IAM-Benutzerzugriff**  
Die folgende Abfrage gibt alle `UnauthorizedAccess:IAMUser`-Suchtypen für einen IAM-Prinzipal aus allen Regionen zurück.   

```
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;
```

## Tipps für die Abfrage von Ergebnissen GuardDuty
<a name="querying-guardduty-tips"></a>

Beachten Sie beim Erstellen der Abfrage die folgenden Punkte.
+ Um Daten aus verschachtelten JSON-Feldern zu extrahieren, verwenden Sie die `json_extract`- oder `json_extract_scalar`-Funktionen von Presto. Weitere Informationen finden Sie unter [Extrahieren Sie JSON-Daten aus Zeichenfolgen](extracting-data-from-JSON.md).
+ Stellen Sie sicher, dass alle Zeichen in den JSON-Feldern Kleinbuchstaben sind.
+  Hinweise zum Herunterladen von Abfrageergebnissen finden Sie unter [Herunterladen von Abfrageergebnisdateien mithilfe der Athena-Konsole](saving-query-results.md).