Pruebas de seguridad de aplicaciones (AST) con CheckMarx y AWS CodeBuild

Carlos A. Galvis
Pragma
Published in
7 min readApr 26, 2024

Checkmarx One es una plataforma utilizada para identificar, analizar, priorizar de forma inteligente y corregir problemas de exposición del software dentro de un entorno DevOps. Checkmarx permite una combinación de integraciones para la automatización necesaria en un entorno de desarrollo que avanza con rapidez, además de varias tecnologías para hacer posible el desarrollo, y seguridad para mejorar la posición general de seguridad de una organización.

CheckMarx se integra con su entorno DevOps , brindandonos la capacidad de analizar código fuente en bruto, donde podrá analizar su código desde las primeras etapas del ciclo de vida de desarrollo. Miremos como podemos hacerlo en AWS:

Requisitos previos:

  • Tener una cuenta de Checkmarx One.
  • Tener una cuenta de AWS.
  • Tener conocimiento en los servicios de AWS CodeCommit y CodeBuild.
  • Tener creado un reposoitorio en AWS CodeCommit.

Paso N° 1 : Authentication for Checkmarx One CLI and Plugins

Chekmark nos ofrece dos modos de autenticación para la integración con esta herramienta los cuales son los siguientes:

  • Autenticación por API Key para integraciones con Checkmarx:

Inicie sesión en Checkmarx One y haga clic en Configuración > Gestión de identidad y acceso en el panel Menú.

Se abre el portal IAM, luego en la navegación principal, haga clic en Claves API y luego haga clic en el botón Crear clave.

Se abre la ventana de configuración de la clave API.

Opcionalmente, puede ajustar la configuración de la siguiente manera:

  • Nota: agregue una nota descriptiva a la clave API.
  • Período de vencimiento: ajuste el período de tiempo hasta que caduque la clave. El valor puede ser de 30 a 365 días.
  • Correos electrónicos de notificación: ingrese los correos electrónicos de cada destinatario a quien le gustaría recibir notificaciones sobre el vencimiento de la clave. Después de ingresar cada correo electrónico, haga clic en Agregar. Por defecto se incluye el correo electrónico del usuario actual.

Haga clic en Crear y se crea la clave API y se abre una ventana que muestra la clave.

Copie la clave y guárdela en un lugar donde pueda recuperarla para usarla en el futuro.

(Una vez que cierre la ventana, ya no podrá acceder a esta clave API.)

  • Autenticación por cliente OAuth para integraciones con Checkmarx:

Inicie sesión en Checkmarx One y haga clic en Configuración > Gestión de identidad y acceso en el panel Menú.

En la consola de administración de acceso e identidad, haga clic en Clientes OAuth y luego haga clic en Crear cliente.

En el campo ID de cliente, ingrese un nombre descriptivo para Cliente y luego haga clic en Crear cliente.

Se muestra la pantalla Configuración del cliente.

  • Copie el ID del cliente para usarlo en la configuración del complemento.
  • Haga clic en el botón Regenerar para generar el Secreto,
  • En el cuadro de diálogo que se abre, copie el secreto para usarlo en la configuración del complemento y luego haga clic en Aceptar para cerrar el cuadro de diálogo.

Opcionalmente, puede ajustar la Configuración de la siguiente manera:

  • Nombre: especifique el nombre que se mostrará para este Cliente.
  • Otro: ingrese información adicional sobre este Cliente.
  • Descripción: ingrese una descripción de este Cliente.
  • Período de vencimiento: especifique el período de tiempo hasta que caduque la clave. El valor puede ser de 30 a 365 días.
  • Días antes de la notificación: especifique la cantidad de días antes de que caduque el Cliente en los que se comenzarán a enviar notificaciones. Las notificaciones se enviarán diariamente a partir del día siguiente.
  • Correos electrónicos de notificación: ingrese los correos electrónicos de cada destinatario a quien le gustaría recibir notificaciones sobre el vencimiento de la clave. Después de ingresar cada correo electrónico, haga clic en Agregar . Por defecto se incluye el correo electrónico del usuario actual.

