SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

Programmierer erobern Sicherheit: Serie „Teilen und Lernen“ — Code Injection

Jaap Karan Singh
Veröffentlicht am 16. Mai 2019
Zuletzt aktualisiert am 09. März 2026

Code-Injection-Angriffe gehören zu den häufigsten und auch gefährlichsten Angriffen, denen viele Websites und Anwendungen ausgesetzt sind. Sie decken das gesamte Spektrum ab, sowohl in Bezug auf ihre Raffinesse als auch in Bezug auf die von ihnen ausgehende Gefahr, aber fast jede Website oder App, die Benutzereingaben akzeptiert, könnte anfällig sein. Tatsächlich ist diese Art von Angriff eine, mit der sich fast jeder Cybersicherheitsverteidiger irgendwann in seiner Karriere auseinandersetzen muss, und er wird sich wahrscheinlich mehrmals damit auseinandersetzen.

Ein Code-Injection-Angriff kann immer dann auftreten, wenn eine Anwendung oder Website Eingaben von Benutzern akzeptiert. Dies kann so einfach sein wie die Bereitstellung einer Suchfunktion oder die Aufforderung eines Benutzers, seine Identifikationsinformationen einzugeben. Der Angriff erfolgt, wenn ein böswilliger Benutzer anstelle der normalen Texteingabe Code in das offene Feld eingibt. Ihr Ziel ist es, den Server dazu zu bringen, die Eingabe mit gültigem Code zu verwechseln und dann alle vom Angreifer gewünschten Funktionen auszuführen.

Code-Injection-Angriffe sind zwar extrem häufig, aber auch die verfügbaren Abwehrmaßnahmen, mit denen sie gestoppt werden können. In dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer Code Injection?

Obwohl sich die spezifischen Details zu Code-Injection-Angriffen je nach verwendeter Programmiersprache ändern, kann jede App oder Website anfällig sein, solange sie einem Benutzer die Eingabe von Daten ermöglicht. Code-Injection-Angriffe wurden für SQL, HTML, XML, CSS und jede andere gängige Programmiersprache ausgelöst.

Zunächst muss ein Angreifer anfälligen Code in einer Anwendung finden, normalerweise an einem Punkt, an dem Benutzer ihre eigenen Eingaben eingeben dürfen. Dieser Code verwendet beispielsweise die PHP-Funktion eval () und übergibt sie an einen Benutzer zur Änderung, ohne dass die Rückgabezeichenfolge überprüft wird.

$myvar = „Variablenname“;
$x = $_GET [Argument];
eval („\ $myvar =\ $x;“);

Ein cleverer Angreifer könnte der eval-Funktion leicht eine eigene Zeichenfolge hinzufügen und sogar Systembefehle ausführen, wenn er dies wünscht.

/index.php? Argument = 1; System (ID)

Es ist wichtig zu beachten, dass Code-Injection-Angriffe zwar das Senden von Systembefehlen beinhalten können, aber nicht darauf beschränkt sind, nur das zu tun. Tatsächlich sind Hacker bei Code-Injection-Angriffen nur durch die Funktionalität der Sprache selbst eingeschränkt. 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 zulässt, was sie mit den Programmierern der App gleichstellt. Ein Angreifer könnte quasi seine eigene App schreiben und sie in der Zielumgebung ausführen lassen.

Selbst weniger geschickte Angreifer können gefährlich sein. Anstatt ihre eigene Anwendung oder Codezeichenfolgen zu schreiben, können sie das Zielsystem einfach anweisen, vorprogrammierte Malware zu akzeptieren und zu installieren. Dies könnte zur Verunstaltung der Website oder zu Ransomware-Angriffen führen oder sogar zur Grundlage für eine Phishing-Kampagne gegen die Nutzer der Website werden.

