Remote Code Execution
Eine Remote Code Execution (RCE, deutsch: „ferngesteuerte Code-Ausführung“,) bezeichnet in der Informationssicherheit eine Sicherheitsschwachstelle in Server-Systemen. Remote-Code-Execution-Angriffe beginnen in der Regel mit einer Schwachstelle in einer öffentlich zugänglichen Anwendung, die die Möglichkeit bietet, Schadprogramme auszuführen und somit unerwünschte Befehle auf dem zugrunde liegenden Rechner auszuführen.[1] Angreifer können dies nutzen, um sich einen ersten Zugang zu einem Gerät zu verschaffen, um Schadprogramme zu installieren oder andere Ziele zu erreichen.
RCE-Schwachstellen erlauben einem Angreifer die Ausführung von beliebigem Code auf einem Gerät, ohne physischen Kontakt zu haben.
Arten
[Bearbeiten | Quelltext bearbeiten]Ein Angreifer kann dies auf verschiedene Arten erreichen,[2][3] und entsprechende Angriffe können auf verschiedenen Zugangswegen erfolgen.[4]
Injektionsangriffe
[Bearbeiten | Quelltext bearbeiten]Viele verschiedene Arten von Anwendungen, wie zum Beispiel manipulierte SQL-Abfragen, verwenden vom Benutzer bereitgestellte Daten als Eingabe für einen Befehl. Bei einem Injektionsangriff stellt der Angreifer eine oder mehrere absichtlich manipulierte Anfragen, die dazu führen, dass ein Teil seiner Anfrage oder die gesamte Eingabe als Teil des Befehls interpretiert wird. Dies ermöglicht es dem Angreifer, die auf dem anfälligen System ausgeführten Befehle zu beeinflussen oder beliebigen Code darauf auszuführen.
Deserialisierungs-Angriffe
[Bearbeiten | Quelltext bearbeiten]Anwendungen verwenden üblicherweise Serialisierung, um mehrere Daten in einer einzigen Zeichenkette zusammenzufassen, um die Datenübertragung oder Kommunikation zu erleichtern. Speziell formatierte Benutzereingaben innerhalb der serialisierten Daten können von dem Deserialisierungsprogramm als ausführbarer Code interpretiert werden.[5]
Out-of-Bounds Write
[Bearbeiten | Quelltext bearbeiten]Anwendungen weisen regelmäßig Speicherabschnitte fester Größe für die Speicherung von Daten zu, einschließlich vom Benutzer bereitgestellter Daten. Software, deren zugrundeliegende Programmiersprachen keine strenge Typsicherheit bieten, kann auf diese Weise angegriffen werden.[6] Wenn diese Speicherzuweisung nicht korrekt durchgeführt wird, kann ein Angreifer eine Eingabe entwerfen, die außerhalb des zugewiesenen Puffers geschrieben wird. Da auch ausführbarer Code im Speicher gespeichert wird/werden kann, können vom Benutzer bereitgestellte Daten, die an die richtigen Stelle geschrieben wurden, von der Anwendung ausgeführt werden. Ist die Anfrage des Benutzers dementsprechend manipuliert, kann Code vom Angreifer auf dem Gerät des Opfers ausgeführt werden.
Die mögliche Bedrohung
[Bearbeiten | Quelltext bearbeiten]RCE-Angriffe dienen vielfältigen Zielen.[7][8]
Initial-Zugriff
[Bearbeiten | Quelltext bearbeiten]Angreifer können Schwachstellen nutzen, um sich einen ersten Zugang zu einem Gerät zu verschaffen, um Schadprogramme zu installieren oder andere Ziele zu erreichen. Eine RCE-Schwachstelle kann einem Angreifer vollen Zugriff auf, sowie die Kontrolle über, ein kompromittiertes Gerät verschaffen, was sie zu einer der gefährlichsten und kritischsten Arten von Schwachstellen macht. Im Folgenden sind nur einige der häufigsten Auswirkungen von RCE-Schwachstellen aufgeführt.
Veröffentlichen von Informationen
[Bearbeiten | Quelltext bearbeiten]RCE-Angriffe können dazu verwendet werden, Schadprogramme zu installieren, welche Daten stehlen, oder direkt Befehle auszuführen, die Daten von dem anfälligen Gerät extrahieren und exfiltrieren kann.
Denial of Service (DOS)
[Bearbeiten | Quelltext bearbeiten]Eine RCE-Schwachstelle ermöglicht es einem Angreifer, Code auf dem System auszuführen, auf dem die anfällige Anwendung läuft. Dadurch kann er den Betrieb dieser oder anderer Anwendungen auf dem System unterbrechen.
Kryptomining
[Bearbeiten | Quelltext bearbeiten]Kryptomining- oder Kryptojacking-Malware nutzt die Rechenressourcen eines kompromittierten Geräts, um Kryptowährungen zu schürfen. RCE-Schwachstellen werden häufig ausgenutzt, um Kryptomining-Malware auf anfälligen Geräten zu installieren und auszuführen.
Ransomware
[Bearbeiten | Quelltext bearbeiten]Ransomware sind Schadprogramme, die darauf abzielen, einem Benutzer den Zugriff auf seine Dateien zu verweigern, bis er ein Lösegeld zahlt, um den Zugriff wiederzuerlangen. RCE-Schwachstellen können auch dazu verwendet werden, Ransomware auf einem anfälligen Gerät zu installieren und auszuführen.
Beispiele
[Bearbeiten | Quelltext bearbeiten]- Log4Shell (CVE-2021-44228)
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Was ist Remote-Code-Ausführung (Remote Code Execution)? - Definition von WhatIs.com. Abgerufen am 4. Juli 2023.
- ↑ Remote Code Execution (RCE) | Code Injection | Learn AppSec. 28. März 2022, abgerufen am 8. Dezember 2022 (amerikanisches Englisch).
- ↑ Code Injection | OWASP Foundation. Abgerufen am 8. Dezember 2022 (englisch).
- ↑ What is Remote Code Execution (RCE)? Abgerufen am 8. Dezember 2022 (amerikanisches Englisch).
- ↑ Vickie Li: Hacking Java Deserialization. In: The Startup. 13. Januar 2020, abgerufen am 9. Dezember 2022 (englisch).
- ↑ baeldung: Type Safety in Programming Languages | Baeldung on Computer Science. 13. Juli 2022, abgerufen am 9. Dezember 2022 (amerikanisches Englisch).
- ↑ Remote Code Execution (RCE) | Code Injection | Learn AppSec. 28. März 2022, abgerufen am 8. Dezember 2022 (amerikanisches Englisch).
- ↑ What is Remote Code Execution (RCE)? Abgerufen am 8. Dezember 2022 (amerikanisches Englisch).