staging.inyokaproject.org

Copy&Paste-Sicherheitslücke

linux.png

Diese Woche machte in den Medien eine „Sicherheitslücke“ die Runde, die im engeren Sinne keine ist, aber zumindest auf Systemen, auf denen gerne mit Copy&Paste gearbeitet wird, auftreten kann. Etwas, was Ubuntu-Nutzer also sicherlich betrifft.

Das Problem

Das Problem ist leicht erklärt: Sehr oft findet man in diversen Blog-Beiträgen und -Artikeln, Befehle, die man in die Kommandozeile kopieren soll. Auch im ubuntuusers-Wiki wird diese Funktion sehr gerne für die Installation von Paketen genutzt:

  • firefox (Firefox-Browser)

Befehl zum Installieren der Pakete:

sudo apt-get install firefox 

Oder mit apturl installieren, Link: apt://firefox

Prinzipiell sollte man immer wissen, was man für Befehle kopiert und ausführt. Aber selbst wenn man dies weiß, ist es möglich, dass man in die Zeile, die man kopiert, versteckten Code einbetten kann, der dann ebenfalls im Terminal ausgeführt wird.

Hintergrund

Durch den CSS-Befehl position ist es möglich, Code versteckt an eine Position in der Webseite einzubetten. Zusätzlich kann man dem Code gleich noch Zeilenumbrüche beifügen, welche beim Einfügen von der Kommandozeile als Enter-Taste verstanden werden. Durch das Kopieren und Einfügen des Textes wird also sofort der versteckte Code ausgeführt.

Ein Beispiel zum Ausprobieren gibt es bei heise Security.

Brisant ist das Ganze auch deswegen, da man Befehle, die Root-Rechte benötigen, mit sudo einbauen kann. Hat man kurz zuvor im gleichen Terminal bereits mit sudo gearbeitet, wird der Befehl dann ohne Passwortabfrage ausgeführt, da per Standard das Passwort für 15 Minuten gespeichert wird.

Abhilfe

Abhilfe für dieses Problem gibt es leider keine. Betroffen sind alle Browser, die CSS unterstützen (z.B. Firefox, Opera, Chromium etc.)

Am besten ist es, wenn man das direkte Copy&Paste von Befehlen nur auf Webseiten ausführt, denen man vertraut. Wer ganz sicher gehen will, kann die Befehle auch erst in einen Texteditor kopieren, um zu prüfen, ob nicht noch versteckter Code ausgeführt wird. Ebenfalls ist das manuelle Abtippen der Befehle ungefährlich (solange der Befehl, den man abtippt, ungefährlich ist.)

Die Dauer der Passwortspeicherung im Terminal kann man darüber hinaus ausschalten, damit kein sudo unerkannt bleibt.

Hinweis:

Es gibt keine Möglichkeit, dass Benutzer CSS-Code im ubuntuusers-Wiki oder -Forum einbauen können. ubuntuusers kann also nicht von Dritten für diesen Trick missbraucht werden.

Veröffentlicht von Dee | 28. April 2013 22:10 | Kategorie: Linux und Open Source | # Fehler im Artikel melden

Klau3

Avatar von Klau3
1 28. April 2013 22:52

Das mit sudo ist natürlich ein Problem, doch viel größer ist doch eigentlich die Gefahr, dass auch ganz ohne Root-Rechte Dateien im persönlichen Ordner gelöscht/entwendet werden (xkcd 1200).

Keba

Ehemalige

Avatar von Keba
2 29. April 2013 00:22

@1: Bei Desktoprechnern stimmt das, was der Angreifer davon hat deine Fotosammlung zu löschen, ist mir aber nicht klar. (Außerdem hat man ja Backups…). Gut, ein im Hintergrund arbeitendes Kopierprogramm könnte einiges an privaten Daten sammeln, das ist natürlich auch problematisch. Und wenn du ein Shellskript schreibst, dass mit dem Trick unbemerkt eine offene Paypalsitzung erkennt und eine Überweisung tätigt, bekommst du einen virtuellen Kuchen von mir. 😉

