Das Konzept der Injection, im deutschen Sprachgebrauch auch als Einschleusung bekannt, bezieht sich auf eine Klasse von Sicherheitsangriffen, bei denen ein Angreifer schädlichen Code in ein Programm oder Computersystem einspeist. Diese Angriffe nutzen meist Schwachstellen in der Verarbeitung von Eingabedaten aus, die von einem externen Nutzer kommen. Durch die Ausnutzung dieser Sicherheitslücken kann der Angreifer oftmals Kontrolle über das betroffene System erlangen oder unbefugt Daten manipulieren und entwenden.
Bei einer Injection-Attacke manipuliert der Angreifer die normalen Operationen des Systems, indem er den zu injectenden Code in einer Form sendet, den das System fälschlicherweise als gültige Eingabe interpretiert. Das System führt dann den schädlichen Code aus, was zu nicht autorisierten Handlungen führt. Diese können von der einfachen Störung bis hin zum totalen Systemzugriff reichen, je nach Art der Schwachstelle und dem Zielsystem.
Ein bekanntes Beispiel für eine solche Sicherheitslücke ist die SQL-Injection. Hier manipuliert der Angreifer die Eingabeparameter einer Webanwendung, um unerlaubte SQL-Befehle auf der Datenbankebene auszuführen. Diese Befehle können dazu verwendet werden, sensitive Daten auszulesen, zu manipulieren oder gar ganze Datenbestände zu löschen. SQL-Injections gehören zu den am häufigsten ausgenutzten Sicherheitslücken, insbesondere bei dynamischen Webanwendungen, die Datenbankoperationen verwenden.
Um solche Angriffe zu verhindern, ist es unerlässlich, dass Entwicklerinnen und Entwickler Sicherheitsbest Practices anwenden, wie etwa:
Die Bedeutung von Sicherheitsmaßnahmen gegen Injection-Angriffe kann nicht überschätzt werden, da die Auswirkungen eines erfolgreichen Angriffs katastrophal sein können. Absicherung gegenüber Injections gehört zur grundlegenden Verantwortung der Entwickelnden und ist ein fortwährender Prozess, der eine stetige Aufmerksamkeit und Aktualisierung erfordert.