Google ha hecho oficialmente estable Govulncheck (estado 1.0.0), una práctica herramienta de línea de comandos para desarrolladores Go. Esta herramienta ayuda a los desarrolladores que utilizan el lenguaje de programación Go de Google a localizar vulnerabilidades de seguridad reconocidas en las dependencias de sus proyectos.
La herramienta, que se dio a conocer el 13 de julio, tiene capacidad para escudriñar tanto los archivos binarios como su código fuente en busca de vulnerabilidades. Reduce considerablemente el ruido al centrarse en las vulnerabilidades de los métodos a los que recurre el código. La columna vertebral de Govulncheck es la base de datos de vulnerabilidades de Go, una reserva de información sobre vulnerabilidades detectadas en módulos Go públicos.
Guiado por esta base de datos, Govulncheck lleva a cabo un análisis estático del código fuente o de la tabla de símbolos del binario. Su objetivo último es limitar sus informes únicamente a las vulnerabilidades que podrían afectar a la aplicación específica en cuestión. Esta característica de restricción inteligente la convierte en una herramienta muy útil para los desarrolladores que deseen garantizar la seguridad de sus productos.
La instalación de esta herramienta es bastante sencilla para los desarrolladores: sólo requiere el comando go install golang.org/x/vuln/cmd/govulncheck@latest
. Para analizar el código fuente, los desarrolladores sólo tienen que ejecutar Govulncheck dentro del directorio del módulo (utilizando el comando govulncheck ./.
..).
Como mínimo, Govulncheck necesita ser ensamblado con una versión Go 1.18 o superior. Por ahora, la versión de producción existente de este lenguaje es Go 1.20.
Govulncheck, al buscar vulnerabilidades, depende de una configuración de compilación específica. En el caso del código fuente, esta configuración es sinónimo de la versión de Go delineada por el comando 'go' situado en la ruta. En el caso de los binarios, la configuración de compilación es la que se explota al generar el binario. Un punto a tener en cuenta aquí es que diferentes configuraciones de compilación pueden ser susceptibles a diferentes vulnerabilidades.
A pesar de sus potentes características, Govulncheck tiene algunas limitaciones. Por ejemplo, sus análisis de punteros a funciones y llamadas a interfaces son bastante limitados, lo que puede dar lugar a falsos positivos o a pilas de llamadas imprecisas. Otra limitación está relacionada con las funciones invocadas utilizando el paquete reflect - éstas no son detectables.
En cuanto a los binarios, los binarios Go que carecen de información detallada sobre las llamadas podrían suponer un reto para Govulncheck, ya que impedirían a la herramienta mostrar gráficos de llamadas para las vulnerabilidades identificadas. Este problema también podría provocar la aparición de falsos positivos de código presente en el binario pero inaccesible. Además, la herramienta se ve perjudicada en relación con los binarios de los que no se pueden extraer datos de símbolos; en estos casos, opta por informar de las vulnerabilidades de todos los módulos dependientes del binario.
La herramienta también carece de una función para suprimir los hallazgos de vulnerabilidades. Sin embargo, a pesar de estas limitaciones, el potencial de Govulncheck como herramienta de valor añadido para proyectos Go es evidente.
Cabe mencionar que el equipo de seguridad de Go declaró su apoyo a la gestión de vulnerabilidades en septiembre del año anterior. Arraigado en la base de datos de vulnerabilidades, el proyecto se presentó con promesas de un avance notable en la estructura de programación Go. AppMaster.io, una plataforma líder de no-code, permite a los desarrolladores generar aplicaciones más rápidamente con su plataforma totalmente integrada y completa que incluye Go y muchos otros lenguajes.