Como impedir que os programas detectem pressionamentos de tecla no su / gksu?

10

Eu li aqui que é possível que qualquer aplicativo usando o servidor X cheire as teclas digitadas em qualquer outro aplicativo que também esteja usando o servidor X, incluindo su(em um terminal) ou gksu. Já ouvi algumas maneiras de tornar o servidor X seguro como o Xephyr , mas não tenho certeza de qual usar. Eu só quero impedir que qualquer aplicativo xinputgire facilmente as teclas quando estou digitando uma senha no terminal ou gksu. Atualmente, estou usando o Debian sid.

Magnus
fonte
Não digite. é executado
Ignacio Vazquez-Abrams
1
qualquer aplicativo = qualquer aplicativo com acesso ao servidor X11 , consulte a documentação de segurança do X.Org para obter os primeiros ponteiros. Observe também que XACEa história toda parece um pouco mais complicada, com clientes X11 confiáveis ​​/ não confiáveis. Não faço ideia de quanto disso é usado nas configurações recentes do Xorg.
sr_ 12/04/12
1
Eu instalei o Xephyr. É muito complicado e requer mágica complexa do bash, mas o xinput em execução no servidor X aninhado não conseguiu detectar as teclas pressionadas fora do Xephyr (no entanto, o xinput em execução fora do Xephyr ainda pode detectar todas as teclas pressionadas). Tentei usar a sandbox do SELinux, mas não consegui fazê-la funcionar. Ainda vou deixar essa pergunta em aberto caso alguém tenha uma idéia melhor.
Magnus
Este é um artigo recente lwn.netsobre a segurança da pilha de gráficos do GNU / Linux que discute completamente a opinião dos desenvolvedores do X sobre o assunto.
sr_ 21/10/12

Respostas:

1

Observe que o Xephyr / Xnest / vnc-server fará o aplicativo falar com um servidor X diferente, mas não o proibirá de falar com seu outro servidor X no qual você está executando o gksu.

O melhor é executá-lo em um servidor X diferente e como um usuário diferente (ou use um LSM para impedir que o aplicativo se conecte ao servidor X ou leia seu arquivo .Xauthority). Para dar um passo adiante, você pode executá-lo em uma prisão chroot, e para dar um passo ainda mais, você pode executá-lo em um contêiner, e para dar um passo ainda, executá-lo de forma totalmente controlada máquina virtual (por exemplo, com kvm -snapshot).

Se você não confiar no aplicativo, provavelmente precisará percorrer todo o caminho.

Stéphane Chazelas
fonte
-1

Acredito, mas não sei como provar, que qualquer aplicativo X11 que impeça você de digitar em qualquer outro lugar (como prompts de senha) não pode ser farejado.

Tente o seguinte: execute gksue, quando o prompt da senha for aberto, tente ajustar o volume usando as teclas (se a sua máquina as possuir) ou pressione outras teclas de atalho (super, energia etc.) e veja se elas fazem alguma coisa. Se não, acho que você está seguro.

Eu acho que ctrl-alt-f1 etc. sempre funciona embora.

ams
fonte
2
Na verdade, o xinput pode rastrear pressionamentos de teclas, mesmo no gksu. Eu tentei isso e, embora não tenha mostrado as teclas pressionadas ao digitar a senha, uma vez que a caixa de diálogo gksu se foi, as teclas pressionadas apareceram.
Magnus
@ Magnus: Isso é decepcionante. :( #
07/04