目次

Trend Micro Artifact Scanner (TMAS) について

Trend Micro Artifact Scanner (TMAS) は、トレンドマイクロのアーティファクトスキャナです。アーティファクト (サポートされているアーティファクトを参照) に対して実行前のスキャンを実行するため、コンテナイメージ用のKubernetesなど、本番環境に到達する前に問題を特定して修正できます。

TMASでは、オープンソースの脆弱性検索を実行できます。脆弱性データベースは、オープンソースの脆弱性フィードから最新の脅威データを受け取ります。Scannerは、次のオペレーティングシステムの脆弱性を検出できます。

  • Alpine

  • Amazon Linux

  • BusyBox
  • CentOS
  • Debian
  • Distroless
  • Oracle Linux
  • Red Hat (RHEL)
  • Ubuntu

Scannerは、次のプログラミング言語のコードの脆弱性を検出できます。

  • Ruby (Gems)
  • Java (JAR、WAR、EAR、JPI、HPI)
  • JavaScript (NPM、Yarn)
  • Python (Egg、Wheel、Poetry、requirements.txt/setup.pyファイル)
  • Dotnet (deps.json)
  • Golang (go.mod)
  • PHP (Composer)
  • Rust (Cargo)

TMASはCI/CDパイプラインにどのように適合しますか?

TMASは、継続的インテグレーション (CI) または継続的デリバリー (CD) パイプラインに統合できます。

たとえば、Jenkinsプロジェクトでは、 Dockerイメージを自動的にビルド、テストして、 Dockerレジストリにプッシュできます。イメージは、プッシュされるとすぐにオーケストレーション環境で実行できるようになります。オープンソースの脆弱性がイメージに存在する場合、イメージの実行時にリスクとなります。イメージは不変であることを目的としているため、イメージはクラスタにデプロイする前に検索する必要があります。

TMASは、CI/CDパイプライン内の アーティファクト をスキャンします。TMAS CLIをCI/CDパイプラインにインストールして、アーティファクトを本番環境にデプロイする前に脆弱性検索を実行できます。TMASは、検索対象のアーティファクトを取得し、ソフトウェア部品表 (SBOM) を生成します。次に、SBOMをCloud Oneにアップロードして処理し、脆弱性レポートを返します。

TMASで検索できるアーティファクトの例は次のとおりです。

  • コンテナイメージ

  • バイナリファイル

  • ソースコードを含むディレクトリ

  • OCIアーカイブ

ダウンロードして適用

metadata.json で最新バージョンを確認できます。

アーキテクチャ
Darwin_arm64 (MacOS - Apple Siliconチップセット)
Darwin_x86_64 (MacOS - Intelチップセット)
Linux_arm64
Linux_i386
Linux_x86_64
Windows_arm64
Windows_i386
Windows_x86_64

最新バージョンのTMAS CLIへのアップグレード

最適なパフォーマンスを確保し、最新の機能を利用するには、次の手順に従って、定期的にTMASを最新バージョンにアップグレードしてください。

  1. アップデートされたバイナリをダウンロードします。 Download and Installには、TMAS CLIの最新バージョンをダウンロードするためのリンクが用意されています。

  2. 既存のTMASバイナリをアップデートされたTMASバイナリで置き換えて、システムのバイナリパス設定を調整します。詳細については、 Set upで説明されている「Add TMAS CLI to your PATH」手順を参照してください。

TMASが最新バージョンに正常にアップデートされました。

設定

TMAS CLIでは、有効なAPIキーが環境変数に格納されている必要があります。 Vision One APIキーまたはCloud One APIキーのいずれかを使用できます。次のように、環境変数 TMAS_API_KEYとして呼び出すVision OneまたはCloud Oneリージョンに関連付けられたAPIキーを追加します。

export TMAS_API_KEY=<your_vision_one_api_key>
export TMAS_API_KEY=<your_cloud_one_api_key>

Vision One APIキーの取得:

  1. Vision Oneコンソール にログインします。

  2. 新しいVision One APIキーを作成します。

    • Trend Vision OneUser Roles に移動します。
    • [Run atrifact scan] 権限が有効になっている役割があることを確認します。そうでない場合は、[Add Role] をクリックして役割を作成します。

    アーティファクトの実行権限を有効にしたユーザー ロールを作成する {.zoom}

    アーティファクトの実行アクセス許可を有効にしたユーザー ロールの作成

    • Trend Vision One API Keysページ で、アーティファクト検索の実行権限を含む役割を使用して、新しいキーを直接設定します。 APIキーの有効期限を設定し、後で参照できるように記録します。

    APIキーの手動作成

