it-swarm-eu.dev

Preoccupazioni di sicurezza con l'inoltro X11

Quali sono alcuni dei problemi di sicurezza e le ragioni a favore o contro il permesso di inoltro X11. Ho generalmente adottato un approccio per non permetterlo sotto le vesti di sicurezza. Di recente, un utente ha indicato che pensavano che le implicazioni di sicurezza derivanti dal consentire sessioni inoltrate X11 fossero trascurabili. Ero curioso di saperne di più su ciò che il danno è nel consentire l'inoltro X11 e perché uno potrebbe desiderarlo.

29
John

L'implicazione dell'inoltro X11 è che apre un canale dal server al client. In una semplice sessione SSH, il client è più affidabile del server: chiunque abbia il controllo del client può eseguire comandi sul server (presupponendo l'accesso Shell), ma il contrario non è vero. Con l'inoltro X11, è probabile che il server ottenga l'accesso Shell al client.

In una sessione di testo, esiste un canale limitato dal server al client: il server determina l'output che viene visualizzato sul client e può in particolare provare a sfruttare le sequenze di escape nel terminale in esecuzione sul client,

In una sessione X11, il server può inviare comandi X11 al client. X11 non è stato progettato pensando alla sicurezza, è stato progettato con l'idea che tutti i programmi che stai visualizzando sono gestiti da te e quindi comunque affidabili. Per impostazione predefinita, SSH sottopone i comandi dal server alle restrizioni tramite estensione X11 SECURITY . L'estensione SECURITY disabilita alcuni attacchi evidenti come le prese della tastiera e l'iniezione di tasti, ma consente ad altri come il focus rubare.

Diciamo che apro una connessione SSH a someserver, con l'inoltro X11 abilitato. Il rischio principale è che se someserver è dannoso, allora someserver può fare ogni sorta di cose cattive con le finestre/applicazioni che ho aperto sul mio computer.

Ad esempio, someserver può aprire finestre sul mio computer, può chiudere altre finestre che ho aperto, può spiare il contenuto di altre finestre che ho aperto, può spiare le chiavi che digito in altre finestre, può iniettare sequenze di tasti contraffatte ed eventi del mouse in altre finestre che ho aperto, e in genere solo confusione con ogni altra finestra che ho aperto sul mio computer - anche se alcune di quelle altre finestre sono applicazioni locali in esecuzione localmente.

7
D.W.

Una soluzione ai rischi dell'inoltro X su SSH discussi nelle altre risposte sarebbe quella di utilizzare quello che potrebbe essere chiamato un server X mascherato, che non è in realtà un server X ma presenta un'interfaccia X pseudo e uno schermo Pseudo X al software client sul contenitore, mentre passa un po 'di X al server X reale dietro di esso. La pseudo schermata X viene visualizzata come una singola finestra X sul desktop X effettivo dell'host.

Anche se non è stato inteso come uno strumento di sicurezza, Xephyr si adatta a tale descrizione.

Per questo motivo ho scritto un programma javascript per creare un contenitore lxd/lxc da un'immagine Ubuntu Vanilla e popolarlo con firefox, openvpn, Xephyr e pusleaudio.

https://github.com/craigphicks/browser-on-lxc-vpn-xephyr

https://www.npmjs.com/package/browser-on-lxc-vpn-xephyr

Non vorrei fare alcuna affermazione in merito alla sicurezza - è stata una prova dell'esercizio del concetto.

0
Craig Hicks