【AWS セキュリティ対策】Amazon Detective編

# 構成
こちらの記事は AWS セキュリティサービスを使ってみた シリーズの Part.3 の記事です。
他にも以下のサービスについてまとめております、ぜひご覧ください。

Part.1
[AWS WAF](https://qiita.com/omiyu/private/2fbdcbd3b9b8998930e7)
Part.2
[Amazon GuardDuty](https://qiita.com/m-ide/private/ccc87341eed291e606ee)
Part.3
AWS Detective （本記事）
Part.4
[AWS Security Hub](https://qiita.com/banana-877/private/b7292043fb6da2d8bc13)

【随時更新】 AWS セキュリティ製品一覧：
https://qiita.com/omiyu/private/830477c436b4000ae680


## Amazon Detective とは

>Amazon Detective では、潜在的なセキュリティ問題や不審なアクティビティの根本原因を簡単に分析、調査し、すばやく特定できます。Amazon Detective は、AWS リソースからログデータを自動的に収集し、機械学習、統計的分析、グラフ理論を使用して、リンクされたデータセットを構築します。これにより、より迅速かつ効率的なセキュリティ調査を簡単に行えます。

引用元：https://aws.amazon.com/jp/detective/

以下のタイプの AWS ログからデータを取得します。

- Virtual Private Cloud (VPC) Flow Logs
- AWS CloudTrail
- Amazon GuardDuty

## 仕組み

ログイン試行、API コール、ネットワークトラフィックなどの時間ベースのイベントを自動的に抽出します。
また、GuardDuty によって検出された結果も取り込みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/3b6789f0-8218-095c-d2ec-526b2a24b9fb.png)

## 特徴

- 異種のイベントをグラフモデルに統合
- 効率的な調査のためのインタラクティブな視覚化
- セキュリティに関する調査結果を調べるためのシームレスな統合
- 事前にデータソースを統合したり、複雑な設定を維持したりする必要のないシンプルなデプロイ

## 料金

|取り込まれたデータ|料金|
|---|---|
|最初の 1,000 GB/アカウント/リージョン/月|2.70USD/GB|
|次の 4,000 GB/アカウント/リージョン/月|1.35USD/GB|
|次の 5,000 GB/アカウント/リージョン/月|0.68USD/GB|
|10,000 GB 以上/アカウント/リージョン/月|0.34USD/GB|

詳細：https://aws.amazon.com/jp/detective/pricing/

# 開始方法

## ゴール

## 前提条件
1. AWS にサインアップする
1. Amazon GuardDuty が少なくとも 48 時間有効になっている
1. アカウントデータボリュームは Detective クォータ内にある
1. GuardDuty CloudWatch 通知の更新頻度は、デフォルトで6 時間です。GuardDuty 管理者アカウントはディテクターの設定を 15 分に変更することをお勧めします。

https://docs.aws.amazon.com/ja_jp/detective/latest/adminguide/detective-prerequisites.html

## 手順

手順はざっくり以下の通りです。

1. Amazon Detective の有効化
1. メンバーアカウントを招待
1. データの抽出を確認
1. Amazon Detective でのアクションと使用状況の追跡

### 1. Amazon Detective の有効化

[Amazon Detective コンソール](https://ap-northeast-1.console.aws.amazon.com/detective/home?region=ap-northeast-1#firstRun)に移動→[開始方法]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/77f3a17e-6224-2ef9-268f-c8a61277645c.png)

管理者アカウント向けの推奨事項が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/acb4a38c-9be1-80e2-c8db-0f96949886e9.png)

Detective 有効の前に、動作グラフ管理のために必要な IAM ポリシー を IAM プリンシパルにアタッチします。
このポリシーでは、Detective ですべての管理者アカウントアクションを実行できます。

IAM ポリシーをコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/393fd164-10aa-beee-3a3f-87457a8a747c.png)

[IAM ポリシー コンソール](https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/policies)に移動 → [ポリシーの作成]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/e2ee7b5a-74dd-e519-acc0-a2a63bd6fba0.png)

[JSON]を選択 → コピーした IAM ポリシーをペースト → [次のステップ: タグ]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/0e666608-f3d9-be1f-4ed5-05a245e9be44.png)

今回はタグの設定をスキップします。
[次のステップ：確認]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/ae56e8e0-a818-2eb3-332d-ecf40839f3a6.png)

ポリシー名を入力して[ポリシーの作成]を選択すると、IAMポリシーが作成されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/d210435d-b9a8-e381-fdd2-43661a111d44.png)

Detective のセットアップのページに戻り、[Amazon Detectiveを有効化]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/66e3588e-b385-5e8e-3ace-1d179095a88d.png)

これで Detective が有効化されます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/f2532e0e-187b-1960-b5e0-cb44b332633c.png)


https://docs.aws.amazon.com/ja_jp/detective/latest/adminguide/detective-enabling.html


### 2. メンバーアカウントを招待

下図のような流れでメンバーアカウントを招待することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/69053f8e-141a-8d89-f3c1-3ce3e1b8b569.png)

[アクション]メニューから[アカウントを招待]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/41ad1d58-865a-de8e-8792-8cb3859e4438.png)

招待したい AWS アカウント ID と E メールアドレスを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/6a2c008d-4634-f793-f8bb-d3052895db0c.png)

招待メールを編集することもできますが、今回は既定のままでいきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/e8ce8398-87d2-16a2-43d9-d03d97c49764.png)

メンバーアカウント側でも メンバーアカウント用のIAMポリシーを設定する必要があります。
[招待]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/6ffff2d6-cffa-2033-eeb4-08f5c139c6ed.png)

これで新しいメンバーが招待されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/63adea39-ebf3-cf97-9fe2-cf010b502711.png)

招待を受けたアカウントには以下のように通知が来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/bc54cc13-7b3f-1e53-1645-a61da596a0c9.png)

[other notifications]タブ→[Detective member invitation]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/ef12a581-6462-7c3e-dd16-ff8e7e47229d.png)

招待の詳細情報が表示されます。
招待を承認するには 以下の赤枠内のリンクをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/3e7c3da8-22ab-f7a7-5322-2c6a0aea7ee4.png)

[招待を承諾]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/b266978a-becd-54bf-51e6-049ed42adc2c.png)

これで招待は承諾されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/e6d6ad85-5f9c-c3bc-fc0b-c72ab64c5a07.png)

管理者アカウントでメンバーアカウントの有効化をします。
有効にしたいアカウントのチェックボックスにチェックを入れ、[アカウントの有効化]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/ed7b43bd-0d2f-6026-322f-398ca1e096f7.png)

[有効化]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/0d6565ac-9974-8c7d-0c7a-aef149597aa1.png)


### 3. データの抽出を確認

Detective を有効にすると、AWS アカウントのデータを動作グラフに取り込み、抽出し始めます。

ナビゲーションペインで[検索]を選択→[タイプを選択]メニューから項目の種類を選択します。
今回は[AWSアカウント]を見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/d2f1fadb-a886-fe50-b44f-91f33185f3b2.png)

下図のように、成功した呼び出しと失敗した呼び出しがグラフで確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/52cfc356-4132-d7c7-3887-22a271d4d1b0.png)

下にスクロールしてアクティビティの詳細を確認します。
IPアドレスごとのAPIコールの種類や成功/失敗の数を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/673e8f94-8f6f-c072-b819-0cbd75e87fb9.png)




### 4. Amazon Detective でのアクションと使用状況の追跡

Detective アクティビティを追跡しやすくするために、[使用状況] ページには、取り込まれたデータ量と推定コストが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/5ce4e366-894f-c1b1-ceb2-0a58d66503c7.png)


管理者アカウントの場合は 動作グラフ全体のデータ量と推定コストが表示され、
メンバーアカウントの場合は 寄与する動作グラフ全体でアカウントのデータ量と予測コストが表示されます。

https://docs.aws.amazon.com/ja_jp/detective/latest/adminguide/tracking-usage-logging.html

動作グラフの使用状況とコストのモニタリング (管理者アカウント)：https://docs.aws.amazon.com/ja_jp/detective/latest/adminguide/usage-tracking-admin.html

# さいごに
Amazon Detectiveを使うと、AWS環境のセキュリティ問題を簡単に分析・調査できることが分かりました。
30日間の無料トライアル期間が設けられているのもいいですね。



# 参考ドキュメント
https://docs.aws.amazon.com/ja_jp/detective/latest/adminguide/detective-setup.html