C'è un problema di sicurezza su Linux che consente a qualsiasi applicazione di monitorare lo schermo

5

Da quanto ho capito /dev/fb0 contiene informazioni sui dati visualizzati sullo schermo.
Non è un problema di sicurezza che posso leggere da un utente non privilegiato? Non significa che nessuna applicazione può spiare lo schermo?

Inoltre, c'è un problema simile su altri sistemi operativi?

    
posta Markonius 20.02.2018 - 21:24
fonte

1 risposta

2

Hah, interessante. Ho appena provato questo su una console e hai ragione:

unprivileged $ echo "ABABABABABAB" > /dev/fb0

(scrive alcuni pixel nell'angolo in alto a sinistra dello schermo)

unprivileged $ dd if=/dev/fb0 of=read_fb.dat bs=12 count=1
unprivileged $ cat read_fb.dat
ABABABABABAB

Quindi un utente non privilegiato può scrivere e leggere dal framebuffer. Non ha funzionato sotto il mio server X perché non l'ho configurato per usare il framebuffer, ma potrebbe funzionare se ho cambiato la mia configurazione (quindi di nuovo, dato che X non ha isolamento per parlare e un'applicazione può ascoltare in qualsiasi un altro (inclusi movimenti del mouse e tratti chiave), questo non aggiunge nulla alla superficie di attacco se stai correndo con X - Wayland dovrebbe renderlo migliore).

Quindi, se sono riuscito a far sì che un utente ignaro eseguisse un programma che leggesse lo schermo, avrei potuto ottenere i suoi piani per il dominio del mondo (o le parti di esso che sono comunque visibili sullo schermo):

$ cat my-secret-plan-for-world-domination.txt
$ ...
$ program-which-reads-screen

O ancora peggio:

unprivileged $ sudo /bin/bash
root $ output-some-privileged-information-to-screen
root $ exit
unprivileged $ program-which-reads-screen

Ma se ci pensi, questo non è molto sorprendente, perché ogni volta che fai uno screenshot, stai facendo lo stesso (su Linux, una ricerca rapida rivela fbgrab che cattura uno screenshot usando il framebuffer). Quindi direi che qualsiasi sistema operativo che ti permetta di installare programmi in grado di acquisire schermate a schermo intero ha gli stessi problemi.

La cosa di cui essere consapevole, penso, è che qualcuno potrebbe installare uno screen recorder a tua insaputa, il che registrerebbe quindi l'intera sessione, anche se non stai correndo sotto X e non te lo aspetti. È il pendant di uno scenario di keylogging.

In Qubes OS, il framebuffer è gestito da dom0, quindi presumo che gli altri vms non possano accedere a tutto lo schermo, ma solo alla parte di esso che visualizza le loro finestre. Ciò significa comunque che le applicazioni in esecuzione nella stessa VM possono spiare l'una sull'altra, ma non sull'output generato in un'altra VM e solo un processo dom0 può registrare l'intero schermo.

    
risposta data 20.02.2018 - 23:28
fonte

Leggi altre domande sui tag