トレンドマイクロArtifact Scanner (TMAS) は、アーティファクト (サポートされているアーティファクトを参照) に対して実行前の脆弱性および不正プログラムのスキャンを実施し、コンテナイメージのKubernetesなどの本番環境に到達する前に問題を特定して修正できるようにします。
Scanner は以下を検出できます。
  • 脆弱性: TMASはオープンソースの脆弱性スキャンを実行できます。脆弱性データベースはオープンソースの脆弱性フィードから最新の脅威データを受信します。TMASはサポートされているオペレーティングシステムとプログラミング言語の脆弱性を見つけることができます。
  • 不正プログラム: TMASは、最新のファイルレピュテーションおよびバリアント保護技術を使用して、トロイの木馬、ランサムウェア、スパイウェアなど、あらゆる種類の不正プログラムを検出できます。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をTrend Cloud Oneにアップロードして処理し、脆弱性レポートを返します。
TMASがスキャンできるアーティファクトの例は次のとおりです:
  • コンテナイメージ
  • バイナリファイル
  • ソースコードを含むディレクトリ
  • Open Container Initiative (OCI) アーカイブ

システム要件 親トピック

次の表は、ほとんどのアーティファクトをスキャンするための最低システム要件を示しています。
ハードウェア
最小
推奨
ストレージ
16GB
16GB
RAM
2 GB
4 GB
vCPU
1
1
対象のアーティファクトのサイズに対応するために十分なストレージ容量がシステムに必要です。イメージの場合、非圧縮のサイズに対して十分な容量がシステムに確保されている必要があります。
TMAS CLIのメモリ消費量は、アーティファクトに含まれるファイルの数に比例して増加します。一部のアーティファクトは、正常に完了するために追加のメモリを必要とする場合があります。メモリリソースとCPUコアを増やすことでパフォーマンスを向上させることができます。

ダウンロードしてインストール 親トピック

metadata.jsonを使用して、TMASの最新バージョンを確認してください。
次のアーキテクチャがサポートされています。

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

最適なパフォーマンスと最新機能へのアクセスを確保するために、以下の手順に従って定期的にTMASの最新バージョンにアップグレードしてください。

手順

  1. 更新されたバイナリをダウンロードしてください。最新バージョンのTMAS CLIをダウンロードするリンクは、ダウンロードとインストールに記載されています。
  2. 既存のTMASバイナリを更新されたTMASバイナリに置き換えることで、システムのバイナリパス設定を調整します。詳細については、セットアップに記載されているTMAS CLIをPATHに追加する手順を参照してください。

設定 親トピック

TMAS CLIは有効なAPIキーを環境変数に保存する必要があります。呼び出したいTrend Cloud Oneリージョンに関連付けられたAPIキーを環境変数TMAS_API_KEYとして追加します。次のようにしてください:
export TMAS_API_KEY=<your_cloud_one_api_key>
TMAS CLIは、Trend Vision Oneでも使用でき、シークレットスキャンなどの機能が強化されています。詳細については、Trend Vision OneのトレンドマイクロアーティファクトScannerについてを参照してください。
[Obtain a Trend Cloud One API key:]

手順

  1. Trend Cloud Oneコンソールにログインします。
  2. [Container Security][Scanners] に移動します。
  3. 次のいずれかのオプションで新しいAPIキーを作成してください:
    tmas-setup=7059b4c9-1dee-412a-821e-b10ef4f8fad5.png
    create-scanner-role-1=3a6b7398-7b76-484d-a415-fcbab968ab98.png
    • 次の図に従って、Scannerロールを使用して新しいAPIキーを構成します。
    create-scanner-role-2=8e8f6851-77dd-400c-a4a9-69bc8033a3e6.png

次に進む前に

APIキーを取得する際は、呼び出しているエンドポイントにAPIキーが関連付けられていることを確認してください。例えば、適切な認証を確保するために、us-1リージョンのエンドポイントを呼び出す予定がある場合は、us-1アカウントでAPIキーを作成してください。
これらのキーはTrend Cloud One Administrationコンソールから管理します。
[Add TMAS CLI to your PATH:]
export PATH="/path/to/tmas/binary/directory:$PATH"

