Pesquisa de site

Como proteger links físicos e simbólicos no CentOS/RHEL 7


No Linux, hard e soft links são referenciados a arquivos, que são muito importantes, se não forem muito bem protegidos, quaisquer vulnerabilidades neles podem ser exploradas por usuários mal-intencionados do sistema ou invasores.

Uma vulnerabilidade comum é a corrida de links simbólicos. É uma vulnerabilidade de segurança em software, que surge quando um programa cria arquivos de forma insegura (especialmente arquivos temporários), e um usuário mal-intencionado do sistema pode criar um link simbólico (soft) para tal arquivo.

Leia também: Como criar links físicos e simbólicos no Linux

Isso praticamente acontece; um programa verifica se um arquivo temporário existe ou não, caso não exista, ele cria o arquivo. Mas nesse curto período de tempo entre a verificação do arquivo e sua criação, um invasor pode criar um link simbólico para um arquivo e seu acesso não será permitido.

Portanto, quando o programa é executado com privilégios válidos e cria o arquivo com o mesmo nome daquele criado pelo invasor, ele literalmente cria o arquivo de destino (vinculado ao) que o invasor pretendia acessar. Portanto, isso pode fornecer ao invasor um caminho para roubar informações confidenciais da conta root ou executar um programa malicioso no sistema.

Portanto, neste artigo, mostraremos como proteger links físicos e simbólicos de usuários mal-intencionados ou hackers em distribuições CentOS/RHEL 7.

No CentOS/RHEL 7 existe um recurso de segurança vital que só permite que links sejam criados ou seguidos por programas somente se algumas condições forem atendidas, conforme descrito abaixo.

Para links físicos

Para que um usuário do sistema crie um link, uma das seguintes condições deve ser atendida.

  • o usuário só pode vincular arquivos de sua propriedade.
  • o usuário deve primeiro ter acesso de leitura e gravação a um arquivo ao qual deseja vincular.

Para links simbólicos

Os processos só podem seguir links que estão fora dos diretórios graváveis mundialmente (outros usuários podem gravar) que possuem bits pegajosos, ou uma das seguintes opções deve ser verdadeira.

  • o processo que segue o link simbólico é o proprietário do link simbólico.
  • o proprietário do diretório também é o proprietário do link simbólico.

Habilitar ou desabilitar proteção em links físicos e simbólicos

É importante ressaltar que, por padrão, esse recurso é ativado usando os parâmetros do kernel no arquivo /usr/lib/sysctl.d/50-default.conf (o valor 1 significa ativar ).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Porém, por um motivo ou outro, se você deseja desabilitar esse recurso de segurança; crie um arquivo chamado /etc/sysctl.d/51-no-protect-links.conf com as opções de kernel abaixo (o valor 0 significa desabilitar).

Observe que 51 no nome do arquivo (51-no-protect-links.conf), ele deve ser lido após o arquivo padrão para substituir as configurações padrão.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

Salve e feche o arquivo. Em seguida, use o comando abaixo para efetuar as alterações acima (este comando realmente carrega as configurações de cada arquivo de configuração do sistema).

sysctl --system
OR
sysctl -p  #on older systems

Você também pode gostar de ler os artigos a seguir.

  1. Como proteger com senha um arquivo Vim no Linux
  2. 5 comandos ‘chattr’ para tornar arquivos importantes IMUTÁVEIS (inalteráveis) no Linux

Isso é tudo! Você pode postar suas dúvidas ou compartilhar quaisquer ideias relacionadas a este tópico por meio do formulário de feedback abaixo.