Skip to main content

Schwachstellen mit Snyk ignorieren

Artikel von
blog feature snyk security policies

3. Mai 2022

0 Min. Lesezeit

Eine Schwachstelle ignorieren? Das klingt paradox. Warum sollte jemand eine Schwachstelle ignorieren wollen?

Sicherheitsprobleme sollten zwar nicht standardmäßig ignoriert werden, manchmal ist es jedoch notwendig. Entwicklungs- und Sicherheitsteams haben heute mit Rückständen von Tausenden Schwachstellen zu kämpfen. Um die Entwicklung schnell voranzutreiben, müssen sie ihre Arbeit effektiv priorisieren können. Welche Schwachstellen erfordern sofortige Aufmerksamkeit, welche können später angegangen werden und welche lassen sich komplett ignorieren?

Nicht alle Schwachstellen sind gleich. Einige sind kritisch, andere haben einen geringeren Schweregrad. Für manche gibt es sofort eine Lösung, für andere nicht. Manche Schwachstellen sind für bestimmte Projekte irrelevant (z. B. eine Denial-of-Service-Schwachstelle in einem internen Dienst). Dies sind neben weiteren Merkmalen von Schwachstellen gute Gründe, warum Sie eine Schwachstelle bei der Triage möglicherweise ignorieren möchten.

Sicherheitslösungen müssen Entwicklerinnen und Entwicklern ermöglichen, Schwachstellen auszublenden. Gleichzeitig müssen sie Sicherheitsteams die nötige Kontrolle darüber geben, wer was (und warum) ignoriert. Noch einmal: Eine Schwachstelle zu ignorieren ist keine Best Practice, sondern eine Maßnahme, die nur in Maßen und im Einklang mit den Richtlinien Ihres Unternehmens ergriffen werden sollte.

Optionen zum Ignorieren in Snyk

Die Snyk-Plattform bietet verschiedene Möglichkeiten, Probleme zu ignorieren – über die Snyk CLI, API oder UI oder mithilfe der .snyk-Policy-Datei. Welche Methode Sie verwenden, hängt von Ihrem Anwendungsfall ab. Ein wichtiger Grundsatz ist jedoch: Ignorierungen in Snyk gelten lokal. Das bedeutet, sie sind auf ein Projekt, einen Integrationstyp und eine Organisation beschränkt. Wird beispielsweise dasselbe Problem in einem über GitHub importierten Projekt ignoriert, wird es in einem über die Snyk CLI importierten Projekt nicht ignoriert.

Sehen wir uns das genauer an.

Die Snyk CLI verwenden

Die Snyk CLI ist ein äußerst nützliches Tool, mit dem Sie Schwachstellen finden und beheben können – entweder manuell in Ihrer lokalen Entwicklungsumgebung oder automatisch als Teil Ihrer CI/CD-Pipeline. Mit dem Befehl snyk test können Sie Ihr Projekt scannen. Der Scan gibt eine Liste aller im Projekt gefundenen Probleme sowie Empfehlungen zu Upgrades und Korrekturen aus, sofern verfügbar.

Wenn Sie aus einem der oben genannten Gründe eine bestimmte Schwachstelle ignorieren möchten – beim lokalen Testen oder in Ihren Build-Pipelines –, können Sie den Befehl snyk ignore verwenden. Er enthält optionale Unterbefehle (in eckigen Klammern). Mit diesen Unterbefehlen legen Sie den Umfang der Ignorierregel fest: ein Ablaufdatum und einen Grund für die Regel. Der folgende Befehl ignoriert eine Schwachstelle, die Informationen offenlegt, im npm-Paket hbs, da keine Korrektur verfügbar ist:

snyk ignore –id=SNYK-JS-HBS-1566555 [--expiry=2022-05-30] [--reason=no fix available]

Die id ist eine eindeutige ID, die Snyk Problemen zuweist. Sie finden sie an verschiedenen Stellen in der Snyk UI. Wenn Sie jedoch die Snyk CLI verwenden, sehen Sie die ID in der URL des Problems in der Snyk Vulnerability Database.

Terminalausgabe mit einer Liste von Abhängigkeits-Schwachstellen. Ein roter Pfeil hebt die Kennung SNYK-JS-HBS-1566553 hervor.

Bei der Ausführung dieses Befehls wird der .snyk-Policy-Datei eine neue Regel hinzugefügt. Ist die .snyk-Policy-Datei noch nicht vorhanden, wird sie durch diesen Befehl erstellt und die Regel hinzugefügt. Alle nachfolgenden Scans mit snyk test berücksichtigen diese Regel.

Profi-Tipps:

  • Sie sind sich bei der Syntax der Snyk CLI zum Ignorieren von Problemen nicht sicher? Geben Sie einfach snyk ignore –help ein.

  • Sie können in den Einstellungen Ihrer Organisation in der Snyk UI festlegen, dass nur Administratoren Probleme ignorieren dürfen.

  • Bei Snyk Code und Tests auf nicht verwaltete Abhängigkeiten in Snyk Open Source kann es sinnvoller sein, Verzeichnisse statt einzelner Probleme zu ignorieren. Auch diese Funktion wird von snyk ignore unterstützt.

Bildschirm mit den Organisationseinstellungen von Snyk: Steuerelemente dafür, wer Probleme ignorieren kann und ob eine Begründung erforderlich ist; „Nur Admins“ und „Erforderlich“ sind ausgewählt

Die .snyk-Policy-Datei verwenden

Wie oben beschrieben, erstellt der Befehl snyk ignore eine neue Datei namens .snyk-Policy-Datei. Diese Datei dient in der Regel dazu, das Verhalten und den Geltungsbereich der CLI-Befehle snyk test und snyk monitor sowie von Tests über die Snyk API und die Snyk UI und Spracheinstellungen zu konfigurieren. Sie können die .snyk-Policy-Datei auch manuell im Stammverzeichnis des Projekts oder in einem bestimmten Projektverzeichnis erstellen.

Um Schwachstellen zu ignorieren, muss die Datei einen Header enthalten:

# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
 version: v1.22.1

Außerdem muss für jede Ignorierregel die folgende YAML-Syntax enthalten sein:

Ignore:
  snyk-vulnid:
    - path to library using > seperator :
      reason: 'text string'
      expires: 'datetime string'

Beachten Sie: Wenn die .snyk-Policy-Datei in einem Unterverzeichnis Ihres Projekts gespeichert ist, müssen Sie beim Ausführen des Befehls snyk ignore in der Snyk CLI ihren Speicherort angeben.

Als Best Practice empfehlen wir, die .snyk-Datei mit Git zu verwalten. So wird sichergestellt, dass Tests über die Snyk UI den lokal festgelegten Regeln entsprechen. Weitere Informationen zur .snyk-Policy-Datei, ihrer Erstellung und Verwendung zum Ignorieren von Schwachstellen finden Sie in unserer Dokumentation zur .snyk-Policy-Datei.

Die Snyk UI verwenden

Sie können Probleme auch über die Snyk UI ignorieren: Klicken Sie dazu auf einer beliebigen Problemkarte auf die Schaltfläche Ignorieren. Daraufhin öffnet sich ein Dialog, in dem Sie den Grund für das Ignorieren auswählen und festlegen können, wie lange das Problem ignoriert werden soll. (Sie können ein Problem sogar so lange ignorieren, bis eine Korrektur verfügbar ist.)

Bildschirm mit Schwachstellendetails und einem Dialog zum Ignorieren mit temporären oder permanenten Optionen; ausgewählt ist eine Dauer von 14 Tagen.

Wenn Sie ein Problem über die Snyk UI mit der Option Ignorieren versehen, passiert einiges. Wichtig ist jedoch: Das Problem selbst verschwindet nicht. Machen Sie sich also keine Sorgen, wenn Sie gerade eine kritische Schwachstelle ignoriert haben!

