O que são ataques TOCTOU no Linux? (Definição completa)

TOCTOU: A falha invisível entre a verificação e a ação no Linux.

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Vulnerabilidade de Sincronização: O Ataque TOCTOU explora a falha de design onde o estado de um recurso (como um arquivo) muda entre a validação de segurança e a execução da tarefa.
  • Vetor de Elevação de Privilégios: É comumente utilizado em sistemas Linux para enganar processos executados como Root, permitindo o acesso ou modificação de arquivos protegidos do sistema.
  • Prevenção Técnica: A mitigação eficaz exige o uso de operações atômicas no Kernel, substituindo nomes de caminhos por file descriptors para garantir que o arquivo verificado seja o mesmo arquivo manipulado.

Ataques TOCTOU (acrônimo para Time-of-Check to Time-of-Use) são uma classe específica de vulnerabilidade de software causada por uma condição de corrida (race condition). Eles ocorrem quando existe um intervalo de tempo entre a verificação de uma condição de segurança, como validar permissões de um arquivo, e o uso efetivo desse recurso, permitindo que o sistema seja enganado se o estado do recurso for alterado nesse meio tempo.

Entenda fácil:

Pense no TOCTOU como um erro de fiscalização em um aeroporto. O segurança verifica seu passaporte e confirma que você pode viajar (Time-of-Check). Porém, no momento em que ele vira as costas para abrir o portão de embarque (Time-of-Use), você troca rapidamente de lugar com uma pessoa que não tem passaporte. O sistema “aprovou” a entrada, mas quem entrou não foi quem foi verificado. No Linux, isso geralmente acontece trocando arquivos legítimos por links maliciosos em milissegundos.

Ficha Técnica: TOCTOU

CaracterísticaDetalhes
Nome CompletoTime-of-Check to Time-of-Use
ClassificaçãoVulnerabilidade de condição de corrida (Race Condition)
Alvo comumSistemas de arquivos (Filesystems), Binários SUID, Diretórios /tmp
ConsequênciaElevação de privilégios (Root), Corrupção de dados
MitigaçãoUso de operações atômicas, file descriptors travados

Por que isso é crítico no Linux?

No ecossistema Linux e Unix-like, os ataques TOCTOU são historicamente perigosos devido à forma como o sistema lida com arquivos e permissões em ambientes multiusuário.

Um cenário comum envolve programas que rodam com privilégios de Root. Se um script verifica se um arquivo temporário pertence ao usuário atual antes de escrever nele, mas existe uma pausa mínima entre a verificação e a escrita, um atacante pode substituir esse arquivo por um link simbólico apontando para /etc/passwd. O resultado? O programa Root sobrescreve um arquivo crítico do sistema achando que está escrevendo em um arquivo temporário inofensivo. Desenvolvedores devem evitar o padrão access() seguido de open() e preferir funções que garantam atomicidade.

Aprofunde seus conhecimentos

Agora que você entende a mecânica dos ataques TOCTOU, é fundamental saber como proteger seu sistema. Confira nosso guia sobre Permissões de Arquivos no Linux e entenda como o Kernel Linux trabalha para mitigar essas falhas nas versões mais recentes.

Compartilhe este artigo