Trabalhando com recursos do Linux

Introdução

Os recursos do Linux são atributos especiais no kernel do Linux que concedem privilégios específicos a processos e executáveis ​​binários que normalmente são reservados para processos cujo ID de usuário efetivo é 0 (o usuário raiz e apenas o usuário raiz possui UID 0).

Este artigo irá explicar alguns dos recursos disponíveis, seus usos e como configurá-los e removê-los. Observe que a configuração de recursos em executáveis ​​tem o potencial de comprometer a segurança do seu sistema. Como tal, você deve considerar testar em um sistema que não seja de produção antes de implementar recursos na produção.

Pré-requisitos

  • Um sistema Linux no qual você tem acesso root (por meio do usuário root ou de um usuário com acesso sudo).

Explicação

Essencialmente, o objetivo dos recursos é dividir o poder do 'root' em privilégios específicos, de modo que, se um processo ou binário com um ou mais recursos for explorado, o dano potencial será limitado quando comparado ao mesmo processo em execução como root.

Os recursos podem ser definidos em processos e arquivos executáveis. Um processo resultante da execução de um arquivo pode obter os recursos desse arquivo.

Os recursos implementados no Linux são numerosos e muitos foram adicionados desde o lançamento original. Alguns deles são os seguintes:

  • CAP_CHOWN: Faça alterações no ID do usuário e no ID do grupo de arquivos
  • CAP_DAC_OVERRIDE: Substituir DAC (controle de acesso discricionário). Por exemplo, vto ignora as verificações de permissão de leitura / gravação / execução.
  • CAP_KILL: Ignora as verificações de permissão para enviar sinais aos processos.
  • CAP_SYS_NICE: Aumente a gentileza dos processos ( Uma explicação da gentileza pode ser encontrada aqui )
  • CAP_SYS_TIME: Ajuste o relógio do sistema e do hardware em tempo real

Para a lista completa, execute man 7 capabilities.

Os recursos são atribuídos em conjuntos, a saber "permitido", "herdável", "efetivo" e "ambiente" para encadeamentos, e "permitido", "herdável" e "efetivo" para arquivos. Esses conjuntos definem diferentes comportamentos complexos, sua explicação completa está além do escopo deste artigo.

Ao definir recursos em arquivo, quase sempre usaremos "permitido" e "eficaz", por exemplo CAP_DAC_OVERRIDE+ep. Observe o +ep, que denota os conjuntos mencionados acima.

Trabalhando com recursos de arquivo

Pacotes Necessários

Existem duas ferramentas principais, getcape setcapque pode respectivamente visualizar e definir esses atributos.

  • No Debian e Ubuntu, essas ferramentas são fornecidas pelo libcap2-binpacote, que pode ser instalado com:apt install libcap2-bin
  • No CentOS e no Fedora, o libcappacote é necessário:yum install libcap
  • No Arch Linux, eles também são fornecidos libcap:pacman -S libcap

Recursos de leitura

Para ver se um arquivo tem algum recurso definido, você pode simplesmente executar getcap /full/path/to/binary, por exemplo:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Se você deseja descobrir quais recursos já estão definidos no seu sistema, você pode pesquisar todo o sistema de arquivos recursivamente com o seguinte comando:

getcap -r /

Como os sistemas de arquivos virtuais (como /proc) não suportam essas operações, o comando acima produzirá milhares de erros; portanto, para uma saída mais limpa, use o seguinte:

getcap -r / 2>/dev/null 

Atribuindo e removendo recursos

Para definir um recurso específico em um arquivo, use setcap "capability_string" /path/to/file.

Para remover todos os recursos de um arquivo, use setcap -r /path/to/file.

Para demonstração, criaremos um arquivo em branco no diretório atual, ofereceremos um recurso e o removeremos. Comece com o seguinte:

root@demo:~# touch testfile
root@demo:~# getcap testfile

O segundo comando não produz saída, o que significa que este arquivo não possui nenhum recurso.

Em seguida, defina um recurso para o arquivo:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN + ep" foi usado como exemplo, mas qualquer outro pode ser atribuído dessa maneira.

Agora, remova todos os recursos de testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Novamente, não haverá saída, porque "CAP_CHOWN + ep" foi removido.

Conclusão

Os recursos têm muitos usos em potencial e podem ajudar a reforçar a segurança de seus sistemas. Se você usar o bit SUID em seus executáveis, considere substituí-lo pelo recurso específico necessário.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.