En Asignación de roles > Roles de CxONE, busque ast-admin o ast-scanner y haga clic en Agregar en la fila correspondiente para agregar el rol al cliente.

Pase N° 2: Crear proyecto de compilación en CodeBuild

Puede crear el proyecto de CodeBuild de la siguiente forma:

  • Vaya a las herramientas para desarrolladores dentro de su cuenta de AWS.
  • Vaya a CodeBuild > Construir proyectos > Crear proyecto de compilación.
  • Complete los campos con las configuraciones necesarias.

Luego de creado el proyecto, cree las variables para los parámetros necesarios para conectarse a su cuenta Checkmarx One.

En su cuenta de AWS, vaya a Herramientas para desarrolladores > CodeBuild > Crear proyectos > {project_name} > Editar > Entorno.

Cree las variables de proyecto ingresando un nombre de variable y un valor, seleccionando el tipo para cada una de las variables descritas en la siguiente tabla y luego haciendo clic en Actualizar entorno.

Descripción de las variables utilizadas:

CX_PROJECT_NAME: Es el nombre del proyecto en Checkmarx One.

CX_BASE_URI: URL base del servidor Checkmarx One

CX_BASE_AUTH_URI: URL de autenticación de Checkmarx One:

CX_TENANT: Es el nombre de su cuenta de inquilino.

CX_CLIENT_ID y CX_CLIENT_SECRET: Usadas para autenticación OAuth (Método recomendado)

Estos valores se obtienen de la aplicación web Checkmarx One

CX_API_KEY: Esto se obtiene de la aplicación web Checkmarx One

CX_VERSION: La versión de la herramienta Checkmarx One CLI que está utilizando.

Paso N°3: Configurar archivo de compilación BuildSpec

  • Agregue el archivo buildspec.yml de uno de los ejemplos de integración que se proporcionan a continuación al repositorio de su proyecto.
  • Edite el comando CLI de Checkmarx One scan create en el archivo de especificaciones, especificando los parámetros de escaneo relevantes como se describe a continuación en Configuración de los ajustes de escaneo. Alternativamente, puede ejecutar otros comandos CLI.

Proporcionamos ejemplos que utilizan varios métodos para instalar Checkmarx One CLI.

Instalar la CLI de CheckMarx usando Homebrew:

Instalar la CLI de CheckMarx usando Wget y la versión Checkmarx One:

El siguiente fragmento muestra cómo puede ejecutar un escaneo de Checkmarx One en CodeBuild usando el cx scan create comando con los parámetros mínimos requeridos; -s (ubicación del código fuente), — project-name (nombre del proyecto Checkmarx One) y — branch (nombre de la rama del proyecto Checkmarx One), así como las variables del proyecto que configuró para conectarse a Checkmarx One.

Puede agregar desencadenadores para ejecutar CodeBuild, o puede ejecutar CodeBuild manualmente haciendo clic en Herramientas de desarrollador > CodeBuild > Construir proyectos > {project_name} > Iniciar compilación.

Paso N° 4: Validar resultado del escaneo

Luego de hacer la ejecución del proyecto de compilación, puede consultar los registros de CodeBuild para ver el resultado de la ejecución:

Al igual que con todos los análisis de Checkmarx One, puede ver los resultados del análisis en la aplicación web de Checkmarx One o mediante API.

Dentro del analisis de seguridad, Checkmarx One nos ofrece escaneo de código estatico (SAST), esacneo de dependencias (SCA), escaneo de infraestructura como código(IaC-Security), escaneo de Apis (Api-Security), entre otros, en donde Checkmarx permite ingresar a cada una de las vulnerabilidades, revisar al detalle el origin de dicha vulnerabilidad y ádemas esta herramienta nos da posibles acciones de remediación, dandonos la capacidad e actuar de una forma más rápida y eficiente.

En esta sección vimos como integrar CheckMarx One en el ciclo de desarrollo con AWS. Los invito a profundizar más sobre esta herramienta y sacarle todo el potencial que nos puede brindar.

Referencias:

checkmarx.com/resource/documents/en/34965–67042-checkmarx-one.html

docs.aws.amazon.com/es_es/codebuild/latest/userguide/welcome.html

--

--