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

Detección de vulnerabilidades y errores en tiempo de ejecución

CodeSonar

CodeSonar permite comprobar la adherencia del código fuente a estándares de codificación software de “Safety” y “Security”, tal como se requiere en las principales normas de Seguridad Funcional.

Lenguajes de programación

Estándares de Safety

C 2012

C++ 2008

C++ 14, 2018

Estándares de Security

C 2016

C++ 2016

CodeSonar incluye diferentes programas que detectan errores potenciales en tiempo de ejecución.
CodeSonar permite comprobar que el código fuente desarrollado cumple con los estándares de seguridad seleccionados. Para cada estándar se pueden seleccionar las reglas que queremos verificar.
El resultado final garantiza un uso seguro del lenguaje de programación y la portabilidad de la aplicación.

Detección de errores en tiempo de ejecución

  • Uso de punteros nulos
  • Desbordamiento de buffers
  • Memoria dinámica no liberada
  • Problemas de conversión de tipos
  • Errores de inicialización de variables
  • Uso inadecuado de funciones de librerías
  • Detección de ciclos y bucles inválidos
  • Detección de codigo muerto
  • Errores de concurrencia
  • y muchos otros …

Características diferenciales de CodeSonar

Profundidad de Análisis

Uno de los factores diferenciales de CodeSonar es la capacidad de realizar análisis profundos del código, incluyendo análisis de control flow data flow, permitiendo obtener errores que afectan a distintas funciones de distintos ficheros.
CodeSonar distingue entre errores y avisos de distinta severidad. Una vez identificado un error, se muesta la secuencia de llamadas a funciones que lo ocasionan y la sentencia y condición donde ocurre el error. Esto se marca como una secuencia de eventos.
CodeSonar encuentra errores que otras herramientas de análisis estático de código no son capaces de localizar.

También se pueden visualizar los caminos y el árbol de llamadas que conducen al error.
En el ejemplo mostrado de un error de inicialización de una variable local a una función, CodeSonar detecta que el error se produce en cuatro trayectorias de ejecución de las seis posibles.

El flujo de control de llamadas a función también puede visualizarse gráficamente.

Escalabilidad: Análisis distribuido

CodeSonar permite el análisis de repositorios de código fuente muy grandes a un nivel muy alto de profundidad de análisis mediante la capacidad de distribuir el análisis entre múltiples procesos corriendo en distintos servidores.

CodeSonar maneja un proceso Hub primario para análisis y visualización web y, opcionalmente, varios procesos Hub satélites. Los procesos primarios y secundarios comparten la misma base de datos.

Integración DevSecOpcs

CodeSonar se integra con distintos entornos de integración continua: Jenkings, GitLab, GitHub, etc.
El desarrollador puede visualizar y corregir problemas de seguridad dentro del entorno CI/CD y acceder a información más detallada en el Hub con un simple clic de ratón. En caso de detección de errores se pueden abrir defectos en herramientas especializadas como Jira.  El jefe de proyecto o responsables de calidad puede comprobar el estado de seguridad utilizando los informes incluidos dentro del entorno CI/CD. La carga de análisis se puede distribuir entre múltiples procesos corriendo en distintos servidores.
CodeSonar maneja un proceso Hub primario para análisis y visualización web y, opcionalmente, varios procesos Hub satélites. Los procesos primarios y secundarios comparten la misma base de datos.

Integración con otras herramientas

CodeSonar se integra con entornos de desarrollo nativos como MS Visual Studio o MS Visual Studio Code y con entornos de desarrollo cruzados basados en Eclipse.

CodeSonar permite usar diferentes compiladores cruzados para arquitecturas PowerPC y ARM. Además, proporciona un asistente gráfico para definir los distintos parámetros del análisis y capturar toda la información necesaria para la construcción del ejecutable usando el método de construcción de cada fabricante.
Una vez capturada la información del compilador y linker, opciones de compilación, directorios include y macros del pre-procesador, CodeSonar es capaz de analizar el código fuente utilizando toda esa información.

Compiladores soportados por CodeSonar

  • ARM Real View & Clang

  • Borland

  • Clang

  • CodeVision

  • Cosmic

  • CodeWarrior

  • Green Hills C/C++

  • GNU C/C++

  • Keil

  • Hi-Tech

  • IAR

  • Intel

  • Microsoft

  • MPLAB

  • QNX

  • Renesas

  • SHARC, Blackfin

  • Tasking

  • Texas Instruments

  • Wind River

CodeSonar para Java y C#

En el caso de Java y C#, las aplicaciones desarrolladas tienen requisitos de seguridad específicos a la plataforma, al sistema operativo, la base de datos y al middleware de comunicaciones y objectos distribuidos.

Detección de errores de seguridad

  • Injections

  • Cookies

  • Passwords

  • LDAP

  • Errores criptográficos

  • Referencia a entidades externas

  • y muchos otros más

Platformas C# soportadas

  • MVC

  • Unity

  • Web Forms

  • Windows Forms

Platformas Java soportadas

  • Apache-CXF

  • AspectJ

  • EJB

  • JAX-RS

  • JAX-WS

  • JPA

  • JSF

  • Jersey

  • RESTeasy

  • RESTlet

  • Servlet

  • Spring

  • Android

Suscríbete a nuestra newsletter