メインコンテンツまでスキップ
Sumo Logic Japanese

AWS Security Hub アプリケーションの知見の収集

このページでは、Hosted Collector と AWS S3 Source を追加して、AWS Security Hub Collector をデプロイする方法を説明します。

このページでは、Hosted Collector と AWS S3 Source を追加して、AWS Security Hub アプリケーション用の Collector をデプロイする方法を説明します。リンクをクリックして、各セクションに移動してください。

収集の概要 

Sumo Logic は、AWS Security Hub から知見を抽出するための CloudWatch イベント ルールと Lambda 関数 (SecurityHubCollector) を作成するためのサーバレス ソリューションを提供しています。

AWS サービス (AWS Security Hub) からの知見は、ほぼリアルタイムで CloudWatch イベントに配信されます。Lambda 関数は、これらのイベントを parse して S3 バケットに送信します。Sumo Logic は、Sumo Logic の Hosted Collector 上の S3 バケット Source を使用して知見データを収集します。Lambda 関数のセットアップは、サーバレス アプリケーション モデル (SAM) 仕様を使用して定義され、AWS Serverless Application Repository (サーバレス アプリケーション リポジトリ) で公開されます。

AWS_SecurityHub_Collection_Overview.png

ステップ 1: Hosted Collector と AWS S3 Source の追加

このセクションでは、AWS Security Hub アプリケーションのイベントを収集するために、ホストされる Sumo Logic Collector と AWS Source を追加する方法を説明します。

前提条件

AWS Source は、Sumo Logic の Hosted Collector に関連付けられている必要があります。S3 Source を作成する前に、使用する Sumo Logic の Hosted Collector を指定するか、次の手順で新しい Hosted Collector を作成します。

Hosted Collector と AWS S3 Source を追加するには、次の手順を実行します。
  1. AWS S3 バケットへのアクセス権を付与します

  2. AWS マネジメント コンソールを使用してログを有効にします

  3. 新しい Sumo Logic の Hosted Collector を作成するには、「Hosted Collector を設定する」の手順を実行します。

  4. S3 Source の AWS Source を Sumo Logic に追加し、[Advanced Options for Logs (ログの詳細オプション)] の [Timestamp Format (タイムスタンプの形式)] で [Specify a format (形式を指定)] をクリックして、次を入力します。

  • [Format (形式)]yyyy-MM-dd'T'HH:mm:ss.SSS'Z' と指定します。
  • [Timestamp locator (タイムスタンプ ロケータ)] を .*"UpdatedAt":"(.*)".* と指定します。

AWS_HostedCollector_Source-format.png

  1. [Add (追加)] をクリックします。

ステップ 2: AWS Security Hub アプリケーション Collector のデプロイ

AWS Security Hub アプリケーション Collector は、受信したイベントを変換して Sumo Logic に送信します。AWS Security Hub アプリケーションは、結果を分析しやすいように、事前定義済みの視覚的ダッシュボードに表示します。

AWS Security Hub アプリケーション Collector をデプロイするには、次の手順を実行します。
  1. ブラウザ ウィンドウを開いて、https://serverlessrepo.aws.amazon.com/applications の URL を入力します:
  2. [Serverless Application Repository (サーバレス アプリケーション リポジトリ)] で、sumologic を検索します。
  3. [Show apps that create custom IAM roles or resource policies (カスタム IAM ロールまたはリソース ポリシーを作成するアプリケーションを表示)] チェック ボックスをオンにします。
  4. sumologic-securityhub-collector リンクをクリックし、[Deploy (デプロイ)] をクリックします。
  5. [AWS Lambda] > [Functions (関数)] > [Application Settings (アプリケーション設定)] パネルで (S3 Source を定義したときに) 設定したバケットの S3SourceBucketName の名前を入力します。

    AWS_SecurityHub_ApplicationSettings.png
  6. ウィンドウの一番下までスクロールして [Deploy (デプロイ)] をクリックします。

ログの例

AWS Security Hub ログの例を以下に示します。

{"SchemaVersion":"2018-10-08","ProductArn":"arn:aws:securityhub:us-west- 2:123456789012:provider:private/default",
"AwsAccountId":"123456789012","Id":"test_finding_123456","GeneratorId": "TestDetector","Types":
["Software and Configuration Checks/Vulnerabilities/CVE"],"CreatedAt": "2018-11- 06T13:22:13.933Z",
"UpdatedAt":"2018-11-07T14:22:13.933Z","Severity":{"Product":10.0,"Normalized":30},"Title": 
"Unprotected port 22 found on instance i-01234567890abcefb","Description":"Test finding was found on instance i- 01234567890afbcefa", 
"Resources":[{"Type":"AwsEc2::Instance","Id":"arn:aws:ec2:us-west-2: 123456789012:instance:i- 01234567890abcefa"}],
"SourceUrl":"http://myfp.com/recommendations/dangerous_things_and_how_to_fix_them","Pr ocess":
{"Name":"My Process","Path":"/Process/Path"}, "RecordState":"ACTIVE", "Note":{"Text":"User1 will address this finding", 
"UpdatedBy":"User1", "UpdatedAt":"2018-11-03T13:22:13.933Z"}}

クエリの例

リソース タイプと重大度別の知見を検索するクエリ:

(_sourceCategory="securityhub_findings" OR _sourceCategory="Labs/AWS/SecurityHub")
| json  "AwsAccountId", "Id", "GeneratorId", "ProductArn", "CreatedAt", "UpdatedAt", "Resources",
 "Severity.Normalized", "SourceUrl",
"Types", "Compliance.Status" as aws_account_id, finding_id, generator_id, product_arn, created_at, 
 updated_at, resources, severity_normalized, sourceurl, finding_types, compliance_status nodrop
| parse regex field=finding_types "\"(?<finding_type>.*?)\"" multi
| parse regex field=resources "\"Type\":\"(?<resource_type>.*?)\"" multi
| parse regex field=resources "\"Id\":\"(?<resource_id>.*?)\"" multi
| parse regex field=product_arn "product/(?<finding_provider>.*?)$"
| min(severity_normalized), pct(severity_normalized,25), pct(severity_normalized,50), pct(severity_normalized,75), 
  max(severity_normalized) by resource_type