一般の使用状況 親トピック

tmas [command] [flags]

使用可能なコマンド 親トピック

コマンド
説明
scan
アーティファクトを、脆弱性または不正プログラムのいずれかのスキャナーを含む任意の組み合わせでスキャンします。
version
現在のCLIバージョン (長い形式) を取得します。
help
ヘルプ情報を表示する。

グローバルフラグ 親トピック

Flag
説明
--version
現在のCLIバージョンを取得 (短縮)。
-v, --verbose
詳細度を上げる (-v = 情報, -vv = デバッグ)。
-h, --help
ヘルプ情報を表示する。

検索コマンドの使用法 親トピック

tmas scan [artifact] [flags]

検索コマンドフラグ 親トピック

Flag
説明
-p, --platform
マルチプラットフォームコンテナイメージソースのプラットフォームを指定します (オプション)。例えば、'linux/arm64'、'linux/arm64/v8'、'arm64'、'linux'。デフォルトは'linux/amd64'です。
-r, --region
Trend Cloud One サービス地域 (必須): [au-1 ca-1 de-1 gb-1 in-1 jp-1 sg-1 us-1]
-V, --vulnerabilities
脆弱性のスキャンを有効にする (オプション)。
-M, --malware
不正プログラムのスキャンを有効にする (オプション)。dockerdocker-archiveoci-archiveoci-dir、およびregistryのアーティファクトタイプをサポートします。
--saveSBOM
SBOMをローカルディレクトリに保存 (任意)。
-o, --override
脆弱性オーバーライドルールを含むファイルのファイルパスを指定してください (任意)。例えば、/path/to/tmas_overrides.yml
-v, --verbose
詳細度を上げる (-v = 情報, -vv = デバッグ)。
-h, --help
ヘルプ情報を表示する。
利用可能なScannersとそのフラグの詳細については、スキャンサブコマンドを参照してください。関連するScannerを有効にせずにScanner固有のフラグを使用してもエラーにはなりませんが、そのフラグは効果がありません。

サポートされているアーティファクト 親トピック

アーティファクト
説明
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
ディスク上のパスから直接読み取る (任意の単一ファイル)。

親トピック

アーティファクトの脆弱性と不正プログラムをスキャンしています 親トピック

tmas scan <artifact_to_scan> --region us-1 -V -M
または
tmas scan <artifact_to_scan> --region us-1 -VM
または
tmas scan <artifact_to_scan> --region us-1 --vulnerabilities --malware
scan コマンドを使用する場合は、少なくとも1つのScannerを有効にしてください。

必要なリージョンフラグを使用して、別のTrend Cloud Oneリージョンに切り替えます 親トピック

tmas scan docker:yourrepo/yourimage:tag --region au-1 -VM
別のリージョンに切り替える際は、環境変数として保存されているTMAS_API_KEYがそのTrend Cloud Oneリージョンに関連付けられていることを確認してください。不一致が発生すると、スキャンコマンドが403 ForbiddenまたはAPIKeyPlatformMismatchErrorエラーで失敗します。

リモートレジストリでイメージをスキャン 親トピック

tmas scan registry:yourrepo/yourimage:tag --region us-1 -VM
レジストリをアーティファクトソースとして使用するには、コンテナランタイムは必要ありません。さらに、レジストリアーティファクトソースからのスキャン結果は、Trend Cloud One Container Securityでのポリシー評価に使用できます。
プライベートRegistriesからイメージをスキャンするには、スキャンを試みる前にdocker loginなどのツールを使用してレジストリにログインする必要があります。TMASはDockerの認証動作に従い、Dockerの事前設定された資格情報を使用します。プライベートRegistriesからのイメージに対して不正プログラムスキャンを実行し、Docker credsStore (.docker/config.json) を使用する場合、.config/containers/registries.confファイルにcredential-helpers=<your credsStore>構成を追加します。例えば、Docker credsStoreがdesktopの場合、credential-helpers = ["desktop"]を追加します。Docker Hub上のプライベートRegistriesからのイメージに対して不正プログラムスキャンを実行する場合、https://docker.ioまたはdocker.ioのサーバ名でログインしてください。例えば、docker login docker.io

