Marcio Cunha

Como auditar permissões perigosas no Linux com o comando find

Aprenda a rastrear brechas de segurança no Linux usando o comando find. Descubra como localizar arquivos SUID, SGID e diretórios com escrita mundial.

Marcio Cunha•5 min
Também disponível em:EnglishEspañol
Resumo
  • Permissões incorretas no Linux criam brechas graves que facilitam invasões e escalação de privilégios.
  • O comando find permite varrer o sistema de arquivos utilizando filtros avançados de bits de permissão.
  • Identificar arquivos SUID e SGID é crucial para impedir que usuários comuns executem tarefas de superusuário.
  • Diretórios com permissão de escrita mundial expõem dados a qualquer usuário local mal-intencionado.
  • Auditorias periódicas automatizadas evitam que alterações silenciosas comprometam a segurança da infraestrutura.

Por que permissões mal configuradas colocam seu Linux em risco

Gerenciar um servidor Linux exige atenção constante aos detalhes de segurança. Na prática, isso significa que um único arquivo com a permissão errada pode servir como porta de entrada para invasores assumirem o controle total da sua máquina. Quando criamos ou movemos arquivos, nem sempre percebemos quem tem o direito de ler, alterar ou executar cada item. Ferramentas automatizadas e administradores descuidados frequentemente deixam brechas que facilitam a vida de usuários mal-intencionados, permitindo que processos ganhem superpoderes indevidos. Se você gerencia servidores em produção, auditar esses acessos regularmente não é um luxo, mas uma necessidade básica para manter a integridade dos dados e impedir acessos não autorizados. Antes de aprofundarmos nas ferramentas, vale lembrar que, assim como analisar gargalos de disco no Linux ajuda a manter a performance, varrer permissões mantém a blindagem operacional.

Entendendo os perigos das permissões SUID e SGID

Para entender o tamanho do problema, precisamos olhar para dois conceitos especiais de permissão: o SUID (Set User ID) e o SGID (Set Group ID). Na prática, o bit SUID faz com que um arquivo seja executado com os privilégios do dono daquele arquivo, e não de quem o chamou. Um exemplo clássico e legítimo é o comando passwd, que precisa alterar o arquivo de senhas do sistema e, por isso, roda temporariamente como administrador. No entanto, se um binário vulnerável possui SUID ativado, um invasor comum pode explorá-lo para executar comandos arbitrários como root, o usuário supremo do sistema. O SGID funciona de forma parecida, mas aplicando permissões de grupo. Deixar arquivos executáveis desconhecidos com esses bits ativados é como deixar a chave da porta da frente embaixo do tapete, esperando que alguém indesejado a encontre.

Como rastrear arquivos com SUID e SGID usando o find

O comando find é o canivete suíço do administrador Linux para localizar arquivos com base em critérios complexos, incluindo permissões exatas. Para caçar todos os arquivos do sistema que possuem a permissão SUID ativada, podemos montar uma busca direcionada. Na prática, instruímos o utilitário a procurar por arquivos cujo modo de permissão contenha o bit especial correspondente, ignorando erros de diretórios inacessíveis para manter o foco no que importa. Veja abaixo a estrutura fundamental para realizar essa varredura inicial em busca de potenciais vetores de escalação de privilégios.

find / -type f -perm -4000 -ls 2>/dev/null

Nesta sintaxe, a barra indica que a busca começa na raiz do sistema, o parâmetro minus quatro mil filtra especificamente os arquivos que contêm o bit SUID ativo, e o redirecionamento final oculta mensagens de erro irritantes de pastas protegidas. O mesmo raciocínio serve para o SGID, bastando alterar o modificador numérico correspondente para mapear binários que herdam o grupo de execução do proprietário original. Executar essa rotina periodicamente ajuda a mapear qualquer modificação suspeita em pacotes do sistema operacional, funcionando de maneira complementar ao trabalho de auditar vulnerabilidades em imagens Docker com o Trivy em ambientes conteinerizados.

Caçando diretórios com permissão de escrita mundial

Outro erro comum e perigoso em ambientes Linux é a existência de diretórios com escrita mundial, conhecidos no jargão técnico como pastas 777 ou que possuem o bit otm configurado. Na prática, isso significa que qualquer usuário cadastrado no servidor, mesmo o com menor privilégio possível, pode criar, modificar ou apagar arquivos dentro daquele diretório. Se uma pasta compartilhada ou um diretório de sistema crítico estiver configurado dessa forma por engano, um usuário mal-intencionado pode substituir arquivos legítimos por versões modificadas, criando armadilhas para outros usuários ou administradores. Para rastrear essas falhas estruturais, usamos o find combinando filtros de tipo de diretório e permissões de escrita para todos.

find / -type d -perm -0002 -ls 2>/dev/null

O número dois no final da máscara de permissão representa a permissão de escrita liberada para o grupo 'outros', ou seja, qualquer pessoa que tenha uma conta no sistema. Ao varrer discos rígidos grandes, essa busca pode demorar alguns minutos, mas o resultado entrega um raio-x precioso dos pontos vulneráveis onde a barreira de isolamento entre usuários falhou. Se você encontrar diretórios de sistema com essa permissão aberta indevidamente, o ajuste imediato utilizando o comando chmod é obrigatório para estancar o risco de adulteração de arquivos.

Combinando filtros avançados para uma auditoria cirúrgica

Em ambientes de produção complexos, o comando find brilha quando combinamos múltiplos critérios para refinar a busca e evitar falsos positivos. Podemos, por exemplo, procurar por arquivos que sejam ao mesmo tempo modificados recentemente e que possuam permissões perigosas, ou restringir a busca a partições específicas para acelerar o processo. Na prática, isso permite que o administrador crie scripts de monitoramento automatizados que rodam via cronjob todas as noites. Caso qualquer anomalidade surja, um alerta pode ser disparado para a equipe de engenharia antes que um atacante descubra a brecha. A flexibilidade do find elimina a necessidade de instalar softwares pesados de terceiros apenas para verificar a integridade básica dos atributos de arquivos.

find /var/www -type f -mmin -60 -perm /6000 2>/dev/null

No exemplo acima, limitamos a busca ao diretório de aplicações web, procuramos por arquivos modificados na última hora e que possuam qualquer combinação de SUID ou SGID ativada. Essa precisão cirúrgica é essencial para servidores que hospedam múltiplas aplicações e precisam de monitoramento constante contra alterações maliciosas em scripts ou binários compilados. Combinar essas boas práticas de hardening com ferramentas de diagnóstico de rede, como inspecionar rotas de rede com o comando mtr, garante uma postura de segurança muito mais robusta em toda a infraestrutura.

Considerações finais sobre segurança e rotina de auditoria

Auditar permissões de arquivos no Linux utilizando o find é uma habilidade fundamental que todo administrador de sistemas deve dominar. Compreender a lógica por trás dos bits SUID, SGID e das permissões de escrita mundial permite antecipar-se a invasões e manter o ambiente corporativo protegido contra descuidos operacionais. Automatizar essas varreduras garante que o fator humano seja mitigado, alertando a equipe sobre qualquer desvio no padrão de segurança do sistema operacional. Implemente essas rotinas hoje mesmo em seus servidores e transforme a inspeção de arquivos em um hábito contínuo de blindagem tecnológica.