Command Injection – Wer kann was tun?

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Command Injection – Wer kann was tun?

Programmierer

  • Kein exec(), system(), shell_exec() mit User-Input
  • Whitelisting statt Blacklisting
  • Feste Befehle und feste Parameter
  • Keine Shell, sondern direkte Syscalls / Library-Funktionen
  • Input-Validierung (Typ, Länge, erlaubte Zeichen)
  • Keine Debug- oder Admin-Funktionen in Produktivsystemen
  • Code-Reviews mit Security-Fokus

Webserver-Administrator

  • Anwendung läuft nicht als root
  • Gefährliche Funktionen deaktivieren (z. B. exec, passthru, shell_exec)
  • Eigener User pro Anwendung
  • Minimale Dateisystem-Rechte
  • Upload-Verzeichnisse mit noexec mounten
  • Kein Schreibzugriff auf Systempfade
  • saubere PHP-/Runtime-Konfiguration
  • Logging aktivieren (Requests, Parameter, Fehler)

Firewall-Administrator

  • Web Application Firewall einsetzen
  • Blockieren typischer Metazeichen (; | && || ` $())
  • Erkennen bekannter Command-Injection-Payloads
  • Outbound-Traffic des Webservers einschränken
  • Egress-Filtering gegen Reverse Shells
  • Netzwerksegmentierung (Web ≠ DB ≠ Intern)

SOC / Blue Team

  • Korrelation von Web-, System- und EDR-Logs
  • Alerts bei Command-Ausführung durch Webprozesse
  • Erkennen ungewöhnlicher Child-Prozesse (bash, sh, nc, python)
  • Baseline: Was darf ein Webserver normalerweise tun?
  • Incident-Response-Playbooks für RCE
  • Threat Hunting auf Anomalien

DevOps / Plattform-Team

  • Immutable Infrastructure
  • Container mit Read-Only-Filesystem
  • Kein Shell-Zugriff in Produktion
  • Secrets nicht im Code oder in Klartext-ENV
  • Härtung von CI/CD-Pipelines

Pentest / Red Team

  • Findet Command-Injection vor Angreifern
  • Testet Filter-Bypasses
  • Liefert konkrete technische Fixes

Security / Governance

  • Secure-Coding-Guidelines
  • Verbindliche Review-Standards
  • Klare Vorgabe: User-Input erreicht niemals eine Shell

Schulung / Awareness

  • Entwickler verstehen Ursachen und Auswirkungen
  • Reale Beispiele statt Theorie
  • Fokus auf Fehlervermeidung, nicht nur Erkennung

Kernaussage

Command Injection ist primär ein Entwicklungsfehler. Firewall und SOC erkennen und begrenzen Schäden – verhindern kann es nur saubere Software.