Herramientas de Análisis Estático de Código Binario

Detección de vulnerabilidades

CodeSentry

CodeSentry es una herramienta de análisis estático de composición de software binario.
CodeSentry permite detectar vulnerabilidades en software de terceras partes presente en las aplicaciones o productos.

Análisis de Composición de Software Binario (SCA)

El Análisis de Composición de Software binario permite detectar vulnerabilidades en software de terceras partes presente en las aplicaciones o productos.
El 90% de las compañías usa software de terceras partes en sus aplicaciones. Adicionalmente, una gran parte de las aplicaciones comerciales adquiridas incorporan software de terceros. Finalmente, aplicaciones desarrolladas por terceros para una compañía pueden incorporar software de terceras partes.
Una parte significativa de las aplicaciones contienen componentes con un alto nivel de vulnerabilidades conocidas. Algunas de las últimas vulnerabilidades que han causado problemas en la industria son:
Hearbleed bug (CVE-2014-0160): Vulnerabilidad en la librería criptográfica OpenSSL
Urgent/11: Vulnerabilidad en el stack TCP/IP desarrollado originalmente por Interpeak. Explotando la vulnerabilidad se podía ejecutar código remotamente. Ha impactado a sistemas operativos de tiempo real tales como ENEA, Green Hills Integrity, Mentor y Wind River VxWorks.
Ripple20: Vulnerabilidad en el stack TCP/IP. Explotando la vulnerabilidad se podía ejecutar código remotamente. Ha afectado a productos de HP, Schneider Electric, Intel, Rockwell Automation, Caterpillar, Baxter y muchos otros más.
CodeSentry analiza el ejecutable final en formato binario en lugar del código fuente que en muchos casos no está disponible. Esta técnica es muy fiable y reduce significativamente el número de falsos positivos ya que elimina el análisis de código desactivado o código que finalmente no está presente en el código objeto ejecutable.

Funcionalidad de CodeSentry

CodeSentry incorpora utilidades de análisis profundo de software binario, genera un inventario de componentes software (Software Bill of Materials) y accede a las bases de datos de vulnerabilidades conocidas más completas del mercado.

En la figura se muestra en la parte inferior la lista de componentes que constituyen el inventario de la aplicación.

Por cada componente se muestra la versión, el grado de similitud con la librería analizada y el número de vulnerabilidades detectadas conforme a la medición de riesgo CVSS (Common Vulnerability Scoring System) que las clasifica en los grados de serveridad bajo, medio, alto y crítico.

Accediendo a información detallada de las vulnerabilidades, se obtiene el nombre y versión de la librería, la severidad, el identificador de la vulnerabilidad (CVE ID) y si existe una medida de mitigación conocidad.

Adicionalmente, CodeSentry genera, para cada componente presente en el inventario, informes de vulnerabilidades N-Day (conocidas), basadas en las bases de datos de vulnerabilidades públicas, y Zero-Day (vulnerabilidades potenciales), basada en las capacidades de análisis de código binario de la herramienta.

Los formatos de los informes generados, son: CSV, PDF y XML

Formatos soportados de la aplicación a analizar

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

Roadmap: Próximos formatos a soportar

  • Imágenes de disco
  • Imágenes de instalador
  • Containers
  • Directorios

Análisis profundo de código binario

CodeSentry usa múltiples algoritmos de comparación de patrones tanto para compiladores nativos como para compiladores cruzados de arquitecturas Intel y ARM.

Los algoritmos realizan análisis sencillos (análisis sintáctico de patrones, como por ejemplo strings) y análisis semánticos complejos y profundos utilizando técnicas formales basadas en Abstract Interpretation.

 

Detección de Vulnerabilidades:

Análisis binario vs Análisis de código fuente

Suscríbete a nuestra newsletter