Command Injection
Was ist Command Injection?
Command InjectionAngriff, bei dem Benutzereingaben ungefiltert an eine Betriebssystem-Shell übergeben werden und die Anwendung dadurch vom Angreifer gelieferte Befehle ausführt.
Command Injection (OS Command Injection) entsteht, wenn eine Anwendung Systembefehle aus nicht vertrauenswürdiger Eingabe zusammensetzt und sie einer Shell übergibt. Metazeichen wie ;, &, |, $() oder Backticks erlauben dem Angreifer, weitere Befehle anzuhängen, die mit den Rechten des Anwendungsprozesses laufen. Folgen sind beliebige Lese- und Schreibzugriffe, Lateral Movement, Reverse Shells und die vollständige Übernahme des Servers. Schutzmaßnahmen sind das vollständige Vermeiden der Shell durch APIs, die Argument-Arrays entgegennehmen, Allowlists für erwartete Werte, validierende und escapende Bibliotheken, Sandboxing, der Betrieb von Diensten unter Konten mit minimalen Rechten und Egress-Filtering, um Schäden zu begrenzen.
● Beispiele
- 01
Ein Ping-Tool, das einen Hostnamen-Parameter konkateniert, ermöglicht mit 127.0.0.1; cat /etc/shadow die Preisgabe von Passwort-Hashes.
- 02
Ein Bildverarbeitungs-Endpunkt, der ImageMagick aufruft, führt über einen präparierten Dateinamen einen Angreiferbefehl aus.
● Häufige Fragen
Was ist Command Injection?
Angriff, bei dem Benutzereingaben ungefiltert an eine Betriebssystem-Shell übergeben werden und die Anwendung dadurch vom Angreifer gelieferte Befehle ausführt. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet Command Injection?
Angriff, bei dem Benutzereingaben ungefiltert an eine Betriebssystem-Shell übergeben werden und die Anwendung dadurch vom Angreifer gelieferte Befehle ausführt.
Wie schützt man sich gegen Command Injection?
Schutzmaßnahmen gegen Command Injection kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Command Injection?
Übliche alternative Bezeichnungen: OS-Command-Injection, Shell Injection.