golang
Imagen original de ably.

Este es Govulncheck, el comprobador de vulnerabilidades de Go

Govulncheck es una utilidad de línea de comandos que utiliza la base de datos de vulnerabilidades de Go para identificar vulnerabilidades conocidas en el código fuente de Go y en los archivos binarios de Go.

Govulncheck, una herramienta de línea de comandos para ayudar a los usuarios del lenguaje de programación Go de Google a encontrar vulnerabilidades conocidas en las dependencias del proyecto, alcanzó el estado 1.0.0.

Presentado el 13 de julio, Govulncheck puede analizar tanto binarios como código fuente. Reduce el ruido al priorizar las vulnerabilidades en las funciones que llama el código.

Govulncheck funciona con la base de datos de vulnerabilidades de Go, que proporciona información sobre las vulnerabilidades conocidas en los módulos públicos de Go. Govulncheck utiliza el análisis estático del código fuente o la tabla de símbolos de un binario para limitar sus informes solo a las vulnerabilidades que podrían afectar a una aplicación en particular.

Cómo utilizarlo

Los desarrolladores pueden usar go install para instalar la herramienta. Además, los desarrolladores pueden analizar el código fuente ejecutando Govulncheck dentro de un directorio de módulos: govulncheck ./…

Así, Govulncheck debe construirse con Go 1.18 o una versión posterior. Go 1.20 es la versión de producción actual del lenguaje.

Principales limitaciones

La aplicación busca vulnerabilidades utilizando una configuración de compilación específica. Para el código fuente, la configuración es la versión Go especificada por el comando “ir” que se encuentra en la ruta. Para los binarios, la configuración de compilación es la que se usa para compilar el binario. Diferentes configuraciones de compilación pueden tener diferentes vulnerabilidades conocidas.

Así, Govulncheck tiene una serie de limitaciones:

  • Govulncheck analiza el puntero de función y las llamadas de interfaz de forma conservadora, lo que podría generar falsos positivos o pilas de llamadas inexactas.
  • Las llamadas a funciones realizadas mediante el paquete reflect no son visibles.
  • Debido a que los binarios de Go no tienen información detallada de las llamadas, Govulncheck no puede mostrar gráficos de llamadas para las vulnerabilidades detectadas. También puede informar falsos positivos para el código que está en el binario pero que no se puede alcanzar.
  • No hay soporte para silenciar los hallazgos de vulnerabilidad.
  • Para los binarios en los que no se puede extraer la información de los símbolos, Govulncheck informa sobre las vulnerabilidades de todos los módulos de los que depende el binario.
  • El equipo de seguridad de Go anunció inicialmente soporte para la gestión de vulnerabilidades en septiembre pasado, con el proyecto anclado en la base de datos de vulnerabilidades.