

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kueri GuardDuty temuan Amazon
<a name="querying-guardduty"></a>

[Amazon GuardDuty](https://aws.amazon.com/guardduty/) adalah layanan pemantauan keamanan untuk membantu mengidentifikasi aktivitas yang tidak terduga dan berpotensi tidak sah atau berbahaya di AWS lingkungan Anda. Saat mendeteksi aktivitas yang tidak terduga dan berpotensi berbahaya, GuardDuty hasilkan [temuan](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html) keamanan yang dapat Anda ekspor ke Amazon S3 untuk penyimpanan dan analisis. Setelah Anda mengekspor temuan Anda ke Amazon S3, Anda dapat menggunakan Athena untuk mengkueri mereka. Artikel ini menunjukkan cara membuat tabel di Athena untuk GuardDuty temuan Anda dan menanyakannya.

Untuk informasi selengkapnya tentang Amazon GuardDuty, lihat [Panduan GuardDuty Pengguna Amazon](https://docs.aws.amazon.com/guardduty/latest/ug/).

## Prasyarat
<a name="querying-guardduty-prerequisites"></a>
+ Aktifkan GuardDuty fitur untuk mengekspor temuan ke Amazon S3. Untuk langkahnya, lihat [Mengekspor temuan](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html) di Panduan GuardDuty Pengguna Amazon.

## Buat tabel di Athena untuk temuan GuardDuty
<a name="querying-guardduty-creating-a-table-in-athena-for-guardduty-findings"></a>

Untuk menanyakan GuardDuty temuan Anda dari Athena, Anda harus membuat tabel untuk mereka.

**Untuk membuat tabel di Athena untuk temuan GuardDuty**

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Paste pernyataan DDL berikut ke konsol Athena. Ubah nilai `LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/account-id/GuardDuty/'` untuk menunjukkan GuardDuty temuan Anda di 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')
   ```
**catatan**  
 SerDe Mengharapkan setiap dokumen JSON berada pada satu baris teks tanpa karakter penghentian baris yang memisahkan bidang dalam catatan. Jika teks JSON dalam format cetak cantik, Anda mungkin menerima pesan kesalahan seperti HIVE\$1CURSOR\$1ERROR: Row is not a valid JSON Object or HIVE\$1CURSOR\$1ERROR:: Unexpected JsonParseException end-of-input: expected close marker for OBJECT saat Anda mencoba menanyakan tabel setelah Anda membuatnya. Untuk informasi selengkapnya, lihat [File Data JSON](https://github.com/rcongiu/Hive-JSON-Serde#json-data-files) di dokumentasi SerDe OpenX. GitHub 

1. Menjalankan kueri di konsol Athena untuk mendaftar`gd_logs`tabel. Saat kueri selesai, temuan siap bagi Anda untuk mengkueri dari Athena.

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

Contoh berikut menunjukkan cara menanyakan GuardDuty temuan dari Athena.

**Example — Ekskfiltrasi data DNS**  
Kueri berikut menampilkan informasi tentang EC2 instans Amazon yang mungkin mengeksfiltrasi data melalui kueri 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 — Akses pengguna IAM tidak sah**  
Kueri berikut mengembalikan semua`UnauthorizedAccess:IAMUser`menemukan jenis untuk IAM Principal dari semua wilayah.   

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

## Kiat untuk menanyakan temuan GuardDuty
<a name="querying-guardduty-tips"></a>

Saat Anda membuat kueri Anda, ingatlah hal berikut.
+ Untuk mengekstraksi data dari bidang JSON Nest, gunakan Presto`json_extract`atau`json_extract_scalar`fungsi. Untuk informasi selengkapnya, lihat [Ekstrak data JSON dari string](extracting-data-from-JSON.md).
+ Pastikan bahwa semua karakter di bidang JSON dalam huruf kecil.
+  Untuk informasi tentang cara mengunduh hasil kueri, lihat [Unduh file hasil kueri menggunakan konsol Athena](saving-query-results.md).