Ansichten:
Wenn der Trend Micro Artifact Scanner (TMAS) eine Sicherheitslücke oder ein Geheimnis meldet, das als Fehlalarm oder ein anderer Befund, den Sie ignorieren möchten, eingestuft wurde, können Sie TMAS anweisen, diese Befunde zu überschreiben, indem Sie eine oder mehrere Regeln in einer Überschreibungs-Konfigurationsdatei definieren (zum Beispiel ~/tmas_overrides.yml).
Hinweis
Hinweis
Das Überschreiben von Malware-Funden wird derzeit nicht unterstützt.
Sie können eine Untersuchung mit diesen Regeln durchführen, indem Sie TMAS einen Pfad zur Überschreibungsdatei mit dem --override-Flag bereitstellen.
tmas scan <artifact_to_scan> -VMS --override path/to/tmas_overrides.yml
Die Override-Datei verwendet eine YAML-Struktur mit Regeln, die unter jedem Suchtyp definiert sind, wie vulnerabilities oder secrets, zum Beispiel. Wenn Sie Overrides sowohl für Geheimnisse als auch für Schwachstellen bereitstellen, geben Sie alle Overrides in derselben YAML-Datei an.

Sicherheitslücken-Funde überschreiben

Die Sicherheitslücken-Überschreibungen sind als eine Liste von Regeln strukturiert. Jede Regel kann eine beliebige Kombination der folgenden Kriterien festlegen:
  • Sicherheitslücken-ID (zum Beispiel, "CVE-2008-4318")
  • Status korrigieren (erlaubte Werte: "fixed", "not-fixed", "wont-fix" oder "unknown")
  • Paketname (zum Beispiel "libcurl")
  • Paketversion (zum Beispiel "1.5.1")
  • Pakettyp (zum Beispiel "npm", "go-package", "rpm" oder ein beliebiger Pakettyp, der im TMAS JSON-Sicherheitslückenbericht erscheint)
  • Paketstandort (zum Beispiel "/usr/local/lib/node_modules/**"; unterstützt Glob-Muster)
Jede Regel muss auch von einem Grund begleitet werden, der angibt, warum die Regel implementiert wurde (zum Beispiel "False Positive", "gemildert", "verwundbare Paketfunktion wird nicht aufgerufen" und so weiter).
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
Ein festgestelltes Sicherheitslücken-Ergebnis wird überschrieben, wenn eine der im Überschreibungsdatei angegebenen Regeln auf das Ergebnis zutrifft. Eine Regel gilt nur dann als zutreffend für ein Ergebnis, wenn alle Felder in der Regel mit denen im Sicherheitslücken-Ergebnis übereinstimmen.
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
Jede Sicherheitslücke, die einer Regel entspricht, wird im JSON-Bericht in einem "Overridden"-Abschnitt dargestellt, anstatt nach ihrer Schweregrad klassifiziert zu werden.
{
   "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": []
         }
       ]
     }
   }
 }

Geheime Funde überschreiben

Geheime Überschreibungen unterstützen mehrere Ziele:
  • Pfade
  • Regeln
  • Ergebnisse
Jede Ausnahme ist eine Liste von regulären Ausdrucksmustern, die dazu führen, dass das Ziel ausgeschlossen wird. Jede Liste von Mustern muss auch von einem Grund für die Implementierung der Regel begleitet werden (zum Beispiel "Fehlalarm", "Abhängigkeiten von Drittanbietern" und so weiter).
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"
Ein bestimmter Geheimnisfund wird überschrieben, wenn einer der im Überschreibungsdatei angegebenen regulären Ausdrücke auf den Fund zutrifft.
Jeder gefundene Geheimnis, der einer Regel entspricht, wird im JSON-Bericht in einem overridden dargestellt.
{
  "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,
          }
        }
      ]
    }
  }
}