Dokumentation / Sicherheit

Sicherheitszentrale

Lokale Analyse von Abhängigkeiten, Code, Speicherlecks und Race Conditions – ohne deinen Code irgendwohin zu senden.

Die Sicherheitszentrale analysiert dein Projekt lokal, ohne deinen Code irgendwohin zu senden. Online-Quellen und die KI-Prüfung sind optional und werden separat aktiviert.

So öffnest du sie

  • Rechte Leiste → Weitere Werkzeuge → Sicherheitszentrale („Befunde und Geheimnisse“).
  • Befehlspalette (Ctrl+Shift+A): Sicherheitszentrale (Schwachstellen, Lecks, Races).
  • Über den Tab „Prävention“ im Panel „Qualität“.

Klicke beim ersten Mal auf Projekt prüfen und nach Änderungen auf Erneut prüfen.

Tabs

Tab Was er zeigt
Übersicht Den Gesamtstatus und die wichtigsten Befunde.
Abhängigkeiten Bibliotheken mit bekannten Schwachstellen oder ohne Support.
Code Schwachstellen im Code des Projekts.
Speicher und Nebenläufigkeit Ressourcenlecks und Race Conditions.
Lizenzen Lizenzen der Abhängigkeiten.
KI-Prüfung Eine optionale Analyse mit dem Modell, die du selbst über KI-Prüfung aktivierst.

Abhängigkeiten

Schwachstellenquellen

Unter Optionen → Schwachstellenquellen:

Quelle Status Was gesendet wird
Lokale Yuli-Datenbank Immer aktiv Nichts. Funktioniert offline, mit bekannten CVEs gängiger Java-Bibliotheken (Struts, Log4j, commons, Spring, Jackson …), Komponenten ohne Support und Lizenzen.
OSV.dev Standardmäßig aus Nur Gruppe, Artefakt und Version jeder Abhängigkeit.
OWASP Dependency-Check Optional Nutzt eine lokale Installation.

Nur mit der lokalen Datenbank läuft die Analyse vollständig offline. Aktiviere OSV.dev, wenn du zusätzlich GitHub Advisory und NVD abfragen willst.

Umfang

  • Testcode einbeziehen.
  • Server-JARs einbeziehen.

Code

Die Codeanalyse deckt Java, JSP, web.xml und die Hibernate-Deskriptoren ab.

Kategorie Beispiele
Injection SQL, das aus Request-Daten zusammengesetzt wird.
XSS Nicht escapte Ausgabe in JSP oder Servlets.
Unsichere Deserialisierung Objekte, die aus nicht vertrauenswürdigen Quellen gelesen werden.
XXE Ungeschützte XML-Parser.
Schwache Kryptografie Veraltete Algorithmen.
TLS Manager, die jedem Zertifikat vertrauen.
Offene Weiterleitungen Ziele, die aus dem Request übernommen werden.
Secrets Zugangsdaten, die im Code stehen oder in Logs ausgegeben werden.

Ein Taint-Modell pro Methode verfolgt die Werte, die aus dem Request (getParameter, getHeader, Cookies) und aus den ActionForms von Struts stammen. Erhält ein Befund Benutzerdaten, steigen seine Konfidenz und sein Schweregrad.

Speicher und Nebenläufigkeit

Lecks

  • Nicht geschlossene JDBC-Verbindungen oder Streams.
  • ThreadLocal ohne remove().
  • Statische Caches, die unbegrenzt wachsen.
  • Threads, die nie beendet werden.

Race Conditions

  • Gemeinsamer Zustand in Servlets, Struts-Actions und Singletons.
  • Statisches SimpleDateFormat.
  • Double-Checked Locking.
  • Check-then-act-Muster.

Um ein Leck zur Laufzeit zu bestätigen, nutze das JVM-Panel: Ein wiederholtes Speicherhistogramm zeigt, welche Klassen wachsen. Siehe Ausführen und debuggen.

Wo die Berichte gespeichert werden

Im Ordner .yuli/security/ des Projekts, den Yuli von Git ausschließt.

Prävention im Editor

Zusätzlich zur Sicherheitszentrale prüft Yuli jede Datei live, während du schreibst, und nach jeder Bearbeitung durch den Agenten: OWASP Top 10, CWE, Performance, Robustheit und Barrierefreiheit. Befunde erscheinen unterstrichen, mit ihrer Referenz und einem Korrekturvorschlag. Siehe Messung gegen N−1.

SBOM und Lieferkette

Die Stückliste (SBOM) erzeugst du im Governance-Center, Tab Lieferkette, mit SBOM schreiben. Formate: CycloneDX 1.5 JSON und SPDX 2.3 JSON. Siehe Gate und Governance-Center.

Mit dem Agenten

Der Agent kann die Sicherheitszentrale über die Tools yuli_security_center und yuli_security_scan abfragen und Korrekturen vorschlagen, die wie jede andere Änderung durch das Änderungsfenster laufen.