In den meisten Fällen werden Code-Injection-Angriffe verwendet, um Dinge wie Benutzerlisten und Passwörter zu stehlen oder wertvolle Erkenntnisse über ein System zu gewinnen, das weiteren Angriffen ausgesetzt ist. Aber seien Sie gewarnt, ein erfahrener Programmierer kann mit einem Code-Injection-Angriff fast alles machen. Deshalb ist es wichtig, dass jede potenzielle Instanz dieser Angriffe entdeckt und aus Ihrer Umgebung entfernt wird.

Vertraue niemandem! (Oder zumindest keine Benutzer)

Bei der Beseitigung von Sicherheitslücken bei Code-Injection-Angriffen sollten Sie zuerst nach einer Stelle suchen, die Benutzereingaben verlangt oder zulässt. Alles, was ein Benutzer eingibt, darf unter keinen Umständen als vertrauenswürdig eingestuft werden. Wenn Sie Benutzereingaben ohne Filterung oder Prüfung zulassen, laden Sie Angreifer im Grunde dazu ein, eine freie Chance zu haben, Ihr System oder sogar Ihr Netzwerk zu gefährden.

Obwohl dies nicht immer möglich ist, lassen sich Code-Injection-Angriffe am besten verhindern, indem Sie verhindern, dass Funktionen Benutzereingaben direkt ausführen oder interpretieren. Vielleicht können Benutzer zwischen statischen Optionen wählen, anstatt die Freiheit zu haben, ihre eigenen Abfragen einzugeben, wobei die Anwendung so programmiert ist, dass sie nur diese begrenzten Auswahlmöglichkeiten als gültig akzeptiert. Vielleicht ist das nicht immer angemessen, aber wenn Sie es, wo immer möglich, verwenden, können Codeinjektionen vermieden werden, bevor sie beginnen.

In Bereichen, in denen Benutzer ihre eigenen Eingaben eingeben müssen, müssen diese Daten streng kontrolliert werden. Angenommen, alles ist ein potenzieller Angriff, ist ein guter Anfang. Durch die Durchsetzung von Richtlinien mit den geringsten Rechten, wie z. B. schreibgeschütztem Benutzerzugriff, sowohl auf Client- als auch auf Serverseite, kann die Ausführung des größten Teils des Codes verhindert werden.

Die andere gute Verteidigung besteht darin, anwendungsweite Filter und Desinfizierungen für alles zu implementieren, was Benutzer eingeben. Entwickler sind sich seit Jahren der Code-Injection-Angriffe bewusst, und für jedes Framework und jede Sprache gibt es Bibliotheken mit bewährten Filtern. Achten Sie beim Anwenden dieser Filter darauf, dass Sie dies nicht nur an den offensichtlichen Benutzereingabebereichen oder an allgemeinen Parametern wie Get- und Post-Befehlen tun, sondern auch an Cookies und HTTP-Headern.

Anwenden einer Korrektur für die Codeinjektion

Wenn Sie unnötige Benutzereingabebereiche aus Ihrer Umgebung entfernen, die Prinzipien der geringsten Zugriffsrechte durchsetzen und die neuesten Filter- und Sanitisierungstools verwenden, um potenzielle Angriffe zu untersuchen und zu erkennen, können Sie diese gefährliche Sicherheitslücke schließen. Die Einstellung, Benutzereingaben niemals zu vertrauen, wird Ihnen auch in Zukunft gute Dienste leisten. Wenn Sie all das tun, sind Sie dieser gefährlichen Art von Angriffen immer einen Schritt voraus.

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf Code-Injektion. Sie können Ihr neu gewonnenes Verteidigungswissen auch mit dem auf die Probe stellen kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Gesichtscode-Injektion direkt, sofort. Nehmen Sie die Herausforderung auf unserer gamifizierten Trainingsplattform an: [Fangen Sie hier an]

Ressource anzeigen
Ressource anzeigen

Code-Injection-Angriffe gehören zu den häufigsten und auch gefährlichsten Angriffen, denen viele Websites und Anwendungen ausgesetzt sind. Sie decken das gesamte Spektrum ab, sowohl in Bezug auf ihre Raffinesse als auch in Bezug auf die von ihnen ausgehende Gefahr, aber fast jede Website oder App, die Benutzereingaben akzeptiert, könnte anfällig sein.

