EN

Was ist eine Sicherheitslücke bei der Remote-Code-Ausführung?

In diesem Artikel:

Remote Code Execution (RCE) ermöglicht es Angreifern, bösartigen Code auf Systemen und Geräten auszuführen, unabhängig von deren Standort. Im Folgenden erfahren Sie, was Sie über diesen Angriff wissen müssen, wie er funktioniert und wie Sie ihn verhindern können.

Bedeutung von RCE

RCE wird auch als Remote-Code-Evaluierung bezeichnet und ist Teil der umfassenderen Gruppe der Angriffe zur beliebigen Codeausführung (Arbitrary Code Execution, ACE). Es handelt sich dabei um eine Möglichkeit, über das Internet, lokale (LAN) oder Weitverkehrsnetze (WAN) aus der Ferne Code in einen Zielrechner oder ein Zielsystem einzuschleusen und auszuführen. Dieser Code kann sich Zugang zu einem Webserver oder einer Anwendung verschaffen, die vollständige Kontrolle darüber übernehmen oder sie gefährden, Hintertüren öffnen, Daten stehlen, verändern oder zerstören, Ransomware installieren usw.

Bei diesem Angriff wird die Möglichkeit ausgenutzt, dass ein ausführbarer Code in eine Zeichenfolge oder Datei eingeschleust und ausgeführt oder ausgewertet wird. Dies kann darauf zurückzuführen sein, dass Benutzereingaben nicht validiert werden und den Parser der Programmiersprache passieren dürfen – eine Situation, die von den Entwicklern oft nicht beabsichtigt ist. Der eingeschleuste Code ist normalerweise in der Programmiersprache der Zielanwendung. Solche Sprachen können PHP, Java, Python, Ruby usw. sein.

Je nach der Schwachstelle, die die Angreifer ausnutzen, erlangen sie in der Regel die Berechtigungen, die der Prozess, auf den sie abzielen, bei der Ausführung des Codes gewährt. Wenn Angreifer beispielsweise Code als Benutzer einspeisen, erlangen sie Benutzerrechte. 

Aus diesem Grund folgt auf RCE häufig der Versuch, die Privilegien zu erweitern und die Kontrolle auf administrativer oder Root-Ebene zu erlangen. Leider können Angreifer mit solchen erhöhten Rechten den Angriff auch geschickter verbergen. Doch auch ohne außergewöhnliche Privilegien kann die Schwachstelle für die Remote-Code-Ausführung ernsthaften Schaden anrichten.

Auswirkungen des RCE-Angriffs

Die Auswirkungen eines Angriffs mit entfernter Codeausführung können zwischen dem einfachen Zugriff auf eine Anwendung und der vollständigen Übernahme der Anwendung variieren. Einige der wichtigsten Folgen eines RCE-Angriffs sind:

  • Zugriff auf eine Anwendung oder einen Server: Zunächst haben die Angreifer aufgrund einer Sicherheitslücke Zugriff auf Funktionen in der anfälligen Anwendung. Damit können sie die zugrunde liegenden Webserver-Befehle einspeisen und ausführen.
  • Privilegienerweiterung: Durch den Zugriff auf den Webserver und die Ausführung von Befehlen können Angreifer unter Umständen mehr Privilegien und Kontrolle über den Server erlangen. Dies ist besonders gefährlich, wenn interne Sicherheitslücken auf Serverebene vorhanden sind.
  • Zugriff auf Daten: Über eine RCE-Schwachstelle können Angreifer auf die auf dem Server gespeicherten Daten zugreifen und diese stehlen.
  • Denial of Service: Angreifer können den gesamten Dienst und andere auf dem Server gehostete Dienste unterbrechen und zum Absturz bringen, indem sie bestimmte Befehle ausführen. 
  • Ransomware und Cryptomining: Wenn Code auf dem Server ausgeführt werden kann, besteht auch die Möglichkeit, verschiedene Arten von Malware zu installieren. Bei dieser Malware könnte es sich um Crypto-Mining- oder Cryptojacking-Software handeln, die die Ressourcen des Servers zum Mining von Kryptowährungen nutzt. Die Schwachstelle für die Remote-Code-Ausführung öffnet auch die Tür für Ransomware und die Übernahme des gesamten Servers als Geisel. 

Dies sind nur einige der möglichen Auswirkungen eines RCE-Angriffs. Je nach den Besonderheiten des Falles und dem Vorhandensein anderer Schwachstellen können feindliche Parteien weiteren Schaden anrichten, was diesen Angriff äußerst gefährlich macht.

Wie funktioniert Remote Code Execution?

Es gibt verschiedene Möglichkeiten, eine Remote-Code-Ausführung durchzuführen, da sie auf verschiedene Schichten eines Servers abzielen kann. 

