Este producto no es compatible con el sitio Datadog seleccionado. ().

App and API Protection se encuentra en versión preliminar en el sitio de Datadog Government US1-FED.

AAP para Gateway API es experimental. Siga las instrucciones a continuación para probarlo.

Descripción general

El Request Mirror de Datadog AppSec Gateway API mejora la seguridad de las aplicaciones al aprovechar la funcionalidad RequestMirror en las API de Gateway de Kubernetes para duplicar el tráfico a un punto de conexión de Datadog App & API Protection. Esto permite la detección y el análisis en tiempo real de posibles ataques a nivel de aplicación, el descubrimiento de puntos de conexión de API y más, todo sin afectar el flujo de solicitudes principal.

Requisitos previos

Habilitación de la detección de amenazas

Instalación

  1. Implemente el Datadog Agent en su clúster de Kubernetes siguiendo la guía de instalación de Kubernetes.

  2. Configure el Datadog Agent para admitir cargas útiles de AppSec entrantes utilizando APM como transporte.

  3. Implemente el AppSec Gateway API Request Mirror en el espacio de nombres de su elección (por ejemplo, datadog) junto con su servicio:

    kubectl apply -f https://raw.githubusercontent.com/DataDog/dd-trace-go/refs/heads/main/contrib/k8s.io/gateway-api/cmd/request-mirror/deployment.yml
    
  4. Verifique la implementación:

    kubectl get pods -l app=request-mirror
    
  5. Aplique parches a sus recursos de Gateway para permitir el acceso al espacio de nombres con la implementación:

    git clone https://github.com/DataDog/dd-trace-go.git
    cd dd-trace-go
    go run ./contrib/k8s.io/gateway-api/cmd/patch-gateways
    

    Utilice la marca -help para ver las opciones de personalización del comportamiento de aplicación de parches.

  6. Aplique parches a sus recursos HTTPRoute para redirigir el tráfico al servicio:

    go run ./contrib/k8s.io/gateway-api/cmd/patch-httproutes
    

    Este comando agrega un filtro RequestMirror a todos los HTTPRoute recursos en todos los espacios de nombres. Utilice la marca -help para las opciones de configuración.

    Nota: Ejecutar este comando regularmente asegura que cualquier recurso HTTPRoute recién creado incluya automáticamente el filtro RequestMirror. Considere agregar el parche resultante a su pipeline de CI/CD donde HTTPRoute se modifiquen los recursos.

    After this configuration is complete, the library collects security data from your application and sends it to the Agent. The Agent sends the data to Datadog, where out-of-the-box detection rules flag attacker techniques and potential misconfigurations so you can take steps to remediate.

  7. To see App and API Protection threat detection in action, send known attack patterns to your application. For example, trigger the Security Scanner Detected rule by running a file that contains the following curl script:

    for ((i=1;i<=250;i++)); 
    do
    # Target existing service's routes
    curl https://your-application-url/existing-route -A dd-test-scanner-log;
    # Target non existing service's routes
    curl https://your-application-url/non-existing-route -A dd-test-scanner-log;
    done

    Note: The dd-test-scanner-log value is supported in the most recent releases.

    A few minutes after you enable your application and send known attack patterns to it, threat information appears in the Application Signals Explorer and vulnerability information appears in the Vulnerabilities explorer.

Configuración

Variables de entorno

La implementación de AppSec Gateway API Request Mirror se puede configurar mediante las siguientes variables de entorno:

Variable de entornoValor predeterminadoDescripción
DD_REQUEST_MIRROR_LISTEN_ADDR:8080Dirección y puerto donde el servicio de duplicación de solicitudes escucha las solicitudes duplicadas entrantes
DD_REQUEST_MIRROR_HEALTHCHECK_ADDR:8081Dirección y puerto donde se sirve el punto de conexión de verificación de estado

Configure el Datadog Agent para recibir trazas de la integración mediante las siguientes variables de entorno:

Variable de entornoValor predeterminadoDescripción
DD_AGENT_HOSTlocalhostNombre de host donde se ejecuta su Datadog Agent
DD_TRACE_AGENT_PORT8126Puerto del Datadog Agent para la recopilación de trazas

Ejemplo de implementación

La implementación predeterminada crea un servicio que escucha en el puerto 8080 para las solicitudes duplicadas y expone un punto de conexión de verificación de estado en el puerto 8081:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: request-mirror
  labels:
    app.kubernetes.io/component: request-mirror
    app.kubernetes.io/name: datadog
spec:
  strategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: request-mirror
  template:
    metadata:
      labels:
        app: request-mirror
    spec:
      containers:
        - name: request-mirror
          image: ghcr.io/datadog/dd-trace-go/request-mirror:latest
          ports:
            - containerPort: 8080
              name: http
          livenessProbe:
            httpGet:
              path: /
              port: 8081
          readinessProbe:
            httpGet:
              path: /
              port: 8081
          env:
            - name: DD_AGENT_HOST
              value: "datadog-agent"  # Adjust to your Agent service name
---
apiVersion: v1
kind: Service
metadata:
  name: request-mirror
spec:
  selector:
    app: request-mirror
  ports:
    - name: http
      port: 8080
      targetPort: 8080

Integración de Datadog Go Tracer y Gateway API

La integración de AAP Gateway API se basa en el Datadog Go Tracer. Sigue el mismo proceso de lanzamiento que el rastreador, y sus imágenes de Docker están etiquetadas con la versión correspondiente del rastreador.

La integración de Gateway API utiliza el Datadog Go Tracer y hereda todas las variables de entorno del rastreador. Puede encontrar más información en Configuración del Go SDK y AAP Library Configuration.

Habilitación del rastreo de APM

De forma predeterminada, las trazas de reflejo de solicitudes no habilitarán el producto APM de Datadog. Si desea utilizar App and API Protection sin la funcionalidad de rastreo de APM, este es el comportamiento predeterminado.

Para habilitar el rastreo de APM, establezca la variable de entorno DD_APM_TRACING_ENABLED=true en la implementación de reflejos de solicitudes.

Si desea deshabilitar explícitamente el rastreo de APM mientras utiliza App and API Protection:

  1. Configure su implementación con la variable de entorno DD_APM_TRACING_ENABLED=false además de la variable de entorno DD_APPSEC_ENABLED=true.
  2. Esta configuración reducirá la cantidad de datos de APM enviados a Datadog al mínimo requerido por los productos App and API Protection.

Para obtener más detalles, consulte Standalone App and API Protection.

Limitaciones

La integración de Gateway API tiene las siguientes limitaciones:

  • No puede acceder a las respuestas HTTP
  • No se puede aplicar el bloqueo de solicitudes
  • Solo se admite json para analizar los cuerpos de las solicitudes HTTP.

Para un análisis más detallado y otras funciones de AAP, considere probar otras integraciones de AAP.

Lecturas adicionales