Interessiert an mehr?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Eine Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Jaap Karan Singh
Veröffentlicht am 16. Mai 2019

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Code-Injection-Angriffe gehören zu den häufigsten und auch gefährlichsten Angriffen, denen viele Websites und Anwendungen ausgesetzt sind. Sie decken das gesamte Spektrum ab, sowohl in Bezug auf ihre Raffinesse als auch in Bezug auf die von ihnen ausgehende Gefahr, aber fast jede Website oder App, die Benutzereingaben akzeptiert, könnte anfällig sein. Tatsächlich ist diese Art von Angriff eine, mit der sich fast jeder Cybersicherheitsverteidiger irgendwann in seiner Karriere auseinandersetzen muss, und er wird sich wahrscheinlich mehrmals damit auseinandersetzen.

Ein Code-Injection-Angriff kann immer dann auftreten, wenn eine Anwendung oder Website Eingaben von Benutzern akzeptiert. Dies kann so einfach sein wie die Bereitstellung einer Suchfunktion oder die Aufforderung eines Benutzers, seine Identifikationsinformationen einzugeben. Der Angriff erfolgt, wenn ein böswilliger Benutzer anstelle der normalen Texteingabe Code in das offene Feld eingibt. Ihr Ziel ist es, den Server dazu zu bringen, die Eingabe mit gültigem Code zu verwechseln und dann alle vom Angreifer gewünschten Funktionen auszuführen.

Code-Injection-Angriffe sind zwar extrem häufig, aber auch die verfügbaren Abwehrmaßnahmen, mit denen sie gestoppt werden können. In dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer Code Injection?

Obwohl sich die spezifischen Details zu Code-Injection-Angriffen je nach verwendeter Programmiersprache ändern, kann jede App oder Website anfällig sein, solange sie einem Benutzer die Eingabe von Daten ermöglicht. Code-Injection-Angriffe wurden für SQL, HTML, XML, CSS und jede andere gängige Programmiersprache ausgelöst.

Zunächst muss ein Angreifer anfälligen Code in einer Anwendung finden, normalerweise an einem Punkt, an dem Benutzer ihre eigenen Eingaben eingeben dürfen. Dieser Code verwendet beispielsweise die PHP-Funktion eval () und übergibt sie an einen Benutzer zur Änderung, ohne dass die Rückgabezeichenfolge überprüft wird.

$myvar = „Variablenname“;
$x = $_GET [Argument];
eval („\ $myvar =\ $x;“);

Ein cleverer Angreifer könnte der eval-Funktion leicht eine eigene Zeichenfolge hinzufügen und sogar Systembefehle ausführen, wenn er dies wünscht.

/index.php? Argument = 1; System (ID)

Es ist wichtig zu beachten, dass Code-Injection-Angriffe zwar das Senden von Systembefehlen beinhalten können, aber nicht darauf beschränkt sind, nur das zu tun. Tatsächlich sind Hacker bei Code-Injection-Angriffen nur durch die Funktionalität der Sprache selbst eingeschränkt. 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 zulässt, was sie mit den Programmierern der App gleichstellt. Ein Angreifer könnte quasi seine eigene App schreiben und sie in der Zielumgebung ausführen lassen.

Selbst weniger geschickte Angreifer können gefährlich sein. Anstatt ihre eigene Anwendung oder Codezeichenfolgen zu schreiben, können sie das Zielsystem einfach anweisen, vorprogrammierte Malware zu akzeptieren und zu installieren. Dies könnte zur Verunstaltung der Website oder zu Ransomware-Angriffen führen oder sogar zur Grundlage für eine Phishing-Kampagne gegen die Nutzer der Website werden.

