Zum Hauptinhalt springen

Java · SAST

Java-SAST, das vollständig offline läuft

Auditieren Sie Spring Boot, JEE, Hibernate und JDBC auf OWASP-Top-10-Schwachstellen, Framework-Fehlkonfigurationen und Supply-Chain-Risiken — ohne Code in die Cloud hochzuladen.

Geprüfte Frameworks & Bibliotheken

Wir testen die Abdeckung über Fixtures auf diesen Frameworks. Neue Muster werden in jedem Builtin-Regel-Release ergänzt.

Spring Boot Spring MVC Spring Security JEE Jakarta EE Hibernate JPA MyBatis JDBC Apache Struts JSF Jersey Apache Commons Jackson log4j slf4j BouncyCastle

Häufigste erkannte CWE-Klassen

Diese CWE-Klassen treten in modernen Codebasen dieser Sprache am häufigsten auf. StaticCodeAudit liefert dedizierte Regeln für jede, gemappt auf OWASP Top 10 / ISO 27001 / ASVS, sofern relevant.

CWE-89

SQL-Injection

String-Konkatenation in JDBC Statement, JPA createQuery mit Concat, MyBatis ${...} statt #{...}, Hibernate HQL mit String-Format.

Erkannt von SCA-Regel: sql_injection_concat_java

CWE-611

XML External Entity (XXE)

DocumentBuilderFactory, SAXParserFactory, XMLReader ohne FEATURE_SECURE_PROCESSING oder DTD deaktiviert. Erlaubt Datei-Disclosure und SSRF.

Erkannt von SCA-Regel: xxe_injection

CWE-502

Unsichere Deserialisierung

Natives Java ObjectInputStream.readObject auf nicht vertrauenswürdigen Bytes (die « Java Serialization Gadget »-Bug-Klasse, die zu log4shell führte). Apache Commons Collections-Payloads funktionieren noch 2026.

Erkannt von SCA-Regel: unsafe_deserialization

CWE-78

OS-Befehlsinjektion

Runtime.getRuntime().exec(userString) mit Shell-String, ProcessBuilder mit Concat. Beide interpretieren Shell-Metazeichen.

Erkannt von SCA-Regel: command_injection_java

CWE-798

Hartkodierte Zugangsdaten

Anmeldedaten in commitetem application.properties, AWS-Keys in application.yml, JWT-Signatur-Secret als String-Konstante.

Erkannt von SCA-Regel: hardcoded_secret

CWE-22

Path Traversal

new File(userPath), Files.readAllBytes(Paths.get(userPath)) ohne Root-Anchor-Check — typisch bei Multi-Tenant-Datei-Storage-Endpoints.

Erkannt von SCA-Regel: path_traversal_python

Verwundbar vs. sicher — drei kurze Beispiele

CWE-89 Erkannt von SCA-Regel: sql_injection_concat_java
❌ Verwundbar
// Verwundbar — Statement-Konkatenation
String sql = "SELECT * FROM users WHERE name = \'" + name + "\'";
ResultSet rs = stmt.executeQuery(sql);
✅ Sicher
// Sicher — PreparedStatement mit Bind
PreparedStatement ps = conn.prepareStatement(
    "SELECT * FROM users WHERE name = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
CWE-611 Erkannt von SCA-Regel: xxe_injection
❌ Verwundbar
// Verwundbar — DocumentBuilderFactory Default
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(input);
✅ Sicher
// Sicher — DTD deaktivieren + Secure Processing
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
Document doc = dbf.newDocumentBuilder().parse(input);
CWE-78 Erkannt von SCA-Regel: command_injection_java
❌ Verwundbar
// Verwundbar — Shell-String
Runtime.getRuntime().exec("ping -c 1 " + userInput);
✅ Sicher
// Sicher — Argument-Array, keine Shell-Interpretation
ProcessBuilder pb = new ProcessBuilder("ping", "-c", "1", userInput);
pb.start();

Was StaticCodeAudit erkennt (diese Sprache)

  • SQL-Injection in JDBC Statement, JPA, MyBatis, Hibernate HQL mit Concat
  • XXE in DocumentBuilderFactory, SAXParserFactory, XMLReader
  • Native Java-Deserialisierung auf nicht vertrauenswürdigen Streams
  • Befehlsinjektion via Runtime.exec, ProcessBuilder mit Shell-String
  • Hartkodierte Secrets in application.properties, application.yml
  • Path Traversal in new File, Files.readAllBytes ohne Root-Anchor
  • LDAP-Injection in DirContext.search
  • Unsichere Cookies (setSecure, setHttpOnly in Servlet-API fehlen)
  • CSRF: Spring Security .csrf().disable() in Produktionskonfiguration
  • Unsichere Krypto (MD5/SHA1 für Security, DES, RC4, hartkodierter IV)
  • JWT none-Algorithmus, hartkodierter HS256-Secret
  • Log4j Sinks (CVE-2021-44228 Muster-Erkennung)
  • Veraltete APIs (SSLv3, javax.xml.ws Endpoint, sun.misc.Unsafe)
  • CI/CD-Fehlkonfigurationen (Maven/Gradle-Wrappers, GitHub-Actions-Tokens)

Auditieren Sie Ihren Code

Auditieren Sie Spring Boot, JEE, Hibernate und JDBC auf OWASP-Top-10-Schwachstellen, Framework-Fehlkonfigurationen und Supply-Chain-Risiken — ohne Code in die Cloud hochzuladen.

Demo-Binary herunterladen Geführte Demo buchen