Eine gängige Methode der RCE-Ausführung besteht darin, Code einzuschleusen und die Kontrolle über den Befehlszeiger zu erlangen. Dadurch kann ein Angreifer auf die Ausführung der folgenden Anweisung/des folgenden Prozesses hinweisen. Der Code kann auf verschiedene Arten und an verschiedenen Stellen eingeschleust werden, aber der Angreifer muss auf den eingeschleusten Code „zeigen“, damit dieser ausgeführt wird. Der Code selbst kann in Form eines Befehls, eines Skripts oder etwas anderem vorliegen.

Dies ist im Wesentlichen die Art und Weise, wie ein RCE-Angriff ausgeführt wird. Die Art des Angriffs, sein Angriffsvektor und die genaue Ausführung können sich unterscheiden. Die häufigsten RCE-Angriffsarten finden Sie weiter unten.

Arten von Angriffen mit Remote-Code-Ausführung

Dies sind die häufigsten Angriffe zur Remote-Code-Ausführung und ihre grundlegenden Szenarien.

Typverwechslung

Diese Art von Schwachstelle tritt auf, wenn ein Objekt, eine Ressource oder eine Variable unter Verwendung eines bestimmten Typs zugewiesen wird, dann aber unter Verwendung eines anderen Typs als dem ursprünglichen zugegriffen wird. Dies führt zu einem Fehler und logischen Fehlern aufgrund der Nichtübereinstimmung von Typ und Eigenschaften der Ressource, auf die zugegriffen wird.

Angreifer nutzen diese Sicherheitslücke aus, indem sie Code in ein Objekt einfügen, das mit einem Zeiger zugewiesen, aber mit einem anderen gelesen wird. Das Ergebnis ist, dass der zweite Zeiger den eingeschleusten Code auslöst. 

So kann beispielsweise eine SQL-Injektion in einigen Fällen auf eine Typverwechslung zurückzuführen sein.

Deserialisierung

Um Daten über ein Netzwerk zu übertragen, werden sie serialisiert, d. h. in binäre Form gebracht. Anschließend werden sie deserialisiert und wieder in ein Objekt umgewandelt, das am Zielort verwendet werden kann. 

Durch eine bestimmte Formatierung der Benutzereingabe können Angreifer ein Objekt erstellen, das nach der Deserialisierung in ausführbaren dynamischen Code umgewandelt wird.

Pufferüberlauf und Pufferüberlesung

Pufferüberlauf wird auch als Out-of-bounds write und buffer overrun bezeichnet. Zusammen mit Pufferüberlauf bezieht er sich auf Schwachstellen in der Speichersicherheit, die mit der als Puffer bekannten Speicherpartition zusammenhängen. Der Zweck eines Puffers ist es, Daten vorübergehend zu speichern, während sie von einem Ort zum anderen verschoben werden. 

Eine Anwendung verwendet häufig Pufferspeicher für die Speicherung von Daten, einschließlich vom Benutzer bereitgestellter Daten. Bei einem Pufferüberlauf verlässt sich ein Angreifer auf eine fehlerhafte Speicherzuweisung, z. B. aufgrund fehlender Maßnahmen zur Überprüfung der Grenzen. Dies kann dazu führen, dass Daten außerhalb der Puffergrenzen geschrieben werden und Speicher in benachbarten Pufferpartitionen überschreiben. 

Ein solches Überschreiben kann wichtige Daten beschädigen oder zerstören, einen Absturz verursachen oder zu einem RCE führen, der durch die Verwendung einer Sicherheitslücke in Form eines Befehlszeigers ausgelöst wird. Dies kann mit dem Szenario des Pufferüberlesens in Verbindung gebracht werden, bei dem das Lesen von Daten über die Grenzen eines Puffers hinausgeht und in den Speicher benachbarter Partitionen gelangt.

Beispiele für RCE-Angriffe

Einige der bedeutendsten und gefährlichsten Sicherheitslücken und die dadurch ermöglichten Angriffe wurden mit Hilfe von RCE durchgeführt.

Log4J RCE-Schwachstelle

Log4Shell (CVE-2021-44228) ist eine Sicherheitsanfälligkeit für Remote-Code-Ausführung in Log4j, einem beliebten Java-Protokollierungs-Framework, von dem schätzungsweise Millionen von Geräten weltweit betroffen sind. Sie wurde als „die größte und kritischste Sicherheitslücke aller Zeiten“ bezeichnet. Sie besteht seit 2013, wurde aber erst im November 2021 bekannt und im Dezember desselben Jahres öffentlich gemacht.

