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 y 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.
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 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#
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