Execução simbólica
O que é Execução simbólica?
Execução simbólicaTé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
- 01
Usar KLEE em uma biblioteca C para gerar entradas que atinjam cada branch e disparem asserts.
- 02
Combinar angr com AFL++ para resolver restrições que o fuzzing sozinho não consegue.
● Perguntas frequentes
O que é Execução simbólica?
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. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa Execução simbólica?
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.
Como se defender contra Execução simbólica?
As defesas contra Execução simbólica costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Execução simbólica?
Nomes alternativos comuns: Análise simbólica, Execução concolic.