¿Qué es lo que más te gusta de Coverity?
Utilizamos la herramienta de Análisis Estático Coverity para escaneos de seguridad del código de servidor en C/C++.
Coverity tiene una tasa de detección más alta ya que dependemos en gran medida de este escaneo de código para nuestro código de aplicación.
Hemos integrado sin problemas esta herramienta SAST (Coverity) en nuestro Pipeline de CI/CD y las vulnerabilidades se notificaban al desarrollador correspondiente por correo.
Proporciona un mecanismo para auditar los hallazgos y marcar falsos positivos de manera eficiente.
El soporte para varios idiomas es otro factor que destaca bien en comparación con otras herramientas.
El tiempo que toma escanear grandes líneas de código es significativamente más rápido en comparación con otras herramientas. Reseña recopilada por y alojada en G2.com.
¿Qué es lo que no te gusta de Coverity?
Sin embargo, hay algunos puntos de mejora que pensé que debería destacar para hacer esta herramienta aún mejor para los usuarios finales.
strzcpy vs. NULL_STRING
Coverity no reconoce que strzcpy añade un terminador x00.
ab_pfetch*
En Windows actualmente tenemos muchos falsos positivos de OVERRUN.
bsearch en tabla de ancho fijo vs. Literal
El modelo de Coverity para bsearch asume que bsearch accede a la clave en todo el ancho de la clave. Si a bsearch se le da una tabla de tamaño fijo (máximo), y se usa strcmp como función de comparación, entonces en realidad cuando bsearch se llama con un literal pequeño como clave, todo está bien. Sin embargo, Coverity piensa que bsearch leerá más allá del final del literal, aunque strcmp no lo hará.
NO_EFFECT en var_arg
En Windows actualmente tenemos una advertencia de NO_EFFECT en todos los usos de va_args
TAINTED_SCALAR
Coverity advierte sobre el uso de datos contaminados, datos que podrían ser controlados por un atacante. Esto puede llevar a corrupción de datos, inyección de código,...
Cuando es posible, Coverity informa de defectos adicionales describiendo el uso peligroso de los datos contaminados INTEGER_OVERFLOW.
RW.LITERAL_OPERATOR_NOT_FOUND en printf con TEL_Format
Al usar el formato definido por TEL como TEL_Flpu, TEL_Fsu, TEL_Fpid,... Coverity a veces requiere un espacio antes de la 'T' de TEL_Fxxx.
TAINTED_STRING
Coverity advierte sobre el uso de datos contaminados, datos que podrían ser controlados por un atacante. Esto puede llevar a corrupción de datos, inyección de código, inyección SQL, recorrido de directorios,
PW.PRINTF_ARG_MISMATCH - * precisión o * tamaño vs. parámetros size_t o ptrdiff_t
Compilaciones o escaneos de 64 bits - El estándar C establece que la * precisión o tamaño son de tipo int. Esto generalmente son 4 bytes. En compilaciones de 64 bits size_t y ptrdiff_t son 8 bytes.
Si hubiera enviado una corrección ayer, el Coverity Connect de hoy seguiría informando del defecto. Reseña recopilada por y alojada en G2.com.