Lambdaのマイグレーション🔗
以下の手順は、次のインテグレーションで使用されているSecureworks® Taegis™ XDR Lambda関数の更新方法です。
- AWS CloudTrail
- AWS CloudWatch Logs
- Amazon Application Load Balancer (ALB)
- Amazon VPC Flow Logs
- AWS Web Application Firewall
- Cisco Umbrella
XDRからファイルをダウンロード🔗
- Taegis Menuからインテグレーション → クラウドAPIを選択します。
-
有効なLambdaデプロイメントのインテグレーションのダウンロードアイコンを選択します。

インテグレーションのダウンロードボタン -
CloudFormation共有リソースのダウンロードを選択し、
taegis-cloudformation-shared-resources.yamlとして保存します。 - CloudFormation Lambdaテンプレートのダウンロードを選択し、
taegis-cloudformation-lambda-template.yamlとして保存します。 - Lambdaのダウンロードを選択します。ファイル名は
taegis-lambda-amd64.zipとなります。 -
認証情報のダウンロードを選択します。

Lambdaインテグレーションファイルのダウンロード
Lambda実行ファイルおよびCloudFormationテンプレートをS3にアップロード🔗
-
対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/cloudformation)に、ロール、Lambda、シークレット、ポリシーの作成権限を持つアカウント、またはこれらの権限を持つロールを引き受けることができるロールでログインします。
-
ストレージセクションで、S3を選択します。
-
Lambda実行ファイルおよび必要に応じてCloudFormationテンプレートを格納するための新しいバケットを作成するか、既存のバケットを探します。バケットはパブリック、バージョン管理、暗号化である必要はありません。
-
Lambdaの
taegis-lambda-amd64.zipをバケットのルートにアップロードし、バケット名を控えておきます。 -
必要に応じて、
taegis-cloudformation-shared-resources.yamlおよびtaegis-cloudformation-lambda-template.yamlも同じバケットにアップロードします。ヒント
バケット名とキー(プレフィックスを含む)を控えておいてください。これらの識別子はスタック作成時に必要となります。
既存のLambdaデプロイメントが存在する各AWSリージョンで更新を実施🔗
Lambdaデプロイメントが存在する各AWSリージョンで共有リソーススタックを作成🔗
重要
共有リソーススタック(ステップ1~11)は、AWSリージョンごとに一度だけデプロイする必要があります。
- 対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/cloudformation)に、ロール、Lambda、シークレット、ポリシーの作成権限を持つアカウント、またはこれらの権限を持つロールを引き受けることができるロールでログインします。
- 管理とガバナンスセクションで、CloudFormationを選択します。
-
taegis-cloudformation-shared-resources.yamlテンプレートを使用して新しいスタックを作成するために、スタックの作成を選択します。注意
CloudFormationを選択した際、次の画像のようにCloudFormationスタックの一覧が表示される場合があります。その場合は、スタックの作成ドロップダウンを選択し、新しいリソース(標準)で作成を選択してください。

新しいスタックの作成 -
テンプレートの準備 セクションで、テンプレートの準備完了を選択します。
- テンプレートの指定 セクションで、Amazon S3 URLを選択するか、テンプレートファイルのアップロードを選択します。
-
Amazon S3 URLを選択した場合は、事前に取得したCloudFormationオブジェクトのURLをAmazon S3 URLフィールドに入力します。例:
https://cwl-poc.s3.amazonaws.com/taegis-cloudformation-shared-resources.yamlURLを見つけるには、S3サービスに移動し、
taegis-cloudformation-shared-resources.yamlファイルをアップロードしたS3バケットを開きます。CloudFormationテンプレートを選択し、URLのコピーをクリックします。
CloudFormation URLのコピー -
次へを選択します。
-
適切なスタック名を入力します。
注意
スタック名にはスペースを使用できません。
-
credentials.txtファイルの内容をSecretValueフィールドに入力します。 - XDRログインURLに基づいて、正しい
TaegisRegionを選択します。たとえば、https://ctpx.secureworks.com/login を使用している場合はctpx、https://foxtrot.taegis.secureworks.com/ を使用している場合はfoxtrotを選択します。 - 次へを選択します。
- スタックオプションの設定ページでは、デフォルトの選択と値をそのまま使用できます。次へを選択します。
- 確認と作成ページで、送信を選択します。
現在稼働中のLambdaスタックを更新🔗
- 対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/cloudformation)に、ロール、Lambda、シークレット、ポリシーの作成権限を持つアカウント、またはこれらの権限を持つロールを引き受けられるロールでログインします。
- 管理とガバナンスセクションでCloudFormationを選択します。
-
既存のXDR Lambda CloudFormationスタックのボタンを選択します。
注意
初回のLambdaデプロイ時、Lambda CloudFormationスタックの名前には任意の文字列が使用されている可能性があります。デフォルトのCloudFormationテンプレートの説明が、既存のLambda CloudFormationスタックを特定する際に役立つ場合があります。例えば、「このCloudFormationテンプレートは、S3バケットに保存された<integration name>ログ用のSecureWorks TDR Lambda関数をデプロイします。」のように記載されています。ここで<integration name>は「awscloudtrail」などです。
-
画面右上から更新を選択します。

