Firefox no Docker, falhou em isolamento

1

Durante a experiência com o docker, percebi que posso executar um navegador em um contêiner para melhorar a segurança. Eu consegui começar com um Docker Fedora limpo, no qual eu instalei o openssh-daemon package. A partir daí construí uma nova imagem na qual instalei o firefox .

Eu finalmente consegui iniciar um Firefox gráfico a partir do computador host, com a seguinte linha de comando:

ssh -p2222 localhost -X firefox   

Até aí tudo bem, mas duas coisas estranhas muito relacionadas acontecem aqui:

  • Se eu lançar o firefox da minha máquina real , e eu iniciá-lo a partir do contêiner, recebo uma segunda janela configurada como na minha máquina real;

  • Exatamente o oposto, isto é, se eu iniciar o Firefox a partir do contêiner, e então eu iniciar outro da minha máquina real, uma segunda janela como no contêiner aparece.

Fiquei surpreso em dizer o mínimo. O contanador é suposto para isolar completamente o processo, não é?

EDIT : Acredito que encontrei um questão relacionada . A opção --no-remote corrige o problema. Ainda não entendi como isso poderia acontecer. Eu acho que isso tem algo a ver com o protocolo XWindow, já que não vejo nenhuma outra conexão entre as duas instâncias.

    
por Dacav 15.03.2015 / 23:17

1 resposta

4

Nada em execução no X é isolado de outros programas em execução no X.

Um programa em execução em um servidor X, usando o protocolo X11, pode verificar quais outras janelas estão abertas.

Existem vários outros problemas de segurança com o X11. Ao configurar o sshd, eu só vi recomendações para ativar o acesso através do X off, nunca ligado. Wayland deve ser uma melhoria nesta área.

Observe que a janela de encaixe é sobre o isolamento do processo, mas por outras razões que não a segurança. Você obtém velocidade nativa, bom isolamento e controle sobre o que está sendo executado no contêiner, mas não há garantias de que os processos estarão 100% contidos, ao contrário de um sandbox adequado (ou algo como executar o SELinux em um contêiner docker).

Dizer que a janela de encaixe é derrotada é como chutar uma porta aberta.

    
por 15.03.2015 / 23:36