檢視次數:
如果趨勢科技 Artifact Scanner (TMAS) 報告了一個已被確定為誤報的弱點或秘密,或任何您想要暫不處理的發現,您可以通過在覆蓋配置文件中定義一個或多個規則來指示 TMAS 覆蓋這些發現(例如,~/tmas_overrides.yml)。目前不支持覆蓋惡意程式的發現。
您可以使用這些規則執行掃瞄,方法是使用 --override 標誌向 TMAS 提供覆蓋檔案的路徑。
tmas scan <artifact_to_scan> -VMS --override path/to/tmas_overrides.yml
覆寫檔案使用 YAML 結構,並在每個掃瞄類型下定義規則,例如 弱點機密。當為機密和弱點提供覆寫時,請在同一個 YAML 檔案中指定所有覆寫。

覆蓋弱點發現

弱點覆蓋被結構化為規則列表。每個規則可以指定以下條件的任意組合:
  • 弱點 ID(例如,"CVE-2008-4318"
  • 修復狀態(允許的值:"fixed""not-fixed""wont-fix""unknown"
  • 套件名稱(例如,"libcurl"
  • 套件版本(例如,「1.5.1」
  • 套件類型(例如,"npm""go-package""rpm",或任何出現在趨勢科技 Artifact Scanner JSON 弱點報告中的套件類型)
  • 包位置資訊(例如,"/usr/local/lib/node_modules/**";支援全域模式)
每條規則還必須附有說明,說明為什麼實施該規則(例如,「誤報」、「已緩解」、「未調用易受攻擊的包函數」等)。
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 報告中的 "Overridden" 部分呈現,而不是根據其嚴重性分類。
{
   "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"
如果覆蓋檔案中指定的任何正則表達式適用於該秘密發現,則該秘密發現將被覆蓋。
任何符合規則的秘密發現都會在 JSON 報告中以 overridden 顯示。
{
  "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,
          }
        }
      ]
    }
  }
}