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 Ruby 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 Gemfile to include the Datadog library:

    gem 'datadog', '~> 2.0' # Use 'ddtrace' if you're using v1.x
    

    To check that your service’s language and framework versions are supported for ASM capabilities, see Compatibility.

    For more information about upgrading to v2 from a dd-trace 1.x version, see the Ruby tracer upgrade guide.

  2. Enable ASM by enabling the APM tracer. The following options describe a quick setup that covers the most common cases. Read the Ruby tracer documentation for more details.

    You can enable ASM either in your code:

    Enable the APM tracer by adding an initializer in your application code:

    # config/initializers/datadog.rb
    
    require 'datadog/appsec'
    
    Datadog.configure do |c|
      # enable the APM tracer
      c.tracing.instrument :rails
    
      # enable ASM
      c.appsec.enabled = true
      c.appsec.instrument :rails
    end
    

    Or enable the APM tracer through auto-instrumentation by updating your Gemfile to auto-instrument:

    gem 'datadog', '~> 2.0', require: 'datadog/auto_instrument'
    

    And also enable appsec:

    # config/initializers/datadog.rb
    
    require 'datadog/appsec'
    
    Datadog.configure do |c|
      # the APM tracer is enabled by auto-instrumentation
    
      # enable ASM
      c.appsec.enabled = true
      c.appsec.instrument :rails
    end
    

    Enable the APM tracer by adding the following to your application’s startup:

    require 'sinatra'
    require 'datadog'
    require 'datadog/appsec'
    
    Datadog.configure do |c|
      # enable the APM tracer
      c.tracing.instrument :sinatra
    
      # enable ASM for Sinatra
      c.appsec.enabled = true
      c.appsec.instrument :sinatra
    end
    

    Or enable the APM tracer through auto-instrumentation:

    require 'sinatra'
    require 'datadog/auto_instrument'
    
    Datadog.configure do |c|
      # the APM tracer is enabled by auto-instrumentation
    
      # enable ASM for Sinatra
      c.appsec.enabled = true
      c.appsec.instrument :sinatra
    end
    

    Enable the APM tracer by adding the following to your config.ru file:

    require 'datadog'
    require 'datadog/appsec'
    
    Datadog.configure do |c|
      # enable the APM tracer
      c.tracing.instrument :rack
    
      # enable ASM for Rack
      c.appsec.enabled = true
      c.appsec.instrument :rack
    end
    
    use Datadog::Tracing::Contrib::Rack::TraceMiddleware
    use Datadog::AppSec::Contrib::Rack::RequestMiddleware
    

    Or one of the following methods, depending on where your application 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:

    env DD_APPSEC_ENABLED=true rails server
    

    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 Trace and Signals Explorer de Datadog.

Further Reading