目次

Amazon GuardDuty



Amazon GuardDutyとは

AWS上の悪意ある操作や不正な動作を検知するサービスです。
検知するとアラートを飛ばすことができます。

検知例
費用

通信量が多いと費用が高いです。通信があまりなくても、EKS監視をした場合割りと費用がかかります。
例:
・あまり通信がないサービスの場合:3,000円
・金融取引サービス:約15万円
・EKS監視をした場合 約:2万円

インプット

インプットはCloudTrail, VPC Flow logs,DNS Logsの3つです。
GuardDutyを設定することで、これらデータソースの有効化をしていなくてもログおよびイベントを読み取ってくれる。
自分で有効にする必要はない。


GuardDutyの設定の有効化

GuardDutyのサービス画面から有効にするだけです。
セキュリティチェックのカスタマイズはできない。




GuardDutyの通知設定

Amazon SNSで、トピックとサブスクリプションを設定


CloudWatch Eventsでルールを作成し、ターゲットをSNSにする


すべてを通知する場合
{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ] }


重要度により通知する場合
{
    "source": [
        "aws.guardduty"
    ],
    "detail-type": [
        "GuardDuty Finding"
    ],
    "detail": {
        "severity": [
            { "numeric": [ ">=", 4 ] }
        ]
    }
}

GuardDuty で定義されている重要度レベルを示しており数値と重要度は以下の通りです。
高: 7.0〜8.9 の範囲
中: 4.0〜6.9 の範囲
低: 0.1〜3.9 の範囲

ターゲットの種類は、「SNSトピック」 を選択します。


入力パス
{
    "severity": "$.detail.severity",
    "Account_ID": "$.detail.accountId",
    "Finding_ID": "$.detail.id",
    "Finding_Type": "$.detail.type",
    "region": "$.region",
    "Finding_description": "$.detail.description"
}


入力テンプレート
"AWS <Account_ID> has a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region."
"Finding Description:"
"<Finding_description>. "
"For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id=<Finding_ID>"  


ルートユーザー使用時に通知する(RootCredentialUsage)
{
    "source": ["aws.guardduty"],
    "detail": {
        "type": ["Policy:IAMUser/RootCredentialUsage"]
    }
}


通知テスト

GuardDutyの画面で、[設定]から「結果サンプルの生成」ボタンをクリックします。
10数件ほどメールが来ます。


参考

20180509 AWS Black Belt Online Seminar Amazon GuardDuty from Amazon Web Services Japan