ビュー:
トレンドマイクロ Artifact Scanner (TMAS) が脆弱性や秘密を報告し、それが誤検出または無視したい他の発見であると判断された場合、オーバーライド構成ファイル(例:~/tmas_overrides.yml)に1つ以上のルールを定義することで、TMASにこれらの発見をオーバーライドするよう指示できます。不正プログラムの発見のオーバーライドは現時点ではサポートされていません。
これらのルールを使用してスキャンを実行するには、--override フラグを使用して TMAS にオーバーライドファイルへのパスを提供します。
tmas scan <artifact_to_scan> -VMS --override path/to/tmas_overrides.yml
上書きファイルは、vulnerabilitiessecrets などの各スキャンタイプの下に定義されたルールを持つ 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
上書きファイルで指定されたルールのいずれかが検出結果に適用される場合、特定の脆弱性検出結果は上書きされます。ルールのすべてのフィールドが脆弱性結果で見つかったフィールドと一致する場合にのみ、ルールが結果に適用されたと見なされます。
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,
          }
        }
      ]
    }
  }
}