Skip to main content

Vier einfache Möglichkeiten, Ihren Java- und Kotlin-Code zu analysieren

Artikel von
feature insights context

13. August 2024

0 Min. Lesezeit

Heutzutage ist die Sicherheit Ihrer Anwendungen genauso wichtig wie die Funktionen, die sie bieten. Deshalb ist die Analyse Ihres Codes auf Sicherheitslücken ein wesentlicher Bestandteil, um die Integrität Ihrer Anwendungen zu wahren und die Daten Ihrer Nutzer zu schützen. Als Entwickler stehen wir an vorderster Front. Es liegt in unserer Verantwortung, dafür zu sorgen, dass der von uns geschriebene Code nicht nur funktional und effizient, sondern auch sicher ist.

Static Application Security Testing (SAST) ist eine Methode, um Sicherheitslücken im Anwendungscode aufzuspüren. Dabei wird der Quellcode oder Bytecode einer Anwendung auf Sicherheitsmängel und andere Probleme untersucht, die zu Sicherheitsvorfällen führen könnten. Snyk Code ist ein leistungsstarkes Tool für diese Art der Analyse. Damit können Entwickler potenzielle Sicherheitslücken schnell und einfach erkennen und beheben, bevor sie zum Problem werden.

Wenn Sie in Ihrem Entwicklungszyklus auf SAST-Tools wie Snyk Code verzichten, kann das erhebliche Folgen haben. Werden Sicherheitsprobleme erst in späteren Phasen des Entwicklungszyklus behoben, kann das kostspielig und zeitaufwendig sein. Noch wichtiger: Sicherheitslücken können übersehen werden und ins fertige Produkt gelangen. Wenn Sie Sicherheit proaktiv angehen und SAST zu einem festen Bestandteil Ihres Entwicklungsprozesses machen, können Sie Zeit und Geld sparen und einen folgenschweren Sicherheitsvorfall möglicherweise verhindern.

Snyk Code für Java-Projekte nutzen

Snyk bietet eine Reihe von Sicherheitstools für Entwickler, mit denen Sie Sicherheitslücken in Ihrem Quellcode und Open-Source-Paketen sowie Container-Images und Fehlkonfigurationen Ihrer Cloud-Infrastruktur finden und beheben können. Zu den leistungsstärksten Funktionen von Snyk gehört Snyk Code, das speziell für die Analyse Ihres Codes auf Sicherheitslücken entwickelt wurde. Snyk Code unterstützt verschiedene Programmiersprachen, darunter Java und Kotlin, und eignet sich damit ideal für JVM-Projekte.

Snyk Code ist ein ML-gestütztes SAST-Tool, das potenzielle Sicherheitslücken in Ihrem Code erkennt. Es identifiziert eine Vielzahl von Problemen, von Injection-Schwachstellen bis hin zu unsicherer Deserialisierung. Um besser nachvollziehen zu können, was passiert, zeigt es den Pfad des anfälligen Codes in Ihrem System. Außerdem erhalten Sie detaillierte Hinweise zur Behebung, mit denen Sie diese Probleme lösen und die Sicherheit Ihrer Anwendung wirksam erhöhen können.

Ein weiterer Vorteil: Sie sind nicht an eine bestimmte Arbeitsweise gebunden. Snyk stellt Ihnen diese Funktionen auf vielfältige Weise zur Verfügung, sodass Sie die Option wählen können, die am besten zu Ihrer Arbeitsweise passt.

Option 1: Quellcode mit der Snyk CLI scannen

In diesem Abschnitt erfahren Sie, wie Sie Ihren Java-Quellcode mithilfe der Snyk Command Line Interface (CLI) auf Sicherheitslücken untersuchen. Mit der Snyk CLI können Sie die leistungsstarken Sicherheitsanalysen von Snyk ganz einfach in Ihre Entwicklungsabläufe integrieren und Sicherheitslücken frühzeitig im Entwicklungsprozess erkennen und beheben.

Die Snyk CLI ist eine Befehlszeilenschnittstelle für die Snyk-Plattform. Mit der Snyk CLI können Sie die Sicherheitsanalysen von Snyk direkt in Ihren lokalen Entwicklungsprozess, Ihre CI/CD-Pipelines und andere automatisierte Abläufe integrieren.