In den meisten Fällen werden Code-Injection-Angriffe verwendet, um Dinge wie Benutzerlisten und Passwörter zu stehlen oder wertvolle Erkenntnisse über ein System zu gewinnen, das weiteren Angriffen ausgesetzt ist. Aber seien Sie gewarnt, ein erfahrener Programmierer kann mit einem Code-Injection-Angriff fast alles machen. Deshalb ist es wichtig, dass jede potenzielle Instanz dieser Angriffe entdeckt und aus Ihrer Umgebung entfernt wird.

Vertraue niemandem! (Oder zumindest keine Benutzer)

Bei der Beseitigung von Sicherheitslücken bei Code-Injection-Angriffen sollten Sie zuerst nach einer Stelle suchen, die Benutzereingaben verlangt oder zulässt. Alles, was ein Benutzer eingibt, darf unter keinen Umständen als vertrauenswürdig eingestuft werden. Wenn Sie Benutzereingaben ohne Filterung oder Prüfung zulassen, laden Sie Angreifer im Grunde dazu ein, eine freie Chance zu haben, Ihr System oder sogar Ihr Netzwerk zu gefährden.

Obwohl dies nicht immer möglich ist, lassen sich Code-Injection-Angriffe am besten verhindern, indem Sie verhindern, dass Funktionen Benutzereingaben direkt ausführen oder interpretieren. Vielleicht können Benutzer zwischen statischen Optionen wählen, anstatt die Freiheit zu haben, ihre eigenen Abfragen einzugeben, wobei die Anwendung so programmiert ist, dass sie nur diese begrenzten Auswahlmöglichkeiten als gültig akzeptiert. Vielleicht ist das nicht immer angemessen, aber wenn Sie es, wo immer möglich, verwenden, können Codeinjektionen vermieden werden, bevor sie beginnen.

In Bereichen, in denen Benutzer ihre eigenen Eingaben eingeben müssen, müssen diese Daten streng kontrolliert werden. Angenommen, alles ist ein potenzieller Angriff, ist ein guter Anfang. Durch die Durchsetzung von Richtlinien mit den geringsten Rechten, wie z. B. schreibgeschütztem Benutzerzugriff, sowohl auf Client- als auch auf Serverseite, kann die Ausführung des größten Teils des Codes verhindert werden.

Die andere gute Verteidigung besteht darin, anwendungsweite Filter und Desinfizierungen für alles zu implementieren, was Benutzer eingeben. Entwickler sind sich seit Jahren der Code-Injection-Angriffe bewusst, und für jedes Framework und jede Sprache gibt es Bibliotheken mit bewährten Filtern. Achten Sie beim Anwenden dieser Filter darauf, dass Sie dies nicht nur an den offensichtlichen Benutzereingabebereichen oder an allgemeinen Parametern wie Get- und Post-Befehlen tun, sondern auch an Cookies und HTTP-Headern.

Anwenden einer Korrektur für die Codeinjektion

Wenn Sie unnötige Benutzereingabebereiche aus Ihrer Umgebung entfernen, die Prinzipien der geringsten Zugriffsrechte durchsetzen und die neuesten Filter- und Sanitisierungstools verwenden, um potenzielle Angriffe zu untersuchen und zu erkennen, können Sie diese gefährliche Sicherheitslücke schließen. Die Einstellung, Benutzereingaben niemals zu vertrauen, wird Ihnen auch in Zukunft gute Dienste leisten. Wenn Sie all das tun, sind Sie dieser gefährlichen Art von Angriffen immer einen Schritt voraus.

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf Code-Injektion. Sie können Ihr neu gewonnenes Verteidigungswissen auch mit dem auf die Probe stellen kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Gesichtscode-Injektion direkt, sofort. Nehmen Sie die Herausforderung auf unserer gamifizierten Trainingsplattform an: [Fangen Sie hier an]

Ressource anzeigen
Ressource anzeigen

Füllen Sie das unten stehende Formular aus, um den Bericht herunterzuladen.

