Trend Vision One Container Securityのシークレットスキャンの除外設定方法について

Trend Vision One Container Securityのシークレットスキャンの除外設定方法について

Clock Icon2024.07.11

こんにちは、シマです。
皆さんはTrend Vision Oneを使っていますか?先日、Trend Vision OneのContainer Security(以降V1CS)にあるシークレットスキャンについて記事にしました。

https://dev.classmethod.jp/articles/202407-v1-cs-artifactscanner-01/

こういったスキャンをする系の製品においては、意図して設定しているファイルも検知してしまうので、除外設定をしたくなりますよね。今回は、先日記事にしたV1CSのシークレットスキャンにおいて、除外設定を実施していきます。

環境

先日の記事と同様に、環境構築方法については過去のブログをご確認ください。

https://dev.classmethod.jp/articles/202312-v1-cs-artifactscanner-01/

試してみた

早速イメージスキャンを実行してみます。docker imagesとしては以下のような状態になっており、イメージ内にテスト用に作成したAWSのシークレットキー、アクセスキーを含むファイルを配置しています。

$ docker images
REPOSITORY         TAG       IMAGE ID       CREATED          SIZE
test-20240711-01   latest    7450a2ba1758   8 seconds ago   144MB

上記のイメージに対して、シークレットスキャンを実行すると、結果が以下のようになります。

$ tmas scan secrets docker:test-20240708-01:latest -r ap-northeast-1
Scan Complete

{
  "secrets": {
    "totalFilesScanned": 3307,
    "unmitigatedFindingsCount": 7,
    "overriddenFindingsCount": 0,
    "findings": {
      "unmitigated": [
        {
          "ruleID": "aws-access-token",
          "description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.",
          "secret": "XXXXXXXXXXXXXXXXXXXX",
          "location": {
            "layerID": "sha256:4ac688645f02a47a7c3a675f9eadxxxxxfcf8ee7af9aa4cfcc770d9ff839b61",
            "path": "/test/credentials",
            "startLine": 2,
            "endLine": 2,
            "startColumn": 22,
            "endColumn": 41
          }
        }
(以下略)

この検知されたファイルを除外するためには、YAML形式で除外設定ファイルを作成し、そのファイルをスキャン時の引数として与える必要があります。テスト用に作成したファイルを除外設定とするために、以下のような内容で作成しました。

tmas_overrides.yml
secrets:
  paths:
  - patterns:
    - ^/test/credentials$
    reason: test

今回はファイルパスで除外設定をしているため「paths」として与えています。「patterns」として与える内容に正規表現が使えるのは良いですね。この他にもruleIDを与える「rules」等もありますが、今回の例では「aws-access-token」を与えてしまうと、AWSアクセストークン全てが除外設定になってしまうため、個人的にはあまりオススメしません。除外設定ファイルの詳細については以下をご確認ください。

https://docs.trendmicro.com/ja-jp/documentation/article/trend-vision-one-artifactscanneroverr

上記のファイルをオプション「--override」として与え、イメージスキャンを実行します。

$ tmas scan secrets docker:test-20240711-01:latest -r ap-northeast-1 --override tmas_overrides.yml
Scan Complete

{
  "secrets": {
    "totalFilesScanned": 3307,
    "unmitigatedFindingsCount": 6,
    "overriddenFindingsCount": 1,
    "findings": {
      "unmitigated": [
      (中略)
      ],
      "overridden": [
        {
          "ruleID": "aws-access-token",
          "description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.",
          "secret": "XXXXXXXXXXXXXXXXXXXX",
          "location": {
            "layerID": "sha256:4ac688645f02a47a7c3a675f9eadxxxxxfcf8ee7af9aa4cfcc770d9ff839b61",
            "path": "/test/credentials",
            "startLine": 2,
            "endLine": 2,
            "startColumn": 22,
            "endColumn": 41
          }
        }
      ]
    }
  }
}

検知結果として除外設定をした対象は「unmitigated」ではなく「overridden」として出力されており、正しく除外設定ができていることが確認できました。

最後に

今回はV1CSのシークレットスキャンにおいて、除外設定をしてみました。

本記事がどなたかのお役に立てれば幸いです。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.