Posso sandboxar um binário criado em C (com GCC) para Linux e facilitar para os usuários?

0

Eu compilei um binário que quero distribuir para outras pessoas.

É de código fechado, mas quero fornecer aos usuários do binário confiança de que ele não pode acessar a internet, o microfone, a impressora etc. Também não deve ser capaz de ler / gravar arquivos / diretórios no sistema de arquivos a menos que forneçam a esse programa acesso a esse arquivo / diretório explicitamente.

Isso é possível de outras formas mais fáceis de usar do que dizer aos usuários para usar algo como SELinux ou AppArmor, onde o usuário precisa fazer algo especial para executar o binário (em oposição a um simples ./program )?

    
por ccoder987 05.01.2016 / 08:47

2 respostas

0

Para ter confiança no seu binário, os usuários precisarão usar ferramentas confiáveis para confiná-lo. Qualquer ferramenta de sandboxing que você empacote com seu binário deve ser considerada (in) confiável como o próprio binário.

Você pode fornecer um script de configuração legível que crie uma configuração chroot ou AppArmor apropriada. Dessa forma, seus usuários poderão auditar o script themsleves e verificar se o seu binário está em modo seguro.

    
por 05.01.2016 / 09:38
0

Como @Dmitry disse, se o aplicativo em si é de código fechado, você precisa mostrar aos usuários pelo menos a parte que garante que o aplicativo seja sandboxed, para que eles possam inspecionar e até mudar o caminho sandbox (para se adaptar à sua configuração de segurança específica). No topo de um chroot , o aplicativo também deve ser executado como seu próprio usuário (isso pode ser feito com setuid no binário, que é transparente para os usuários), com acesso apropriadamente restrito. No que diz respeito ao sandbox contra vários hardwares (microfones, rede, ...), qualquer parte deste não pode ser restrito por permissões de usuário, exigiria pelo menos lxc ou uma máquina virtual. Isso torna as coisas mais complicadas.

    
por 05.01.2016 / 10:02