This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project,
feel free to reach out to us!You can monitor application security for Ruby apps running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.
Prerequisites
Enabling threat detection
Get started
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.
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
The library collects security data from your application and sends it to the Agent, which sends it to Datadog, where out-of-the-box detection rules flag attacker techniques and potential misconfigurations so you can take steps to remediate.
To see Application Security Management 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 exercise it, threat information appears in the Application Trace and Signals Explorer in Datadog.
Further Reading
Más enlaces, artículos y documentación útiles: