エンジニアの小林です。
これまで弊社社員が、以下ブログでGuardDutyの設定方法や設定後のEmail通知の設定方法をご紹介してきました。
http://blog.serverworks.co.jp/tech/2020/06/12/hajimetenoaws_guardduty/
http://blog.serverworks.co.jp/tech/2020/04/08/guardduty2email/
GuardDutyは脅威を検知するのみで、検知した結果の対処、対策はユーザーで対応する必要があります。
そのため、今回はGuardDutyによって検知した結果を対応するために、どのようなポイントを確認すればいいか、簡単にご紹介させていただきます。
GuardDuty検知結果
マネージメントコンソールのGuardDuty画面から[Findings (結果)] を選択すると、結果一覧を表示することができます。
まず、結果の一覧画面から、結果の頭に付いているアイコンの色(重大度の確認)と検索タイプの名前(結果タイプ)とリソース(対象インスタンス)の確認をします。
リソース(対象インスタンス)は、攻撃を受けた対象を示しています。
その他2つは以下で説明をします。
重大度の確認
それぞれの結果には重大度という指標(脅威の重要度レベル)があり、重大度の値は 0.1 ~ 8.9 の値で割り当てられます。
0.1 ~ 8.9の値を3分割して、高、中、低の分類もされており、結果の一覧表示画面では色を確認して、その結果が高、中、低のどれなのか確認することができます。
重大度の定義は以下の通りです。
言わずもながら、重大度の高い結果については、優先度高く確認する必要があります。
- 高 (値は 7.0〜8.9 の範囲/赤表示)
- 該当リソース(EC2 インスタンス、または IAM ユーザー認証情報関連)への侵害を検知していることを示しています
- EC2 インスタンスをクリーンアップまたは終了するか、IAM 認証情報を更新する等の対応が必要です
- 中 (値は 4.0〜6.9 の範囲/黄色表示)
- 不正なアクティビティ(大量トラフィック、通常アクティ美的から外れる動作等)を検知していることを示しています
- 低 (値が 0.1 ~ 3.9/青表示)
- ネットワークには侵害していない不審なアクティビティを検知していることを示しています
- 即時対応の必要はありませんが、今後脅威となる可能性があることを理解する必要があります
結果タイプの確認
GuardDutyが検知する脅威は、AWSで定義されています。(Backdoor、UnauthorizedAccess等)
これをThreatPurposeといいます。
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_finding-format.html
検知した結果が上記のどの脅威(ThreatPurpose)に当てはまるかを確認するには、検索タイプの名前を確認します。
例えば、検索タイプの名前がRecon:EC2/PortProbeUnprotectedPortの場合、Reconという脅威を検知している、ということがわかります。
ThreatPurposeについて書かれたAWSのドキュメントには以下記載があり、検索タイプの後半にPortProbeUnprotectedPortという表記がありますので、このEC2に対して保護されていないポートがないか脆弱性を探している、という検知であるとわかります。
Recon - この値は、偵察攻撃が進行中であり、ポートを調査したり、ユーザーやデータベーステーブルなどをリストアップすることで、AWS 環境の脆弱性を探そうとしていることを示します。
このように検索タイプを確認することで、どのような検知なのかを理解することができます。
その他詳細の確認
確認したい結果を選択することで、結果の詳細の確認をすることができます。
結果の詳細では、重大度の数値、EC2インスタンスの詳細情報、脅威の頻度も確認することができます。
一覧表示だけではインスタンスが特定できない場合、重大度を数値まで確認したい場合、結果の詳細を見て、結果の優先度の決定とインスタンスの特定をしましょう。
また、結果の詳細では、GuardDutyが検知した脅威がどのようなものかを、Action(アクション)から確認することも可能なので、必要に応じて確認してください。
- Action type(アクションタイプ) :対象インスタンスに対してどのような操作があったか
- NETWORK_CONNECTION:ローカルのホストとEC2インスタンス間のネットワークトラフィックがあったこと
- PORT_PROBE :開放しているポートでEC2インスタンスに接続があったこと
- DNS_REQUEST:EC2インスタンスへドメインの照会があったこと
- AWS_API_CALL:AWS APIが呼び出されたこと
- Connection direction(接続方向):ネットワークの接続方向
- INBOUND:EC2への通信
- OUTBOUND:EC2からの通信
- UNKNOWN:判別不能
- プロトコル:脅威と検知したプロトコル
- ローカル IP:脅威と検知したトラフィックの送信元IP
これらの情報を確認し、EC2インスタンスの対策の検討を実施しましょう。
対策実施後は、結果をアーカイブしましょう。
まず、マネージメントコンソールのGuardDuty画面から[Findings (結果)] を選択します。
アーカイブしたい結果のチェックボックスにチェックを入れ、左上の[Action(アクション)]から[archive(アーカイブ)]を選択すると結果はアーカイブされます。
同じく、[Action(アクション)]から[export(エクスポート)]を選択するとjsonの結果を表示およびダウンロードすることも可能です。
まとめ
GuardDutyが検知した!となったら、
マネコンから、リソース(対象インスタンス)と結果の色(重大度の確認)と検索タイプの名前(結果タイプ)を確認し、検知した結果の対処、対策打ちましょう!
参考
- Amazon GuardDutyユーザーガイド - 結果
- Amazon GuardDutyユーザーガイド - GuardDuty 結果の重要度
- Amazon GuardDutyユーザーガイド - GuardDuty結果形式