Amazon Web Services ブログ

AWS Security HubとAmazon EventBridgeでセキュリティ問題の検出結果を関連付ける

本記事は Correlate security findings with AWS Security Hub and Amazon EventBridge を翻訳したものです。

本投稿は、Security Specialist Solutions ArchitectのMarshall Jones、およびSenior Security ConsultantのJonathan Nguyenにより寄稿されました。

このブログ記事では、単一のAWSリソースに関連する複数のAWSサービスからの特定の AWS Security Hub の検出結果を相互に関連付け、セキュリティインシデントが発生した可能性が高まったことを示すためのソリューションの展開についてご紹介します。

AWS Security Hub は、Amazon GuardDutyAmazon InspectorAmazon MacieAWS Firewall ManagerAWS Identity and Access Management(IAM)Access Analyzer、AWS Systems Manager Patch Managerなど、複数のAWSサービスから検出結果を取り込みます。各サービスからの結果は、AWS Security Finding Format(ASFF)に標準化されているため、標準化されたフォーマットで確認し、迅速に対策を講じることができます。AWS Security Hubを使用すると、すべてのセキュリティ問題の検出結果を単一のビューで確認することができ、特定の結果についてアラート、自動修復、サードパーティのインシデント管理システムへの取り込みを設定することができます。

Security Hubは膨大な数の統合情報や検出結果を取り込むことができますが、SIEM(Security Information and Event Management)ツールのように相関ルールを作成することはできません。しかし、EventBridgeを使用してそのようなルールを作成することができます。複数のAWSセキュリティサービスが1つのリソースに対して検出結果を生成した場合は、リスクが高まっている可能性があるため、詳細に調査することが重要です。環境によっては、AWS Security Hubの検出結果の初期数が多い場合がありますので、どの結果が早急な対応を必要とするか優先順位をつける必要があります。AWS Security Hubには、リソースやアカウント、その他多くの詳細によって結果をフィルタリングする機能が備わっています。この記事のソリューションでは、これらの相関関係のある検出結果のセットの1つが検出されると、新しい結果を作成し、Security Hub BatchImportFindings APIオペレーションを使用してAWS Security Hubにプッシュします。そして、これらの新しいセキュリティ・インシデント指向の検出結果に対して、チケットの切り出し、チャット、またはインシデント管理システムを通じた対処が可能になります。

前提条件

このソリューションでは、AWS アカウントで AWS Security Hub が有効になっている必要があります。また、AWS Security Hub に加えて、以下のサービスが有効化され、AWS Security Hub に統合されている必要があります。

  1. Amazon GuardDuty
  2. Amazon Macie
  3. Amazon Inspector
  4. Security Hub AWS Foundational Security Best Practices Standard

ソリューション概要

このソリューションでは、AWS Security Hub、Amazon EventBridgeAWS LambdaAmazon DynamoDBを組み合わせて使用し、単一のセキュリティインシデントの可能性が高いことを示す特定の検出結果を取り込み、関連付けていきます。これらの相関関係は、1つのAWSリソースに対する複数の特定のAWSセキュリティサービスの検出結果に着目しています。

次のリストは、このソリューションで検出される関連付けられた検出結果を示しています。それぞれの検出結果の関連付けにおける「説明」セクションでは、その相関関係のコンテキストを提供し、「改善」セクションでは、改善のための一般的な推奨事項を提供し、「防止/検出」セクションでは、相関関係内の1つまたは複数の検知を防止または検出するためのガイダンスを提供しています。提供されているコードでは、Cloud Development Kit(CDK)のコードとAWS Lambdaのコードを修正することで、ここに記載されている以外の相関関係を追加することもできます。ソリューションのワークフローのセクションでは、ソリューションの流れを分解しています。自動修復の実装を選択した場合、各発見の相関関係は、以下のAWS Security Hub Finding Format(ASFF)のフィールドで作成されます。

- Severity: CRITICAL
- ProductArn: arn:aws:securityhub:<REGION>:<AWS_ACCOUNT_ID>:product/<AWS_ACCOUNT_ID>/default

