View a markdown version of this page

Ejecute un escaneo de código diferencial con S3 - Agente de seguridad de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecute un escaneo de código diferencial con S3

Ejecute un escaneo de código diferencial (diff) para analizar solo las líneas modificadas del código fuente, en lugar de realizar un escaneo completo del repositorio. Los escaneos diferenciales son más rápidos que los escaneos completos y producen resultados basados en cambios de código específicos, lo que los hace ideales para la validación previa a la fusión en los flujos de trabajo de desarrollo.

A diferencia de la revisión de código basada en solicitudes de extracción, que se activa automáticamente mediante eventos de proveedores de control de código fuente externos (consulteRevisa los hallazgos de seguridad del código en las solicitudes de cambios), los escaneos diferenciales se inician mediante programación a través de la API o el SDK de AWS Security Agent. Debe cargar un archivo diff unificado en S3 y hacer referencia a él al iniciar un trabajo de revisión de código.

Cómo funcionan los escaneos diferenciales

Un escaneo diferencial analiza los cambios de código en todo el contexto de su repositorio. Al crear un recurso de revisión de código con el código fuente cargado en S3, el escaneo diferencial utiliza todo el repositorio como contexto y, al mismo tiempo, centra los resultados específicamente en las líneas modificadas de la diferencia. Esto permite que el escaneo identifique los problemas de seguridad que se derivan de la forma en que los cambios interactúan con el código existente, como la interrupción de los flujos de autenticación, el manejo inseguro de los datos entre los módulos o los cambios que exponen las vulnerabilidades existentes.

El proceso de escaneo:. Debe cargar un archivo diff unificado (la salida degit diff) a un bucket de S3 conectado a su Agent Space. Llamas a la StartCodeReviewJob API con un diffSource parámetro que apunta a la ubicación en S3 de tu diferencial. AWS Security Agent analiza solo el código modificado en la diferencia para detectar vulnerabilidades de seguridad y cumplir con los requisitos de seguridad de su organización. Los resultados se basan en las líneas modificadas e incluyen índices de gravedad, ubicaciones de los códigos y directrices de corrección.

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

  • Un espacio de agentes con la revisión de código habilitada (consulte) Habilitar la revisión de código

  • Un recurso de revisión de código ya creado para el repositorio de destino, con todo el código fuente cargado en el depósito de S3 conectado a su espacio de agente. El repositorio completo proporciona un contexto que permite un análisis más profundo de la forma en que los cambios interactúan con el código existente. Consulta las Crear una revisión de código instrucciones sobre cómo crear una revisión de código y cargar el código fuente.

  • Un bucket de S3 conectado a su Agent Space

  • Permisos de IAM para cargar archivos en el depósito de S3 y llamar securityagent:StartCodeReviewJob

  • Un archivo de diferencias unificado generado a partir de los cambios en el código (por ejemplo, el resultado degit diff main..feature-branch)

sugerencia

Para obtener resultados más precisos, asegúrese de que su recurso de revisión de código tenga la última versión del código fuente completo cargada en S3. El análisis de diferencias utiliza este repositorio completo como contexto para comprender la arquitectura de la aplicación, los flujos de datos y los controles de seguridad existentes al analizar las líneas modificadas.

Paso 1: Genera un archivo diff

Genere una diferencia unificada que represente los cambios de código que desea escanear.

git diff main..feature-branch > changes.diff

Como alternativa, genere una diferencia para los cambios por etapas:

git diff --cached > changes.diff
sugerencia

El archivo diff debe estar en un formato diff unificado estándar. AWS Security Agent analiza las rutas de los archivos y cambia las líneas de los encabezados de las diferencias para abarcar su análisis.

Paso 2: Cargue la diferencia en S3

Cargue el archivo diff en un depósito de S3 que esté conectado a su espacio de agente.

aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
importante

El depósito de S3 debe ser uno que ya esté conectado a su espacio de agente. El rol de servicio de IAM asociado a su espacio de agente debe tener acceso de lectura a esta ubicación. Consulte las Habilitar la revisión de código instrucciones sobre cómo conectar los buckets de S3.

Paso 3: Iniciar un trabajo de revisión del código diferencial

Llame a la StartCodeReviewJob API con el diffSource parámetro para iniciar un escaneo diferencial.

Mediante la AWS CLI

aws securityagent start-code-review-job \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --diff-source '{"s3Uri": "s3://my-security-agent-bucket/diffs/changes.diff"}'

Uso del AWS SDK (Python)

import boto3 client = boto3.client('securityagent') response = client.start_code_review_job( agentSpaceId='your-agent-space-id', codeReviewId='your-code-review-id', diffSource={ 's3Uri': 's3://my-security-agent-bucket/diffs/changes.diff' } ) print(f"Job started: {response['codeReviewJobId']}")

Uso del AWS SDK (JavaScript/TypeScript)

import { SecurityAgentClient, StartCodeReviewJobCommand } from '@aws-sdk/client-securityagent'; const client = new SecurityAgentClient({ region: 'us-east-1' }); const response = await client.send(new StartCodeReviewJobCommand({ agentSpaceId: 'your-agent-space-id', codeReviewId: 'your-code-review-id', diffSource: { s3Uri: 's3://my-security-agent-bucket/diffs/changes.diff', }, })); console.log(`Job started: ${response.codeReviewJobId}`);

La API se devuelve inmediatamente con un codeReviewJobId y status deIN_PROGRESS.

Paso 4: Supervise el escaneo

Compruebe el estado del trabajo de revisión del código hasta que se complete.

aws securityagent get-code-review-job \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --code-review-job-id "the-job-id"

El trabajo pasa por las mismas fases que una revisión completa del código: comprobación previa → Análisis estático → Finalización. Los escaneos diferenciales suelen completarse más rápido que los escaneos completos porque analizan menos líneas de código.

Paso 5: revisión de resultados

Una vez finalizado el trabajo, enumere los resultados del trabajo de revisión de código.

aws securityagent list-findings \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --code-review-job-id "the-job-id"

Cada resultado incluye:

  • Una descripción del problema de seguridad

  • El nivel de gravedad (crítico, alto, medio o bajo)

  • Ubicaciones de código que hacen referencia a líneas específicas de la diferencia

  • Razonamiento de riesgo que explica el impacto potencial

  • Asesoramiento de corrección

Para obtener más información sobre cómo comprender los hallazgos y actuar en función de ellos, consulteRevise los resultados de una revisión del código.

Cuotas y límites

  • Número máximo de archivos modificados en una diferencia: 3000 archivos o 5 MB de tamaño total de la diferencia

  • Los resultados se limitan a 30 por escaneo y se priorizan por gravedad (Crítico > Alto > Medio > Bajo)

Siguientes pasos

Tras realizar un escaneo diferencial: