Dado que Code Risk Analyzer (CRA) va a dejar de estar disponible, los análisis de Syft y Grype son alternativas que ofrecen la mayoría de las funciones de CRA. Consulta la sección « Desactivar los análisis de Code Risk Analyzer » para desactivar las funciones de CRA.
Configuración de exploraciones de IBM Cloud Code Risk Analyzer
Puede utilizar IBM Cloud Code Risk Analyzer para analizar su código en busca de vulnerabilidades y validar el cumplimiento de las normas especificadas.
Cuando Code Risk Analyzer evalúa su aplicación, se genera una lista de materiales de software (SBOM) que enumera las dependencias y la información de licencia disponible de todos los paquetes de terceros. Esto se puede generar en formato cycloneDX-specific si es necesario. Los paquetes listados en el archivo SBOM se exploran en busca de vulnerabilidades. Este archivo puede generarse en formato cycloneDX-specific. Alternativamente, puede habilitar la auto-remediación de vulnerabilidades
que se encuentran para aplicaciones escritas en Node.js, Maven, o Gradle.
- Todos los archivos de Kubernetes se analizan en busca de conformidad.
- Todos los planes de Terraform se analizan para su conformidad.
Code Risk Analyzer está disponible en todas las regiones de IBM Cloud en las que se admiten las cadenas de herramientas. Para obtener más información, consulte la documentación del plugin.
Configuración de exploraciones
Para generar el archivo SBOM, una exploración de Code Risk Analyzer accede a los artefactos de la vía de acceso de directorio especificada y realiza un descubrimiento profundo para identificar todas las dependencias, incluidas las dependencias de rastreo. No hay variables de entorno de interconexión específicas que sean necesarias para generar el archivo SBOM y descubrir vulnerabilidades, pero si la vía de acceso contiene un Dockerfile, se extrae la imagen base y se crean imágenes para cada etapa de compilación especificada en el archivo.
Si el Dockerfile requiere ARGS, establezca un ARG individual como una variable de entorno en un script personalizado y proporcione la ubicación del script personalizado como el conducto que se puede emparejar.
| Variables de entorno | Descripción | Obligatorio u opcional | Objetivo |
|---|---|---|---|
cra-custom-script-path Ruta al script en su repositorio. |
Opcional | Establece las variables de entorno que necesita el script Docker. |
Para obtener más información, consulte scripts personalizados
De forma predeterminada, los archivos de Terraform no se analizan. Para explorar el archivo de Terraform, debe establecer las siguientes variables de entorno de interconexión.
| Variables de entorno | Descripción | Necesario u opcional | Finalidad |
|---|---|---|---|
opt-in-tfsec |
True o False. Establecido en el valor false de forma predeterminada. | Opcional | Explora los archivos de Terraform en busca de seguridad. |
opt-in-cra-tf-validate |
True o False. Establecido en el valor false de forma predeterminada. | Opcional | Valida los archivos de Terraform. |
La exploración de Code Risk Analyzer utiliza la clave de API proporcionada para iniciar sesión en la CLI de IBMCloud y desencadena una compilación de Docker. La sesión de CLI de IBM Cloud existente se sigue utilizando para el resto de este paso
de CRA. Sin embargo, la sesión de CLI de IBM Cloud caduca después de 20 minutos para un inicio de sesión de clave de API estándar. Si el proceso de compilación tarda más de 20 minutos, el paso CRA fallará con un mensaje de error 401 puesto
que la sesión ha caducado. Se ha introducido una variable de entorno ibmcloud-enable-session-keep-alive para mantener activa la sesión de CLI de IBMCloud para operaciones tan largas.
| Variables de entorno | Descripción | Tipo | Necesario u opcional | Finalidad |
|---|---|---|---|---|
ibmcloud-enable-session-keep-alive |
0 ó 1. Valor predeterminado: 0. | seleccionar | Opcional | Mantenga activa la sesión de CLI de IBMCloud para trabajos de larga ejecución en la exploración de Code Risk Analyzer. |
De forma predeterminada, el mandato deployment-analyze de Code Risk Analyzer ejecuta comprobaciones de configuración en los manifiestos de despliegue de Kubernetes. El mandato
deployment-analyze de Code Risk Analyzer se ejecuta con la opción --strict establecida. Para ignorar archivos durante la exploración de análisis de despliegue de Code Risk Analyzer, se debe utilizar la siguiente variable de entorno.
| Variables de entorno | Descripción | Necesario u opcional | Finalidad |
|---|---|---|---|
cra-cis-fileignore-path |
La vía de acceso del archivo .fileignore en el repositorio. | Opcional | Especifique la vía de acceso del archivo .fileignore que contiene la información de los archivos que se deben ignorar durante la exploración de análisis de despliegue de Code Risk Analyzer. |
Omisión de vulnerabilidades para desplegar la app
El analizador de riesgos de código está diseñado para encontrar paquetes vulnerables antes de que lo haga una junta consultiva. En circunstancias excepcionales, es posible que tenga que desplegar la aplicación incluso si se han detectado paquetes vulnerables y todavía no se han arreglado. Siempre que sea posible, debe actualizar los paquetes o eliminarlos antes de volver a desplegar el código.
Para ignorar archivos específicos y completar el envío a producción, puede crear un archivo denominado .cra/.cveignore en la raíz del repositorio explorado con el esquema siguiente:
[
{
"cve": "string",
"alwaysOmit": "bool",
"untilRemediationAvailable": "bool",
"expiration": "string"
},
]
El siguiente fragmento de código muestra un archivo .cveignore de ejemplo:
[
{
"cve": "CVE-2021-27290",
"alwaysOmit": true
},
{
"cve": "CVE-2020-8244",
"untilRemediationAvailable": true,
},
{
"cve": "CLAIR-JAVA-ORGAPACHEHTTPCOMPONENTS-31517",
"expiration": "2022-02-10T22:08:41+04:00",
"comment": "Additional security measures are in place"
}
]
Este archivo solía conocerse como .craveomit. El formato de archivo original ha quedado en desuso y se ha sustituido por .cra/.cveignore.
Actualice el código para utilizar el archivo más reciente.
Puede obtener más información sobre la documentación del plugin de Code Risk Analyzer o también puede consultar la documentación de CRA en desuso.
Corrección automática de vulnerabilidades
Puede utilizar el Analizador de riesgo de código como parte de la interconexión de conformidad continua (CC) para no sólo encontrar sino remediar automáticamente las vulnerabilidades. Code Risk Analyzer funciona como parte del paso compliance-check de la interconexión. De forma predeterminada, la corrección automática está desactivada.
La remediación automática sólo está disponible para la interconexión CC.
Cuando se activa la corrección automática, Code Risk Analyzer intenta actualizar un paquete vulnerable a una versión no vunlnerable creando una solicitud de extracción con los arreglos identificados en la rama predeterminada del repositorio. De forma predeterminada, Code Risk Analyzer actualizará las versiones menores y de parches para el paquete vulnerable principal, así como los paquetes dependientes, pero no actualiza la versión principal de un paquete. Si la solicitud de extracción es aceptable, puede aprobarla y fusionarla manualmente. Cada vez que se ejecuta la interconexión, se genera una nueva solicitud de extracción, por lo que debe asegurarse de revisar y fusionar a medida que se abren para evitar duplicaciones.
La corrección automática está disponible para los repositorios Enterprise GitHub y GitLab y puede modificar los archivos especificados en la tabla siguiente.
| Ecosystem | Archivos modificables |
|---|---|
| Nodejs | package.json y package-lock.json |
| Gradle | build.gradle, gradle.lockfile y buildscript-gradle.lockfile |
| Maven | pom.xml |
Para iniciar automáticamente la corrección de vulnerabilidades, establezca las siguientes variables de entorno opcionales para la interconexión.
| Variable | Descripción | Valores predeterminados |
|---|---|---|
opt-in-cra-auto-remediation |
Habilita la remediación automática para el conducto. | falsePara empezar a remediar, establezca esta variable en true. |
opt-in-cra-auto-remediation-force |
Fuerza una actualización de paquete principal como parte de la solicitud de extracción que se abre. | falsePara forzar una actualización de paquete principal, establezca esta variable en true. |
opt-in-cra-auto-remediation-enabled-repos |
Especifica los repositorios específicos en los que desea habilitar la corrección automática. | Habilitado para todos los repositorios que se devuelven cuando se llama a list_repos. Para especificar repositorios específicos, proporcione una lista separada por comas de nombres de repositorio. |
Desactivar los análisis de Code Risk Analyzer
Configura las siguientes variables de entorno para desactivar los análisis de Code Risk Analyzer.
| Variable | Tipo | Necesario u opcional | valor de exclusión voluntaria | Valor predeterminado | Alternativo |
|---|---|---|---|---|---|
cra-bom-generate |
Enumeración | Opcional | 0 |
1 |
Propósito |
cra-vulnerability-scan |
Enumeración | Opcional | 0 |
1 |
Grype |
cra-deploy-analysis |
Enumeración | Opcional | 0 |
1 |
Checkov |
opt-in-cra-tf-validate |
Enumeración | Opcional | 0 |
1 |
Checkov |
El análisis de vulnerabilidades y el análisis de implementación están configurados de forma predeterminada como comprobaciones obligatorias para la protección de las sucursales. Si deseas desactivar cualquiera de estos análisis, asegúrate de personalizar las comprobaciones de cumplimiento y de configurar las reglas de protección de las ramas.