Wir bitten um Ihre Erlaubnis, Ihnen Informationen zu unseren Produkten und/oder verwandten Themen rund um sichere Codierung zuzusenden. Wir behandeln Ihre persönlichen Daten stets mit größter Sorgfalt und verkaufen sie niemals zu Marketingzwecken an andere Unternehmen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular abzusenden, aktivieren Sie bitte „Analytics“-Cookies. Wenn Sie fertig sind, können Sie sie jederzeit wieder deaktivieren.

Code-Injection-Angriffe gehören zu den häufigsten und auch gefährlichsten Angriffen, denen viele Websites und Anwendungen ausgesetzt sind. Sie decken das gesamte Spektrum ab, sowohl in Bezug auf ihre Raffinesse als auch in Bezug auf die von ihnen ausgehende Gefahr, aber fast jede Website oder App, die Benutzereingaben akzeptiert, könnte anfällig sein. Tatsächlich ist diese Art von Angriff eine, mit der sich fast jeder Cybersicherheitsverteidiger irgendwann in seiner Karriere auseinandersetzen muss, und er wird sich wahrscheinlich mehrmals damit auseinandersetzen.

Ein Code-Injection-Angriff kann immer dann auftreten, wenn eine Anwendung oder Website Eingaben von Benutzern akzeptiert. Dies kann so einfach sein wie die Bereitstellung einer Suchfunktion oder die Aufforderung eines Benutzers, seine Identifikationsinformationen einzugeben. Der Angriff erfolgt, wenn ein böswilliger Benutzer anstelle der normalen Texteingabe Code in das offene Feld eingibt. Ihr Ziel ist es, den Server dazu zu bringen, die Eingabe mit gültigem Code zu verwechseln und dann alle vom Angreifer gewünschten Funktionen auszuführen.

Code-Injection-Angriffe sind zwar extrem häufig, aber auch die verfügbaren Abwehrmaßnahmen, mit denen sie gestoppt werden können. In dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer Code Injection?

Obwohl sich die spezifischen Details zu Code-Injection-Angriffen je nach verwendeter Programmiersprache ändern, kann jede App oder Website anfällig sein, solange sie einem Benutzer die Eingabe von Daten ermöglicht. Code-Injection-Angriffe wurden für SQL, HTML, XML, CSS und jede andere gängige Programmiersprache ausgelöst.

Zunächst muss ein Angreifer anfälligen Code in einer Anwendung finden, normalerweise an einem Punkt, an dem Benutzer ihre eigenen Eingaben eingeben dürfen. Dieser Code verwendet beispielsweise die PHP-Funktion eval () und übergibt sie an einen Benutzer zur Änderung, ohne dass die Rückgabezeichenfolge überprüft wird.

$myvar = „Variablenname“;
$x = $_GET [Argument];
eval („\ $myvar =\ $x;“);

Ein cleverer Angreifer könnte der eval-Funktion leicht eine eigene Zeichenfolge hinzufügen und sogar Systembefehle ausführen, wenn er dies wünscht.

/index.php? Argument = 1; System (ID)

Es ist wichtig zu beachten, dass Code-Injection-Angriffe zwar das Senden von Systembefehlen beinhalten können, aber nicht darauf beschränkt sind, nur das zu tun. Tatsächlich sind Hacker bei Code-Injection-Angriffen nur durch die Funktionalität der Sprache selbst eingeschränkt. 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 zulässt, was sie mit den Programmierern der App gleichstellt. Ein Angreifer könnte quasi seine eigene App schreiben und sie in der Zielumgebung ausführen lassen.

Selbst weniger geschickte Angreifer können gefährlich sein. Anstatt ihre eigene Anwendung oder Codezeichenfolgen zu schreiben, können sie das Zielsystem einfach anweisen, vorprogrammierte Malware zu akzeptieren und zu installieren. Dies könnte zur Verunstaltung der Website oder zu Ransomware-Angriffen führen oder sogar zur Grundlage für eine Phishing-Kampagne gegen die Nutzer der Website werden.