Die Schwachstelle ermöglicht es Nutzern, beliebigen Java-Code auf Servern auszuführen, was Krypto-Mining, dem Aufbau von Botnets und dem Einschleusen von Ransomware Tür und Tor öffnet.

WannaCry

WannaCry ist ein Ransomware-Kryptowurm-Angriff, der eine RCE-Schwachstelle namens EternalBlue ausnutzte, die es ihm wiederum ermöglichte, das Tool DoublePulsar zu installieren und auszuführen. Der Angriff richtete sich gegen Microsoft Windows-Systeme. Nach der Installation verschlüsselt der Wurm Daten, und die Angreifer fordern Lösegeld.

EternalBlue zielte auf eine Sicherheitslücke im Server Message Block (SMB)-Protokoll von Microsoft ab. Diese Schwachstelle ermöglichte es Angreifern, Code einzuschleusen und aus der Ferne auszuführen.

Dies sind nur zwei der bekanntesten RCE-Schwachstellen und die damit verbundenen Angriffe. Das CVE-System (Common Vulnerabilities and Exposures) listet regelmäßig neue Einträge von Sicherheitslücken auf, die das Potenzial für einen RCE-Angriff haben.

Wie man Remote Code Execution erkennt und verhindert

RCE-Angriffe stellen eine ernsthafte Bedrohung dar, da sie eine Vielzahl von Ansätzen beinhalten und viele verschiedene Schwachstellen ausnutzen können. Außerdem tauchen ständig neue Schwachstellen auf, so dass es schwierig ist, sich gründlich vorzubereiten. Es gibt jedoch mehrere Maßnahmen, die Sie ergreifen können, um RCE-Angriffe zu erkennen und zu verhindern.

Regelmäßige Sicherheitsupdates

Unternehmen versäumen es häufig, auf die neuesten Bedrohungsdaten zu reagieren und Patches und Updates rechtzeitig einzuspielen. Angreifer werden daher in der Regel versuchen, auch alte Schwachstellen auszunutzen. Die Implementierung von Sicherheitsupdates für Ihr System und Ihre Software, sobald sie verfügbar sind, schreckt viele Angreifer wirkungsvoll ab.

Überwachung des Datenverkehrs

Überwachen Sie den Netzwerkverkehr und die Endpunkte, um verdächtige Inhalte zu erkennen und Angriffsversuche zu verhindern. Dies kann durch die Implementierung einer Netzwerksicherheitslösung oder einer Software zur Erkennung von Bedrohungen geschehen. 

Bereinigung von Eingaben und Zugriffskontrolle

Verfolgen Sie einen Null-Vertrauens-Ansatz und bereinigen Sie Benutzereingaben immer, bevor Sie sie verwenden. Ein gründlicher Sanitization-Prozess umfasst Whitelists, Blacklists und Escape Sanitization. Auf diese Weise können viele Versuche der Code-Injektion und Deserialisierung herausgefiltert werden. Darüber hinaus kann eine Netzwerksegmentierung dazu beitragen, die Auswirkungen von Code, der dennoch durchkommt, zu begrenzen.

Vermeiden Sie außerdem nach Möglichkeit die Verwendung von Code-Evaluierungsfunktionen und erlauben Sie Benutzern nicht, Inhalte zu bearbeiten, die bereits geparst wurden. 

Speicherverwaltung

Implementieren Sie einen Pufferüberlaufschutz und andere Formen der Speicherverwaltung, um zu verhindern, dass Schwachstellen entstehen, die sich leicht ausnutzen lassen. Ein solcher Schutz beendet beispielsweise die Ausführung eines Programms, wenn ein Puffer überläuft, und verhindert so effektiv die Möglichkeit, bösartigen Code auszuführen. Bound Checking und Tagging sind weitere Schutztechniken, die implementiert werden können, um Pufferüberläufe zu verhindern.

Häufig gestellte Fragen: RCE

Was ist ein Angriff mit Remote-Code-Ausführung?

Ein RCE-Angriff besteht in der Einschleusung und Ausführung von bösartigem Code in ein System durch Ausnutzung einer Sicherheitslücke auf einer bestimmten Systemebene. Dies ermöglicht es Angreifern aus der Ferne, Befehle im System auszuführen, Daten zu stehlen, zu beschädigen, zu verschlüsseln und vieles mehr.

Wie gefährlich ist ein RCE-Angriff?

Die Auswirkungen eines RCE-Angriffs können je nach der ausgenutzten Schwachstelle erheblich sein. Im Minimum gewährt eine erfolgreiche Remote-Code-Ausführung Zugriff auf ein System und seine Daten. Im Höchstfall kann sie zu einer vollständigen Kompromittierung und Übernahme des Systems führen.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit https://example.com
Wir scannen derzeit https://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 22/09/2023
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.