Como Saber Se É Nidação Ou Escape
Entendendo isolamento de conta em painéis de hospedagem
Se você administra servidores com múltiplos clientes ou contas compartilhadas, já deve ter se deparado com aquela situação em que um usuário parece acessar arquivos que não são dele. Antes de entrar em pânico e culpar o sistema, é preciso distinguir entre o que é nidação legítima e o que é escape real de sandbox. O conceito aparece com frequência em configurações de cPanel/WHM, DirectAdmin e também em ambientes personalizados de hospedagem virtual. A nidação ocorre quando uma estrutura de diretórios filha é criada dentro de uma pasta pais, mantendo uma ligação lógica mas com separação de permissões intacta. É o comportamento padrão quando você cria uma subconta, um addon domain, ou um usuário FTP vinculado a um path específico. O escape acontece quando esse vínculo quebra e o processo do cliente consegue ler, escrever ou listar conteúdo fora do seu próprio home directory. Isso pode ser por configuração errada, exploit no servidor, ou simplesmente uma falha de mount/bind. No dia a dia, a primeira coisa que eu faço é verificar a saída do comando cat /etc/mtab ou mount | grep home. Se o /home estiver montado como um bind ou overlay, a probabilidade de nidação legítima é alta e os arquivos aparecem visíveis de forma cruzada sem que isso seja necessariamente um problema de segurança. Se o mount point for normal (ext4, xfs, btrfs) e mesmo assim um processo de UID 1005 estiver listando arquivos do UID 1003, aí o risco de escape é real.
Outro indicador prático é rodar o find /home -xdev -user {uid} -type f para cada usuário e comparar com o que aparece quando se usa ls -la /home/{usuario}/... Se o primeiro comando retornar arquivos que estão em pastas de outros usuários, tem escape. Se os arquivos forem apenas simbólicos ou links dentro do mesmo mount, é provavelmente nidação. Um caso específico que eu enfrentei: em um servidor com cPanel rodando CloudLinux com CageFS desabilitado parcialmente para alguns usuários, descobri que o mount de /home estava usando bind de uma pasta compartilhada. Vários clientes viam arquivos um do outro, mas não era um escape no sentido tradicional — era a nidação mal configurada do painel. A solução foi remover o bind, recuar para montagens separadas por usuário e ajustar o cldeploy para regenerar as limits corretas do CageFS. Levei cerca de 40 minutos para corrigir sem downtime.
Métodos de verificação na prática
A verificação mais direta envolve inspecionar os links simbólicos e a árvore de diretórios. Comece com ls -laR /home filtrando por symlinks que apontam para fora do home. Symlinks externos são o mecanismo mais comum de escape acidental, porque parecem inofensivos mas permitem traversal de diretório. Depois, verifique as capacidades do kernel. Em sistemas Linux modernos, commands como capsh --print mostram se algum UID tem capacidades elevadas. Um usuário comum nunca deveria ter CAP_DAC_OVERRIDE ou CAP_FOWNER. Se tiver, isso é um vetor de escape imediato, independente de nidação ou não. Para uma auditoria mais completa, use ferramentas como lsof +L1 para encontrar arquivos abertos que foram deletados mas ainda têm descritores de arquivo ativos, e strace -fp {pid_do_processo_suspeito} para monitorar em tempo real quais paths um processo está acessando. Eu costumo juntar os dois: capturo o PID de um serviço suspeito com ps aux | grep {nome_serviço}, jogo no strace por 30 segundos, e vejo exatamente quais arquivos foram tocados.
O comando grep -r "^username:" /etc/passwd também ajuda a mapear UIDs reais e verificar se há contas duplicadas ou UID 0 compartilhado, que é um cenário clássico de escape via privilégio root.
Limitações e quando confiar nos resultados
Nenhum desses métodos é infalível. O mount bind pode esconder a realidade se o atacante usar técnicas de overlay ou chroot invertido. Em servidores com containers Docker ou LXC, a fronteira entre nidação e escape fica tênue porque o isolamento depende do driver de storage e das configurações de namespace. Em ambientes com LVM thin provisioning, por exemplo, snapshots mal configurados podem expor dados de um volume para outro, simulando um escape que na verdade é um vazamento de camada de storage. Se você está em um ambiente gerenciado e não tem acesso root direto ao servidor, as opções diminuem. Nesse caso, solicitar ao provedor um relatório de acesso por UID e confirmar se as contas estão isoladas corretamente pelo painel é o mais pragmático. Ferramentas de terceiros como jailkit ou fswatch ajudam, mas adicionam complexidade e podem mascarar problemas reais se mal configuradas. O único cenário onde eu descartaria nidação como explicação é quando encontramos acesso a /etc/shadow, /proc/{pid}/exe de outros usuários, ou gravação de arquivos em partições de sistema. Isso quase sempre indica escape via bug de kernel ou configuração de SELinux/AppArmor corrompida, e não algo relacionado à estrutura de pastas do painel.
Galeria
-
MENSTRUAÇÃO OU NIDAÇÃO? COMO SABER? | Criadora do Movimento ... -
Nidação ou escape? | BabyCenter -
Nidação vs Escape: Como Diferenciar os Sintomas | TikTok -
Nidação é o sangramento de escape, que confunde muitas mulheres. Ele ...