Pular para o conteúdo principal
Verificação Formal de Software · ESBMC desde 2008

Prove.
Não apenas teste.

Usamos verificação formal, não apenas testes, para encontrar os bugs que outras ferramentas deixam passar e provar sua ausência em software de segurança crítica.

1.500%

Ganho de desempenho alcançado na verificação de firmware da Intel

23

Violações de propriedade adicionais que o ESBMC encontrou no firmware RMM da Arm (SAS 2024)

PR #3600

Correção nas consensus-specs do Ethereum incorporada upstream após nosso relatório com ESBMC-Python (ISSTA 2024)

F-1

Escrita fora dos limites no NVIDIA OpenSMA confirmada e corrigida upstream após nossa PoC de 2026

Por que verificação formal?

Testar é amostrar.
Verificação formal é prova.

Testes verificam os casos que você imagina. A verificação formal verifica toda entrada possível, incluindo o caso extremo de integer_squareroot que nosso relatório com ESBMC-Python apontou na especificação de consenso do Ethereum, os gargalos de verificação que bloquearam a análise de firmware da Intel e as 23 violações de propriedade adicionais que o ESBMC identificou no firmware RMM da Arm além daquelas que o CBMC já havia detectado.

O ESBMC usa solucionadores de Satisfatibilidade Módulo Teorias (SMT) para raciocinar matematicamente sobre o comportamento do seu código, produzindo seja uma prova de correção, seja um contraexemplo concreto que mostra exatamente como um bug pode ser disparado.

Saiba como o ESBMC funciona
integer_squareroot helper (Python)
def integer_squareroot(n: uint64) -> uint64:
  x = n
  y = (x + 1) // 2  # ← overflows to 0 when n = 2⁶⁴ − 1
  while y < x:
    x = y                 # x becomes 0 after the overflow
    y = (x + n // x) // 2  # ← ZeroDivisionError: n // 0
  return x

# Input:  n = 2⁶⁴ − 1 (maximum uint64 value)
# Result: ZeroDivisionError, the unsigned integer overflows to 0,
#         then is used as the denominator of a division operation.
# ESBMC-Python: confirmed the bug and produced a counterexample trace.

Pronto para tornar seu software comprovadamente correto?

Agende uma conversa de descoberta gratuita de 30 minutos para discutir como a verificação formal pode funcionar para o seu projeto.