In den meisten Fällen werden Code-Injection-Angriffe verwendet, um Dinge wie Benutzerlisten und Passwörter zu stehlen oder wertvolle Erkenntnisse über ein System zu gewinnen, das weiteren Angriffen ausgesetzt ist. Aber seien Sie gewarnt, ein erfahrener Programmierer kann mit einem Code-Injection-Angriff fast alles machen. Deshalb ist es wichtig, dass jede potenzielle Instanz dieser Angriffe entdeckt und aus Ihrer Umgebung entfernt wird.

Vertraue niemandem! (Oder zumindest keine Benutzer)

Bei der Beseitigung von Sicherheitslücken bei Code-Injection-Angriffen sollten Sie zuerst nach einer Stelle suchen, die Benutzereingaben verlangt oder zulässt. Alles, was ein Benutzer eingibt, darf unter keinen Umständen als vertrauenswürdig eingestuft werden. Wenn Sie Benutzereingaben ohne Filterung oder Prüfung zulassen, laden Sie Angreifer im Grunde dazu ein, eine freie Chance zu haben, Ihr System oder sogar Ihr Netzwerk zu gefährden.

Obwohl dies nicht immer möglich ist, lassen sich Code-Injection-Angriffe am besten verhindern, indem Sie verhindern, dass Funktionen Benutzereingaben direkt ausführen oder interpretieren. Vielleicht können Benutzer zwischen statischen Optionen wählen, anstatt die Freiheit zu haben, ihre eigenen Abfragen einzugeben, wobei die Anwendung so programmiert ist, dass sie nur diese begrenzten Auswahlmöglichkeiten als gültig akzeptiert. Vielleicht ist das nicht immer angemessen, aber wenn Sie es, wo immer möglich, verwenden, können Codeinjektionen vermieden werden, bevor sie beginnen.

In Bereichen, in denen Benutzer ihre eigenen Eingaben eingeben müssen, müssen diese Daten streng kontrolliert werden. Angenommen, alles ist ein potenzieller Angriff, ist ein guter Anfang. Durch die Durchsetzung von Richtlinien mit den geringsten Rechten, wie z. B. schreibgeschütztem Benutzerzugriff, sowohl auf Client- als auch auf Serverseite, kann die Ausführung des größten Teils des Codes verhindert werden.

Die andere gute Verteidigung besteht darin, anwendungsweite Filter und Desinfizierungen für alles zu implementieren, was Benutzer eingeben. Entwickler sind sich seit Jahren der Code-Injection-Angriffe bewusst, und für jedes Framework und jede Sprache gibt es Bibliotheken mit bewährten Filtern. Achten Sie beim Anwenden dieser Filter darauf, dass Sie dies nicht nur an den offensichtlichen Benutzereingabebereichen oder an allgemeinen Parametern wie Get- und Post-Befehlen tun, sondern auch an Cookies und HTTP-Headern.

Anwenden einer Korrektur für die Codeinjektion

Wenn Sie unnötige Benutzereingabebereiche aus Ihrer Umgebung entfernen, die Prinzipien der geringsten Zugriffsrechte durchsetzen und die neuesten Filter- und Sanitisierungstools verwenden, um potenzielle Angriffe zu untersuchen und zu erkennen, können Sie diese gefährliche Sicherheitslücke schließen. Die Einstellung, Benutzereingaben niemals zu vertrauen, wird Ihnen auch in Zukunft gute Dienste leisten. Wenn Sie all das tun, sind Sie dieser gefährlichen Art von Angriffen immer einen Schritt voraus.

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf Code-Injektion. Sie können Ihr neu gewonnenes Verteidigungswissen auch mit dem auf die Probe stellen kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Gesichtscode-Injektion direkt, sofort. Nehmen Sie die Herausforderung auf unserer gamifizierten Trainingsplattform an: [Fangen Sie hier an]

Webinar ansehen
Fangen Sie an
mehr erfahren

