Como iniciar um programa especificando explicitamente suas capacidades?

4
  • su user_name program inicia algum programa com outro uid;
  • chroot path program inicia algum programa com outro / ;
  • ( ulimit -v 80000; program) limita a memória do programa ...

Como limitar as capacidades do programa (7) ?

Eu só vejo a ferramenta setcap (8) que define as cababilidades de arquivos; como fazer algo assim:

root# start_program_with_capabilities_dropped_except_of CAP_NET_RAW,CAP_NET_ADMIN program

Como iniciar um programa com meu conjunto de recursos sem usar recursos de arquivo?

Por exemplo, sou root e quero iniciar ping :

  • Como não raiz
  • Com o sinalizador PR_SET_NO_NEW_PRIVS (para que todos os recursos de bits e arquivos do setuid desapareçam)
  • Com apenas o CAP_NET_RAW ativo e tudo o mais denegado
  • Com ping ciente de que está no modo sem privilégios ( ping: cannot flood; minimal interval, allowed for user, is 200ms )
por Vi. 31.01.2013 / 13:12

2 respostas

1

O programa capsh parece ser projetado por isso.

Além disso, implementei isso como um modo no meu programa dived .

Ainda não sei como especificar explicitamente os limites apesar dos recursos do sistema de arquivos .

    
por 01.02.2013 / 10:46
1

As sub-camadas de direitos do sistema e MAC (Controle de Acesso Obrigatório) existem para esses propósitos. Para restringir os recursos conforme o link os definiu, use uma conta de usuário que tenha exatamente os direitos desejados. combine com SU e permissões de arquivo para garantir que seu aplicativo seja executado somente para esse usuário.

Para MACs, exemplos comuns incluem o Selinux (NSA / Redhat) e o AppArmor (Novell). Eles limitam os recursos que um aplicativo pode acessar. lembre-se no linux, tudo é um arquivo, então, bloqueando os arquivos necessários, você pode restringir os recursos de um aplicativo. Os sistemas MAC usam uma lista branca para permitir que os aplicativos acessem apenas os recursos especificados e, como tal, por padrão, todo o acesso é negado. Eu uso uma armadura de aplicativo para o firefox, por exemplo, que a restringe a sua área de aplicativo / cache em meu $ HOME e coisas como minha pasta de downloads.

    
por 31.01.2013 / 13:35