Für Static Application Security Testing (SAST) mit der Snyk CLI müssen Sie die CLI installieren und sich mit Ihrem Snyk-Konto authentifizieren. So gehen Sie vor:

# Install the Snyk CLI using NPM
npm install -g snyk

# Authenticate the CLI with your Snyk account
snyk auth

Nach der Installation und Authentifizierung können Sie Ihren Java-Quellcode mit dem Befehl `snyk code test` analysieren:

# Navigate to your project directory
cd /path/to/your/java/project

# Scan your source code with Snyk Code
snyk code test

Dieser Befehl untersucht Ihren Quellcode auf Sicherheitslücken und erstellt einen detaillierten Bericht über alle gefundenen Probleme.

Die Snyk CLI ist vielseitig und lässt sich je nach Bedarf auf verschiedene Weise einsetzen. Wenn Sie Ihren Code beispielsweise bei jedem Commit scannen möchten, können Sie die CLI-Befehle in Ihre Pre-Commit-Hooks integrieren. Alternativ können Sie die CLI-Befehle in Ihre Continuous-Integration-/Continuous-Deployment-Pipelines (CI/CD) einbinden, damit Ihr Code vor der Bereitstellung auf Sicherheitslücken untersucht wird.

Terminal mit den Ergebnissen der statischen Codeanalyse von Snyk CLI: acht Java-Sicherheitsprobleme, darunter XSS, SQL-Injection und Path Traversal.

Denken Sie daran: Je früher Sie Sicherheitslücken erkennen und beheben, desto sicherer ist Ihre Anwendung. Warum also nicht schon auf Ihrem lokalen Rechner damit anfangen, bevor Sie den Code überhaupt committen? Sie müssen lediglich ein (kostenloses) Snyk-Konto erstellen und die Snyk CLI installieren.

Sie haben noch kein Snyk-Konto? Registrieren Sie sich für Snyk und schützen Sie ab heute Ihren Code.

Option 2: Snyk Code mit IDE-Integrationen nutzen

Als Entwickler ist Ihre integrierte Entwicklungsumgebung (IDE) Ihr zentraler Arbeitsplatz. Wenn Sicherheit nahtlos in Ihre IDE eingebunden ist, sparen Sie Zeit und schützen Ihren Code vor Sicherheitslücken. Snyk bietet IDE-Integrationen für IntelliJ und Visual Studio Code, mit denen Sie Ihren Java-Code direkt in Ihrer IDE auf Sicherheitslücken untersuchen können.

Snyk IntelliJ-Plugin

Das Snyk IntelliJ-Plugin liefert leistungsstarkes Echtzeit-Feedback zur Sicherheit Ihres Java-Codes. Nach der Installation des Plugins können Sie mit der rechten Maustaste auf Ihr Projekt klicken und erst Snyk, dann Scan Project auswählen. Das Plugin analysiert Ihren Code und zeigt eine Liste potenzieller Sicherheitslücken mit deren Schweregrad sowie Vorschlägen zu ihrer Behebung an.

Snyk-Dashboard mit einer SQL-Injection-Schwachstelle mit hohem Schweregrad in HomeController.java, einem sechsstufigen Datenfluss und Beispielen für Korrekturen

Im obigen Beispiel würde das Snyk IntelliJ-Plugin erkennen, dass die SQL-Abfrage für SQL-Injection-Angriffe anfällig ist.

Snyk VS Code-Plugin

Das Snyk VS Code-Plugin ist ein weiteres hervorragendes Tool, um Java-Code auf Sicherheitslücken zu untersuchen. Installieren Sie dazu die Snyk-Erweiterung aus dem VS Code Marketplace. Klicken Sie nach der Installation in der Ansicht Explorer mit der rechten Maustaste auf Ihr Projekt und wählen Sie Scan with Snyk. Das Plugin analysiert Ihren Java- und Kotlin-Code detailliert auf bekannte Sicherheitslücken und zeigt Ihnen eine Liste der gefundenen Probleme sowie empfohlene Schritte zur Behebung an.

Die Schwachstellenanalyse von Snyk in einer IDE weist auf ein Cross-Site-Scripting-Problem in ProductController.java, Zeile 93, hin.

Im obigen Beispiel würde das Snyk VS Code-Plugin erkennen, dass die HTML-Ausgabe anfällig für Cross-Site-Scripting-Angriffe (XSS) ist.

Wenn Sie Snyk in Ihre IDE integrieren, können Sie Ihren Java-Code von Anfang an schützen. Warten Sie nicht bis zur Bereitstellung, um sich mit Sicherheit zu befassen.

Option 3: Ihr Git-Repository mit Snyk verbinden und Code-Scanning aktivieren

Ihr Git-Repository mit Snyk zu verbinden, ist ein wichtiger Schritt, um die Sicherheit Ihres Java-Codes und Ihrer Anwendungen zu verbessern. Snyk lässt sich nahtlos in gängige Quellcode-Repositories wie GitHub, GitLab, Azure Repo und BitBucket integrieren. Dadurch kann Ihr Java-Code kontinuierlich auf Sicherheitslücken untersucht werden, was die Sicherheit Ihrer Anwendung erhöht.

Snyk Code-Analyse-Dashboard mit Cross-Site-Scripting-Schwachstellen (XSS), Java-Code, Schweregradfiltern und Issue-Bewertungen.

Am obigen Java-Codebeispiel sehen Sie: Sobald Ihr Git-Repository mit Snyk verknüpft ist, analysiert Snyk Code den Code automatisch mithilfe von Static Application Security Testing (SAST). Dabei werden unter anderem Sicherheitslücken wie SQL-Injection, Cross-Site-Scripting (XSS) und unsichere Deserialisierung erkannt und in der Snyk-Benutzeroberfläche (UI) angezeigt.

Ein Alleinstellungsmerkmal von Snyk: Das Tool identifiziert nicht nur Sicherheitslücken, sondern gibt auch Hinweise zu ihrer Behebung. Über die Snyk-Benutzeroberfläche können Sie die Details der erkannten Sicherheitslücken einsehen, ihre möglichen Auswirkungen nachvollziehen und erfahren, wie Sie sie beheben können. Diese Funktion hebt Snyk von anderen Sicherheitstools ab und macht es zu einer wertvollen Ressource für Entwickler, die die Sicherheit ihrer Anwendungen verbessern möchten.

Pull Requests auf anfällige Codeänderungen prüfen

Eine weitere nützliche Funktion von Snyk: Pull Requests lassen sich auf Codeänderungen prüfen, die Sicherheitslücken verursachen könnten. So erkennen Sie potenzielle Sicherheitsprobleme, bevor sie in die Haupt-Codebasis übernommen werden. Dieser vorbeugende Ansatz ist entscheidend, um die Integrität und Sicherheit Ihrer Java-Anwendung zu wahren.

Option 4: In Ihre CI-Pipeline integrieren und Snyk Code nutzen

Wenn Sie Snyk Code in Ihre CI/CD-Pipeline integrieren, können Sie Sicherheitsanalysen Ihres Codes automatisieren und sicherstellen, dass Ihr Java-Code frei von Sicherheitslücken ist. Mit den Funktionen von Snyk Code erkennen und beheben Sie Sicherheitsprobleme, bevor sie die Sicherheit Ihrer Anwendung gefährden.

In diesem Abschnitt erfahren Sie, wie Sie Snyk Code mithilfe von Plugins in Ihre Pipeline integrieren, die von Snyk bereitgestellten GitHub Actions für SAST-Scans nutzen und mit der CLI sowie der JSON-Ausgabe eine benutzerdefinierte Integration für Snyk Code erstellen.

Snyk stellt Plugins für verschiedene CI/CD-Tools wie Jenkins, CircleCI und Azure Pipelines bereit. Wenn Sie Snyk Code mithilfe dieser Plugins in Ihre Pipeline integrieren, können Sie Sicherheitslücken in Ihrem Java-Code automatisch erkennen und beheben.

GitHub Actions von Snyk für SAST-Scans nutzen

Snyk stellt auch GitHub Actions für SAST-Scans bereit. Damit können Sie das Scannen Ihrer Java-Repositories auf Sicherheitslücken automatisieren.

Hier sehen Sie ein Beispiel dafür, wie Sie eine von Snyk bereitgestellte GitHub Action verwenden, um Ihren Java-Code zu scannen:

name: Snyk
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v2
    - name: Run Snyk to find vulnerabilities
      uses: snyk/actions/java@master
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

In diesem Beispiel wird die Snyk Action für Java verwendet, um den Java-Code bei jedem Push oder Pull Request an den master-Branch zu scannen.

Mit der CLI und der JSON-Ausgabe eine benutzerdefinierte Integration für Snyk Code erstellen