„Schlimmer“ ist das ganz m. M. n. aber eher bei Servern. Der Trick funktioniert nämlich natürlich auch in einer SSH-Sitzung bei einem „How to install $foo in five minutes“-Tuturial. Und da braucht man für die meisten bösen Absichten schon mal Root-Rechte.

Kerlbürste_Suessholz

Avatar von Kerlbürste_Suessholz
3 29. April 2013 00:34

Und ich hatte mich immer geärgert, dass man bei meinem Standard-Terminalemulator Xterm nichts Kopiertes einfügen kann

Ein unerwartetes Paradebeispiel dafür, wie sich Sicherheit und Komfort gegenseitig ausschließen 😬

praseodym

Supporter

Avatar von praseodym
4 29. April 2013 09:08

@3: Du kannst aber Text markieren und mit dem Mausrad reindrücken

SolidSnake

5 29. April 2013 09:20

Hmmm....

Find die Idee mit dem Texteditor zum prüfen auf "versteckten Code" garnet so übel. *denk*

Werde das nur noch so machen, wenn da Unklarheiten sein sollten. ☺

bliet

Avatar von bliet
6 29. April 2013 11:51

Wenn man nicht extra ein Editor nutzen möchete: Einfach den Text markieren. Rechts-Klick drauf und die Google-Suche anschmeißen. Der versteckte Text wird hier dann auch angezeigt.

stahlwollschaf

Avatar von stahlwollschaf
7 29. April 2013 12:14

@3: @4: Copy&Paste geht auch im Terminal! Strg-Shift-C und Strg-Shift-V funktionieren. Zumindest bei mir ☺

Kriev

Avatar von Kriev
8 29. April 2013 12:34

Alternativ kann man auch den Seitenquelltext anguggen 😉

Kerlbürste_Suessholz

Avatar von Kerlbürste_Suessholz
9 29. April 2013 12:52

@3: Oh, das wusste ich gar nicht 😲

@4: Klappt zumindest bei meiner uralt Version 217 nicht

Kerlbürste_Suessholz

Avatar von Kerlbürste_Suessholz
10 29. April 2013 12:56

Hoppala, falsche Kommentarnummern (3=4, 4=7). Hier kann man ja gar nicht editieren 😠

sardello

11 29. April 2013 14:58

Das Problem mit sudo verstehe ich nicht. Es wird eine Session für 15 Minuten eröffnet? Das scheint aber nur für das jeweilige Programm zu gelten. Wenn ich z.B. "sudo apt-get ..." dann kann ich in folgenden Befehlen apt-get ohne weitere Passwortabfrage verwenden. Aber ein "sudo cp ..." oder "sudo rm ..." fragt mich wiederum erst mal nach einem Passwort!

toddy

Ikhayateam

Avatar von toddy
12 29. April 2013 15:26

@11: Das Passwortverhalten kann man einstellen. Richtig. Im Defaultfall bei Ubuntu ist es aber so, dass das Passwort abgespeichert wird und nicht nochmal innerhalb dieser 15 Minuten eingegeben werden muss. (Gerade nochmal in meiner nicht-angepassten 12.04.2 Version überprüft in der Virtuellen Maschine überprüft.)

Yanneck

Avatar von Yanneck
13 29. April 2013 15:56

@Artikel Der Wikipedia-Link "CSS-Befehl" führt nur auf eine Übersichtsseite von Wikipedia.

Dee

Avatar von Dee
14 29. April 2013 18:12

@13: Gefixt.

@11: Eben bei mir im xfce4-terminal getestet. Dort wird sudo gespeichert und wirkt die nächsten 15 Minuten auf jeden Befehl oder aus jedem Skript heraus.

Ralf-M3

15 29. April 2013 18:54

