Code-Injection
Was ist Code-Injection?
Code-InjectionSchwachstellenklasse, bei der vom Angreifer gelieferte Daten von einer Anwendung als Code interpretiert und ausgeführt werden, was beliebige Ausführung im Kontext erlaubt.
Code-Injection ist die breite Familie von Schwachstellen, bei denen unvertrauenswürdige Eingaben in etwas einfließen, das die Anwendung später als Programmcode, Konfiguration oder Markup behandelt, sodass die Laufzeit es ausführt. Konkrete Beispiele sind eval-basierte Injection in JavaScript und Python, serverseitige Template-Injection, Expression-Language-Injection (OGNL, SpEL), unsichere Deserialisierung mit Gadget-Chains und dynamisches Klassenladen aus Nutzerdaten. Erfolgreiche Ausnutzung führt meist zu Remote Code Execution unter der Anwendungsidentität — oft der erste Schritt zur Übernahme des Hosts oder Clusters. Schutz bieten der vollständige Verzicht auf Code-Konstruktion aus Eingaben, parametrisierte APIs, eingeschränkte Dynamik und konsequente Least-Privilege-Laufzeit mit Sandboxing.
● Beispiele
- 01
eval(request.body.expr) führt angreifergesteuertes JavaScript in einem Node-Dienst aus.
- 02
Java-Anwendung ruft ScriptEngine.eval auf ein vom Nutzer geliefertes Skript auf.
● Häufige Fragen
Was ist Code-Injection?
Schwachstellenklasse, bei der vom Angreifer gelieferte Daten von einer Anwendung als Code interpretiert und ausgeführt werden, was beliebige Ausführung im Kontext erlaubt. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet Code-Injection?
Schwachstellenklasse, bei der vom Angreifer gelieferte Daten von einer Anwendung als Code interpretiert und ausgeführt werden, was beliebige Ausführung im Kontext erlaubt.
Wie funktioniert Code-Injection?
Code-Injection ist die breite Familie von Schwachstellen, bei denen unvertrauenswürdige Eingaben in etwas einfließen, das die Anwendung später als Programmcode, Konfiguration oder Markup behandelt, sodass die Laufzeit es ausführt. Konkrete Beispiele sind eval-basierte Injection in JavaScript und Python, serverseitige Template-Injection, Expression-Language-Injection (OGNL, SpEL), unsichere Deserialisierung mit Gadget-Chains und dynamisches Klassenladen aus Nutzerdaten. Erfolgreiche Ausnutzung führt meist zu Remote Code Execution unter der Anwendungsidentität — oft der erste Schritt zur Übernahme des Hosts oder Clusters. Schutz bieten der vollständige Verzicht auf Code-Konstruktion aus Eingaben, parametrisierte APIs, eingeschränkte Dynamik und konsequente Least-Privilege-Laufzeit mit Sandboxing.
Wie schützt man sich gegen Code-Injection?
Schutzmaßnahmen gegen Code-Injection kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Code-Injection?
Übliche alternative Bezeichnungen: Remote Code Execution, Beliebige Code-Ausführung.
● Verwandte Begriffe
- attacks№ 392
Eval-Injection
Konkreter Unterfall der Code-Injection: untrusted Eingaben werden an dynamische Auswertungsfunktionen wie JavaScript eval() oder Python eval/exec übergeben.
- attacks№ 202
Command Injection
Angriff, bei dem Benutzereingaben ungefiltert an eine Betriebssystem-Shell übergeben werden und die Anwendung dadurch vom Angreifer gelieferte Befehle ausführt.
- attacks№ 1084
SQL Injection
Code-Injection-Angriff, der vom Angreifer kontrolliertes SQL in eine Datenbankabfrage einschleust, um Daten zu lesen, zu verändern oder zu zerstören.
- attacks№ 1009
Server-Side Template Injection
Angriff, der Template-Engine-Syntax in nicht vertrauenswürdige Eingaben einschleust und beim Rendern des Templates serverseitige Codeausführung erlaubt.
- vulnerabilities№ 539
Unsichere Deserialisierung
Schwachstelle, bei der eine Anwendung nicht vertrauenswürdige Daten deserialisiert und Angreifer beliebige Objekte erzeugen — häufig mit Remote-Code-Execution.
● Siehe auch
- № 808PDF-Exploit