Attacchi passivi e attivi tramite X11. Wayland è meglio?

30

In The Linux Security Circus: Sull'isolamento della GUI - Le cose invisibili Il blog di Lab , Joanna Rutkowska descrive gli attacchi da una app X11 su un'altra e il problema generale di la mancanza di isolamento a livello di interfaccia grafica e di come sostanzialmente annulla tutta la sicurezza desktop .

One application can sniff or inject keystrokes to another one, can take snapshots of the screen occupied by windows belonging to another one, etc.

Il bit su come il modello di sicurezza X11 è cambiato nel tempo e non si adatta bene a Linux è stato interessante. Propone Qubes OS (Beta 1) come alternativa sicura .

Le mie domande:

  • Si possono evitare attacchi passivi (snooping)? L'attacco passivo che descrive sicuramente funziona sul mio sistema, anche se noto che uno dei commenti dice che l'input gksudo non può essere snoopato.
  • Si possono evitare attacchi attivi (iniezione di sequenze di tasti)? Mi sembra di ricordare che gli attacchi attivi sono stati disattivati di default molto tempo fa. Ma un rapido google suggerisce che l'estensione XTest lo annulla ( Come mappare una combinazione di tasti con un tasto della tastiera? ).

  • La maggior parte delle distribuzioni Linux si stanno spostando su Wayland in sostituzione di X11. Fornisce un buon isolamento tra le app?

C'è speranza per la sicurezza sul desktop? :)

    
posta nealmcb 05.05.2011 - 18:23
fonte

1 risposta

24

Fondamentalmente qualsiasi processo che può connettersi con successo a un server X11 ha pieno accesso a ciò che accade su quel server. Il modello di sicurezza X11 presuppone che gli aggressori vengano rifiutati al momento della connessione. Il solito sistema di sicurezza è che i client devono inviare uno specifico "magic cookie" come parte del loro primo messaggio, il cookie è un blob casuale che viene creato all'avvio del server o come parte della procedura di accesso; il cookie viene anche copiato in una posizione accessibile solo alle applicazioni "consentite". Sui sistemi Unix-like, il cookie è tradizionalmente nel file $HOME/.Xauthority , ma potrebbe essere altrove (sul mio recente sistema Linux, sembra essere da qualche parte in una sottodirectory di /var/run/gdm/ ), il punto è che il file è leggibile solo per un singolo utente Unix. Quando si inoltrano le connessioni X11, SSH utilizza il comando xauth per trasferire in modo trasparente il cookie corrente dal client al server (in modo che le applicazioni avviate sull'host remoto possano inviare il cookie quando si connettono).

Quindi esiste l'isolamento con X11 - ma è tra gli utenti (come controllati dal sistema operativo), non tra le applicazioni eseguite per conto dello stesso utente.

Nei vecchi tempi, i cookie magici non erano molto comuni, quindi alcune applicazioni (in particolare xterm) includevano contromisure come il rifiuto di eventi sintetici (cioè eventi derivanti da un XSendEvent() chiamato, al contrario di eventi provenienti dall'hardware). Tali misure erano prima di molte delle estensioni che sono cresciute sul protocollo X11 nel corso degli anni, come XTest, che le rende per lo più obsolete e inutili.

Qubes è un sistema operativo che si basa su Xen per isolare alcune applicazioni l'una dall'altra - ogni VM ha il suo display esclusivo, senza interazioni possibili con i server X11 di altre VM. Ho difficoltà a leggere "Beta 1" e "sicuro" nella stessa frase, anche se ...

Per la parte X11, lo stesso tipo di isolamento esiste da molti anni come Xnest (con un successore aggiornato chiamato Xephyr ): si esegue l'applicazione potenzialmente malvagia sotto uno specifico ID utente isolato e si connette solo a un'istanza Xephyr che si collega al server X11 principale come se fosse una semplice applicazione. Per eludere tale isolamento, l'applicazione dovrebbe dirottare Xephyr (ad esempio attraverso un overflow del buffer). La soluzione di Qubes è solo più approfondita in quanto sostituisce l'isolamento di base Unix ("ID utente distinto") con uno strato VM molto più massiccio.

Wayland non sembra fare pubblicità sull'isolamento, quindi è una scommessa sicura che non fa nulla a tale riguardo. Inoltre, Wayland cerca di fornire l'accesso hardware quasi diretto alle applicazioni quando possibile, quindi qualsiasi modello di sicurezza in quella situazione sarebbe relativo a come l'hardware 3D non documentato e il driver closed-source collaborano per evitare un trasferimento DMA mal riposto per ottenere diritti extra - questo non sembra il modo migliore per creare sicurezza.

    
risposta data 05.05.2011 - 20:39
fonte

Leggi altre domande sui tag