トレンドマイクロ Artifact Scanner (TMAS) が脆弱性や秘密を報告し、それが誤検出または無視したい他の発見であると判断された場合、オーバーライド構成ファイル(例:
~/tmas_overrides.yml
)に1つ以上のルールを定義することで、TMASにこれらの発見をオーバーライドするよう指示できます。不正プログラムの発見のオーバーライドは現時点ではサポートされていません。これらのルールを使用してスキャンを実行するには、
--override
フラグを使用して TMAS にオーバーライドファイルへのパスを提供します。tmas scan <artifact_to_scan> -VMS --override path/to/tmas_overrides.yml
上書きファイルは、
vulnerabilities
や secrets
などの各スキャンタイプの下に定義されたルールを持つ YAML 構造を使用します。secrets と vulnerabilities の両方に対して上書きを提供する場合、すべての上書きを同じ
YAML ファイルに指定します。脆弱性検出のオーバーライド
脆弱性のオーバーライドは、ルールのリストとして構成されています。各ルールは、次の基準の任意の組み合わせを指定できます
- 脆弱性ID (例:
「CVE-2008-4318」
) - 修正状態 (使用可能な値:
「修正済み」
,「未修正」
,「修正なし」
、または「不明」
) - パッケージ名 (例:
「libcurl」
) - パッケージのバージョン (例:
「1.5.1」
) - パッケージの種類 (例:
"npm"
,「ゴーパッケージ」
,"rpm"
、またはトレンドマイクロ Artifact Scanner JSON脆弱性レポートに表示されるパッケージタイプ) - パッケージの場所 (例:
"/usr/local/lib/node_modules/**"
; globパターンをサポート)
各ルールには、そのルールが実装された理由を示す必要があります (たとえば、「誤検出」、「軽減」、「脆弱性のあるパッケージ関数が呼び出されていない」など)。
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
上書きファイルで指定されたルールのいずれかが検出結果に適用される場合、特定の脆弱性検出結果は上書きされます。ルールのすべてのフィールドが脆弱性結果で見つかったフィールドと一致する場合にのみ、ルールが結果に適用されたと見なされます。
脆弱性: # CVE-IDがCVE-0000-0000の脆弱性検出結果をオーバーライド - ルール: 脆弱性: CVE-0000-0000理由: 未実行 # libcurlバージョン1.5.1で検出された脆弱性検出をオーバーライド - ルール: パッケージ: 名前: libcurlバージョン: 1.5.1 reason: Dev依存関係
ルールに一致する脆弱性検出結果は、JSONレポートの
「オーバーライド」
セクションではなく、重要度で分類されます。
{ "vulnerabilities": { "totalVulnCount": 1, "criticalCount": 0, "highCount": 0, "mediumCount": 0, "lowCount": 0, "negligibleCount": 0, "unknownCount": 0, "overriddenCount": 1, "findings": { "高": [], "低": [], "中": [], "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": "低", "fix": "not-fixed", "locations": ["/usr/local/lib/node_modules/**"], "cvssSummaries": [], "relatedVulnerabilities": [] } ] } } }
シークレットの発見を上書きする
シークレットオーバーライドは複数のターゲットをサポートします:
- パス
- ルール
- 検出結果
各オーバーライドは、ターゲットを除外する正規表現パターンのリストです。各パターンのリストには、ルールを実装する理由(例えば、「誤検出」、「サードパーティの依存関係」など)も添付する必要があります。
secrets: paths: - patterns: - node_modules - .tox reason: サードパーティの依存関係 - patterns: - .*_test.go reason: 開発リソース rules: - patterns: - generic_api_key reason: オーバーライドが実装される理由を指定する記述 findings: - patterns: - ".*example" reason: "テストで使用"
与えられたシークレット検出は、オーバーライドファイルに指定された正規表現のいずれかが検出に適用される場合にオーバーライドされます。
ルールに一致する任意のシークレット発見は、
overridden
のJSONレポートに表示されます。{ "secrets": { "totalFilesScanned": 3, "unmitigatedFindingsCount": 0, "overriddenFindingsCount": 1, "findings": { "overridden": [ { "ruleID": "aws-access-token", "description": "AWS認証情報を示すパターンが特定されました。これにより、AWSプラットフォーム上のクラウドリソースへの不正アクセスやデータ漏洩のリスクがあります。", "secret": "AKIAIRYLJVKMPEXAMPLE", "location": { "path": "/workdir/test-fixtures/aws_access_key", "startLine": 1, "endLine": 1, "startColumn": 1, "endColumn": 20, } } ] } } }