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-Formatierung oder f-Strings zum Bau von SQL-Queries — typisch bei cursor.execute(f"SELECT ... {user_input}"), Django .raw() mit Concat, oder SQLAlchemy .text() ohne Bind-Parameter.
Erkannt von SCA-Regel: sql_injection_fstring
CWE-78
OS-Befehlsinjektion
subprocess.run(shell=True, ...), os.system() mit User-Input. Das Flag shell=True ermöglicht Shell-Metazeichen-Missbrauch.
Erkannt von SCA-Regel: os_system_injection
CWE-502
Unsichere Deserialisierung
pickle.loads(), yaml.load() ohne SafeLoader, shelve, oder marshal auf nicht vertrauenswürdigen Bytes. Entspricht Remote Code Execution.
Erkannt von SCA-Regel: unsafe_deserialization
CWE-918
SSRF
requests.get(user_url), urllib.request.urlopen() auf User-kontrollierten URLs ohne Schema-/Host-Allowlist. Lässt Angreifer interne Dienste erreichen (Metadaten-Endpoints, RDS, etc.).
Erkannt von SCA-Regel: taint_ssrf
CWE-798
Hartkodierte Zugangsdaten
API-Keys, JWT-Secrets, DB-Passwörter in Quelldateien. Erkannt durch Entropie + bekannte Muster (AWS, Stripe, GitHub, Slack, etc.).
Erkannt von SCA-Regel: hardcoded_secret
CWE-94
Code-Injektion via dynamische Kompilierung
Aufrufe von Pythons dynamischen Kompilierungs-Built-ins auf teilweise user-kontrollierten Daten.
Erkannt von SCA-Regel: dangerous_eval
Verwundbar vs. sicher — drei kurze Beispiele
CWE-89
Erkannt von SCA-Regel: sql_injection_fstring
# Verwundbar — Flask + SQLAlchemy raw
@app.route('/user/<name>')
def user(name):
sql = f"SELECT * FROM users WHERE name = '{name}'"
return db.engine.execute(sql).fetchone()
# Sicher — Bind-Parameter
@app.route('/user/<name>')
def user(name):
sql = text("SELECT * FROM users WHERE name = :name")
return db.engine.execute(sql, {"name": name}).fetchone()
CWE-78
Erkannt von SCA-Regel: os_system_injection
# Verwundbar — shell=True mit User-Input
import subprocess
def ping(host):
return subprocess.run(f"ping -c 1 {host}", shell=True)
# Sicher — Argumentliste, kein Shell
import subprocess
def ping(host):
return subprocess.run(["ping", "-c", "1", host], check=False)
CWE-502
Erkannt von SCA-Regel: unsafe_deserialization
# Verwundbar — yaml.load ohne SafeLoader
import yaml
def load_config(blob):
return yaml.load(blob) # voller Loader = RCE
# Sicher — yaml.safe_load
import yaml
def load_config(blob):
return yaml.safe_load(blob)
Was StaticCodeAudit erkennt (diese Sprache)
- SQL-Injection in rohem SQL, f-Strings,
.format(), Django.raw(), SQLAlchemy.text()ohne Bind-Parameter - OS-Befehlsinjektion (
subprocessmitshell=True,os.system,os.popen) - Unsichere Deserialisierung (
pickle,yaml.load,marshal,shelve) - SSRF via
requests,urllib,aiohttpmit User-kontrollierten URLs - Hartkodierte Secrets (AWS, Stripe, GitHub PAT, Slack-Tokens, JWT-Secrets, DB-Passwörter, PEM-Keys)
- XXE und Billion-Laughs XML (
xml.etree,lxmlohne deaktivierten Resolver) - Path Traversal (
os.path.joinmit User-Input,open()ohne Root-Anchor) - Unsichere Cookies (Flask/Django Flags
Secure/HttpOnly/SameSitefehlen) - CSRF-Ausnahme (
@csrf_exempt, Flask ohneflask-wtf) - Unsichere Krypto (MD5/SHA1 für Security, ECB-Modus, hartkodierter IV, schwache Zufallszahlen)
- Debug-Modus aktiviert in Flask-/Django-Produktion
- Unsicheres JWT (Algorithmus
none, hartkodiertes Secret, kein Ablauf) - Veraltete APIs (PyCrypto, ssl.TLSv1, urllib2-Stil)
- PII in Logs und Exception-Nachrichten
- CI/CD-Fehlkonfigurationen (.gitlab-ci.yml, GitHub Actions: unsicherer Checkout, Secrets in Logs)
Auditieren Sie Ihren Code
Auditieren Sie Ihren Python-Code auf OWASP-Top-10-Schwachstellen, Framework-spezifische Fehlkonfigurationen und Abhängigkeitsrisiken — ohne eine einzige Zeile in die Cloud zu senden. Deckt Django, Flask, FastAPI, SQLAlchemy und die Standardbibliothek ab.
Demo-Binary herunterladen Geführte Demo buchen