Condição de corrida
O que é Condição de corrida?
Condição de corridaDefeito em que a segurança ou correção de um sistema depende do timing ou ordem de operações concorrentes, permitindo ao atacante intercalar ações e contornar verificações.
Uma condição de corrida surge quando dois ou mais threads, processos ou atores acedem a estado partilhado sem sincronização adequada, permitindo ao atacante ganhar uma janela temporal para observar estado intermédio ou alterá-lo entre operações. Variantes relevantes para segurança incluem TOCTOU (verificar-e-usar), falhas de atomicidade em lógica financeira e bugs de reentrância em manipuladores de sinais. A exploração requer frequentemente escalonamento preciso, martelar o kernel com pools de threads ou truques de sistema de ficheiros (renames, symlinks). Defesas: bloqueio adequado, transações, compare-and-swap atómico, APIs baseadas em descritores (openat, fstatat), designs idempotentes e ferramentas como o ThreadSanitizer.
● Exemplos
- 01
CVE-2016-5195 (Dirty COW): condição de corrida no kernel Linux no manuseamento de COW.
- 02
Corrida no sistema de ficheiros que permite substituir um ficheiro entre access() e open().
● Perguntas frequentes
O que é Condição de corrida?
Defeito em que a segurança ou correção de um sistema depende do timing ou ordem de operações concorrentes, permitindo ao atacante intercalar ações e contornar verificações. Pertence à categoria Vulnerabilidades da cibersegurança.
O que significa Condição de corrida?
Defeito em que a segurança ou correção de um sistema depende do timing ou ordem de operações concorrentes, permitindo ao atacante intercalar ações e contornar verificações.
Como se defender contra Condição de corrida?
As defesas contra Condição de corrida costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Condição de corrida?
Nomes alternativos comuns: Bug de concorrência.