Trend Micro Artifact Scanner (TMAS) が脆弱性や秘密を報告し、それが誤検出であると判断された場合、または無視したい他の検出結果がある場合、TMASにこれらの検出結果を上書きするよう指示することができます。これは、上書き設定ファイル
(例:
~/tmas_overrides.yml) に1つ以上のルールを定義することで可能です。
注意不正プログラムの検出結果の上書きは現在サポートされていません。
|
これらのルールを使用してスキャンを実行するには、
--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"、"go-package"、"rpm"、またはTMAS 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
上書きファイルで指定されたルールのいずれかが検出結果に適用される場合、特定の脆弱性検出結果は上書きされます。ルールのすべてのフィールドが脆弱性結果で見つかったフィールドと一致する場合にのみ、ルールが結果に適用されたと見なされます。
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
ルールに一致する脆弱性検出結果は、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": []
}
]
}
}
}
シークレットの発見を上書きする
シークレットオーバーライドは複数のターゲットをサポートします:
- パス
- ルール
- 検出結果
各オーバーライドは、ターゲットを除外する正規表現パターンのリストです。各パターンのリストには、ルールを実装する理由(例えば、「誤検出」、「サードパーティの依存関係」など)も添付する必要があります。
secrets:
paths:
- patterns:
- node_modules
- .tox
reason: Third party dependencies
- patterns:
- .*_test.go
reason: Development resources
rules:
- patterns:
- generic-api-key
reason: A descriptor specifying why the override is implemented
findings:
- patterns:
- ".*example"
reason: "Used in testing"
与えられたシークレット検出は、オーバーライドファイルに指定された正規表現のいずれかが検出に適用される場合にオーバーライドされます。
ルールに一致する任意のシークレット発見は、
overriddenのJSONレポートに表示されます。{
"secrets": {
"totalFilesScanned": 3,
"unmitigatedFindingsCount": 0,
"overriddenFindingsCount": 1,
"findings": {
"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": "AKIAIRYLJVKMPEXAMPLE",
"location": {
"path": "/workdir/test-fixtures/aws_access_key",
"startLine": 1,
"endLine": 1,
"startColumn": 1,
"endColumn": 20,
}
}
]
}
}
}
