ログ収集の設定と GI GuardDuty アプリケーションのインストール
このページでは、ログ収集プロセスの概要と、ログ収集を設定して GI GuardDuty アプリケーションをインストールする方法を説明します。
プロセス概要
Sumo Logic は、AWS Serverless Application Repository (サーバレス アプリケーション リポジトリ) で公開されている AWS Serverless Application Model (SAM) 仕様に基づいた SAM アプリケーションを提供しています。この SAM デプロイは:
- Lambda 関数と関連コンポーネントを作成します。
- Collector と Sumo Logic の HTTP Source を作成します。
- Sumo Logic GI GuardDuty アプリケーションをインストールします。
このプロセスを完了すると、ログは次のように Sumo Logic に取り込まれます。
- Amazon GuardDuty は、新しい知見が生成されたり、既存の知見が再び発生したりした時点で、CloudWatch イベントに基づいて通知を送信します。
- CloudWatch イベント ルールにより、CloudWatch は Lambda 関数の Sumo CloudWatchEventFunction に GuardDuty の知見に関するイベントを送信できます。
- Lambda 関数は、ホストされる Sumo Logic の Hosted Collector 上の HTTP Source にイベントを送信します。
収集の設定とアプリケーションのデプロイ
このセクションでは、ログ収集用のアクセス キーとアクセス ID を生成して Amazon GuardDuty Bencharmark アプリケーションをデプロイする方法を説明します。
ステップ 1: アクセス キーとアクセス ID を生成する
このステップでは、Sumo Logic コンソールからアクセス キーとアクセス ID を再生する必要があります。
アクセス キーとアクセス ID を生成するには、以下の手順を実行します。
- この「Sumo Logic アクセス キー」ドキュメントの手順に従います。
- どちらの値も Sumo Logic GuardDuty Benchmark SAM アプリケーションをデプロイする際に必要となるため、書き留めておきます。
ステップ 2: Sumo Logic GI GuardDuty SAM アプリケーションをデプロイする
このステップでは、「プロセス概要」で説明した AWS リソースを作成する SAM アプリケーションをデプロイします。
Sumo Logic GuardDuty Benchmark SAM アプリケーションをデプロイするには、以下の手順を実行します。
- https://serverlessrepo.aws.amazon.com/applications にアクセスします。
- sumologic-guardduty-benchmark を探して、表示されたアプリケーション リンクをクリックします。
- Sumo アプリケーションのページが表示されたら [Deploy (デプロイ)] をクリックします。
- [Configure application parameters (アプリケーション パラメータの設定)] パネル
-
[Configure application parameters (アプリケーション パラメータの設定)] パネルに以下のパラメータを入力します。
-
Access ID (アクセス ID) (必須): ステップ 1 で生成した Sumo Logic アクセス ID。
-
Access Key (アクセス キー) (必須): ステップ 1 で生成した Sumo Logic アクセス キー。
-
Deployment Name (デプロイ名) (必須): デプロイ名 (ドキュメントに従って小文字の環境名)。
-
Collector Name (Collector 名): Sumo Logic で作成される Hosted Collector の名前を入力します。
-
Source Name (Source 名): Collector で作成される HTTP Source の名前を入力します。
-
Source Category Name (Source Category 名): 検索クエリで使用する Source Category の名前を入力します。
-
- [Deploy (デプロイ)] をクリックします。
- デプロイが成功したら、[View CloudFormation Stack (CloudFormation スタックを表示)] をクリックします。
-
[Outputs (出力)] セクションで、Sumo Logic コンソールの [Personal (個人用)] フォルダで検索するアプリケーション フォルダ名をコピーします。
ログ メッセージのサンプル
{ "schemaVersion": "2.0", "accountId": "656575676767", "region": "us-east-1", "partition": "aws", "id": "1cb6b9059fa3c8cbb682a9a2501bfb13", "arn": "arn:aws:guardduty:us-east-1:656575676767:detector/46554yhtu78yuhh5676777787hy06767/finding/1cb6b9059fa3c8cbb682a9a2501bfb13", "type": "Trojan:EC2/BlackholeTraffic", "resource": { "resourceType": "Instance", "instanceDetails": { "instanceId": "i-99999999", "instanceType": "m3.xlarge", "launchTime": "2016-08-02T02:05:06Z", "platform": null, "productCodes": [ { "productCodeId": "GeneratedFindingProductCodeId", "productCodeType": "GeneratedFindingProductCodeType" } ], "iamInstanceProfile": { "arn": "GeneratedFindingInstanceProfileArn", "id": "GeneratedFindingInstanceProfileId" }, "networkInterfaces": [ { "networkInterfaceId": "eni-bfcffe88", "privateIpAddresses": [ { "privateDnsName": "GeneratedFindingPrivateName", "privateIpAddress": "10.0.0.1" } ], "subnetId": "GeneratedFindingSubnetId", "vpcId": "GeneratedFindingVPCId", "privateDnsName": "GeneratedFindingPrivateDnsName", "securityGroups": [ { "groupName": "GeneratedFindingSecurityGroupName", "groupId": "GeneratedFindingSecurityId" } ], "publicIp": "198.51.100.0", "ipv6Addresses": [], "publicDnsName": "GeneratedFindingPublicDNSName", "privateIpAddress": "10.0.0.1" } ], "tags": [ { "value": "GeneratedFindingInstaceValue1", "key": "GeneratedFindingInstaceTag1" }, { "value": "GeneratedFindingInstaceTagValue2", "key": "GeneratedFindingInstaceTag2" }, {
クエリのサンプル
次のクエリは、[GI GuardDuty: Your Company v. Global Baseline (GI GuardDuty: 会社とグローバル ベースライン)] ダッシュボードの脅威スコアの傾向線から引用されたものです。
_sourceCategory=GIS/test/guardduty | json "accountId", "arn", "type","service.detectorId","service.action","severity","title","description","region" nodrop | json "type", "severity" | parse field=type "*:*/*" as threatpurpose, resource, threatname | toInt(severity) as severity | count by resource, threatname, severity | infer _category=guardduty _model=trendline n=7 | (100.0 - (round(score * 10000) / 100)) as score // Convert to time chart | _timestamp as _timeslice | fields - _timestamp | max(score) as score by _timeslice | sort by _timeslice asc