Klicken Sie auf den untenstehenden Link und laden Sie das PDF dieser Ressource herunter.

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht ansehenEine Demo buchen
Ressource anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Interessiert an mehr?

Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Jaap Karan Singh
Veröffentlicht am 16. Mai 2019

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Code-Injection-Angriffe gehören zu den häufigsten und auch gefährlichsten Angriffen, denen viele Websites und Anwendungen ausgesetzt sind. Sie decken das gesamte Spektrum ab, sowohl in Bezug auf ihre Raffinesse als auch in Bezug auf die von ihnen ausgehende Gefahr, aber fast jede Website oder App, die Benutzereingaben akzeptiert, könnte anfällig sein. Tatsächlich ist diese Art von Angriff eine, mit der sich fast jeder Cybersicherheitsverteidiger irgendwann in seiner Karriere auseinandersetzen muss, und er wird sich wahrscheinlich mehrmals damit auseinandersetzen.

Ein Code-Injection-Angriff kann immer dann auftreten, wenn eine Anwendung oder Website Eingaben von Benutzern akzeptiert. Dies kann so einfach sein wie die Bereitstellung einer Suchfunktion oder die Aufforderung eines Benutzers, seine Identifikationsinformationen einzugeben. Der Angriff erfolgt, wenn ein böswilliger Benutzer anstelle der normalen Texteingabe Code in das offene Feld eingibt. Ihr Ziel ist es, den Server dazu zu bringen, die Eingabe mit gültigem Code zu verwechseln und dann alle vom Angreifer gewünschten Funktionen auszuführen.

Code-Injection-Angriffe sind zwar extrem häufig, aber auch die verfügbaren Abwehrmaßnahmen, mit denen sie gestoppt werden können. In dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer Code Injection?

Obwohl sich die spezifischen Details zu Code-Injection-Angriffen je nach verwendeter Programmiersprache ändern, kann jede App oder Website anfällig sein, solange sie einem Benutzer die Eingabe von Daten ermöglicht. Code-Injection-Angriffe wurden für SQL, HTML, XML, CSS und jede andere gängige Programmiersprache ausgelöst.

Zunächst muss ein Angreifer anfälligen Code in einer Anwendung finden, normalerweise an einem Punkt, an dem Benutzer ihre eigenen Eingaben eingeben dürfen. Dieser Code verwendet beispielsweise die PHP-Funktion eval () und übergibt sie an einen Benutzer zur Änderung, ohne dass die Rückgabezeichenfolge überprüft wird.

$myvar = „Variablenname“;
$x = $_GET [Argument];
eval („\ $myvar =\ $x;“);

Ein cleverer Angreifer könnte der eval-Funktion leicht eine eigene Zeichenfolge hinzufügen und sogar Systembefehle ausführen, wenn er dies wünscht.

/index.php? Argument = 1; System (ID)

Es ist wichtig zu beachten, dass Code-Injection-Angriffe zwar das Senden von Systembefehlen beinhalten können, aber nicht darauf beschränkt sind, nur das zu tun. Tatsächlich sind Hacker bei Code-Injection-Angriffen nur durch die Funktionalität der Sprache selbst eingeschränkt. 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 zulässt, was sie mit den Programmierern der App gleichstellt. Ein Angreifer könnte quasi seine eigene App schreiben und sie in der Zielumgebung ausführen lassen.

Selbst weniger geschickte Angreifer können gefährlich sein. Anstatt ihre eigene Anwendung oder Codezeichenfolgen zu schreiben, können sie das Zielsystem einfach anweisen, vorprogrammierte Malware zu akzeptieren und zu installieren. Dies könnte zur Verunstaltung der Website oder zu Ransomware-Angriffen führen oder sogar zur Grundlage für eine Phishing-Kampagne gegen die Nutzer der Website werden.

