Trend Vision One Container Securityでイメージスキャンしてみた

2023.12.13

こんにちは、シマです。
皆さんはTrend Vision Oneを使っていますか?前回に引き続き、今回もTrend Vision OneのContainer Securityについてです。Trend Vision One Container Security(以降V1CS)では、ECS Fargate環境という観点ではコンテナのイメージスキャン、ランタイム監視(ログ出力のみ)、ランタイム脆弱性検索の3つの機能があります。前回は、ランタイム監視(ログ出力のみ)について触れました。

今回は、他の機能のコンテナイメージスキャンについて触れていこうと思います。

仕組みについて

V1CSのコンテナイメージスキャンはTrend Micro Artifact Scanner (以降TMAS)という機能名で実装されています。TMASはCLIツールを任意の環境に実装して実行します。仕組みとしては、スキャン対象のコンテナイメージのSBOMを作成し、SaaSとして存在するバックエンドにSBOMを送信してスキャンをするようです。CLIツールとして実装するので、CI/CDパイプラインや開発時の任意タイミングでのスキャンが可能です。V1CSの機能としてもTMASによるデプロイ制御の機能がありますが、現時点(2023/12)では、ECS Fargate環境では利用することができません。

試してみた

今回は以下のような構成にしています。
EC2内にTMASを実装し、イメージスキャンを実施してみます。

1. TMASダウンロード

以下のページ内「ダウンロード/インストール」セクションに記載のURLより、環境に合わせたモジュールをダウンロード&解凍をします。

[ec2-user@ip-10-0-3-136 ~]$ wget https://cli.artifactscan.cloudone.trendmicro.com/tmas-cli/latest/tmas-cli_Linux_x86_64.tar.gz
[ec2-user@ip-10-0-3-136 ~]$ tar -zxvf tmas-cli_Linux_x86_64.tar.gz

解凍後の実行ファイル「tmas」は任意のディレクトリへ移動します。今回は「/home/ec2-user/tm/tmas」として移動しました。

2. APIキーの取得

Trend Vision Oneコンソールへログインし、左ペインから「Administration」→「API Keys」を選択します。表示された画面から「APIキーを追加」を選択します。

表示される画面から任意の名前、役割、有効期限を設定し、追加ボタンを押下します。

役割につきましては、「Run artifact scan」の権限がある役割であれば大丈夫です。
※今回はカスタムの役割として事前に作成した「Run artifact scan」権限のみの役割を使用しています。

表示されたAPIキーをコピーしておきます。

3. EC2の環境変数設定

「1. TMASダウンロード」で解凍したファイル「tmas」のPATHを追加と、「2. APIキーの取得」のAPIキーを「TMAS_API_KEY」として環境変数を設定します。

.bash_profile

export TMAS_API_KEY=*************
export PATH="/home/ec2-user/tm:$PATH"
(以下略)

「.bash_profile」を書き換えたので、再読み込みを行います。

[ec2-user@ip-10-0-3-136 ~]$ source .bash_profile

4. イメージスキャン

準備が終わりましたので早速イメージスキャンを実行してみます。docker imagesとしては以下のような状態になっています。

[ec2-user@ip-10-0-3-136 ~]$ docker images
REPOSITORY                                                           TAG       IMAGE ID       CREATED          SIZE
************.dkr.ecr.ap-northeast-1.amazonaws.com/test-20231213-02   latest    22405d799895   4 minutes ago    267MB
test-20231213-02                                                     latest    22405d799895   4 minutes ago    267MB
test-20231213-01                                                     latest    62dc4c637d8e   11 minutes ago   275MB

まずはローカルのtest-20231213-01に対して、イメージスキャンを実行します。

[ec2-user@ip-10-0-3-136 ~]$ tmas scan docker:test-20231213-01:latest --malwareScan -r ap-northeast-1
{
  "vulnerability": {
    "totalVulnCount": 14,
    "criticalCount": 0,
    "highCount": 5,
    "mediumCount": 9,
    "lowCount": 0,
(中略)...
  "malware": {
    "scanResult": 1,
    "findings": [
      {
        "layerDigest": "sha256:18ee9fd8db0d1b45350d1167a3368dab9405e68c4b54a0d428738b2bcd424f73",
        "layerDiffID": "sha256:18ee9fd8db0d1b45350d1167a3368dab9405e68c4b54a0d428738b2bcd424f73",
        "fileName": "eicar.com",
        "fileSize": 68,
        "fileSHA256": "sha256:275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f",
        "foundMalwares": [
          {
            "fileName": "eicar.com",
            "malwareName": "Eicar_test_file"
          }
        ]
      }
    ],
    "scanID": "ebb6b308-cff5-4cbd-9944-13ded9b7458a",
    "scannerVersion": "1.0.0-626"
  }
}

合計14件検出しました。イメージスキャン時にオプションとして「--malwareScan」を付けることで、不正プログラム検索の有効化ができます。今回の例ではEICARテストファイルを検出することができました。

イメージスキャン結果は割愛しますが、ECRのイメージを対象とする時は以下のコマンドを実施することでイメージスキャンが可能です。

[ec2-user@ip-10-0-3-136 ~]$ tmas scan registry:************.dkr.ecr.ap-northeast-1.amazonaws.com/test-20231213-02:latest --malwareScan -r ap-northeast-1

最後に

今回はV1CSのコンテナイメージスキャンであるTrend Micro Artifact Scannerについて触れてみました。CLIによる実装なので、任意タイミングでスキャン可能な点や、不正プログラム検索が可能な点に強みがあると感じました。

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