Code Injection

Code Injection

© Copyright Shutterstock/ ozrimoz

Was ist Code Injection?

Definition

Code Injection bedeutet, dass ein Angreifer PHP-Code in eine Anwendung einschleust und die Möglichkeit hat diese auf dem Server auszuführen. Ein erfolgreicher Code Injection Angriff hat zur Folge, dass der Angreifer in der Lage ist Scripte und Datenbänke manipulieren zu können.

Beschreibung

Die Software erstellt ein komplettes oder ein Teil eines Codesegments mit von außen beeinflussten Eingaben. Spezielle Elemente einer Komponente werden dabei nicht oder fehlerhaft neutralisiert, die die Syntax oder das Verhalten des beabsichtigten Codesegments modifizieren.

Wenn die Eingaben eines Benutzers Code-Syntax enthalten, kann es für einen Angreifer möglich sein, den Code so zu gestalten, dass der beabsichtigte Steuerungsfluss der Software geändert wird. Eine solche Änderung kann zur Ausführung von willkürlichem Code führen.

Auswirkung

Es ist am effektivsten, diese Schwächen zu diskutieren, indem man die Besonderheiten erkennt, die sie als Injection Anfälligkeiten einstufen. Der wichtigste zu beachtende Punkt ist, dass alle Injection Probleme eines gemeinsam haben – d.h. sie ermöglichen die Injektion von Daten auf Steuerungsebene in die vom Benutzer gesteuerte Datenebene.

Dies bedeutet, dass die Ausführung des Prozesses durch Senden von Code über legitime Datenkanäle ohne Verwendung eines anderen Mechanismus geändert werden kann. Die häufigsten Instanziierungen dieser Schwachstellen-Kategorie sind SQL-Injection- und Formatstring-Schwachstellen.

Tipp

Überprüfen Sie die Sicherheit Ihrer Website mit unserem kostenlosen Security Crawler oder mit der OSG Performance Suite Free Version.

Lösung

Es ist sicherzustellen, dass der Code für ein Programm nicht dynamisch generiert werden muss. Der Code sollte in einer Umgebung ausgeführt werden, in der strikte Grenzen zwischen dem Prozess und dem Betriebssystem existieren. Dies kann zu effektiven Einschränken für den Code führen.

Durch Eingabevalidierungen werden akzeptierte Eingaben zugelassen und Eingaben mit fehlerhaften Spezifikationen verworfen. Dabei sollte beachtet werden, dass bei der Eingabevalidierung alle potenziell relevanten Eigenschaften, einschließlich Länge, Eingabetyp, den gesamten zulässigen Wertebereich, fehlende oder zusätzliche Eingaben, etc. berücksichtigt werden.

Jedoch sollten nicht ausschließlich Blacklist verwendet werden. Um die Wahrscheinlichkeit einer Code Injection zu verringern, sollten zudem Whitelists verwendet werden, die die zulässigen Konstrukte begrenzen.

Datenbanklink zur Schwachstelle

https://cwe.mitre.org/data/definitions/94.html


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte