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.

Prérequis

Activation en un seul clic
Si votre service est exécuté avec un Agent disposant d'une configuration à distance et d'une version de la bibliothèque de tracing prenant en charge cette fonctionnalité, passez votre curseur sur l'option Not Enabled dans la colonne ASM Status, puis cliquez sur Enable ASM. Il n'est pas nécessaire de relancer le service avec le flag DD_APPSEC_ENABLED=true ou le flag --enable-appsec.

Enabling threat detection

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.

    Application Security Management 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 ASM. 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
    })
    

    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
    }); // 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 ASM:

    DD_APPSEC_ENABLED=true node app.js
    

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

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

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

    Add the following environment variable value to your container Dockerfile:

    ENV DD_APPSEC_ENABLED=true
    

    Update your configuration yaml file container for APM and add the AppSec env variable:

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

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

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

    Initialize ASM in your code or set DD_APPSEC_ENABLED environment variable to true in your service invocation:

    DD_APPSEC_ENABLED=true 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