これらの相関性のある検出結果は、このソリューションの一部として作成されます。

  1. 同じAmazon Elastic Compute Cloud(Amazon EC2)インスタンスに関連する、Amazon GuardDuty のバックドア検出結果と、3つのAmazon Inspectorによる重要な共通脆弱性識別子(CVE)
    • 説明: Amazon Inspectorは、EC2インスタンスに少なくとも3つの重大なCVEを発見しました。CVE は、EC2 インスタンスが現在、脆弱性がある、または露出していることを示します。また、EC2インスタンスではバックドアの動作が実行されています。これら2つの検出結果の組み合わせは、重大なセキュリティインシデントのより強い兆候です。
    • 改善: EC2インスタンスを隔離し、標準プロトコルに従ってEC2インスタンスのトリアージを行い、インスタンスが侵害されているかどうかを確認することを推奨します。インスタンスが侵害された場合は、標準化されたインシデント対応プロセスに沿ったインスタンス侵害後の対応およびフォレンジックを実施します。最新の強化されたAmazon Machine Image(AMI)を使用してEC2インスタンスのバックアップを再デプロイするか、再デプロイされたEC2インスタンスにすべてのセキュリティ関連パッチを適用します。
    • 防止/検出: Amazon EC2インスタンスが重要なセキュリティアップデートを見逃すリスクを軽減または防止するために、Amazon Systems Manager Patch Manager を使用して、管理下のインスタンスに対するセキュリティ関連パッチのインストールを自動化することを検討してください。または、Amazon EC2 Image Builder を使用して、開発者に最新の強化されたAmazon Machine Images(AMI)を提供することができます。検出のためには、「DeprecationTime」というAMIのプロパティを設定することで、AMIが使用期限切れになる時期を示し、それに応じた対処をすることができます。
  2. 同じAmazon Simple Storage Service (Amazon S3) のバケットに対するAmazon Macieの機密データの検出Amazon GuardDutyのS3流出の検出
    • 説明: Amazon Macie は、Amazon S3 バケットをスキャンし、機密データに該当する可能性があることを発見しました。Amazon GuardDuty は、同じ Amazon S3 バケットに対して、流出の可能性があることを発見しました。これらの検出結果の組み合わせは、重大なリスクのある単一のセキュリティインシデントを示しています。
    • 改善: S3バケットに対してS3オブジェクトの読み取りを行っているソースIPおよび/またはIAMプリンシパルを確認することが推奨されます。ソースIPおよび/またはIAMプリンシパルがS3バケット内のセンシティブデータへのアクセスを許可されていない場合、S3の流出に対する攻撃後の計画について、標準化されたインシデント対応プロセスに従ってください。例えば、IAMプリンシパルの権限を制限したり、既存の認証情報や未承認のセッションを取り消したり、Amazon S3バケットポリシーを介してアクセスを制限したり、Amazon S3 Block Public Access 機能を使用したりすることができます。
    • 防止/検出: Amazon S3内の機密データが露出するリスクを緩和または防止するために、Amazon S3バケットが最小権限のバケットポリシーを使用しており、公開されていないことを確認してください。または、Amazon S3 Block Public Access 機能を使用することもできます。AWS環境を見直して、Amazon S3セキュリティのベストプラクティスに従っていることを確認します。検出のためには、Amazon Configを使用して、ロギングと暗号化が有効でない、または公開されているAmazon S3バケットを検出し、自動修復することができます
  3. AWS Security Hubは、パブリック IP を持ち、なおかつ制限されていないVPCセキュリティグループを持つ EC2 インスタンスを検出しています。Amazon GuardDutyは異常なネットワークトラフィックの挙動を検知しました。また、Amazon GuardDutyはブルートフォース攻撃を検知しました。
    • 説明: AWS Security Hubは、パブリックIPアドレスがアタッチされたEC2インスタンスと、ポート80と443以外のポートのトラフィックを許可するVPC セキュリティグループを検出しました。また、Amazon GuardDutyは、このEC2インスタンスに複数のブルートフォース試行があり、EC2インスタンスが以前はネットワーク通信に使用していなかった異常なポートでリモートホストと通信していると判断しました。これらの調査結果の相関関係は、より重要度の高いセキュリティインシデントを示しています。
    • 改善: EC2インスタンスを隔離し、標準プロトコルに従ってEC2インスタンスのトリアージを行い、インスタンスが侵害されているかどうかを確認することを推奨します。インスタンスが侵害された場合は、標準化されたインシデント対応プロセスに沿ったインスタンス侵害後の対応およびフォレンジックを実施します。
    • 防止/検出: AWS環境内でこれらのイベントが発生するリスクを軽減または防止するために、EC2インスタンスが公開用IPアドレスを必要としているかどうかを判断し、VPCセキュリティグループ(複数可)に必要なルールのみが設定されているかどうかを確認します。AWS環境を見直し、Amazon EC2のベストプラクティスに従っていることを確認します。検知のためには、AWS Firewall Managerを導入してVPCセキュリティグループを継続的に監査・制限することを検討します。

