Pastejacking im Browser: Codeausführung per Copy and Paste
Browser können den Inhalt der Zwischenablage selbstständig verändern. In einem Proof-of-Concept wird gezeigt, wie diese Funktion für Angriffe genutzt werden kann - und Nutzer sich recht einfach schützen können.

Der Github-Nutzer mit dem Pseudonym Dxa4481 hat einen Proof-of-Concept vorgestellt, mit dem er demonstrieren will, dass das Kopieren und Ausführen von Textpassagen von Webseiten gefährlich sein kann, wenn Nutzer den Inhalt in ihr Terminal einfügen und dort ausführen.
Denn moderne Browser können einen eigenen Zugriff auf die Zwischenablage erhalten und so andere Inhalte kopieren, als vom Nutzer intendiert. Angreifer könnten sich das zunutze machen, um Nutzern gefälschte Kommandos unterzuschieben. Ein denkbares Angriffsszenario wären Linux-Einsteiger, die sich von Webseiten Kommandozeilenbefehle kopieren, wenn sie selbst nicht mehr weiterwissen.
Keine Aktivierung durch Nutzer mehr erforderlich
Dass Browser auf die Zwischenablage zugreifen können, ist schon länger bekannt. Verschiedene Webseiten fügen von Nutzern kopierten Inhalten zum Beispiel eigene Informationen hinzu, etwa eine Beschreibung der Webseite oder die URL, von der der Inhalt kopiert wurde. Aktuelle Browser unterstützen die Funktion, auch Firefox-Nutzer müssen diese seit der Version 41 nicht mehr manuell über die user.js aktivieren. Die Funktion kann aber über about:preferences deaktiviert werden.
Für den Angriff nutzt Dxa4881 die "paste"-Funktion von Document.exec.Command(). Fügt ein Nutzer Inhalte in die Zwischenablage ein, wird im Hintergrund automatisch ein Script gestartet, das die Zwischenablage mit dem gewünschten Inhalt überschreibt. Als Beispiel wird bei Github die ursprüngliche Eingabe echo "not evil" in echo "evil"\n geändert. Durch den Newline-Parameter wird der Code nach dem Einfügen in die Kommandozeile automatisch ausgeführt. Der PoC wird auch auf einer eigenen Webseite dokumentiert.
Eingabe kann vertuscht werden
Im aktuellen Beispiel würde der Nutzer allerdings sofort mitbekommen, dass etwas nicht stimmt. Die Eingabe der Befehle könnte aber auch verdeckt werden, wenn der Befehl "clear" verwendet wird und am Ende die vom Nutzer eigentlich kopierte Eingabe angezeigt wird.
Als Beispiel für einen realen Angriff auf Linux-Nutzer zeigt Dxa4881, wie die unter /etc/passwd abgelegten Passwörter kopiert werden können, ohne dass Nutzer es mitbekommen. Dazu wird der Befehl "copyTextToClipboard('echo "evil"\n \x1b:!cat /etc/passwd\n');" in die Zwischenablage eingefügt.
In dem Post wird darauf hingewiesen, dass einige Terminal-Programme wie iTerm eine automatische Warnung ausgeben, wenn Inhalte eingefügt werden, die mit einem Newline-Kommando enden. Nutzer können dann manuell bestätigen, dass sie den Inhalt trotzdem ausführen können, oder das Kommando entfernen.
Der einfachste Schutz gegen diese Art von Angriffen ist aber natürlich ein deutlich einfacherer: Bevor die Kommandos in die Kommandozeile wandern, werden sie im Editor eingefügt und vom Nutzer selbst überprüft.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Hatte es nur mit Firefox 44.0.2 unter Debian Jessie getestet, auch nachdem ich es jetzt...
deswegen sage ich ja erst alles einlesen und das dann bestätigen. ich finde das mit dem...
Das Problem ist bei Bindestrichen und Anführungszeichen, dass viele CMS aus einem...
Nein, das ist ein Feature. Das im Artikel beschriebene Problem ist ja, dass etwas anderes...