Definition Code Injection Was ist Code Injection?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Peter Schmitz

Code Injection erlaubt aufgrund von Schwachstellen in Computerprogrammen oder in Webanwendungen das Einschleusen und Ausführen von unerwünschtem Programmcode. Möglich wird dies beispielsweise, wenn die Eingaben eines Anwenders nicht ausreichend geprüft und dem Interpreter übergeben werden. Gängige Beispiele für das Einschleusen von Programmcode sind im Webumfeld das Cross Site Scripting (XSS) und SQL Injection.

Code Injection sind Schwachstellen zur Ausführung von unerwünschtem Programmcode durch mangelnde Prüfung der Eingabedaten.
Code Injection sind Schwachstellen zur Ausführung von unerwünschtem Programmcode durch mangelnde Prüfung der Eingabedaten.
(Bild: gemeinfrei / Pixabay )

Code Injection ist die Bezeichnung für die Ausnutzung von Schwachstellen in Computerprogrammen oder Webanwendungen, die es erlauben, nicht vorgesehenen oder unerwünschten Programmcode einzuschleusen und auszuführen. Die Ausführung von unerwünschtem Programmcode kann schwerwiegende Folgen wie das Einschleusen von Malware, das Stehlen von Informationen oder das Manipulieren von Daten und Anwendungen haben. Unter Umständen gelingt einem Angreifer die komplette Übernahme von Systemen wie Webservern. Im Umfeld von Internetanwendungen gehört Code Injection zu den beliebtesten und am häufigsten genutzten Angriffsverfahren. Damit das Einschleusen von Programmcode gelingt, müssen die angegriffenen Anwendungen Schwachstellen besitzen, die beispielsweise die Eingaben der Anwender nicht ausreichend prüfen und die Übergabe dieser Daten an den Interpreter gestatten. Gängige Beispiele für das unerwünschte Einschleusen von Programmcode sind im Webumfeld das Cross Site Scripting (XSS), SQL Injection, XPath Injection, E-Mail Injection, XML Injection oder LDAP Injection.

Mögliche Folgen von Code Injection

Je nach Art der Injection und der angegriffener Anwendung kann Code Injection sehr weitreichende Folgen haben. Mögliche Folgen sind:

  • unbefugtes Auslesen sensibler Daten
  • Manipulieren oder Löschen gespeicherter Daten
  • Ausführen unerwünschter Programmfunktionen
  • Verschaffen von erweiterten Benutzerrechten am System
  • Einschleusen von Malware
  • Übernahme von kompletten Rechnern
  • Denial of Service

Gängige Beispiele für das Einschleusen von unerwünschtem Programmcode

Code Injection ist der Überbegriff für viele verschiedene Arten, nicht vorgesehenen oder unerwünschten Programmcode in Anwendungen einzuschleusen. Häufige angewandte Arten sind SQL Injection und Cross Site Scripting. Bei SQL Injection gelingt es einem Angreifer, SQL-Datenbankbefehle beispielsweise über ein Texteingabefeld an die Webanwendung mit ihrer dahinter liegenden SQL-Datenbank zu übergeben. Diese Befehle werden anschließend in der Datenbank ausgeführt und lassen sich nutzen, um Daten zu lesen, zu verändern oder zu löschen. Unter Umständen können Datenbankverwaltungsvorgänge ausgeführt werden. Die im Webumfeld häufig verwendeten PHP-Anwendungen mit ihren in SQL-Datenbanken gespeicherten Daten wie Content Management Systeme (CMS) sind für SQL Injection anfällig. Cross Site Scripting, abgekürzt XSS, erlaubt die Ausführung unerwünschter Skripte auf vertrauenswürdigen Websites. Diese Skripte lassen sich nutzen, um vertrauliche Informationen zu stehlen oder Cookies und Sitzungstoken zu übernehmen. Weitere Beispiele für Code Injection sind XPath Injection, E-Mail Injection, XML Injection oder LDAP Injection.

Schutz vor Code Injection

In der Regel lässt sich Code Injection auf eine Schwachstelle zurückführen, die die eingegebenen Daten nicht ausreichend prüft oder sie auf eine gefährliche Art verarbeitet. Wichtigste Schutzmaßnahme ist die Validierung der Eingabedaten. Die eingegebenen Daten müssen auf die erlaubten Zeichen, die erlaubten Formate und die erlaubten Eingabemengen begrenzt werden. Gängige Praxis ist das Whitelisting erlaubter Eingaben. Darüber hinaus sollte eine Übergabe der erhaltenen Daten nur an die tatsächlich erwünschten Interpreter-Funktionen möglich sein. Zur Prüfung von Computerprogrammen und Webanwendungen auf Code-Injection-Schwachstellen kommen Scanner zum Einsatz, die den Anwendungscode oder die interaktiven Eingabemöglichkeiten systematisch und strukturiert auf unerlaubte Codeeingaben prüfen.

(ID:47387023)

Über den Autor