情報ログを有効にする 親トピック

tmas scan docker:yourrepo/yourimage:tag --region us-1 -VM -v

脆弱性分析に使用されるSBOMをディスクに保存 親トピック

tmas scan docker:yourrepo/yourimage:tag --region us-1 -VM --saveSBOM
--saveSBOMフラグが有効になっている場合、生成されたSBOMはスキャンのためにTrend Cloud Oneに送信される前にローカルディレクトリに保存されます。

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

このフラグを使用すると、複数のアーキテクチャのコンテナイメージをスキャンする際に使用するプラットフォームまたはアーキテクチャを指定できます。
tmas scan registry:yourrepo/yourimage:tag@sha256:<multiple-architecture-digest> --region us-1 -VM --platform=arm64
サポートされていないアーキテクチャのマルチアーキレジストリイメージのアーキテクチャを指定しようとすると、エラーが発生します。
アーキテクチャ固有のレジストリイメージをスキャンする場合、プラットフォームフラグは無視されます。
tmas scan docker:yourrepo/yourimage:tag@sha256:<arm64-specific-digest> --region us-1 -VM --platform=arm64
このフラグは、TMASを実行しているホストとは異なるアーキテクチャのDockerまたはPodmanデーモンからイメージをスキャンしようとする場合に必要です。

脆弱性の検出を上書き 親トピック

tmas scan <artifact_to_scan> --region us-1 -VM --override path/to/tmas_overrides.yml
前のフラグを使用して、無視したい誤検知やその他の脆弱性の検出結果を上書きします。詳細については、脆弱性の検出結果を上書きするを参照してください。
不正プログラムの検出結果の上書きは現在サポートされていません。

スキャンサブコマンド 親トピック

tmas scan [subcommand] [artifact] [flags]
サブコマンド
説明
vulnerabilities
アーティファクトの脆弱性スキャンを実行します。
malware
画像アーティファクトに対して不正プログラム検索を実行します。

脆弱性サブコマンド 親トピック

tmas scan vulnerabilities <artifact_to_scan>
Flag
説明
-p, --platform
マルチプラットフォームコンテナイメージソースのプラットフォームを指定します。例えば、'linux/arm64'、'linux/arm64/v8'、'arm64'、'linux'。デフォルトは'linux/amd64'です。
-r, --region
Trend Cloud One サービス地域 (必須): [au-1 ca-1 de-1 gb-1 in-1 jp-1 sg-1 us-1]
--saveSBOM
SBOMをローカルディレクトリに保存 (任意)。
-o, --override
脆弱性オーバーライドルールを含むファイルのファイルパスを指定します (任意)。例えば、/path/to/tmas_overrides.yml
-v, --verbose
詳細度を上げる (-v = 情報, -vv = デバッグ)。
-h, --help
ヘルプ情報を表示する。
脆弱性スキャンは、生成されたSBOMデータが10MB未満のアーティファクトに限定されます。

不正プログラムサブコマンド 親トピック

tmas scan malware <artifact_to_scan>
Flag
説明
-p, --platform
マルチプラットフォームコンテナイメージソースのプラットフォームを指定します。例えば、'linux/arm64'、'linux/arm64/v8'、'arm64'、'linux'。デフォルトは'linux/amd64'です。
-r, --region
Trend Cloud One サービス地域 (必須): [au-1 ca-1 de-1 gb-1 in-1 jp-1 sg-1 us-1]
-v, --verbose
詳細度を上げる (-v = 情報, -vv = デバッグ)。
-h, --help
ヘルプ情報を表示する。
次の点に注意してください。
  • 不正プログラムスキャンは、dockerdocker-archiveoci-archiveoci-dir、およびregistryのアーティファクトタイプのみをサポートします。
  • 単一ファイルの最大サイズ制限は1 GBです。スキャンは1 GBを超えるファイルをスキップします。
  • 単一レイヤーの最大サイズ制限は512 MBです。スキャンは512 MBを超えるレイヤーをスキップします。

プロキシ設定 親トピック

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

一時ファイルをクリーンアップ 親トピック