Das Problem wird zwar nicht angezeigt, standardmäßig können Sie es aber auf der Projektseite über den Filter Ignoriert weiterhin einsehen. Wichtig ist, dass jede über die Snyk UI vorgenommene Ignorieraktion protokolliert wird (einschließlich Informationen darüber, wer das Problem wann und warum ignoriert hat):

Ignore:
  snyk-vulnid:
    - path to library using > seperator :
      reason: 'text string'
      expires: 'datetime string'

Profi-Tipps:

  • Ignorierungen, die Sie in der Snyk UI für Projekte vornehmen, die über die Snyk CLI (mit snyk monitor) in Snyk importiert wurden, werden mit Ihrem lokalen Projekt synchronisiert. Ignorierungen für Projekte, die über eine Source-Control-Management-(SCM-)Integration (z. B. GitHub oder Bitbucket) importiert wurden, werden dagegen nicht synchronisiert.

  • In den Einstellungen Ihrer Organisation können Sie festlegen, dass bei jeder Ignorieraktion über die Snyk UI ein Grund angegeben werden muss.

Snyk-Organisationseinstellungen mit Ignore-Richtlinien, in denen „Nur für Admins“ und „Begründungen erforderlich“ ausgewählt sind.

Automatisierte Pull Requests

Snyk erstellt keine automatisierten Pull Requests zur Behebung von Problemen, die über die Snyk-Benutzeroberfläche ignoriert wurden (entweder manuell auf der Issue-Karte oder automatisch mithilfe einer Sicherheitsrichtlinie). Diese Probleme werden auch nicht in den Snyk-Berichtsdiagrammen angezeigt.

Sicherheitsrichtlinien verwenden (nur Snyk Open Source und Snyk Container)

Für die meisten Unternehmen ist eine stärker automatisierte Möglichkeit wichtig, Probleme in großem Umfang zu ignorieren.

Die Sicherheitsrichtlinien von Snyk sind Regeln, mit denen Sie Probleme automatisch priorisieren oder zurückstufen können. Sie werden auf Gruppenebene über die Registerkarte „Policies“ in der Navigationsleiste der Snyk UI definiert und können auf bestimmte Organisationen oder Projekte angewendet werden (über die Option Projektattribute). So können Sie genau festlegen, für welche Probleme Ihre Ignorierregeln gelten.

Um Probleme mithilfe der Sicherheitsrichtlinien von Snyk zu ignorieren, legen Sie zunächst die Bedingungen fest, die erfüllt sein müssen, damit Snyk ein Problem ignoriert, und wählen anschließend die Option zum Ignorieren aus.

Snyk-Sicherheitsrichtlinienformular für interne Entwicklungsprojekte mit einer CWE-400-Regel, die festlegt, dass als „Nicht anfällig“ gekennzeichnete Schwachstellen ignoriert werden sollen.

Ignorierungen über eine Sicherheitsrichtlinie gelten für alle Schwachstellen, die den in der Regel festgelegten Bedingungen entsprechen. Sie gelten sowohl für alle bereits vorhandenen Schwachstellen, die den Bedingungen entsprechen, als auch für alle künftig gefundenen Vorkommen. Probleme, die über eine Sicherheitsrichtlinie ignoriert werden, sind entsprechend gekennzeichnet.

Diese Directory-Traversal-Schwachstelle im beliebten Python-Django-Paket wurde beispielsweise durch eine Richtlinie ignoriert, die für interne Projekte gilt:

Sicherheits-Dashboard mit einer ignorierten Django-Verzeichnisdurchquerungsschwachstelle, bewertet mit CVSS 3.7 (niedrig), und einer Schaltfläche „Diese Schwachstelle beheben“

Profi-Tipp: Wenn Sie in einer Sicherheitsrichtlinie die Aktion „Ignorieren“ festlegen, können Sie Nicht beheben und Nicht anfällig als Ignoriertypen auswählen und den Grund hinzufügen, der für die Ignorieraktion angezeigt werden soll. Diese Informationen erscheinen auf der Problemkarte in Ihrem Projekt.

