Schwachstellen mit Snyk ignorieren
3. Mai 2022
0 Min. LesezeitEine 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:
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.

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 –helpein.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 ignoreunterstützt.

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:
Außerdem muss für jede Ignorierregel die folgende YAML-Syntax enthalten sein:
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.)

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):
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.

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.

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:

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:
Die API-Payload könnte etwa so aussehen:
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:
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:
Wenn Sie Probleme in Snyk Code über die Snyk UI ignorieren, kann dies einen größeren Bereich von Problemen erfassen als bei anderen Snyk-Produkten. Warum das so ist, erfahren Sie in unserer Dokumentation. Unser Blogbeitrag Sicheres Programmieren mit Snyk Code: Die Ignorierfunktion mit dem gewissen Twist geht näher auf das Ignorieren in Snyk Code ein.
Beim Ignorieren von Problemen, die mit Snyk Infrastructure as Code gefunden wurden, gibt es bei der Verwendung der .snyk-Policy-Datei einige Besonderheiten zu beachten, etwa die Eingrenzung auf eine einzelne Datei. Weitere Informationen finden Sie in unserem Blogbeitrag Mehr Sicherheit durch den richtigen Umgang mit IaC-Schwachstellen und in unserer Dokumentation.
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.