Lambdaスタックの更新 -
現在のテンプレートを置き換えるを選択します。

既存Lambdaスタックの置き換え -
テンプレートファイルをアップロードし、
taegis-cloudformation-lambda-template.yamlを選択するか、テンプレートをS3バケットにアップロードしている場合はAmazon S3 URLオプションを使用します。 - 次へを選択します。
現在稼働中のLambdaスタックを更新🔗
-
ドロップダウンから
IntegrationTypeを選択します。これはNotificationBucket内のログオブジェクトの種類を示します。複数の種類がある場合や不明な場合は、genericを選択してください。
Lambdaスタックのインテグレーションタイプ更新 -
NotificationBucketフィールドは変更不要です。 SNSNotificationarnフィールドも変更不要ですが、今後SNS通知を使用したい場合のみ変更してください。NotificationBucketCustomerManagedKMSarnフィールドも変更不要ですが、NotificationBucket内のオブジェクトがKMSキーで暗号化されている場合は、そのKMSキーARNを追加できます。KMSキーのポリシーには「IAMユーザー権限の有効化」が必要です。そうでない場合は、Lambda ARNをKMSキーに追加できます。TaegisLambdaS3BucketNameフィールドには、Lambda実行ファイルおよびCloudFormationテンプレートをS3にアップロードセクションで指定したbucketNameを入力してください。LambdaEnvKMSarnフィールドは空欄のままで問題ありません。入力する場合は、KMSキーに「IAMユーザー権限の有効化」が必要です。- 残りのフィールドはデフォルトのままで問題ありません。
- 次へを選択します。
残りのスタックオプションを完了🔗
- スタックオプションの設定ページでデフォルトを受け入れ、次へをクリックします。
-
スタックの変更内容を確認します。
アクション、論理ID、リソースタイプ、置換の値が以下のように一致していることを確認してください。
CloudFormation変更セットプレビュー -
AWS CloudFormationがIAMリソースを作成する可能性があることを承認しますのチェックボックスを選択し、送信を選択します。
検証手順🔗
-
対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/)でAmazon S3(例:https://s3.console.aws.amazon.com/s3/home?region=us-east-2)に移動し、ログが保存されているS3バケット(Notification Bucket)を選択します。

S3バケットのプロパティ -
イベント通知セクションに移動します。Lambda関数が存在する場合は、それを選択して削除します。

S3イベント通知 -
Lambdaサービスに移動し、最近更新したLambda関数(例:lab-network-lambda-scwx-tdr-lambda-awscloudtrail)を選択し、S3トリガーを追加します。
-
Lambdaランタイム設定を確認します。
Runtimeの値は Amazon Linux 2上のカスタムランタイム である必要があります。
Lambdaランタイム設定の確認 -
AWS Lambdaログのテストを参照し、AWSコンソールでテストを設定してインテグレーション用のAWS Lambda関数が動作していることを確認します。
-
AWSコンソールでインストール済みのLambda関数に移動します。エラーがある場合は、エラーの修正を選択します。

Lambdaエラーの修正 -
AWS Lambdaログの表示を参照し、AWS Lambda関数によって生成されたログを表示し、正常にアップロードされていることを確認します。これは、バケットに新しいS3データが公開されていることを前提に、トリガーが動作していることを検証します。
{"level":"debug","time":"2023-11-15T19:27:19Z","message":"Uploading data to s3"}