Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

You can monitor application security for Node.js apps running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.

Prerequisites

Enabling Application & API Protection

Get started

  1. Update your Datadog Node.js library package to at least version 5.0.0 (for Node 18+) or 4.0.0 (for Node 16+) or 3.10.0 (for Node.js 14+), by running one of these commands:

    npm install dd-trace@^5
    npm install dd-trace@^4
    npm install dd-trace@^3.10.0
    

    Use this migration guide to assess any breaking changes if you upgraded your library.

    App & API Protection is compatible with Express v4+ and Node.js v14+. For additional information, see Compatibility.

  2. Where you import and initialize the Node.js library for APM, also enable Application & API Protection. This might be either in your code or with environment variables. If you initialized APM in code, add {appsec: true} to your init statement:

    // This line must come before importing any instrumented module.
    const tracer = require('dd-trace').init({
      appsec: true,
      tracing: false // To disable APM tracing and use security features only
    })
    

    For TypeScript and bundlers that support EcmaScript Module syntax, initialize the tracer in a separate file in order to maintain correct load order.

    // server.ts
    import './tracer'; // must come before importing any instrumented module.
    
    // tracer.ts
    import tracer from 'dd-trace';
    tracer.init({
      appsec: true,
      tracing: false // To disable APM tracing and use security features only
    }); // initialized in a different file to avoid hoisting.
    export default tracer;
    

    If the default config is sufficient, or all configuration is done through environment variables, you can also use dd-trace/init, which loads and initializes in one step.

    import `dd-trace/init`;
    

    Or if you initialize the APM library on the command line using the --require option to Node.js:

    node --require dd-trace/init app.js
    

    Then use environment variables to enable Application & API Protection:

    DD_APPSEC_ENABLED=true DD_APM_TRACING_ENABLED=false node app.js
    

    How you do this varies depending on where your service runs:

    Update your configuration container for APM by adding the following arguments in your docker run command:

    docker run [...] -e DD_APPSEC_ENABLED=true -e DD_APM_TRACING_ENABLED=false [...]
    

    Add the following environment variable values to your container Dockerfile:

    ENV DD_APPSEC_ENABLED=true
    ENV DD_APM_TRACING_ENABLED=false
    

    Update your configuration yaml file container for APM and add the Application & API Protection env variables:

    spec:
      template:
        spec:
          containers:
            - name: <CONTAINER_NAME>
              image: <CONTAINER_IMAGE>/<TAG>
              env:
                - name: DD_APPSEC_ENABLED
                  value: "true"
                - name: DD_APM_TRACING_ENABLED
                  value: "false"
    

    Update your ECS task definition JSON file, by adding these in the environment section:

    "environment": [
      ...,
      {
        "name": "DD_APPSEC_ENABLED",
        "value": "true"
      },
      {
        "name": "DD_APM_TRACING_ENABLED",
        "value": "false"
      }
    ]
    

    Initialize Application & API Protection in your code or set environment variables in your service invocation:

    DD_APPSEC_ENABLED=true DD_APM_TRACING_ENABLED=false node app.js
    

    Une fois cette configuration terminée, la bibliothèque recueille des données de sécurité à partir de votre application et les envoie à l’Agent, qui les transmet à son tour à Datadog. Les règles de détection prêtes à l’emploi signalent alors les attaques et les problèmes potentiels de configuration, afin que vous puissiez agir en conséquence.

  3. Pour tester la détection des menaces Application Security Management, envoyez des patterns d’attaque connus à votre application. Par exemple, exécutez un fichier contenant le script curl suivant afin de déclencher la règle de détection de scanner de sécurité :

    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

    Remarque : la plupart des versions récentes prennent en charge la valeur dd-test-scanner-log.

    Quelques minutes après avoir activé votre application et envoyé les patterns d’attaque, des informations sur les menaces s’affichent dans l’Application Signals Explorer. Des informations sur les vulnérabilités apparaissent également dans le Vulnerability Explorer.

If you need additional assistance, contact Datadog support.

Further Reading

PREVIEWING: deforest/consolidated-security-nav-branch