こんにちは。X(クロス)イノベーション本部 ソフトウェアデザインセンター セキュリティグループの耿です。
1年ほど前に書いたブログでは、組織横断的に Security Hub の利用をサポートするための準備について書きました。あれから1年が経ち、今は社内の数百アカウントの Security Hub 利用をサポートしています。この記事では、 Security Hub の社内展開の運用で利用しているツール群をご紹介します。
なお、Security Hub の利用サポートは社内の SOC という組織で行っています。 SOC の組織的な立ち位置や役割はこちらのブログでご紹介しています。
改めてまとめると、SOC は社内の各事業部のプロジェクトに対し、以下の2つのサービスを提供しています。
- 概要
- ①アカウント連携申請フォーム(Jira Service Management)
- ②アカウント管理台帳(Excel)
- ③アカウント連携招待ツール(Lambda関数)
- ④アカウント連携セットアップスクリプト(PowerShellスクリプト)
- ⑤アカウント連携チェックツール(Lambda関数)
- ⑥検出結果配信ツール (ECSバッチアプリ)
- ⑦脅威検知通知ツール(Lambda関数)
- ⑧アカウント連携解除ツール(PowerShellスクリプト)
- ⑨セキュリティコントロールの対応方針、 セキュリティ設定ガイド(Excel, PowerPoint)
- まとめ
概要
SOC のサービスの運用で使用しているツールなどを1つの図にまとめました。
各プロジェクトが使用している AWS アカウントの Security Hub から、SOC の AWS アカウントへクロスアカウント連携することで、 SOC 側で一括してセキュリティ設定やアラートを取得し、情報配信や監視を行う組織体制です。各ツールの詳細を図の番号順で見ていきます。
①アカウント連携申請フォーム(Jira Service Management)
SOC のサービスを利用するかどうかは、各プロジェクトの判断に委ねています。
SOC を利用する場合は社内向けの Jira Service Management を利用し、申請を受け付けています。申請の種類には AWS アカウントの追加、変更、解除が含まれます。
②アカウント管理台帳(Excel)
AWSアカウントIDとプロジェクトの連絡先などのマッピングを記載したアカウント管理台帳を用意し、プロジェクトから申請を受け付けたら更新します。
現在の申請数であれば特に運用負荷となっておらず、自動化するとなると申請者の権限管理が逆に難しそうなので、今のところ手動作業です。
③アカウント連携招待ツール(Lambda関数)
②のアカウント管理台帳を更新したら、SOC の AWS アカウントにある S3 バケットにファイルをアップロードします。
S3 バケットのイベント通知機能を利用し、ファイルがアップロードされると自動でLambda関数を起動し、ファイルの内容を読み取って、未招待のプロジェクトアカウントへ Security Hub の連携招待を送信します。
④アカウント連携セットアップスクリプト(PowerShellスクリプト)
Security Hub の招待を受けたメンバーアカウントではいくつかのセットアップ作業が必要です。
- Security Hub の有効化と、セキュリティ基準の有効化(まだ有効化していない場合)
- Security Hub 招待の承諾
- AWS Config の有効化(まだ有効化していない場合)
- GuardDuty の有効化(まだ有効化していない場合)
これらを社内のプロジェクト担当者に簡単に実施してもらえるように、CloudShell で流すだけで一連のセットアップが完了する PowerShell スクリプトを用意しています。
⑤アカウント連携チェックツール(Lambda関数)
プロジェクト担当者が④のスクリプトを実行するタイミングは任意です。そこで②のアカウント管理台帳や SOC アカウントの Security Hub などからデータを取得し、セットアップが完了していないアカウントがあるかどうか Lambda 関数で定期的にチェック、結果を SOC 担当のチャットに通知しています。
⑥検出結果配信ツール (ECSバッチアプリ)
プロジェクトアカウントに対して定期的に Security Hub の検出結果を Excel レポートとして配信するバッチアプリを ECS Fargate で実行します。
詳細は以前のブログでご説明しています。
⑦脅威検知通知ツール(Lambda関数)
クラウドアカウントに対する緊急度の高い脅威(今まさに侵入されている可能性がある、など)が発生した場合、⑥の検出結果のレポート配信のタイミングに関わらず、なるべく早い段階でプロジェクト担当者に通知されるべきです。Security Hub の連携を行うと、メンバーアカウントの GuardDuty アラートも SOC アカウントにニアリアルタイムで連携されるため、 EventBridge と Lambda 関数によるイベントドリブンで緊急度の高い GuardDuty アラートを SOC 担当のチャットに通知します。 SOC 担当はアラートの内容を確認し、プロジェクト担当者に連絡を取ります。
⑧アカウント連携解除ツール(PowerShellスクリプト)
プロジェクトアカウントを SOC サービスから解除する場合は、 SOC アカウントの CloudShell で実行することで連携を解除できる PowerShell スクリプトを利用します。プロジェクトアカウント側の設定(Security Hub の無効化)などはプロジェクト側の作業に委ねています。
⑨セキュリティコントロールの対応方針、 セキュリティ設定ガイド(Excel, PowerPoint)
Security Hub のアラートに対する理解は、プロジェクトによってまちまちです。プロジェクト側のアラートへの対応をサポートするため、 SOC 担当で Security Hub のコントロールを調査し、対応方針やノウハウの資料をプロジェクト向けに公開しています。
まとめ
ISID 社内で Security Hub の利用をサポートするためのツール群(資料、スクリプト含む)をざっとご紹介しました。
ただし今の形がベストだと思っているわけではなく、運用に必要なツールやその仕組みは、今後の SOC の成長に応じて変わってくるだろうなと思っています。
私たちは同じチームで働いてくれる仲間を大募集しています!たくさんのご応募をお待ちしています。
セキュリティエンジニア(セキュリティ設計)執筆:@kou.kinyo、レビュー:寺山 輝 (@terayama.akira)
(Shodoで執筆されました)