Remote Code Execution, kurz RCE, beschreibt die Auswirkung einer Schwachstelle, über die ein Angreifer Code auf einem anderen System ausführen kann. RCE ist kein einzelner Schwachstellentyp. Command Injection, unsichere Deserialisierung, Template Injection oder Speicherfehler können alle zu einer RCE führen.
Die Folgen hängen von den Rechten und der Isolation des betroffenen Prozesses ab. Angreifer können Geheimnisse lesen, Anwendungen manipulieren, sich dauerhaft einnisten oder sich seitlich im Netzwerk bewegen. Auch ein niedrig berechtigter Prozess kann sensible Daten preisgeben und als Ausgangspunkt für weitere Angriffe dienen.
Wie sollte ein RCE-Fund behandelt werden?
- - Den betroffenen Dienst isolieren und den Hersteller-Patch einspielen oder die verwundbare Funktion deaktivieren.
- - Bei erreichbaren Systemen eine mögliche Kompromittierung annehmen und Logs, Prozesse sowie ausgehende Verbindungen prüfen.
- - Zugangsdaten und Secrets rotieren, auf die der betroffene Prozess zugreifen konnte.
- - Segmentierung, Sandboxen und minimale Rechte einsetzen, um die Folgen künftiger Fehler zu begrenzen.
Bedeutet RCE immer vollständige Serverkontrolle?
Nein. Code läuft zunächst im Kontext des verwundbaren Prozesses. Container, Betriebssystemrechte und Netzwerkregeln können ihn einschränken. Trotzdem wird RCE üblicherweise als kritisch behandelt, weil die zentrale Grenze zwischen Eingabe und Ausführung überschritten wurde.
Wie entsteht Remote Code Execution?
RCE ist meist die Auswirkung einer konkreteren Schwachstelle. Unsichere Deserialisierung kann beim Rekonstruieren eines Objekts gefährliche Methoden auslösen, eine Command Injection übergibt Eingaben an eine Shell und eine Template Injection erreicht Funktionen der Template-Engine. Auch Speicherfehler, unsichere Datei-Uploads oder verwundbare Abhängigkeiten können Codeausführung ermöglichen. Für die Behebung muss deshalb die zugrunde liegende Fehlerklasse verstanden werden.
Von der Codeausführung zur Systemübernahme
Nach einem ersten Nachweis untersucht ein Angreifer Benutzerrechte, erreichbare Geheimnisse, Netzwerkverbindungen und Möglichkeiten zur Persistenz. Anwendungsschlüssel, Cloud-Tokens oder Datenbankzugänge können wichtiger sein als lokale Administratorrechte. In Containerumgebungen ist entscheidend, welche Volumes, Sockets und Service-Accounts eingebunden sind. Die reale Auswirkung ergibt sich daher aus Codeausführung, Laufzeitkontext und Architektur.
Wie lässt sich RCE erkennen?
Hinweise sind unerwartete Kindprozesse eines Webservers, neue Dateien, ungewöhnliche ausgehende Verbindungen, verdächtige Befehlszeilen und abweichendes Anwendungsverhalten. EDR, Prozess- und Netzwerkprotokolle sowie unveränderliche Audit-Logs ergänzen sich. Bei Tests sollte ein ungefährlicher Nachweis genügen. Das Starten einer interaktiven Shell ist auf Produktivsystemen selten erforderlich und erhöht das Risiko unnötig.
Prävention und Begrenzung des Schadens
Sichere APIs, konsequentes Patchen, restriktive Upload-Verarbeitung und das Entfernen gefährlicher Auswertungspfade verhindern konkrete Ursachen. Prozesse sollten ohne Root-Rechte, mit schreibgeschütztem Dateisystem und minimalen Netzwerk- sowie Secret-Berechtigungen laufen. Eine solche Isolation macht eine RCE nicht akzeptabel, verhindert aber häufig, dass ein einzelner Fehler zum vollständigen Verlust der Umgebung führt.
Codebeispiel: dynamische Ausführung vermeiden
Verwundbar: Ein Request bestimmt ausführbaren PHP-Code.
$expression = $request->input('formula');
$result = eval('return ' . $expression . ';');
Sicherer Entwurf für bekannte Operationen:
$operations = [
'net' => fn (float $value) => $value / 1.19,
'gross' => fn (float $value) => $value * 1.19,
];
$operation = $request->string('operation')->toString();
abort_unless(isset($operations[$operation]), 422);
$value = $request->validate(['value' => ['required', 'numeric']])['value'];
$result = $operations[$operation]((float) $value);
RCE kann viele Ursachen besitzen; dieses Beispiel behebt nur dynamische Codeauswertung. Bei Command Injection, Deserialisierung, SSTI oder Uploads muss die jeweilige Ursachenkontrolle greifen.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema Remote Code Execution (RCE)? Schreib uns!
Weitere Dienstleistungen
Zusätzliche IT-Sicherheitslösungen für umfassenden Schutz
Red Teaming
Simulation echter Angriffe auf Ihr Unternehmen inklusive Personen, Infrastruktur und Prozesse. Ein umfassender Ansatz zur Überprüfung Ihrer gesamten Sicherheitsstrategie.
Mehr erfahrenPhishing-Übungen
Praxisnahe Phishing-Simulationen zur Sensibilisierung Ihrer Mitarbeiter. Erhöhen Sie die Awareness und reduzieren Sie das Risiko erfolgreicher E-Mail-basierter Angriffe.
Mehr erfahren