Zum Hauptinhalt Zur Navigation

Counter-Strike Go: Bei Abschuss Ransomware

Wie gut ist es eigentlich um die Security von Spielen bestellt? Der Sicherheitsforscher Justin Taft wollte es herausfinden und wurde in der Source-Engine fündig. Nach einem Abschuss droht bei seiner modifizierten Karte die Infektion mit Ransomware oder anderer Schadsoftware.
/ Hauke Gierow
38 Kommentare News folgen (öffnet im neuen Fenster)
Spiele wie Counter-Strike Go waren durch einen Buffer Overflow anfällig. (Bild: Valve)
Spiele wie Counter-Strike Go waren durch einen Buffer Overflow anfällig. Bild: Valve

Der Sicherheitsforscher Justin Taft hat eine Sicherheitslücke in der Source-Engine des Entwicklers Valve gefunden, die genutzt werden kann, um Spielern Schadsoftware wie Trojaner oder Ransomware unterzuschieben. Für den Proof-of-Concept nutzte er einen Buffer Overflow im Software Development Kit(öffnet im neuen Fenster) für die Source-Engine, um Code aus der Ferne auszuführen (Remote Code Execution, RCE). Valve hat den Fehler mit dem aktuellen Release behoben. Die Engine wird von beliebten Titeln wie Counter-Strike Go, Team Fortress 2, oder Left 4 Dead 2 genutzt.

Counter-Strike Global Offensive (Trailer)
Counter-Strike Global Offensive (Trailer) (03:54)

Um den Payload für seinen Proof-of-Concept auszuliefern, nutzte Taft individuelle Maps, wie sie oft von aktiven Gaming-Communities und Moddern erstellt und verwendet werden. Mit einem mit der Map ausgelieferten sogenannten Ragdoll-Modell, das die physikalischen Eigenschaften beim Zusammenbruch der Spielfigur nach einem Abschuss darlegt, konnte er auf Grund des Buffer Overflows beliebigen Code nachladen. So würde nach einem Abschuss die Verbindung zu einem Server des Angreifers hergestellt, um weiteren Schadcode auszuführen, etwa Ransomware oder andere Trojaner.

Pufferüberlauf und kein ASLR

Konkret betroffen war nach Angaben von Taft die Funktion Nexttoken. Bei dieser Funktion sei aber darauf verzichtet worden zu prüfen, ob die Eingabe die zulässige Länge überschreitet oder nicht (Bounds Check). Wenn dem Token ein Wert von mehr als 256 zugewiesen wird, läuft der Puffer über und der Angreifer kann Code ausführen. Neben der Einführung eines korrekten Bounds Check empfiehlt Taft daher die Verwendung von Adress Space Layout Randomization (ASLR), einer in Software eigentlich üblichen Sicherheitsmaßnahme, die in der für die Funktion genutzten Datei steamclient.dll aber nicht angewendet wurde. Ohne ASLR können Angreifer berechnen, an welcher Stelle im Speicher ein Pufferüberlauf stattfindet, um diesen auszunutzen. Mit ASLR ist die Ausnutzung eines Speicherfehlers deutlich weniger trivial.

Valve hat die Sicherheitslücke bereits gepatcht, viele Mod-Entwickler können nicht so schnell reagieren. Mit der vollständigen Freigabe des PoC will Taft daher noch etwas warten. Taft stellt auch einen eigenen Patch zum Download bereit(öffnet im neuen Fenster) .


Relevante Themen