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.

Comprovado em produção

Estudos de Caso

Intel Semicondutor · Firmware

1.500%

ganho de desempenho na verificação

Verificação Formal Escalável de Firmware

Ler estudo de caso
Arm Hardware · Computação Confidencial

23

violações de propriedade adicionais encontradas

Protegendo a Arm Confidential Computing Architecture

Ler estudo de caso
Ethereum Foundation Blockchain · Python

PR #3600

correção incorporada upstream

Relatando um Bug em integer_squareroot na Especificação de Consenso

Ler estudo de caso
verify-rust-std project Ecossistema de código aberto · Rust

1 de 4

ferramentas de verificação listadas no projeto

ESBMC no Projeto verify-rust-std

Ler estudo de caso
NVIDIA OpenSMA Firmware de data center · C++23

F-1

escrita OOB corrigida upstream pela NVIDIA

Verificando o Firmware NVIDIA OpenSMA com ESBMC

Ler estudo de caso
AWS Neuron (NKI) Aceleradores de IA · Kernels em Python

2

novos bugs de divisão por zero no NKI reportados e corrigidos upstream pela AWS

Verificando Kernels NKI do AWS Neuron com ESBMC

Ler estudo de caso
vLLM Inferência de LLM · Python

6 de 7

descobertas alcançáveis pela CLI corrigidas upstream no vLLM

Verificando a Aritmética de Configuração do vLLM com ESBMC

Ler estudo de caso
Chromium Dashboard Infraestrutura de desenvolvimento · Python

3

de 7 issues reportadas no rastreador do Google corrigidas no upstream

Verificando o Chromium Dashboard do Google com ESBMC

Ler estudo de caso
AWS SDK for C++ · Base64 SDK de nuvem · C++

2 CVEs

problemas de segurança de memória corrigidos pela AWS no SDK 1.11.862

Dois CVEs de Segurança de Memória no Base64 do AWS SDK for C++

Ler estudo de caso
AWS SDK for C++ · DateTime SDK de nuvem · C++

PR #3896

dois bugs no parser DateTime corrigidos pela AWS no SDK 1.11.877

Dois Bugs no Parser DateTime do AWS SDK for C++

Ler estudo de caso

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.