Configuración de exploraciones GoSec

Utilice gosec para inspeccionar el código fuente de Golang en sus repositorios escaneados.

Parámetros necesarios

La interconexión necesita el parámetro de la Tabla 1 para ejecutar la exploración de Gosec. Para obtener una lista completa de los parámetros de interconexión, consulte Parámetros de interconexión.

parámetros de exploración gosec
Nombre Tipo Descripción Obligatorio u opcional
opt-in-gosec text Para activar el escaneo gosec, establezca la propiedad a cualquier valor no vacío. Para desactivar la exploración, configúrela con un valor vacío o elimine la propiedad por completo. (Por defecto está vacío) Obligatorio

Habilitación de la exploración de gosec para repositorios Git privados

Si el proyecto requiere dependencias que se encuentran en un repositorio Git privado y, por lo tanto, necesita autenticación basada en SSH, puede habilitar la interconexión para recuperar las dependencias proporcionando parámetros opcionales. Para obtener más información, consulte Habilitar descarga de dependencias para repositorios privados.

Si se debe especificar un proxy para recuperar relaciones, se puede especificar su URL junto con las credenciales (nombre de usuario y token) utilizando parámetros de canalización. Para obtener más información, consulte Habilitar GOPROXY.

Habilitar descarga de dependencias para repositorios privados

La descarga de dependencias para repositorios se puede habilitar proporcionando todos los parámetros de interconexión siguientes.

Parámetros de interconexión
Nombre Tipo Descripción Obligatorio u opcional
gosec-private-repository-url texto (obsoleto) La base de su repositorio privado URL. opcional
gosec-private-repository-host text Su host de repositorio privado. opcional
gosec-private-repository-ssh-key secret La clave SSH para el repositorio privado opcional
gosec-private-repository-user text Usuario para el repositorio privado con acceso https (por defecto x-oauth-basic) opcional
gosec-private-repository-token secret El token utilizado para el acceso https al repositorio privado (por defecto es el token configurado para la primera integración git en la cadena de herramientas cuyo repositorio URL está alojado en gosec-private-repository-host's value) opcional

Habilitar GOPROXY

Si se debe especificar GOPROXY, se deben proporcionar todos los parámetros siguientes.

Parámetros GOPROXY
Nombre Tipo Descripción Obligatorio u opcional
gosec-proxy-virtual-repository-user text El usuario de repositorio virtual para el proxy gosec opcional
gosec-proxy-virtual-repository-token secret Señal de repositorio virtual para proxy gosec opcional
gosec-proxy-virtual-repository-url text El URL de repositorio virtual para el proxy gosec opcional

Parámetros opcionales

El parámetro gosec-scan-image se puede utilizar para especificar una imagen gosec diferente para utilizar, como una imagen personalizada o una versión específica de la imagen gosec oficial.

El uso de la bandera gosec-additional-flags se muestra en la sección de ejemplos

gosec parámetros opcionales
Nombre de parámetro Valor predeterminado Descripción
gosec-additional-flags text Distintivos adicionales que se añadirán al inicio del mandato gosec.
gosec-scan-image text Especifica una imagen gosec alternativa, incluyendo imágenes personalizadas o versiones específicas de la imagen oficial.
gosec-repo-path-$repo_owner-$repo_name text Ruta del subdirectorio dentro del repositorio donde se encuentra la raíz del módulo Go. Se utiliza para cada repositorio cuando go.mod no está en la raíz del repositorio.

Ejemplos

Defina el valor de gosec-additional-flags como -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true y el mandato gosec ejecutado se actualiza como:

./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...

Para escanear un módulo Go ubicado en un subdirectorio, configure el parámetro gosec-repo-path-$repo_owner-$repo_name. Por ejemplo, si el propietario de su repositorio es myorg, el nombre del repositorio es myrepo, y el módulo Go está en el directorio cmd/myapp, defina el parámetro como:

  • Nombre del parámetro:gosec-repo-path-myorg-myrepo
  • Valor del parámetro: cmd/myapp

Esto escaneará el código Go comenzando desde la ruta cmd/myapp en lugar de la raíz del repositorio.

Utilización de su propio archivo de configuración

Si desea modificar la configuración predeterminada, cree un archivo config.json en el repositorio de destino. Para obtener más información sobre los parámetros de análisis en el archivo de configuración, consulte Configuración de gosec.

Utilización de otra implementación de exploración estática

Si desea utilizar su propia implementación de exploración estática, modifique el archivo .pipeline-config.yaml y añada su propio script personalizado a la etapa static-scan. Para obtener más información, consulte Scripts personalizados.