図1に示すソリューションのワークフローは以下の通りです。

  1. Security Hubは、統合されたAWSのセキュリティサービスからの検出結果を取り込みます。
  2. GuardDuty、Macie、Amazon Inspector、Security Hubのセキュリティ標準でのSecurity Hubの検出結果に基づいて、EventBridgeのルールが起動されます。
  3. EventBridgeルールはLambda関数を呼び出し、EventBridge経由で渡されたSecurity Hubの検出結果をDynamoDBのテーブルに格納し、さらなる分析を行います。
  4. 新しい検出結果がDynamoDBに格納された後、Dynamo Streamsにより別のLambda関数が起動され、またTTL(time-to-live)設定により30日以上前の検出結果エントリが削除されます。
  5. 2つ目のLambda関数は、DynamoDBテーブルの新しい検出結果のエントリに関連するリソースを調べます。このLambda関数は、同じリソースに関連付けられている特定のSecurity Hubの検出結果をチェックします。

    図1:ソリューションの流れを示すアーキテクチャ図

ソリューションのデプロイ

ソリューションのデプロイは、AWSマネジメントコンソールまたは AWS Cloud Development Kit (AWS CDK) で実施可能です。

AWS マネジメントコンソールを用いたソリューションのデプロイ方法

お客様のアカウントで、以下のLaunch Stackボタンを選択して、AWS CloudFormation テンプレートを起動します。CloudFormation スタックが完了するまで、約 10 分かかります。

Select the Launch Stack button to launch the template

AWS CDK を用いたソリューションのデプロイ方法

最新のコードはaws-securityのGitHubリポジトリにあり、サンプルコードへのcontributeも可能です。以下のコマンドで、AWS CDKを使用してソリューションをデプロイします。まず、CDKは環境を初期化し、AWS LambdaのアセットをAmazon S3にアップロードします。その後、ソリューションを自分のアカウントにデプロイします。<INSERT_AWS_ACCOUNT>にはアカウント番号を、<INSERT_REGION>にはソリューションのデプロイ先となるAWSリージョンを指定します。

cdk bootstrap aws://<INSERT_AWS_ACCOUNT>/<INSERT_REGION> 
cdk deploy

まとめ

このブログ記事では、Amazon EventBridge、AWS Lambda、Amazon DynamoDBなどのAWSサービスを使用して、複数の異なるAWSセキュリティサービスからAWS Security Hubの検出結果を関連付けさせるソリューションを紹介しました。このソリューションでは、セキュリティインシデントが発生した可能性が高いことを示す特定の検出結果のセットに優先順位をつけるフレームワークを提供し、セキュリティ対応の優先順位をつけて改善できるようにしています。

このブログ記事に関するフィードバックがある場合は、以下のコメント欄にコメントを送信してください。この投稿について質問がある場合は、AWS Security Hubフォーラムにスレッドを立ててください。

AWSセキュリティのハウツーコンテンツ、ニュース、機能発表をもっと知りたい場合は、こちらのTwitterをぜひフォローしてください。

翻訳は Solutions Architect の高野秀樹が担当しました。原文はこちらです。