APIキーを取得する際は、APIキーが呼び出すエンドポイントに関連付けられていることを確認してください。たとえば、適切な認証を行うために us-east-1 エンドポイントを呼び出す予定がある場合は、 us-east-1 リージョンのAPIキーを作成します。

これらのキーは、Trend Vision One APIキー ページで管理できます。

Cloud One APIキーの取得:

  1. Cloud Oneコンソールにログインします。
  2. Cloud One Container Security に移動します。
  3. 既存のDeep Security Smart Checkをすべて削除します。

    前回のScannerを削除した場合の処理を示す画面

  4. 次のいずれかのオプションを使用して、新しいAPIキーを作成します。

    APIキーの作成ボタンが表示された画面

    • Cloud One API Keysページで新しいキーを直接設定します。

    • Cloud Oneの管理ページに移動します。

    • Scannerの役割が存在することを確認します。そうでない場合は、次の図に従って、新しいScannerの役割を作成します。

    新しいScannerの役割の作成

    • 次の図のように、 Scannerの役割を使用して新しいAPIキーを設定します。

    APIキーの手動作成

これらのキーは、Cloud Oneの [管理] コンソール で管理します。

パスにTMAS CLIを追加:

export PATH="/path/to/tmas/binary/directory:$PATH"

一般の使用状況

tmas [command] [flags]

使用可能なコマンド

コマンド 説明
scan アーティファクトを検索する
version 現在のCLIバージョンの取得 (long)
help ヘルプ

グローバルフラグ

フラグ 説明
--version 現在のCLIバージョンの取得 (short)
-v, --verbose 詳細度を上げる (-v = 情報、-vv = デバッグ)
-h, --help ヘルプ

検索コマンドの使用法

tmas scan [artifact] [flags]

検索コマンドのフラグ

フラグ 説明
-p, --platform (文字列) マルチプラットフォームコンテナイメージソースのプラットフォーム指定子 ('linux/arm64'、'linux/arm64/v8'、'arm64'、'linux'など) (初期設定は'linux/amd64')
-r, --region (文字列) Vision Oneサービスリージョン: [ap-southeast-2 eu-central-1 ap-south-1 ap-northeast-1 ap-southeast-1 us-east-1]、 Cloud Oneサービスリージョン: au-1 ca-1 de-1 gb-1 in-1 jp-1 sg-1 us-1
--saveSBOM SBOMをローカルディレクトリに保存する (オプション)
--malwareScan docker docker-archive oci-archive oci-dir プログラム registry の有効化 (オプション)

サポートされるアーティファクト

アーティファクト 説明
docker:yourrepo/yourimage:tag Dockerデーモンのイメージを使用する
podman:yourrepo/yourimage:tag Podmanデーモンのイメージを使用する
docker-archive:path/to/yourimage.tar docker saveから作成されたアーカイブにディスクのtarballを使用する
oci-archive:path/to/yourimage.tar OCIアーカイブ用にディスクのtarballを使用する (Skopeoなどから)
oci-dir:path/to/yourimage ディスク上のパスからOCIレイアウトディレクトリを直接読み取る (Skopeoなどから)
singularity:path/to/yourimage.sif ディスク上のSingularity Image Format (SIF) コンテナから直接読み取る
registry:yourrepo/yourimage:tag レジストリからイメージを直接プルする (コンテナランタイムは不要)
dir:path/to/yourproject ディスク上のパスから直接読み取る (任意のディレクトリ)
file:path/to/yourproject/file ディスク上のパスから直接読み取る (任意の単一ファイル)

検索は、生成されたSBOMデータが10MB未満のアーティファクトに限定されます。 不正プログラム検索では、 docker docker-archive oci-archive oci-dir および registry のアーティファクトタイプのみがサポートされます。

アーティファクトを検索する:

tmas scan <artifact_to_scan>

リージョンフラグを使用して別のTrend Vision OneまたはTrend Cloud Oneリージョンに切り替える:

tmas scan docker:yourrepo/yourimage:tag --region=au-1

別のリージョンに切り替える場合は、環境変数として保存されている TMAS_API_KEYがそのTrend Vision OneまたはTrend Cloud Oneリージョンに関連付けられていることを確認してください。 不一致があると、検索コマンドが失敗し、403 ForbiddenまたはAPIKeyPlatformMismatchErrorエラーが発生します。

リモートレジストリ内のイメージを検索しています:

tmas scan registry:yourrepo/yourimage:tag

レジストリをアーティファクトソースとして使用する場合、コンテナランタイムは必要ありません。また、レジストリアーティファクトのソースからの検索結果は、Cloud One Container Security のポリシー評価に使用できます。

プライベートレジストリからイメージを検索するには、検索を実行する前に「docker login」などのツールを使用してレジストリにログインする必要があります。

情報モードを有効にする:

tmas scan docker:yourrepo/yourimage:tag -v

脆弱性分析に使用するSBOMのディスクへの保存:

tmas scan docker:yourrepo/yourimage:tag --saveSBOM

「--saveSBOM」フラグが有効な場合、生成されたSBOMは、検索のためにTrend Cloud Oneへ送信される前にローカルディレクトリに保存されます。

platformフラグを使用してコンテナイメージのプラットフォームまたはアーキテクチャを指定する:

このフラグを使用すると、複数アーキテクチャのコンテナイメージを検索するときに使用するプラットフォームまたはアーキテクチャを指定できます。

tmas scan registry:yourrepo/yourimage:tag@sha256:<multiple-architecture-digest> --platform=arm64

複数アーキテクチャのレジストリイメージに対して、サポートされていないアーキテクチャを指定しようとすると、エラーが発生します。 アーキテクチャ固有のレジストリイメージを検索する場合、プラットフォームフラグは無視されます。

tmas scan docker:yourrepo/yourimage:tag@sha256:<arm64-specific-digest> --platform=arm64

このフラグは、TMASを実行しているホストとは異なるアーキテクチャのDockerまたはPodmanデーモンからイメージを検索する場合に必要です。

不正プログラム検索の有効化:

tmas scan docker:yourrepo/yourimage:tag --malwareScan

--malwareScan フラグを有効にしてプライベートレジストリからイメージを検索する場合は、 docker loginなどのツールを使用してレジストリにログイン済みであることを確認してください。
docker credsStore (.docker/config.json) を使用している場合は、 credential-helpers=<your credsStore>.config/containers/registries.confに追加します。たとえば、docker credsStoreが desktopの場合は、次を追加します。

credential-helpers = ["desktop"]

プロキシ設定

CLIツールは、次のオプションの環境変数のセットからプロキシ設定をロードします。

環境変数 必須/オプション 説明
NO_PROXY オプション CLIツールのプロキシ設定をスキップする場合は、ホスト名のカンマ区切りリストにアーティファクト検索および不正プログラム検索エンドポイントを追加します。注: アスタリスク (「*」) のみがすべてのホストに一致します。
HTTP_PROXY オプション http://proxy.example.com
HTTPS_PROXY オプション https://proxy.example.com
プロキシサーバがSOCKS5プロキシの場合は、SOCKS5プロトコルを次のようにURLに指定する必要があります。
PROXY_USER オプション Proxy-Authorizationで使用される認証ヘッダのオプションのユーザ名
PROXY_PASS オプション Proxy-Authorizationで使用される認証ヘッダのオプションのパスワード PROXY_USER が設定されている場合にのみ使用されます。

一時ファイルのクリーンアップ

Trend Miro Artifact Scannerを使用してレジストリイメージに対して開始される各検索では、 $TEMPDIR の下に新しい一時ディレクトリが生成され、イメージがダウンロードおよび分析されます。

バージョン1.35.0以降では、検索の実行後にこれらの一時ファイルが自動的に削除されます。 以前のバージョンで生成された、または中断された検索によって生成された既存の一時ファイルをクリーンアップするには、必要に応じて次のコマンド (または同等のプラットフォーム) を使用します。

echo $TEMPDIR
ls $TEMPDIR | grep "stereoscope-"
cd $TMPDIR | rm -rf ./stereoscope-*
ls $TEMPDIR | grep "stereoscope-"