Geprüfte Frameworks & Bibliotheken
Wir testen die Abdeckung über Fixtures auf diesen Frameworks. Neue Muster werden in jedem Builtin-Regel-Release ergänzt.
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 — Statement-Konkatenation
String sql = "SELECT * FROM users WHERE name = \'" + name + "\'";
ResultSet rs = stmt.executeQuery(sql);
// 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 — DocumentBuilderFactory Default
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(input);
// 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 — Shell-String
Runtime.getRuntime().exec("ping -c 1 " + userInput);
// 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,ProcessBuildermit Shell-String - Hartkodierte Secrets in
application.properties,application.yml - Path Traversal in
new File,Files.readAllBytesohne Root-Anchor - LDAP-Injection in
DirContext.search - Unsichere Cookies (
setSecure,setHttpOnlyin 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