CyberGlossary

Segurança de aplicações

Execução simbólica

Também conhecido como: Análise simbólica, Execução concolic

Definição

Técnica de análise de programas que executa o código com entradas simbólicas em vez de valores concretos, criando restrições de caminho resolvidas por um solver SMT.

Um motor de execução simbólica trata as entradas como variáveis matemáticas e explora caminhos ramificando em cada condicional. Cada caminho acumula restrições em lógica de primeira ordem; um solver SMT como Z3 verifica a satisfatibilidade e, quando possível, gera uma entrada concreta que leva o programa por aquele caminho. Isso permite provar a alcançabilidade de condições de bug (overflow, divisão por zero, taint chegando a um sink), mas sofre com explosão de caminhos e restrições complexas. Ferramentas como KLEE, angr e Manticore auxiliam fuzzers, encontram vulnerabilidades profundas e verificam propriedades de segurança em binários.

Exemplos

  • Usar KLEE em uma biblioteca C para gerar entradas que atinjam cada branch e disparem asserts.
  • Combinar angr com AFL++ para resolver restrições que o fuzzing sozinho não consegue.

Termos relacionados