本日は Securityhub にて違反を検知した時にEメールアドレスに通知する仕組みを作成します。 今回はSecurityhubのルールで「重要」「高」となっているものだけ通知するようにして、「中」「低」は通知しないようにします。
使用するリソースは Securityhub、Eventbridge、AWS SNS の三つです。
Securityhubでセキュリティチェックで違反を検知して、Eventbridge にて Securityhub の違反をトリガーにSNSを起動させるようにします。 今回は、SNS の通知先はEメールアドレスとします。
事前準備 – SNSの作成
まずは、Eメールに通知ができるよう AWS SNS の設定を行います。 SNS の画面に遷移し、「トピックの作成」ボタンを押して作成していきます。 今回 SNS のリソースの名前は「SecurityHub-notification-test」にします。 今回はスタンダード設定で名前のみ入力して作成します。
以下のように作成されました。このままでは通知できないので、サブスクリプションを設定して通知先を設定していきます。 以下の画面で「サブスクリプションの作成」ボタンを押して作成します。
以下の画面で「プロトコル」をEメールに設定し「エンドポイント」にメールアドレスを入力します。
そうすると、すぐに「認証してくださいメール」が届くので、conform subscription を押して認証します。 これで、メールが届くようになります。
Securityhubの有効化
SecurityHubの有効化をします。 Securityhubには以下のセキュリティ基準を設定できますが、今回は「AWS 基礎セキュリティのベストプラクティス」のみ有効化します。
・AWS 基礎セキュリティのベストプラクティス
・CIS AWS Foundations Benchmark
・NIST Special Publication 800-53
・PCI DSS
有効化した後に「AWS 基礎セキュリティのベストプラクティス」のルールを見ると225個のルールがすべて有効化になっています。 有効化したばかりなので、すべてデータなしになっています。
セキュリティチェックが走ると「失敗」「成功」などに移動されます。 セキュリティチャックの頻度は以下公式ドキュメントに記載の通り、最速で12時間なのでしばらくは反映されませんが、 変更トリガーチェックに関してはリソースの設定を変更すると即座にセキュリティチャックが入るので、後でセキュリティ違反をしたリソースを作成して動作確認を行います。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-schedule.html
セキュリティハブの設定は以上になります。
尚、今回は「重要」と「高」になっているルールだけを検知します。
Eventbridgeの設定
最後にEventbridgeの設定をしていきます。
Eventbridgeの画面に遷移をして「ルールの作成」ボタンを押します。 今回名前は「securityhub-notification」にして「次へ」を押すと次の画面に行きます。
どのイベントをトリガーにするのかをイベントパターンで設定します。 以下の画面のように左側のプルダウン可能な部分で設定することでイベントパターンが自動で生成されます。
今回設定するパラメータは以下になります。
イベントソース:AWSのサービス
AWSのサービス:Security Hub
特定のアカウントID:自分のアカウントID
特定のコンプライアンスステータス:FAILED(ルール違反した時に検知したいから)
特定の重要度のラベル:HIGH,CRITICAL(高と重要のルールのみを検知するため)
最後に通知先に事前準備したSNSを設定します。 あとは設定をいじらず、作成完了まで行きます。これで全ての設定は完了しました。
動作確認
今回は「セキュリティグループで特定のポートで無制限アクセスを設定しない」というルール EC2.18 に違反したセキュリティグループを作成します。 なお、EC2.18 ではデフォルト設定で80,443ポートは無制限アクセスで設定しても大丈夫なようになっています。これはルールの編集で無制限アクセスを許すポートを減らしたり、増やしたりできます。
以下のように22番ポートで「0.0.0.0/0」を設定し、どこからでもアクセスできるようなセキュリティグループを作ります。
セキュリティハブのEC2.18のルールの画面を見ると「FAILED」になったことを確認できました。 メールアドレスの方にもメールが届いたことを確認しました。
本記事は以上となります。最後までご覧いただきありがとうございます。
手順はたった2つ AWS Lambda環境変数の使い方!暗号化についても説明します