Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

App and API Protection est en préversion sur le site Datadog Government US1-FED.

L'AAP pour Gateway API est expérimental. Veuillez suivre les instructions ci-dessous pour l'essayer.

Présentation

Le Datadog AppSec Gateway API Request Mirror améliore la sécurité des applications en tirant parti de la fonctionnalité RequestMirror dans les Kubernetes Gateway APIs pour dupliquer le trafic vers un endpoint Datadog App & API Protection. Cela permet la détection et l’analyse en temps réel des attaques potentielles au niveau de l’application, la découverte des endpoints d’API, et plus encore, le tout sans impacter le flux de requêtes principal.

Prérequis

Activation de la détection des menaces

Installation

  1. Déployez l’Agent Datadog dans votre cluster Kubernetes en suivant le guide d’installation Kubernetes.

  2. Configurez l’Agent Datadog pour prendre en charge les charges utiles AppSec entrantes en utilisant l’APM comme transport.

  3. Déployez l’AppSec Gateway API Request Mirror dans l’espace de nom de votre choix (par ex. datadog) ainsi que son service :

    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. Vérifiez le déploiement :

    kubectl get pods -l app=request-mirror
    
  5. Appliquez un correctif à vos ressources Gateway pour autoriser l’accès à l’espace de nom avec le déploiement :

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

    Utilisez l’indicateur -help pour voir les options de personnalisation du comportement de correction.

  6. Appliquez un correctif à vos ressources HTTPRoute pour rediriger le trafic vers le service :

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

    Cette commande ajoute un filtre RequestMirror à toutes les ressources HTTPRoute dans tous les espaces de nom. Utilisez l’indicateur -help pour les options de configuration.

    Remarque : L’exécution régulière de cette commande garantit que toutes les ressources HTTPRoute nouvellement créées incluent automatiquement le filtre RequestMirror. Envisagez d’ajouter le correctif résultant à votre pipeline CI/CD où les ressources HTTPRoute sont modifiées.

    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.

Configuration

Variables d’environnement

Le déploiement du Request Mirror de Gateway API peut être configuré à l’aide des variables d’environnement suivantes :

Variable d’environnementValeur par défautDescription
DD_REQUEST_MIRROR_LISTEN_ADDR:8080Adresse et port où le service de mise en miroir des requêtes écoute les requêtes mises en miroir entrantes
DD_REQUEST_MIRROR_HEALTHCHECK_ADDR:8081Adresse et port où le endpoint de vérification de l’état est servi

Configurez l’Agent Datadog pour recevoir les traces de l’intégration en utilisant les variables d’environnement suivantes :

Variable d’environnementValeur par défautDescription
DD_AGENT_HOSTlocalhostNom de host où votre Agent Datadog est en cours d’exécution
DD_TRACE_AGENT_PORT8126Port de l’Agent Datadog pour la collecte des traces

Exemple de déploiement

Le déploiement par défaut crée un service qui écoute sur le port 8080 pour les requêtes mises en miroir et expose un endpoint de vérification de l’état sur le port 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

Intégration Datadog Go Tracer et Gateway API

L'intégration AAP Gateway API est construite sur le Datadog Go Tracer. Elle suit le même processus de publication que le tracer, et ses images Docker sont marquées avec la version correspondante du tracer.

L’intégration Gateway API utilise le Datadog Go Tracer et hérite de toutes les variables d’environnement du tracer. Vous trouverez plus d’informations dans Configuration du SDK Go et Configuration de la bibliothèque AAP.

Activation du traçage APM

Par défaut, les traces de miroir de requête n’activeront pas le produit APM de Datadog. Si vous souhaitez utiliser la protection des applications et des API sans la fonctionnalité de traçage APM, il s’agit du comportement par défaut.

Pour activer le traçage APM, définissez la variable d’environnement DD_APM_TRACING_ENABLED=true dans le déploiement du miroir de requête.

Si vous souhaitez désactiver explicitement le traçage APM tout en utilisant la protection des applications et des API :

  1. Configurez votre déploiement avec la variable d’environnement DD_APM_TRACING_ENABLED=false en plus de la variable d’environnement DD_APPSEC_ENABLED=true.
  2. Cette configuration réduira la quantité de données APM envoyées à Datadog au minimum requis par les produits App and API Protection.

Pour plus de détails, consultez Protection autonome des applications et des API.

Limitations

L’intégration de Gateway API présente les limitations suivantes :

  • Il ne peut pas accéder aux réponses HTTP
  • Aucun blocage de requête ne peut être appliqué
  • Seul le format JSON est pris en charge pour l’analyse des corps de requête HTTP.

Pour une analyse plus fine et d’autres fonctionnalités AAP, envisagez d’essayer d’autres intégrations AAP.

Pour aller plus loin