Alles was ich mit Copy&Paste einfüge packe ich mir in Keepnote. Da ich der Meinung bin alles was ich heute nicht einfach im Terminal frei per Hand eingebe, werde ich auch in Zukunft nicht tun. Selbst nach gefühlten 100 Brother Drucker Installationen, schlägt Alzheimer gnadenlos zu. Daher habe ich eine schöne Sammlung an Befehlen und der Hack geht bei mir zumindest so nicht, da der echte Befehl zum Vorschein kommt.

stahlwollschaf

Avatar von stahlwollschaf
16 29. April 2013 22:34

da fällt mir doch glatt noch was schönes ein: http://xkcd.com/1168/

Kerberos

17 30. April 2013 02:05

@16: schön das ich nicht der einzige bin dem es so geht

V_for_Vortex

Avatar von V_for_Vortex
18 30. April 2013 13:44

@1: Deswegen sollte man sich ein reflexartiges Strg-Alt-L (ScreenLock) bei auch nur minutenlangem Verlassen des Rechners angewöhnen.

katze_sonne

Avatar von katze_sonne
19 30. April 2013 16:25

Hmmm... ich frage mich ja vielmehr, ob es sich dabei nicht vielmehr um ein (vermeidbares) Verhalten des Browsers handelt? Ich meine, müsste (oder wäre es nicht zumindest ohne Einschränkungen möglich), dass Firefox und co auch wirklich nur das dem Benutzer Angezeigte kopieren? Denn so handelt es sich ja fast schon um eine Sicherheitslücke, an der scheinbar niemand ein Interesse hat, sie zu schließen. Und mal ehrlich: Jedes Mal den Zwischenschritt über einen Texteditor gehen? Da käme mir wirklich das Kotzen 😕 dann ginge abtippen ja nachher bald noch schneller...

gulp21

20 30. April 2013 16:46

Zumindest bei KDE kann man sich den Umweg über einen Texteditor sparen. Einfach im Systemabschnitt auf die Schere (Klipper) zeigen oder klicken und der Inhalt der Zwischenablage wird angezeigt.

AlphaX2

Avatar von AlphaX2
21 30. April 2013 23:49

Ein Kumpel von mir hat neulich diesen kleinen Workaround gebastelt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/usr/bin/python
import gtk, pynotify

def notify_me(*args):
    text = args[0].wait_for_text()
    if text:
        msg = pynotify.Notification("text added in clipboard", text)
        msg.set_timeout(3000)
        msg.show()

clip = gtk.Clipboard()
clip.connect('owner-change', notify_me)
pynotify.init("ClipboardNotify")
gtk.main()

Einfach in einen Texteditor kopieren und als *.py speichern, wer mag als Startprogramm hinzufügen und schon gibts eine Notification mit dem aktuellen Inhalt. 😉

Zado

Avatar von Zado
22 1. Mai 2013 00:05

gibt es kein wo man den Text vor der Ausführung bestätigen muss?

katze_sonne

Avatar von katze_sonne
23 1. Mai 2013 17:33

@22: Das Problem ist ja, dass Befehle durch die Enter-Taste ausgeführt werden. Aber diese "Bestätigung", also den Zeilenumbruch kann man ja direkt mitkopieren lassen und schon wird der Befehl beim einfügen ausgeführt...

@21: Oh, danke, das ist die bisher eleganteste Lösung, die ich für das Problem gesehen habe.

michelsberg

Avatar von michelsberg
24 3. Mai 2013 17:22

@21: Ein geiler kleiner Hack!

Lambrusco

25 3. Mai 2013 17:55

@21: Ich sage einfach Danke für diese sehr ellegante Lösung! Habe mir erlaubt die Anzeigedauer etwas zu erhöhen.

sardello

26 10. Mai 2013 10:20

@12: hmm... vermutlich gilt das dann nur für die Server-Version. Aber da macht man ja eher selten Copy & Paste ☺

Das_Wort

27 14. Mai 2013 05:44

@22: zsh hat "safe copy" eingeführt, auch bei Zeilenumbrüchen wird der Befehl (wenn nur kopiert) nicht ausgeführt. Bis das im Repo ist braucht es aber noch etwas ☺