Skip to main content

Snyk: Java-Sicherheit und Projekthygiene durch proaktives Beheben von Schwachstellen gewährleisten

Artikel von
Headshot of Lee Turner

Lee Turner

blog social snyk secure java

16. November 2021

0 Min. Lesezeit

Als Entwickler verbringe ich viel Zeit mit meinem GitHub-Konto. Ich entwickle Apps, kleine Tools und Proofs of Concept, wenn ich etwas Neues lerne. Ich denke gern, dass der allgemeine Sicherheitszustand meines Kontos ziemlich gut ist, weil ich viel Zeit auf GitHub verbringe. Ich achte auf wichtige Dinge wie aktivierte Yubikey-basierte Zwei-Faktor-Authentifizierung für mein Konto, darauf, keine Secrets oder sensiblen Dateien zu committen, und darauf, mein Konto regelmäßig anhand der GitHub-Sicherheits-Best Practices für Open-Source-Projekte zu überprüfen.

Zwischenstopp! Haben Sie die Multi-Faktor-Authentifizierung in Ihrem Quellcode-Repository aktiviert? Eine weitere Möglichkeit, sich als Security Champion weiterzuentwickeln, besteht darin, sichere Code-Reviews durchzuführen.

Doch wie bei Zustand und Hygiene jedes Systems hängt es nicht nur davon ab, was wir aktiv tun, sondern auch von Dingen, die uns vielleicht nicht so bewusst sind. Das ist besonders wichtig für Repositorys, an denen wir nicht mehr arbeiten. Auch wenn der Code unverändert bleibt und vielleicht nicht mehr im Mittelpunkt steht, entwickelt sich die Welt um uns herum weiter. Menschen, denen wir nie begegnet sind, finden diese Repositorys und nutzen unseren Code möglicherweise als Lernmaterial oder als Grundlage für den Code, den sie heute schreiben.

Deshalb tragen wir als Entwickler die Verantwortung dafür, dass der von uns geschriebene Code so gut wie möglich ist – nicht nur zum Zeitpunkt seiner Erstellung, sondern während der gesamten Zeit, in der er in unseren Repositorys verfügbar ist.

Wie bereits erwähnt, entwickelt sich die Welt um unseren Code herum weiter. Es erscheinen neue Versionen der von uns verwendeten Abhängigkeiten, und in älteren Versionen der Frameworks und Bibliotheken, auf die wir angewiesen sind, werden Sicherheitsprobleme entdeckt. Auch wenn ein sofortiges Update auf die neueste Version eigene Probleme mit sich bringen kann, müssen wir einen Weg finden, solche Änderungen kontinuierlich sichtbar zu machen. So können wir unseren Repositorys die nötige Aufmerksamkeit schenken, damit sie aktuell und sicher bleiben.

Tipp: Wenn Sie GitHub Actions und integrierte Sicherheit für Codeänderungen in Ihrem Repository nutzen, sollten Sie sich GitHub Security Code Scanning ansehen.

Das Schwachstellenmanagement ist ein eigenes Themengebiet mit Prozessen, Standards und Tools, die Unternehmen dabei unterstützen, ihre Sicherheitslage zu verbessern. Wenn Sie erfahren möchten, wie Sie das für Ihre betreuten Java-Legacy-Projekte erreichen und gleichzeitig eine gute Sicherheitslage schaffen können, empfehlen wir Ihnen, sich mit dem Prozess zur Behebung von Schwachstellen zu beschäftigen.

Schwachstellen in Java-Legacy-Projekten finden und beheben

Hier kommt Snyk ins Spiel. Snyk macht das, was sonst unsichtbar wäre, sichtbar und umsetzbar. Wenn Sie Snyk Ihre Repositorys überwachen lassen – ob auf GitHub, GitLab, Bitbucket oder Azure –, erhalten Sie die Informationen, die Sie benötigen, um Maßnahmen zu ergreifen und Ihren Code zu schützen. Das funktioniert auf verschiedene Weise:

  • Berichte zu Schwachstellen in den Frameworks und Bibliotheken, auf die wir angewiesen sind

  • Benachrichtigungen über neue Versionen der von uns verwendeten Abhängigkeiten

Snyk mit Ihrem Konto zu verbinden, kann ein echter Augenöffner sein. Ich begann mit dem kostenlosen Snyk-Tarif und ließ ihn einige meiner Repositorys überprüfen. Sofort wurden mir mehrere Probleme mit hohem und mittlerem Schweregrad in einigen meiner älteren Spring-Boot-Apps angezeigt. Der einzige Grund dafür war, dass die Apps mit einer älteren Spring-Boot-Version erstellt worden waren und ich bis dahin keinen Anlass gehabt hatte, sie zu aktualisieren.

Dashboard mit Schwachstellen und ihrer Anzahl nach Schweregrad: kritisch, hoch, mittel und niedrig. Mit Links zum Beheben der Schwachstellen.

Zum Glück bestand die Lösung einfach darin, die von mir verwendete Spring-Boot-Version zu aktualisieren, die Anwendung erneut zu testen und die Änderung zu pushen.

Natürlich wäre es ideal, wenn wir die Abhängigkeiten in unseren Anwendungen einfach regelmäßig auf dem neuesten Stand halten könnten. Genau hier hilft Snyk beim zweiten Punkt von oben. Snyk informiert uns nicht nur über neue Versionen von Abhängigkeiten, sondern kann auch einen Pull Request in unseren Repositorys erstellen, den wir überprüfen und testen können:

Kommentar von snyk-bot in einem GitHub-Pull-Request mit der Empfehlung, kotlin-logging-jvm von 2.0.10 auf 2.0.11 zu aktualisieren.

Wir können Zustand und Sicherheit unserer GitHub-Konten nur verbessern, wenn wir alle Faktoren kennen, die sich auf ihren Zustand und ihre Hygiene auswirken. Sobald das Unsichtbare sichtbar wird, können wir Korrekturmaßnahmen ergreifen und diese während der gesamten Lebensdauer unseres Codes aufrechterhalten. Snyk unterstützt uns dabei, indem es sich in die Tools integriert, die wir täglich verwenden, und uns das Wissen vermittelt, das wir für die Entscheidung über die nächsten Schritte benötigen. Gleichzeitig automatisiert Snyk alle Aufgaben, die sich automatisieren lassen.

Weitere Ressourcen zur Java-Sicherheit

Ich hoffe, dieser Beitrag hilft Ihnen dabei, Ihre älteren Projekte zu warten und zu schützen. Wenn Sie Java-Entwickler sind und Ihre Sicherheitskenntnisse ausbauen möchten, finden Sie hier einige hilfreiche Ressourcen:

  1. Java-Sicherheit erklärt

  2. 10 Best Practices für einen Java-Container mit Docker

  3. Brian Vermeer und Jim Manico von OWASP haben diese großartigen €‹ €‹10 Best Practices für Java-Sicherheit verfasst.

  4. Und schließlich: Wenden Sie sichere Programmierpraktiken für die Deserialisierung an? Wenn Sie sich nicht sicher sind, empfehlen wir Ihnen, Vermeers Artikel Serialisierung und Deserialisierung in Java: Die Java-Deserialize-Schwachstelle erklärt zu lesen.

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 feature ai lilac
Blog

Mit agentischer Behebung Ihren Schwachstellen-Backlog in Pull Requests verwandeln

Der Evo Remediation Agent ist jetzt in der öffentlichen Vorschau verfügbar und erweitert Evo Agentic AppSec um die automatisierte Auflösung von Abhängigkeiten. AppSec-Teams können jetzt kontinuierliche Behebungskampagnen durchführen

AI Background min crop
Blog

KI ruft alle Risiken auf den Plan, die Sie akzeptiert haben: Sieben Erkenntnisse aus dem AI Security Panel: Unfiltered

KI macht Angriffe günstiger und schneller und legt Risiken offen, die Unternehmen bereits tragen. Vier Sicherheitsverantwortliche erklären, warum Abwehr in Maschinengeschwindigkeit und schnellere Behebung jetzt unverzichtbar sind.

blog feature ai violet
Blog

VulnBump: Können KI-Agenten anfällige Abhängigkeiten beheben, ohne den Build zu beschädigen?

VulnBump testet KI-Agenten anhand von 307 realen Upgrades von Abhängigkeiten. Eine Behebung zählt nur, wenn die Sicherheitslücke geschlossen ist und Build und Tests weiterhin erfolgreich sind.