In den meisten Fällen werden Code-Injection-Angriffe verwendet, um Dinge wie Benutzerlisten und Passwörter zu stehlen oder wertvolle Erkenntnisse über ein System zu gewinnen, das weiteren Angriffen ausgesetzt ist. Aber seien Sie gewarnt, ein erfahrener Programmierer kann mit einem Code-Injection-Angriff fast alles machen. Deshalb ist es wichtig, dass jede potenzielle Instanz dieser Angriffe entdeckt und aus Ihrer Umgebung entfernt wird.

Vertraue niemandem! (Oder zumindest keine Benutzer)

Bei der Beseitigung von Sicherheitslücken bei Code-Injection-Angriffen sollten Sie zuerst nach einer Stelle suchen, die Benutzereingaben verlangt oder zulässt. Alles, was ein Benutzer eingibt, darf unter keinen Umständen als vertrauenswürdig eingestuft werden. Wenn Sie Benutzereingaben ohne Filterung oder Prüfung zulassen, laden Sie Angreifer im Grunde dazu ein, eine freie Chance zu haben, Ihr System oder sogar Ihr Netzwerk zu gefährden.

Obwohl dies nicht immer möglich ist, lassen sich Code-Injection-Angriffe am besten verhindern, indem Sie verhindern, dass Funktionen Benutzereingaben direkt ausführen oder interpretieren. Vielleicht können Benutzer zwischen statischen Optionen wählen, anstatt die Freiheit zu haben, ihre eigenen Abfragen einzugeben, wobei die Anwendung so programmiert ist, dass sie nur diese begrenzten Auswahlmöglichkeiten als gültig akzeptiert. Vielleicht ist das nicht immer angemessen, aber wenn Sie es, wo immer möglich, verwenden, können Codeinjektionen vermieden werden, bevor sie beginnen.

In Bereichen, in denen Benutzer ihre eigenen Eingaben eingeben müssen, müssen diese Daten streng kontrolliert werden. Angenommen, alles ist ein potenzieller Angriff, ist ein guter Anfang. Durch die Durchsetzung von Richtlinien mit den geringsten Rechten, wie z. B. schreibgeschütztem Benutzerzugriff, sowohl auf Client- als auch auf Serverseite, kann die Ausführung des größten Teils des Codes verhindert werden.

Die andere gute Verteidigung besteht darin, anwendungsweite Filter und Desinfizierungen für alles zu implementieren, was Benutzer eingeben. Entwickler sind sich seit Jahren der Code-Injection-Angriffe bewusst, und für jedes Framework und jede Sprache gibt es Bibliotheken mit bewährten Filtern. Achten Sie beim Anwenden dieser Filter darauf, dass Sie dies nicht nur an den offensichtlichen Benutzereingabebereichen oder an allgemeinen Parametern wie Get- und Post-Befehlen tun, sondern auch an Cookies und HTTP-Headern.

Anwenden einer Korrektur für die Codeinjektion

Wenn Sie unnötige Benutzereingabebereiche aus Ihrer Umgebung entfernen, die Prinzipien der geringsten Zugriffsrechte durchsetzen und die neuesten Filter- und Sanitisierungstools verwenden, um potenzielle Angriffe zu untersuchen und zu erkennen, können Sie diese gefährliche Sicherheitslücke schließen. Die Einstellung, Benutzereingaben niemals zu vertrauen, wird Ihnen auch in Zukunft gute Dienste leisten. Wenn Sie all das tun, sind Sie dieser gefährlichen Art von Angriffen immer einen Schritt voraus.

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf Code-Injektion. Sie können Ihr neu gewonnenes Verteidigungswissen auch mit dem auf die Probe stellen kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Gesichtscode-Injektion direkt, sofort. Nehmen Sie die Herausforderung auf unserer gamifizierten Trainingsplattform an: [Fangen Sie hier an]

Inhaltsverzeichnis

PDF herunterladen
Ressource anzeigen
Interessiert an mehr?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Eine Demo buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcen-Hub

Ressourcen für den Einstieg

Weitere Beiträge
Ressourcen-Hub

Ressourcen für den Einstieg

Weitere Beiträge