Sie können auch mithilfe der CLI und der JSON-Ausgabe eine benutzerdefinierte Integration für Snyk Code erstellen. Das ist hilfreich, wenn Sie den Scan Ihres Java-Codes auf Sicherheitslücken individuell anpassen möchten.

So gehen Sie beispielsweise vor:

#!/bin/bash
# Run Snyk test and output the results as JSON
snyk test --all-projects --json > snyk_output.json

In diesem Beispiel führt die Snyk CLI den Befehl Snyk test aus und gibt die Ergebnisse im JSON-Format aus. Diese JSON-Ausgabe können Sie anschließend weiterverarbeiten oder analysieren.

Wenn Sie Snyk Code in Ihre CI/CD-Pipeline integrieren, wird Ihr Java-Code kontinuierlich auf Sicherheitslücken untersucht und die Sicherheit Ihrer Anwendung gestärkt.

Ihren Code in allen Entwicklungsphasen scannen

Fassen wir eine entscheidende Erkenntnis für Java- und Kotlin-Entwickler zusammen: Anwendungscode sollte in jeder Entwicklungsphase regelmäßig gescannt werden. Probleme frühzeitig und häufig zu erkennen, bedeutet mehr, als nur Fehler zu beheben. Es geht darum, von Anfang an eine Kultur der Qualität und Sicherheit zu schaffen. Ein SAST-Tool wie Snyk Code einzusetzen, heißt nicht einfach, den eigenen Entwickler-Tools ein weiteres Werkzeug hinzuzufügen. Vielmehr geht es darum, eine grundlegende Arbeitsweise zu etablieren – unabhängig davon, wie Ihre Umgebung eingerichtet ist. Richtig in den Prozess eingebunden, fühlt es sich an, als wäre das Tool schon immer da gewesen: Es hilft, Probleme zu erkennen, ohne Sie bei der Arbeit aufzuhalten.

Als Entwickler jonglieren wir oft mit verschiedensten Aufgaben: von der Umsetzung der Geschäftslogik bis hin zur Sicherstellung, dass unsere Codebasis sicher und leistungsfähig ist. Wenn wir einen SAST-Scanner einbinden, der sich an unsere individuelle Arbeitsweise anpasst – ob über IDE-Plugins, CI/CD-Pipelines oder direkte Git-Integrationen –, werden Sicherheits- und Qualitätsprüfungen zu einem selbstverständlichen Teil unseres Entwicklungsprozesses statt zu einer lästigen Unterbrechung. Dank dieser Flexibilität können wir uns darauf konzentrieren, hervorragende Java- und Kotlin-Anwendungen zu entwickeln – im Wissen, dass unser Code kontinuierlich auf Sicherheitslücken und Anti-Patterns geprüft wird.

Wenn Sie Snyk Code in allen Entwicklungsphasen einsetzen, verbessern Sie Qualität und Sicherheit Ihrer Projekte. Wird das Scannen zu einem festen und mühelosen Bestandteil Ihrer Arbeitsroutine, können Sie Probleme erkennen und beheben, lange bevor sie zu ernsthaften Risiken werden. Setzen wir uns also gemeinsam für frühe und regelmäßige Scans ein. Diese Entscheidung zahlt sich durch höhere Codequalität, mehr Sicherheit und ein beruhigendes Gefühl aus – Vorteile, die wir als Entwickler alle zu schätzen wissen.

Sichern Sie Ihren Code während der Entwicklung

Snyk scannt Ihren Code auf Qualitäts- und Sicherheitsprobleme und gibt Ihnen direkt in Ihrer IDE Empfehlungen zur Behebung.

Gepostet in:

Weiterlesen

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.

illustration hero ai
Blog

Der KI-Hurrikan ist da

KI beschleunigt gleichermaßen die Softwareentwicklung und Cyberangriffe. Führungskräfte müssen Agents und Code von Anfang an absichern, zur Laufzeit Kontrollen durchsetzen und Abwehrmaßnahmen unabhängig validieren.

feature insights context
Blog

Ist Prävention im Grunde ein gelöstes Problem?

Die Prävention in von Agenten generiertem Code ist architektonisch gelöst – die Herausforderung besteht jedoch weiterhin darin, Kontrollen zu wählen, die die Sicherheit schützen, ohne die Entwicklung zu verlangsamen.