Sicherheit
Nach [NF Nitpicker's guide] konnte man sich auf die freundliche Zusammenarbeit der Anwendungen innerhalb der GUI zum Gefallen des Nutzers verlassen - dies gilt heute nicht mehr:
- Der Nutzer läd Programme von nicht vertrauenswüdigen Quellen herunter
- Applikationen können Sicherheitslöcher haben, die via Internet ausgenutzt werden können und Applikationen werden bösartig
- Browser führen Code von potentiell nicht vertrauenswürdigen Quellen aus
Ein Programm, das auf die GUI Zugriff hat, kann beliebig den Nutzer irreführen.
Probleme:
- Grundproblem: Jedes Programm, das direkt oder indirekt vom Nutzer ausgeführt wird, kann frei auf die GUI zugreifen: [NF2009]
- Inspektion und Manipulation anderer Applikationen
- Zugriff auf Clipboard und andere globale Information
- die gesamte GUI sperren
- Präsentation eines Trojanischen Pferdes, z.B. Nachahmung der Passworteingabe
- Automatische Updates über das Internet sind vom Nutzer nicht kontrollierbar - er muß vertrauen [NF2009]
- Beim WWW führt der Browser aktiven Code aus (JavaScript, Adope Flash,...)
→ der Nutzer weiss nicht, was alles in seinem Namen ausgeführt wird
→ DAC (Discretionary Access Controll) ist nicht mehr angebracht. [NF2009]
Die Komplexität der modernen Desktop-Betriebssysteme kann nicht vermeiden werden:
- Existierende Anwendungen müssen weiter ausgeführt werden → die Sicherheitsprobleme bleiben
- Bei der weiteren Entwicklung kommen neue Merkmale hinzu und die Komplexität steigt weiter → Codemenge steigt → Wahrscheinlichkeit von Sicherheitslücken
Beispiel X-Window-System (seit 1984):
- Globale WindowIds
- Input-Behandlung soll auch Kommunikation zwischen Applikationen ermöglichen, z.B.xeyes kann die Mausposition beobachten
- Screenshots vom Gesamten Desktop ist möglich
- Globales schnappen des Maus Cursors, Gui kann gesperrt werden durch Öffnen eines Fensters, das den gesamten Bildschirm einnimmt und das Layout der Tastatureingabe ändert
Es gibt einen Sicherheitsmechnismus, dass ein Angreifer nicht in die Session kommt. Innerhalb der Session kann ein bösartiger Xclient (z.B. ein durch scripte fremdgesteuerter Browser folgende Untaten begehen, da er frei mit allen anderen XClients interagieren kann: [NF2009] Kap.4.1
- über das Xclipboardprotokoll kann er gemeinsame Daten manipulieren
- Zeichnen in Fenster anderer Xclients
- terminieren anderer Xclients (xkill)
- sperren des gesamten Fensters mit xlock
- mithören der Nutzereingabe eines beliebigen Xclients xeyes
Gegenmaßnahmen:
- generell erzwungene Sicherheit mit SELinux
- XACE X Access Controll Extension ergänzt erzwungene Sicherheit für X
Kritik von [NF2009]: Hier wird durch das Beheben der Sicherheitslöcher in Schnittstellen und Protokollen sowie durch Hinzufügen von Sicherheitsmerkmalen an Symptomen herumkuriert. Die Ursache läge in der Benutzung von unzureichenden Schnittstellen und Protokollen.
Literatur
- [NF2009] N.F.:"Securing Graphical User Interfaces", Dissertation Tu Dresden 2009
Rudolf Weber