Die Snyk API verwenden

Mit der Snyk API können Sie globaler geltende Ignorierregeln anwenden. Wir empfehlen größte Vorsicht bei dieser Vorgehensweise, da sie bei späteren Tests zu falsch-negativen Ergebnissen führen kann.

Eine pfadbasierte Ignorierregel über die Snyk API sieht etwa so aus:

POST https://snyk.io/api/v1/org/orgId/project/projectId/ignore/issueId

Die API-Payload könnte etwa so aussehen:

{ 
“ignorePath”:””,
“Reason”:”no fix available”,
“reasonType”:”wont-fix”,
“disregardIfFixable”:true
}

Sie können die API auch verwenden, um eine Liste ignorierter Probleme zu erstellen. So behalten Sie den Überblick über globale Ignorierungen in Ihrer Organisation:

https://snyk.io/api/v1/org/orgId/project/projectId/ignores

Weitere Best Practices für Ignorierungen

Die Snyk-Plattform bietet verschiedene Möglichkeiten, Probleme kontrolliert zu ignorieren und gleichzeitig sicherzustellen, dass kritische Probleme nicht übersehen werden. Im Folgenden finden Sie einige Best Practices für den Einsatz dieser Methoden.

Gründe für Ignorierungen verlangen

Wir empfehlen, von Ihren Entwicklerinnen und Entwicklern eine Begründung für jede Ignorierung zu verlangen. Wie oben erwähnt, können Administratoren diese Vorgabe für Ignorierungen über die Snyk UI festlegen. Für Ignorierungen über die Snyk CLI oder API müssen Sie Ihre Entwicklungsteams anweisen, sich an diese Vorgehensweise zu halten.

Ignorierungen auf die Administratorrolle beschränken

Wir empfehlen, in Snyk für jede Ihrer Organisationen die Berechtigung zum Ignorieren zu aktivieren. (Diese Berechtigung lässt sich auch über die Snyk UI festlegen.) Beachten Sie jedoch, dass dadurch nur Ignorierungen über die Snyk CLI und die Snyk API eingeschränkt werden. Entwicklerinnen und Entwickler können weiterhin Ignorierregeln in der .snyk-Policy-Datei festlegen.

Ignorierungen regelmäßig überprüfen

Für mehr Transparenz sollten Sie die von Ihren verschiedenen Teams in Ihrem Snyk-Konto vorgenommenen Ignorierungen regelmäßig überwachen. Dazu können Sie den oben gezeigten curl-Befehl verwenden, um automatisch eine Liste ignorierter Probleme abzurufen und zu überprüfen. Sie können auch die Registerkarte „Reports“ aufrufen, auf der Snyk die Anzahl der ignorierten Probleme anzeigt.

Mit Vorsicht ignorieren

Das Ignorieren eines Sicherheitsproblems oder eines Lizenzproblems sollte immer die Ausnahme und niemals eine weitverbreitete Praxis sein. Finden Sie die richtige Balance zwischen Entwicklerproduktivität und Sicherheitsmaßnahmen, indem Sie die akzeptierten Ignorierregeln in Ihrer Organisation sorgfältig festlegen und Entwicklerinnen und Entwicklern Tools an die Hand geben, mit denen sie Probleme innerhalb dieser Leitplanken ignorieren können.

Sehen wir uns einige Punkte zum Umgang mit Ignorierungen in Snyk Code und Snyk Infrastructure as Code (Snyk IaC) an:

Viel Erfolg beim Ignorieren!

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Ihr Schwachstellen-Backlog ist keine technische Schuld mehr, sondern eine Angriffsfläche

Ein wachsender Schwachstellen-Backlog ist mehr als eine technische Altlast: Er ist eine Angriffsfläche. Erfahren Sie, warum veraltete Risikoeinschätzungen, automatisierte Angreifer und verkettete Findings einen neuen Ansatz erfordern.