見出し画像

AWS Security LakeのログをSplunkに取り込んでみた(前編)


はじめに


こんにちは!Takahashiです。
SHIFTでセキュリティエンジニアをしています。

ところで、AWSのセキュリティログ活用をできていますでしょうか。
AWSのログは、例えばCloudTrailやSecurityHub、VPCフローログなどサービスごとにログが分かれており、グローバルなサービスでなければリージョンごとにも分かれています。更にOrganizationsで複数アカウントを管理していた場合は、それぞれのアカウントに対しても設定が必要(※1)なため、サービス×リージョン×アカウントと規模が大きくなるにつれて導入・維持管理のハードルというのは高いのが課題でした。

これらのログを、SIEM(Security Information and Event Management)基盤であるSplunkに取り込んで分析・検知を行っていく際も、基本的にはサービス×リージョン×アカウントごとにログの取込設定を行う必要があり、かなり大変な作業となります。

Security Lakeを使うことのメリット


そんなお悩みを解決してくれるのが「AWS Security Lake」というサービスで、CloudTrail、SecurityHub、VPCフローログ、DNSログなどこれまで独立して管理されていたログを1つのサービスで統合管理することが可能になりました。Organizationsを使っているマルチアカウント環境においても、1つのアカウント上のS3バケットにログを集約することができます!

すごくSIEMと相性が良さそうなサービスで、2023 年5月30日にサービスがリリースされていますが、これまで一度も使ったことがなかったため、今回はAWS Security Lakeで集めたログをSplunkに取り込んでみたいと思います!

検証した構成としては一部省略している部分はありますが、以下の図の通りです。

システム構成図

前提


  • AWS Security Lakeは有効化されているものとします。手順については公式ドキュメント等をご参照ください。

公式ドキュメント

  • Splunk Add-on for AWSが未導入の場合はSplunk環境に事前に導入してください。

Splunk Add-on for AWS

設定の流れ


以下の設定の流れで進めていきます。
まずはAWS上でSecurity Lakeのサブスクライバーを設定してログの更新をSQSで管理できるようにします。
次に、SplunkのAWS Add-onで使用するIAMユーザを作成してアクセスキーを発行し、それをSplunkに設定するのが大まかな手順です。

  1. サブスクライバーの設定

  2. IAMユーザの作成

  3. アクセスキーの発行

  4. IAMロールの編集

  5. Splunk Add-on for AWSのアカウント設定

  6. Splunk Add-on for AWSのログ取込設定

  7. ログの取込確認

1. サブスクライバーの設定

Security Lake >サブスクライバー>サブスクライバーを作成する をクリックします。

以下の通り入力します。

  • サブスクライバー名:[任意の名前]

  • 説明:[任意の文字列]

  • アカウントID:[Security Lakeが動作しているアカウントID]

  • 外部ID:[Splunk連携で直接使用するわけではないが、なにか入力が必要なので適当な文字列を入力]

取り込むソース:[今回は"すべてのログとイベントのソース"を選択します(実際は用途に合わせて選択してください)]
データアクセス:S3
S3通知タイプ:SQSキュー

作成 をクリックするとサブスクライバーが作成されます。
次に、SQSキューを確認します。サブスクライバーが作成されるとSQSメインキューおよびDLQが自動で作成されます。
後ほど使用するためメインキュー名を控えておきます。

2. IAMユーザの作成

Splunk Add-on for AWSで使用するためのIAMユーザを作成します(※2)。今回は以下のようなユーザを作成しました。sts:AssumeRole以外の権限は持たせていません。

  • ユーザ名:splunk-add-on

  • 許可ポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*"
        }
    ]
}

3. アクセスキーの発行

作成したsplunk-add-onユーザのアクセスキーを発行します(※3)。AWSの外部で実行されるアプリケーションのユースケースを選択します。(アクセスキーの取り扱いには十分ご注意ください)

発行したアクセスキーの情報(csv)を保存しておきます。

4. IAMロールの編集

IAM>ロール から「AmazonSecurityLake-XXXXXXX-XXXXX-XXXXXX」という名前のポリシーがすでに存在するので、それを編集します。(XXXの部分は環境によって異なる値になります)

信頼ポリシーを編集からポリシーを以下の通り書き換えます。

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::[アカウントID]:user/[作成したIAMユーザ名]"
			},
			"Action": "sts:AssumeRole"
		}
	]
}

後ほど本ロールのARNを使用するため控えておいてください。

5. Splunk Add-on for AWSの設定

以降はSplunk側での作業になります。Splunk環境にログインして進めます。(※4)

App>Splunk Add-on for AWS>設定>Account から追加をクリックします。

以下の通り設定します。入力後、追加をクリックします。

  • Name:[任意の名前]

  • Key ID:[AWSで作成したアクセスキー]

  • Secret Key:[AWSで作成したアクセスキーのシークレット]

  • Region Category:Global

App>Splunk Add-on for AWS>設定>IAM Role から追加をクリックします。

以下の通り設定します。入力後、追加をクリックします。

  • Name:[任意の名前]

  • IAM Role ARN:[手順4でIAMロールの編集で編集したロールのARNを入力]

6. Splunk Add-on for AWSのログ取込設定

App>Splunk Add-on for AWS>入力>Create New Input からSecurity Lake を選択してください。その後、SQS-Based S3をクリックします。(※5)

以下の通り設定します。入力後、追加をクリックします。

  • Name:[任意の名前]

  • AWS Account:[手順5で設定したアカウントを選択]

  • Assume Role:[手順5で設定したロールを選択]

  • AWS Region:[サブスクライバーが設定されているリージョン]

  • SQS Queue Name:[サブスクライバーが設定されているリージョンのSQSメインキュー名]※

  • SQS Batch Size:[任意の値を使用(デフォルトは10)]

  • Index:[任意のindex]

※リージョンを選択した後にSQS Queue Nameが自動取得できないとエラーが出る場合があります。おそらくIAMユーザ、ロールの権限周りの影響(最小の権限に絞っているため)ですが、手動で入力はできるためエラーは無視してください。

7. ログの取込確認

5~10分程度経過後に、ログの取込確認を行います。設定したindexおよびsourcetypeでサーチしてみます。

ログの取込が確認できました! category_nameというフィールドでログの大まかな種別が判断できます。

  • Application Activity:API実行に関するログ(CloudTrail)

  • Network Activity:VPCでフローログ、Route53のログ

  • Identity & Access Management:IAMアクティビティ(CloudTrail)

  • Findings:SecurityHubの検知

いかがでしたか。複数の種類およびマルチアカウント、リージョンのセキュリティ関連ログを1つの取込設定で簡単にSplunkにログを取り込めるのはかなり便利ではないでしょうか。

次回、後編ではもう少し詳しくログの中身を見ていきたいと思います。

参考



執筆者プロフィール: Yutaka Takahashi
ネットワーク、インフラ、SOC運用等を経験し現在はセキュリティエンジニアとして業務に従事。
主にSIEM(Splunk)、PAM、AWSの案件を中心に担当。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplushMaximalfocus