libcap-ng.

próxima geração libcap biblioteca
Baixe Agora

libcap-ng. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • LGPL v2
  • Preço:
  • FREE
  • Nome do editor:
  • Steve Grubb
  • Site do editor:
  • http://www.redhat.com

libcap-ng. Tag


libcap-ng. Descrição

Biblioteca LIBCAP da próxima geração libcap-ng é uma biblioteca projetada para tornar a programação com recursos POSIX muito mais fácil do que a biblioteca libcap tradicional. Ele inclui utilitários que podem analisar todas as aplicações actualmente em execução e imprimir todas as capacidades e se ele tem ou não um conjunto delimitadora terminou aberta. Um conjunto delimitadora aberta sem a securebits bandeira "noroot" permitirá plena capacidade de escalonamento para aplicações de retenção uid 0 simplesmente chamando execve.The incluído utilitários são projetados para permitir que os administradores e desenvolvedores detectar aplicativos de várias maneiras que possam estar em execução com excesso de privilégio. Por exemplo, qualquer investigação deve começar com aplicativos enfrentando rede, uma vez que seria os principais alvos de intrusão. O programa netcap irá verificar todos os aplicativos em execução e exibir os resultados. Exemplo de saída de netcap: ppid pid acct tipo de comando capabilities1 porta 2295 raiz NASD tcp 8000 full23232383 dnsmasq raiz TCP 53 net_admin, net_raw 12286 sshd raiz TCP 22 full12365 cupsd raiz TCP 631 full12286 raiz sshd tcp622 full12365 cupsd raiz tcp6631 full23232383 dnsmasq raiz udp 53 net_admin, +23232383 dnsmasq raiz udp 67 net_admin, net_raw +12365 cupsd raiz udp 631 fullBut assumindo alguém teve sucesso em entrar em seu sistema e só tem capacidades parciais net_raw, quais poderiam ser os próximos alvos para ganhar privs completos? O programa pscap irá mostrar-lhe todos os aplicativos em execução no sistema que tem privilégios. Idealmente, todos os aplicativos em execução como uid 0 deve cair privilégios. Alguns não conseguem por boas razões, como explicado mais tarde. Mas muitos can.If por algum motivo você sente que seus desenvolvedores muito difícil ou aplicativos não estão dispostos a mudança, o administrador pode definir capacidades com base em arquivo, usando filecap, se o sistema de arquivos tem atributos estendidos e o sistema de arquivos kernel suporta capacidades baseadas. Ele também pode procurar arquivos em seu sistema que tenham sistema de arquivos baseados capabilities.Developer commentsI acho que uma das intenções de capacidades baseadas do sistema de arquivos era permitir que os administradores para assumir o controle do seu perfil de risco de segurança e soltar privilégios de aplicativos em seu sistema independente do que desenvolvedores de aplicativos fazer. Eu suspeito que a baixa taxa de adoção para deixar cair privilégios é porque o antigo API tornou tediosa para fazer qualquer tarefa e, portanto, os desenvolvedores de aplicativos simplesmente não usá-lo. Quantos aplicativos você viu que diz que você precisa ser root para usar este programa? Isso ocorre porque é apenas uma linha de código para verificar se você é o usuário root. O programador provavelmente sabia que um recurso específico foi necessário, mas optou por tomar o atalho em seu lugar. Eu queria mudar isso, fazendo uma API fácil de usar. É mais fácil aceitar um patch 3-4 linha do que aquele que acrescenta cerca de 20 linhas de code.As um desenvolvedor de aplicativos, existem probabaly 6 casos de uso que você está interessado em: soltar todos os recursos, manter uma capacidade, manter várias capacidades, verificação se você tiver quaisquer capacidades em tudo, verificar a existência de certas capacidades, e reter as capacidades através de uma mudança uid. Vou mostrar como é fácil de fazer cada um destes abaixo usando libcap-ng (e agora em python): 1) Elimine todos os recursos capng_clear (CAPNG_SELECT_BOTH); capng_apply (CAPNG_SELECT_BOTH); 2) manter uma capacidade capng_clear (CAPNG_SELECT_BOTH); capng_update (CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_CHOWN); capng_apply (CAPNG_SELECT_BOTH); 3) Mantenha várias capacidades capng_clear (CAPNG_SELECT_BOTH); capng_updatev (CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_SETUID, CAP_SETGID, -1); capng_apply (CAPNG_SELECT_BOTH); 4) Verifique se você tem qualquer capacidade de se (capng_have_capabilities (CAPNG_SELECT_CAPS)> CAPNG_NONE) do_something (); 5) Verifique se há certas capacidades if (capng_have_capability (CAPNG_EFFECTIVE, CAP_CHOWN)) do_something (); 6) Manter capacidades através um capng_clear mudança uid (CAPNG_SELECT_BOTH); capng_update (CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_CHOWN); if (capng_change_id (99, 99, CAPNG_DROP_SUPP_GRP | CAPNG_CLEAR_BOUNDING)) Erro (); Agora, não é que muito mais simples? Note-se que o último exemplo leva cerca de 60 linhas de código usando a biblioteca capacidades mais velho. A partir da versão 0.6, há um arquivo de macro m4 a ajuda adicionar às suas autotools configuração do sistema-ng libcap. Em configure.ac, adicione LIBCAP_NG_PATH. Então, em Makefile.am localizar os aplicativos que apontam para libcap-ng, adiciona $ (CAPNG_LDADD) para suas entradas _LDADD. E, por último, coloque o código capacidades opcionais com aspecto HAVE_LIBCAP_NG.One #ifdef desta biblioteca que faz com que seja mais completa é que ele trata o conjunto delimitadora como se fosse um outro tipo de conjunto de capacidades. As mesmas funções que levam eficaz, permitido, ou hereditária também tomar bounding_set. Mas às vezes você não quer tocar o conjunto delimitadora, de modo que a API permite que você selecione entre as capacidades tradicionais, o conjunto delimitadora, ou ambos. Uma coisa a nota, se você quiser alterar o conjunto delimitadora, você deve ter capacidade SETPCAP. Você pode deixar cair capacidades tradicionais, a qualquer momento, mesmo sem a capacidade SETPCAP. Leia mais sobre isto nas "capacidades (7)" página homem.


libcap-ng. Software Relacionado

Blastoff.

Um modelo de pilões fornecendo um esqueleto de site de trabalho configurado com sqlalchemy, mako, repoze.who, esquema, toscawidgets, turbomilha e webflash ...

124

Download