Ferramentas de análise estática de código binário

Deteção de vulnerabilidades

CodeSentry

O CodeSentry é uma ferramenta de análise de composição de software binário estático.
O CodeSentry permite detetar vulnerabilidades em software de terceiros presente em aplicações ou produtos.

Análise de Composição de Software Binário (SCA)

A análise da composição de software binário permite detetar vulnerabilidades em software de terceiros presente em aplicações ou produtos.
90% das empresas utilizam software de terceiros nas suas aplicações. Além disso, uma grande parte das aplicações comerciais adquiridas incorpora software de terceiros. Por último, as aplicações desenvolvidas por terceiros para uma empresa podem incorporar software de terceiros.
Uma parte significativa das aplicações contém componentes com um elevado nível de vulnerabilidades conhecidas. Algumas das vulnerabilidades mais recentes que causaram problemas no sector são:
Bug Hearbleed (CVE-2014-0160): Vulnerabilidade na biblioteca criptográfica OpenSSL
Urgent/11: Vulnerabilidade na pilha TCP/IP originalmente desenvolvida pela Interpeak. A exploração da vulnerabilidade permitiu a execução remota de código. Afectou sistemas operativos em tempo real como o ENEA, o Green Hills Integrity, o Mentor e o Wind River VxWorks.
Ripple20: Vulnerabilidade na pilha TCP/IP. A exploração desta vulnerabilidade permite a execução remota de código. Afectou produtos da HP, Schneider Electric, Intel, Rockwell Automation, Caterpillar, Baxter e muitos outros.
O CodeSentry analisa o executável final em formato binário em vez do código-fonte que, em muitos casos, não está disponível. Esta técnica é muito fiável e reduz significativamente o número de falsos positivos, uma vez que elimina a análise de código desativado ou de código que, em última análise, não está presente no código objeto executável.

Funcionalidade do CodeSentry

O CodeSentry incorpora utilitários de análise profunda de software binário, gera um inventáriode lista de materiais desoftware e acede às bases de dados mais completas de vulnerabilidades conhecidas no mercado.

A figura abaixo mostra a lista de componentes que constituem o inventário da aplicação.

Para cada componente, é apresentada a versão, o grau de semelhança com a biblioteca analisada e o número de vulnerabilidades detectadas de acordo com a medida de risco CVSS(Common Vulnerability Scoring System), que as classifica em gravidade baixa, média, alta e crítica.

Ao aceder a informações detalhadas sobre a vulnerabilidade, obtém o nome e a versão da biblioteca, a gravidade, o identificador da vulnerabilidade (ID CVE) e se existe uma medida de atenuação conhecida.

Além disso, o CodeSentry gera, para cada componente presente no inventário, relatórios de vulnerabilidades de Dia N (conhecidas), com base nas bases de dados de vulnerabilidades públicas, e de Dia Zero (potenciais vulnerabilidades), com base nas capacidades de análise de código binário da ferramenta.

Os formatos dos relatórios gerados são: CSV, PDF e XML

Formatos suportados da aplicação a analisar

  • Formatos comprimidos
    • Zip (.zip)
    • 7-zip (.7z)
    • Bzip (.bz2)
    • Gzip (.gz)
  • Instaladores do Windows (.msi)
  • Formatos binários nativos
    • Linux (.o, .so, .a)
    • Windows (.exe, .obj, .dll)
    • MacOS
  • Formatos cruzados binários
    • Intel
    • ARM

Roteiro: Próximos formatos a serem suportados

  • Imagens de disco
  • Imagens do instalador
  • Contentores
  • Directórios

Análise profunda do código binário

O CodeSentry utiliza vários algoritmos de correspondência de padrões tanto para compiladores nativos como para compiladores cruzados para arquitecturas Intel e ARM.

Os algoritmos efectuam uma análise simples (análise de padrões, por exemplo, cadeias de caracteres) e uma análise semântica profunda complexa utilizando técnicas formais baseadas na interpretação abstrata.

 

Deteção de vulnerabilidades:

Análise binária vs. análise de código fonte

Subscrever a nossa newsletter