É esperado que o firejail permita R / W fora do sandbox sem o flag "--overlay"?

5

Acabou de instalar firejail no Ubuntu 16.04 (versão 0.9.38 ) e de acordo com isso revista linux artigo , por padrão deve fazer R / O o sistema de arquivos inteiro:

The programs in the sandbox have only read access to all directories and are thus unable to manipulate any important files.

Agora, tentei o seguinte no meu computador:

  1. touch /disk5/test.txt
  2. firejail gvim /disk5/test.txt
  3. modifique o arquivo e salve-o ( wq! )
  4. cat /disk5/test.txt
  5. exibe as alterações feitas por gvim durante a sessão de sessão do fire_jail!

Esse comportamento é esperado? O firejail não deveria me proteger de sobrescrever o arquivo original? O que eu fiz errado? Observe que /disk5 está montado no sistema de arquivos raiz, fora do meu /home .

Gerou um bug no github

    
por Emanuele 12.12.2016 / 10:36

2 respostas

1

firejail não é uma ferramenta mágica que faz tudo certo. É uma ferramenta de segurança que permite que você defina suas próprias regras sobre como lidar com as coisas. Por exemplo, esses argumentos:

firejail --noprofile

Não dará proteção alguma. Porque você não especificou nenhuma restrição, e firejail é permissível por padrão. Para tornar alguns dirs somente leitura, você deve escrevê-lo explicitamente. Algo como:

firejail --noprofile --read-only=/ --read-only=~ --read-only=/tmp

(Escrevi / , ~ e /tmp separadamente porque o firejail tem um comportamento um pouco surpreendente de ordenar suas diretivas por algumas regras não tão triviais e de fazer suas próprias ~ montagens no meio.)

Além disso, sem nenhum argumento --caps.drop=all , --seccomp e seus programas não serão seguros de qualquer maneira. Porque o processo poderia se comunicar com outros processos via sockets unix, soquetes abstratos, etc., explorando seus bugs. Se você quiser uma "cadeia" relativamente OK, adicione pelo menos as diretivas seccomp, caps.drop = all e nonewprivs.

EDIT: a citação que você mencionou é provavelmente apenas errada. (Ou então eu acho.) É mais complexo do que apenas "tudo é somente leitura".

    
por 09.02.2017 / 15:10
-3

Por que você manteria seus programas em um diretório não padrão do Unix, como / disk5? Você está definitivamente pedindo problemas. Armazene seus executáveis nos locais regulares, como / bin, / usr / bin. / usr / local / bin ou até / opt. Certifique-se de que todos os seus executáveis sejam de propriedade do root e que os usuários regulares não tenham acesso de gravação a eles. Linux é um sistema Unix, basta seguir as regras do Unix e você estará seguro.

    
por 20.12.2016 / 22:46