トレンドマイクロArtifact Scannerを使用してレジストリイメージに対して開始される各スキャンは、イメージをダウンロードして分析するために$TMPDIRの下に新しい一時ディレクトリを生成します。
バージョン1.35.0以降、このツールはスキャン実行後にそれらの一時ファイルを自動的に削除します。以前のバージョンで生成された一時ファイルや中断されたスキャンによって生成された一時ファイルをクリーンアップするには、以下のコマンド (またはそのプラットフォームに相当するコマンド) を自己判断で使用してください。
echo $TMPDIR
ls $TMPDIR | grep "stereoscope-"
cd $TMPDIR && rm -rf ./stereoscope-*
ls $TMPDIR | grep "stereoscope-"

脆弱性の検出を上書きする 親トピック

TMASが誤検知と判断された脆弱性や無視したいその他の検出結果を報告した場合、オーバーライド構成ファイル (例: ~/tmas_overrides.yml) に1つ以上のルールを定義することで、これらの検出結果をオーバーライドするようにTMASに指示できます。不正プログラムの検出結果のオーバーライドは現在サポートされていません。
これらのルールを使用してスキャンを実行するには、--override フラグを使用してオーバーライドファイルへのパスを TMAS に提供します。
tmas scan <artifact_to_scan> --region us-1 -VM --override path/to/tmas_overrides.yml
オーバーライドファイルはYAML構造を使用し、各スキャンタイプの下にvulnerabilitiesのようにルールが定義されています。
脆弱性のオーバーライドはRuleのリストとして構成されています。各Ruleは次の基準の任意の組み合わせを指定できます:
  • 脆弱性ID (例: "CVE-2008-4318")
  • 修正状態 (許可されている値: "fixed""not-fixed""wont-fix"、または"unknown")
  • パッケージ名 (例: "libcurl")
  • パッケージバージョン (例: "1.5.1")
  • パッケージタイプ (例: "npm""go-package""rpm"、またはTMAS JSON脆弱性レポートに表示される任意のパッケージタイプ)
  • パッケージの場所 (例: "/usr/local/lib/node_modules/**";グロブパターンをサポート)
各Ruleには、そのRuleが実装された理由を示す理由も付ける必要があります。例えば、誤検知、軽減、脆弱なパッケージ関数が呼び出されていない、などです。
vulnerabilities:
  # This is the full set of supported rule fields:
  - rule:
      vulnerability: CVE-0000-0000
      fixState: unknown
      package:
        name: libcurl
        version: 1.5.1
        type: npm
        location: "/usr/local/lib/node_modules/**"
    reason: A descriptor specifying why the override rule implemented
オーバーライドファイルに指定されたルールのいずれかが該当する場合、特定の脆弱性の検出結果はオーバーライドされます。ルール内のすべてのフィールドが脆弱性の検出結果に一致する場合にのみ、そのルールが検出結果に適用されると見なされます。
vulnerabilities:
  # Override vulnerability findings whose CVE-ID is CVE-0000-0000
  - rule:
      vulnerability: CVE-0000-0000
    reason: Not executed

  # Override vulnerability findings detected on libcurl version 1.5.1
  - rule:
      package:
        name: libcurl
        version: 1.5.1
    reason: Dev dependency
ルールに一致する脆弱性の発見は、その深刻度の下に分類されるのではなく、"Overridden"セクションのJSONレポートに表示されます。
{
  "vulnerabilities": { 
    "totalVulnCount": 1,
    "criticalCount": 0,
    "highCount": 0,
    "mediumCount": 0,
    "lowCount": 0,
    "negligibleCount": 0,
    "unknownCount": 0,
    "overriddenCount": 1,
    "findings": {
      "High": [],
      "Low": [],
      "Medium": [],
      "Negligible": [],
      "Overridden": [
        {
          "name": "libcurl",
          "type": "npm",
          "version": "1.5.1",
          "id": "CVE-0000-0000",
          "source": "https://nvd.nist.gov/vuln/detail/CVE-0000-0000",
          "severity": "Low",
          "fix": "not-fixed",
          "locations": ["/usr/local/lib/node_modules/**"],
          "cvssSummaries": [],
          "relatedVulnerabilities": []
        }
      ]
    }
  }
}