Entwickler meistern Sicherheit: Share & Learn-Reihe – Code Injection

Code-Injection-Angriffe gehören zu den häufigsten und zugleich gefährlichsten Bedrohungen, denen Websites und Anwendungen ausgesetzt sind. Sie variieren stark in ihrer Komplexität und dem von ihnen ausgehenden Risiko, doch nahezu jede Seite oder App, die Benutzereingaben akzeptiert, kann anfällig sein. Tatsächlich ist dies eine Angriffsart, mit der sich fast jeder Cybersicherheitsexperte im Laufe seiner Karriere auseinandersetzen muss – und das wahrscheinlich sogar mehrfach.
Ein Code-Injection-Angriff kann immer dann auftreten, wenn eine Anwendung oder Website Benutzereingaben akzeptiert. Das kann so einfach sein wie eine Suchfunktion oder die Aufforderung an einen Benutzer, seine Identifikationsdaten einzugeben. Der Angriff erfolgt, wenn ein böswilliger Benutzer Code anstelle von normalem Text in das offene Feld eingibt. Das Ziel ist es, den Server dazu zu bringen, die Eingabe für gültigen Code zu halten und anschließend die vom Angreifer gewünschten Funktionen auszuführen.
Obwohl Code-Injection-Angriffe extrem verbreitet sind, gibt es ebenso viele wirksame Abwehrmaßnahmen. In dieser Folge lernen wir:
- Wie sie funktionieren
- Warum sie so gefährlich sind
- Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.
Wie nutzen Angreifer Code-Injection?
Obwohl die spezifischen Details von Code-Injection-Angriffen je nach verwendeter Programmiersprache variieren, kann jede App oder Website anfällig sein, solange sie Benutzereingaben zulässt. Code-Injection-Angriffe wurden bereits für SQL, HTML, XML, CSS und jede andere gängige Programmiersprache dokumentiert.
Zunächst muss ein Angreifer anfälligen Code innerhalb einer Anwendung finden, normalerweise an einer Stelle, an der Benutzer eigene Eingaben machen können. Dieser Code nimmt beispielsweise die PHP-Funktion eval() und leitet sie an einen Benutzer weiter, damit dieser sie modifizieren kann, ohne dass eine Validierung des Rückgabestrings erfolgt.
$myvar = "varname";
$x = $_GET[arg];
eval("\$myvar = \$x;");
Ein geschickter Angreifer könnte problemlos seinen eigenen String in die eval-Funktion einfügen und bei Bedarf sogar Systembefehle ausführen.
/index.php?arg=1; system(id)
Es ist wichtig zu beachten, dass Code-Injection-Angriffe zwar das Senden von Systembefehlen beinhalten können, sich aber nicht darauf beschränken. Tatsächlich sind Hacker bei Code-Injection-Angriffen nur durch die Funktionalität der Sprache selbst begrenzt. In unserem Beispiel könnte ein Angreifer das Zielsystem so programmieren, dass es fast alles tut, was das PHP-Framework zulässt.
Warum sind Code-Injection-Angriffe so gefährlich?
Code-Injection-Angriffe sind je nach Können des Angreifers potenziell extrem gefährlich. Sie können alles tun, was die Programmiersprache erlaubt, wodurch sie auf derselben Ebene agieren wie die Entwickler der App. Ein Angreifer könnte praktisch seine eigene App schreiben und diese in der Zielumgebung ausführen lassen.
Auch weniger qualifizierte Angreifer können gefährlich sein. Anstatt eigene Anwendungen oder Code-Strings zu schreiben, können sie das Zielsystem einfach anweisen, vorprogrammierte Malware zu akzeptieren und zu installieren. Dies kann zur Verunstaltung der Website, zu Ransomware-Angriffen oder sogar zur Grundlage für Phishing-Kampagnen gegen die Benutzer der Website führen.
Meistens werden Code-Injection-Angriffe verwendet, um Dinge wie Benutzerlisten und Passwörter zu stehlen oder wertvolle Informationen über ein System zu sammeln, das für weitere Kompromittierungen ins Visier genommen wurde. Aber Vorsicht: Ein fähiger Programmierer kann mit einem Code-Injection-Angriff fast alles erreichen. Deshalb ist es entscheidend, dass jede potenzielle Schwachstelle entdeckt und aus Ihrer Umgebung entfernt wird.
Vertraue niemandem! (Oder zumindest keinen Benutzern)
Bei der Beseitigung von Schwachstellen für Code-Injection-Angriffe ist der erste Anlaufpunkt jede Stelle, die Benutzereingaben abfragt oder zulässt. Alles, was von einem Benutzer eingegeben wird, darf unter keinen Umständen als vertrauenswürdig angesehen werden. Wenn Sie Benutzereingaben ohne Filterung oder Prüfung zulassen, laden Sie Angreifer im Grunde dazu ein, Ihr System oder sogar Ihr Netzwerk ungestraft zu kompromittieren.
Obwohl es nicht immer möglich ist, besteht der beste Weg zur Abwehr von Code-Injection-Angriffen darin, zu verhindern, dass Funktionen Benutzereingaben direkt ausführen oder interpretieren. Vielleicht können Benutzern statische Optionen zur Auswahl gegeben werden, anstatt ihnen freie Hand bei der Eingabe eigener Abfragen zu lassen, wobei die Anwendung so programmiert ist, dass sie nur diese begrenzten Auswahlmöglichkeiten als gültig akzeptiert. Das ist nicht immer praktikabel, aber wo immer möglich, können Code-Injections so bereits im Keim erstickt werden.
Für Bereiche, in denen Benutzer eigene Eingaben machen müssen, müssen strenge Kontrollen für diese Daten gelten. Davon auszugehen, dass alles ein potenzieller Angriff ist, ist ein guter Anfang. Die Durchsetzung von Richtlinien mit minimalen Berechtigungen, wie z. B. ein schreibgeschützter Benutzerzugriff sowohl auf Client- als auch auf Serverseite, kann die Ausführung der meisten Schadcodes verhindern.
Eine weitere wirksame Verteidigungsmaßnahme ist die anwendungsweite Implementierung von Filtern und Bereinigungsroutinen für sämtliche Benutzereingaben. Entwickler sind sich der Gefahr von Code-Injection-Angriffen seit Jahren bewusst, und für jedes Framework sowie jede Programmiersprache stehen bewährte Bibliotheken mit entsprechenden Filtern zur Verfügung. Achten Sie bei der Anwendung dieser Filter darauf, nicht nur offensichtliche Eingabefelder oder gängige Parameter wie GET- und POST-Befehle zu berücksichtigen, sondern auch Cookies und HTTP-Header.
Korrekturmaßnahmen bei Code Injection
Indem Sie unnötige Eingabefelder aus Ihrer Umgebung entfernen, das Prinzip der minimalen Rechtevergabe durchsetzen und aktuelle Filter- sowie Bereinigungstools zur Erkennung potenzieller Angriffe einsetzen, können Sie diese gefährliche Schwachstelle schließen. Die Grundhaltung, Benutzereingaben grundsätzlich zu misstrauen, wird Ihnen auch in Zukunft gute Dienste leisten. Wenn Sie all dies umsetzen, bleiben Sie dieser gefährlichen Angriffsart stets einen Schritt voraus.
Weiterführende Informationen finden Sie im Artikel von OWASP über Code Injection. Sie können Ihr neu erworbenes Wissen zur Verteidigung auch mit der kostenlosen Demo der Secure Code Warrior-Plattform testen, die Cybersicherheitsteams zu erstklassigen Cyber-Experten ausbildet. Um mehr über die Abwehr dieser Schwachstelle und einer Vielzahl weiterer Bedrohungen zu erfahren, besuchen Sie den Secure Code Warrior-Blog.
Stellen Sie sich jetzt der Herausforderung durch Code Injection. Nehmen Sie an der Challenge auf unserer spielerischen Trainingsplattform teil: [Hier starten]
Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht
Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.
Weitere Blogs entdecken
Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat
Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung
Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Enabler 8: Branding für Ihr Programm
Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.
.avif)
Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit
Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.
Sichere KI-gestützte Entwicklung vor dem Release
Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.