Skip to main content

Sicheres Java-Development mit Snyk: So gelingt der Einstieg

Artikel von
blog social snyk secure java

23. Juni 2021

0 Min. Lesezeit

Wenn Sie Java-Entwickler sind und Ihre Anwendungen sicherer entwickeln möchten, sind Sie hier richtig. Snyk unterstützt Sie dabei. In diesem Artikel erfahren Sie, wie Sie mit Snyk in die sichere Java-Entwicklung einsteigen und von Anfang an für mehr Sicherheit sorgen.

Wenn Sie Snyk noch nicht kennen, sollten Sie wissen, dass wir verschiedene entwicklerorientierte Produkte und Tools anbieten. Einige davon, etwa unsere CLI und bestimmte IDE-Integrationen, unterstützen mehrere Produkte. Bei Snyk unterscheiden wir jedoch vier verschiedene Produkte:

  1. Snyk Open Source – Open-Source-Abhängigkeiten schützen

  2. Snyk Container – Container-Images schützen

  3. Snyk Infrastructure as Code (Snyk IaC) – Ihre Infrastructure as Code schützen

  4. Snyk Code – Ihren eigenen Code schützen. In diesem Beitrag konzentrieren wir uns ausschließlich auf Java.

Für den Einstieg in diese Tools benötigen Sie ein kostenloses Snyk-Konto. Für einzelne Entwickler reicht unser Free-Tarif in der Regel völlig aus. Ihre Kreditkarte können Sie also getrost stecken lassen.

Nachdem Sie sich angemeldet haben, stehen Ihnen verschiedene Möglichkeiten offen, Snyk für Java zu nutzen. Ich stelle Ihnen die Tools einzeln vor.

Snyk CLI

Die Snyk CLI ist der einfachste Einstieg in Snyk für Java. Sie können sie auf verschiedene Arten installieren, zum Beispiel mit npm oder brew:

npm install -g snyk

Dieses Tool eignet sich hervorragend für Ihren lokalen Rechner und kann auch in Ihrer CI-Pipeline äußerst nützlich sein. Authentifizieren Sie zunächst die Snyk CLI, indem Sie entweder Ihr API-Token als Umgebungsvariable festlegen (empfohlen für CI-Systeme) oder snyk auth aufrufen.

Ihr Java-Projekt lässt sich ganz einfach auf Sicherheitsprobleme in Open-Source-Abhängigkeiten überprüfen: Rufen Sie im Stammverzeichnis Ihres Projekts snyk test auf. Je nach Build-System für Java müssen Maven oder Gradle installiert und verfügbar sein. Die Snyk CLI verwendet Ihren Paketmanager sowie pom.xml oder build.gradle, um den vollständigen Abhängigkeitsbaum abzurufen. Stellen Sie sicher, dass Ihr Projekt mit Maven oder Gradle erstellt wurde, bevor Sie snyk test aufrufen, um unerwartete Ergebnisse zu vermeiden.

Enthält Ihr Projekt mehrere Manifestdateien, zum Beispiel mehrere pom-Dateien, verwenden Sie das Flag --all-projects, um alle Ihre Projekte zu scannen. Das funktioniert auch, wenn Sie beispielsweise ein Java-Projekt mit Gradle und ein JavaScript-Frontend mit npm kombinieren. Mit dem Flag --help finden Sie außerdem bestimmte Einstellungen für Maven oder Gradle.

Weitere Tipps und Tricks zur Snyk CLI finden Sie im CLI-Spickzettel. Mit derselben CLI können Sie Ihre Container auf Sicherheitsprobleme und Ihre Infrastructure as Code (IaC) überprüfen. Außerdem veröffentlichen wir in Kürze Snyk Code für die CLI. Damit lassen sich Sicherheitslücken in Ihrem eigenen Java-Code verhindern.

Git-Repository Ihres Java-Projekts verbinden

Als Nächstes können Sie Ihr Git-Repository verbinden. Wenn Sie beispielsweise Ihr Java-Repository auf GitHub verbinden, sucht Snyk automatisch nach Ihrer Maven- oder Gradle-Manifestdatei und scannt Ihre Abhängigkeiten. Standardmäßig wird dieser Vorgang täglich wiederholt. Sie werden benachrichtigt, sobald eine neue Sicherheitslücke oder eine neue Korrektur in Ihrem Repository gefunden wird.

Das folgende Beispiel zeigt eine pom-Datei aus einem Demo-Projekt mit bekannten Sicherheitslücken. Jedes Mal, wenn Snyk ein neues Problem findet, wird es in Ihrem Dashboard angezeigt. Dort finden Sie Informationen zur Sicherheitslücke und mögliche Hinweise zur Behebung. Außerdem kann die Git-Integration Dockerfiles scannen und Analysen mit Snyk Code durchführen. Weitere Informationen zu Analysen mit Snyk Code für Java-Anwendungen über die Snyk-Git-Integration finden Sie in diesem Blogbeitrag: Java-Sicherheitsprobleme in meiner Spring-MVC-Anwendung beheben.

Dashboard zur Codeanalyse mit Ergebnissen eines Sicherheitsscans für ein Repository, einschließlich Dockerfile- und pom.xml-Dateien mit Anzahl der Schwachstellen nach Schweregrad.

Maven- und Gradle-Plugins

Manche möchten ihre Sicherheitstests während des Builds automatisieren. Natürlich können Sie das in einer CI-Pipeline erledigen. Möglicherweise ist es jedoch sinnvoller, dies direkt in Ihrem Build-Tool zu tun. Wenn Sie Maven oder Gradle verwenden, werden an dieser Stelle Ihre Abhängigkeiten eingebunden und das Artefakt erstellt. Warum also nicht Sicherheitsscans genauso automatisieren wie Unit-Tests? Snyk bietet sowohl ein Maven- als auch ein Gradle-Plugin. Sie benötigen lediglich einen API-Schlüssel, den Sie über Ihr kostenloses Konto erhalten.

Sie können nun entweder manuell mit Maven oder Gradle einen Snyk-Test aufrufen oder beim Erstellen Ihrer Anwendung eine bestimmte Aufgabe damit verknüpfen. Weitere Informationen finden Sie in den jeweiligen Beiträgen zum Maven-Plugin und zum Gradle-Plugin von Snyk.

Snyk-IDE-Plugins für Java

Manche Entwickler erledigen am liebsten alles direkt in ihrer IDE. In gewisser Weise ist die IDE heutzutage ein Schweizer Taschenmesser mit unzähligen Optionen und Erweiterungsmöglichkeiten. Manche Entwickler verbringen praktisch ihre gesamte Arbeitszeit in der IDE.

Im JVM-Ökosystembericht 2021 haben wir kürzlich festgestellt, dass IntelliJ IDEA, Eclipse und VS Code die drei meistgenutzten IDEs für die Java-Entwicklung sind. Für alle drei bietet Snyk IDE-Plugins an.

Weitere Informationen zu den einzelnen Plugins finden Sie in den folgenden Beiträgen.

Der Einstieg mit Snyk ist einfach

Wie Sie sehen, muss es nicht schwer sein, mit Snyk sichere Java-Anwendungen zu entwickeln. Wählen Sie die Optionen, die zu Ihrer Arbeitsweise passen, damit Sie schnell entwickeln und dabei sicher bleiben. Wenn es für Sie besser passt, bieten wir außerdem zahlreiche Integrationen für verschiedene CI/CD-Pipelines. Snyk bietet Java-Entwicklern alles, was sie brauchen, um von Anfang an sicher zu entwickeln.

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.