- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Before setting up Code Security, ensure the following prerequisites are met:
type:web
) are being received by Datadog.Select your application language for details on how to enable Code Security for your language and infrastructure types.
You can detect code-level vulnerabilities and monitor application security in Java applications running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.
Follow these steps to enable Code Security in your service:
Update your Datadog Agent to at least version 7.41.1.
Update your Datadog Tracing Library to at least the minimum version needed to turn on Code Security. For details, see the Compatibility Requirements below.
Add the DD_IAST_ENABLED=true
environment variable to your application configuration.
From the command line:
java -javaagent:/path/to/dd-java-agent.jar -Ddd.iast.enabled=true -Ddd.service=<MY SERVICE> -Ddd.env=<MY_ENV> -jar path/to/app.jar
Or one of the following orchestration tool methods, depending on where your application runs.
Note: Read-only file systems are not supported. The application must have access to a writable /tmp
directory.
Update your configuration container for APM by adding the following argument in your docker run
command:
docker run [...] -e DD_IAST_ENABLED=true [...]
Add the following environment variable value to your container Dockerfile:
DD_IAST_ENABLED=true
Update your deployment configuration file for APM and add the IAST environment variable:
spec:
template:
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
- name: DD_IAST_ENABLED
value: "true"
Update your ECS task definition JSON file, by adding this in the environment section:
"environment": [
...,
{
"name": "DD_IAST_ENABLED",
"value": "true"
}
]
You can detect code-level vulnerabilities and monitor application security in .NET applications running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.
Follow these steps to enable Code Security in your service:
Update your Datadog Agent to at least version 7.41.1.
Update your Datadog Tracing Library to at least the minimum version needed to turn on Code Security. For details, see the Compatibility Requirements below.
Add the DD_IAST_ENABLED=true
environment variable to your application configuration. For example, on Windows self-hosted, run the following PowerShell snippet as part of your application start-up script:
$target=[System.EnvironmentVariableTarget]::Process
[System.Environment]::SetEnvironmentVariable("DD_IAST_ENABLED","true",$target)
Or one of the following methods, depending on where your application runs:
In a Windows console:
rem Set environment variables
SET DD_IAST_ENABLED=true
rem Start application
dotnet.exe example.dll
Run the following PowerShell command as administrator to configure the necessary environment variables in the registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
and restart IIS.
$target=[System.EnvironmentVariableTarget]::Machine
[System.Environment]::SetEnvironmentVariable("DD_IAST_ENABLED","true",$target)
net stop was /y
net start w3svc
Add the following to your application configuration:
DD_IAST_ENABLED=true
Update your configuration container for APM by adding the following argument in your docker run command:
docker run -d --name app -e DD_IAST_ENABLED=true company/app:latest
Add the following environment variable value to your container Dockerfile:
ENV DD_IAST_ENABLED=true
Update your deployment configuration file for APM and add the ASM environment variable:
spec:
template:
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
- name: DD_IAST_ENABLED
value: "true"
Update your ECS task definition JSON file, by adding this in the environment section:
"environment": [
...,
{
"name": "DD_IAST_ENABLED",
"value": "true"
}
]
Add the following line to your container Dockerfile:
ENV DD_IAST_ENABLED=true
To see Code Security in action, browse your service and find code-level vulnerabilities in the Vulnerability Explorer.
If you need additional assistance, contact Datadog support.
You can detect code-level vulnerabilities and monitor application security in Node.js applications running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.
Follow these steps to enable Code Security in your service:
Update your Datadog Agent to at least version 7.41.1.
Update your Datadog Tracing Library to at least the minimum version needed to turn on Code Security. For details, see the Compatibility Requirements below.
Add the DD_IAST_ENABLED=true
environment variable to your application configuration.
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_IAST_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_IAST_ENABLED=true [...]
Add the following environment variable value to your container Dockerfile:
ENV DD_IAST_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_IAST_ENABLED
value: "true"
Update your ECS task definition JSON file, by adding this in the environment section:
"environment": [
...,
{
"name": "DD_IAST_ENABLED",
"value": "true"
}
]
You can detect code-level vulnerabilities and monitor application security in Python applicationss running in Docker, Kubernetes, Amazon ECS, and AWS Fargate.
NOTE: Code-Level Vulnerability detection in Python is in Preview.
Follow these steps to enable Code Security in your service:
Update your Datadog Agent to at least version 7.41.1.
Update your Datadog Tracing Library to at least the minimum version needed to turn on Code Security. For details, see the Compatibility Requirements below.
Add the DD_IAST_ENABLED=true
environment variable to your application configuration.
From the command line:
DD_IAST_ENABLED=true ddtrace-run python app.py
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_IAST_ENABLED=true [...]
Add the following environment variable value to your container Dockerfile:
DD_IAST_ENABLED=true
Update your deployment configuration file for APM and add the IAST environment variable:
spec:
template:
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
- name: DD_IAST_ENABLED
value: "true"
Update your ECS task definition JSON file, by adding this in the environment section:
"environment": [
...,
{
"name": "DD_IAST_ENABLED",
"value": "true"
}
]
Code Security modifies Python code at runtime. This could cause conflicts with other third-party Python libraries that perform similar code transformations, particularly with the following, though not limited to them:
Additionally, Code Security does not correctly propagate taint ranges over native (compiled) code. Therefore, if your codebase heavily relies on modules written in C or C++, using the CPython API, or on intermediate language systems like Cython, the results might be less accurate than expected.
If you need additional assistance, contact Datadog support.
The following ASM capabilities are supported relative to each language’s tracing library:
Application Security capability | Java | .NET | Node.js | Python | Go | Ruby | PHP |
---|---|---|---|---|---|---|---|
Code Security | 1.15.0 | 2.42.0 | 4.18.0 | Preview | not supported | not supported | not supported |
Select your application language for details about framework compatibility and feature support.
The following application security capabilities are supported in the Java library, for the specified tracer version:
Application Security capability | Minimum Java tracer version |
---|---|
Threat Detection | 1.8.0 |
API Security | 1.31.0 |
Threat Protection | 1.9.0 |
Customize response to blocked requests | 1.11.0 |
Software Composition Analysis (SCA) | 1.1.4 |
Code Security | 1.15.0 |
Automatic user activity event tracking | 1.20.0 |
The minimum tracer version to get all supported application security capabilities for Java is 1.31.0.
Note: Threat Protection requires enabling Remote Configuration, which is included in the listed minimum tracer version.
Type | Threat Detection support | Software Composition Analysis |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | ||
AWS Lambda | ||
Azure App Service |
Note: Azure App Service is supported for web applications only. Application Security doesn’t support Azure Functions.
The Java Tracer supports automatic instrumentation for the following Oracle JDK and OpenJDK JVM runtimes.
JVM versions | Operating Systems | Support level | Tracer version |
---|---|---|---|
8 to 17 | Windows (x86-64) Linux (glibc, musl) (arm64, x86-64) MacOS (arm64, x86-64) | Supported | Latest |
Datadog does not officially support any early-access versions of Java.
Framework | Versions | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|---|
Grizzly | 2.0+ | |||
Glassfish | ||||
Java Servlet | 2.3+, 3.0+ | |||
Jetty | 7.0-9.x, 10.x | |||
Spring Boot | 1.5 | |||
Spring Web (MVC) | 4.0+ | |||
Spring WebFlux | 5.0+ | |||
Tomcat | 5.5+ | |||
Vert.x | 3.4-3.9.x |
Note: Many application servers are Servlet compatible and are automatically covered by that instrumentation, such as Websphere, Weblogic, and JBoss. Also, frameworks like Spring Boot (version 3) inherently work because they usually use a supported embedded application server, such as Tomcat, Jetty, or Netty.
dd-java-agent
includes support for automatically tracing the following networking frameworks.
Networking tracing provides:
Framework | Versions | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|---|
Apache HTTP Client | 4.0+ | |||
gRPC | 1.5+ | |||
HttpURLConnection | all | |||
Jax RS Clients | 2.0+ | |||
Jersey Server | 1.9-2.29 | |||
Netty HTTP Server | 3.8+ | |||
RESTEasy | 3.0.x | |||
Spring SessionAwareMessageListener | 3.1+ |
dd-java-agent
includes support for automatically tracing the following database frameworks/drivers.
Datastore tracing provides:
Database | Versions | Threat Detection supported? | Code Security? |
---|---|---|---|
Aerospike | 4.0+ | ||
Couchbase | 2.0+ | ||
JDBC | N/A | ||
MongoDB | 3.0-4.0+ |
dd-java-agent
is also compatible with common JDBC drivers for Threat Detection, such as:
Integrations to User Authentication Frameworks provide:
Framework | Minimum Framework Version |
---|---|
Spring Security | 5.5+ |
The following application security capabilities are supported in the .NET library, for the specified tracer version:
Application Security capability | Minimum .NET tracer version |
---|---|
Threat Detection | 2.23.0 |
Threat Protection | 2.26.0 |
Customize response to blocked requests | 2.27.0 |
Software Composition Analysis (SCA) | 2.16.0 |
Code Security | 2.42.0 |
Automatic user activity event tracking | 2.32.0 |
API Security | 2.42.0 |
The minimum tracer version to get all supported application security capabilities for .NET is 2.42.0.
Note: Threat Protection requires enabling Remote Configuration, which is included in the listed minimum tracer version.
Type | Threat Detection support | Software Composition Analysis |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | ||
AWS Lambda | ||
Azure App Service |
Note: Azure App Service is supported for web applications only. Application Security capabilities are not supported for Azure Functions.
.NET Framework Version | Microsoft End of Life | Support level | Package version |
---|---|---|---|
4.8 | GA | latest | |
4.7.2 | GA | latest | |
4.7 | GA | latest | |
4.6.2 | GA | latest | |
4.6.1 | 04/26/2022 | GA | latest |
These are supported on the following architectures:
Framework | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|
ASP.NET MVC | |||
ASP.NET Web API 2 |
Datastore tracing provides:
Framework | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|
OracleDB | |||
ADO.NET | |||
SQL Server | |||
MySQL | |||
SQLite |
Integrations to User Authentication Frameworks provides:
Framework |
---|
> .Net Core 2.1 |
The following application security capabilities are supported in the Node.js library, for the specified tracer version:
Application Security capability | Minimum Node.js tracer version |
---|---|
Threat Detection | 4.0.0 |
Threat Protection | 4.0.0 |
Customize response to blocked requests | 4.1.0 |
Software Composition Analysis (SCA) | 4.0.0 |
Code Security | 4.18.0 for Node.js 16+, or 5.0.0 for Node.js 18+ |
Automatic user activity event tracking | 4.4.0 for Node.js 16+ |
API Security | 4.30.0 for Node.js 16+, or 5.6.0 for Node.js 18+ |
The minimum tracer version to get all supported application security capabilities for Node.js is 4.30.0.
Note:
Type | Threat Detection support | Software Composition Analysis |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | ||
AWS Lambda |
When the Node.js project drops support for an LTS major release line (when it goes End of Life), support for it is dropped in the next major version of dd-trace
.
The last major supporting release line of dd-trace
library supports that EOL version of Node.js for at least another year on a maintenance mode basis.
Some issues cannot be solved in dd-trace
and instead must be solved in Node.js. When this happens and the Node.js release in question is EOL, it’s not possible to solve the issue without moving to another non-EOL release.
Datadog does not make new releases of dd-trace
to provide specific support for non-LTS Node.js major release lines (odd numbered versions).
For the best level of support, always run the latest LTS release of Node.js, and the latest major version of dd-trace
. Whatever release line of Node.js you use, also use the latest version of Node.js on that release line, to ensure you have the latest security fixes.
For more information about Node.js release, see the official Node.js documentation.
The following operating systems are officially supported by dd-trace
. Any operating system not listed is still likely to work, but with some features missing, for example application security capabilities, profiling, and runtime metrics. Generally speaking, operating systems that are actively maintained at the time of initial release for a major version are supported.
Operating System | Architectures | Minimum Versions |
---|---|---|
Linux (glibc) | arm64, x64 | CentOS 7, Debian 9, RHEL 7, Ubuntu 14.04 |
Linux (musl) | arm64, x64 | Alpine 3.13 |
macOS | arm64, x64 | Catalina (10.15) |
Windows | x64 | Windows 8.1, Windows Server 2012 |
Framework | Versions | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|---|
express | >=4 | |||
nextjs | >=11.1 |
Networking tracing provides:
Framework | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|
http | |||
https |
Datastore tracing provides:
Framework | Versions | Threat Detection supported? | Threat Protection supported? | Code Security? |
---|---|---|---|---|
@apollo/server | >=4 | |||
apollo-server-core | >=3 | |||
cassandra-driver | >=3 | |||
couchbase | ^2.4.2 | |||
elasticsearch | >=10 | |||
ioredis | >=2 | |||
knex | >=0.8 | |||
mariadb | >=3 | |||
memcached | >=2.2 | |||
mongodb-core | >=2 | |||
mysql | >=2 | |||
mysql2 | >=1 | |||
oracledb | >=5 | |||
pg | >=4 | |||
redis | >=0.12 | |||
sharedb | >=1 | |||
tedious | >=1 | |||
sequelize | >=4 |
Integrations to User Authentication Frameworks provide:
Framework | Minimum Framework Version |
---|---|
passport-local | 1.0.0 |
passport-http | 0.3.0 |
The following application security capabilities are supported in the Python library, for the specified tracer version:
Application Security capability | Minimum Python tracer version |
---|---|
Threat Detection | 1.9.0 |
Threat Protection | 1.10.0 |
Customize response to blocked requests | 1.19.0 |
Software Composition Analysis (SCA) | 1.5.0 |
Code Security | Preview (2.9.3) |
Automatic user activity event tracking | 1.17.0 |
API Security | 2.6.0 |
Note: Threat Protection requires enabling Remote Configuration, which is included in the listed minimum tracer version.
Type | Threat Detection support | Software Composition Analysis |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | ||
AWS Lambda |
The Python Application Security Client library follows a versioning policy that specifies the support level for the different versions of the library and Python runtime.
Two release branches are supported:
Release | Support level |
---|---|
<1 | Maintenance |
>=1.0,<2 | General Availability |
And the library supports the following runtimes:
OS | CPU | Runtime | Runtime version | Support ddtrace versions |
---|---|---|---|---|
Linux | x86-64, i686, AArch64 | CPython | 2.7, 3.5-3.11 | <2 |
MacOS | Intel, Apple Silicon | CPython | 2.7, 3.5-3.11 | <2 |
Windows | 64bit, 32bit | CPython | 2.7, 3.5-3.11 | <2 |
Framework | Versions | Threat Detection supported? | Threat Protection supported? |
---|---|---|---|
Django | 1.8 | ||
Flask | 0.10 |
Support for query strings is not available for Flask.
Datastore tracing provides:
The Python library supports the database API specifications and supports all generic SQL databases. This includes databases such as SQLite, Mysql, Postgres and MariaDB.
Integrations to User Authentication Frameworks provide:
Framework | Framework Versions |
---|---|
Django | 1.11, 2.2, 3.2, >= 4.0 |