- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Before setting up Runtime Code Analysis (IAST), ensure the following prerequisites are met:
type:web
) are being received by Datadog.Select your application language for details on how to enable Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST). 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 Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST). 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 Runtime Code Analysis (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"
}
]
Add the following line to your container Dockerfile:
ENV DD_IAST_ENABLED=true
To see Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST). 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 Runtime Code Analysis (IAST):
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: Runtime Code Analysis (IAST) in Python is in Preview.
Follow these steps to enable Runtime Code Analysis (IAST) 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 Runtime Code Analysis (IAST). 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"
}
]
Runtime Code Analysis (IAST) 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, Runtime Code Analysis (IAST) 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 code security capabilities are supported relative to each language’s tracing library:
Code Security capability | Java | .NET | Node.js | Python | Go | Ruby | PHP |
---|---|---|---|---|---|---|---|
Runtime Software Composition Analysis (SCA) | 1.1.4 | 2.16.0 | 4.0.0 | 1.5.0 | 1.49.0 | 1.11.0 | 0.90.0 |
Runtime Code Analysis (IAST) | 1.15.0 | 2.42.0 | 4.18.0 | Preview | not supported | not supported | not supported |
Note: Static Software Composition Analysis (SCA) and Static Code Analysis (SAST) capabilities do not require Datadog’s tracing library. Therefore, the requirements listed below do not apply to these two Code Security capabilities.
Select your application language for details about framework compatibility and feature support.
The following code security capabilities are supported in the Java library, for the specified tracer version:
Code Security capability | Minimum Java tracer version |
---|---|
Runtime Software Composition Analysis (SCA) | 1.1.4 |
Runtime Code Analysis (IAST) | 1.15.0 |
The minimum tracer version to get all supported code security capabilities for Java is 1.15.0.
Type | Runtime Software Composition Analysis (SCA) | Runtime Code Analysis (IAST) |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | Preview (1.15.0) | |
AWS Lambda | ||
Azure App Service |
Note: Azure App Service is supported for web applications only. Code 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 | Runtime Code Analysis (IAST) |
---|---|---|
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.
Framework | Versions | Runtime Code Analysis (IAST) |
---|---|---|
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 | Runtime Code Analysis (IAST) |
---|---|---|
Aerospike | 4.0+ | |
Couchbase | 2.0+ | |
JDBC | N/A | |
MongoDB | 3.0-4.0+ |
The following code security capabilities are supported in the .NET library, for the specified tracer version:
Code Security capability | Minimum .NET tracer version |
---|---|
Runtime Software Composition Analysis (SCA) | 2.16.0 |
Runtime Code Analysis (IAST) | 2.42.0 |
The minimum tracer version to get all supported code security capabilities for .NET is 2.42.0.
Type | Runtime Software Composition Analysis (SCA) |
---|---|
Docker | |
Kubernetes | |
Amazon ECS | |
AWS Fargate | |
AWS Lambda | |
Azure App Service |
Note: Azure App Service is supported for web applications only. Code 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 | Runtime Code Analysis (IAST) |
---|---|
ASP.NET MVC | |
ASP.NET Web API 2 |
Framework | Runtime Code Analysis (IAST) |
---|---|
http | |
https |
Datastore tracing provides:
Framework | Runtime Code Analysis (IAST) |
---|---|
OracleDB | |
ADO.NET | |
SQL Server | |
MySQL | |
SQLite |
The following code security capabilities are supported in the Node.js library, for the specified tracer version:
Code Security capability | Minimum Node.js tracer version |
---|---|
Runtime Software Composition Analysis (SCA) | 4.0.0 |
Runtime Code Analysis (IAST) | 4.18.0 for Node.js 16+, or 5.0.0 for Node.js 18+ |
The minimum tracer version to get all supported code security capabilities is 4.30.0 for Node.js 16+ and 5.0.0 for Node.js 18+.
Type | Runtime Software Composition Analysis (SCA) | Runtime Code Analysis (IAST) |
---|---|---|
Docker | ||
Kubernetes | ||
Amazon ECS | ||
AWS Fargate | Preview (4.18.0 for Node.js 16+, or 5.0.0 for Node.js 18+) | |
AWS Lambda | not supported |
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 | Runtime Code Analysis (IAST) |
---|---|---|
express | >=4 | |
nextjs | >=11.1 |
Framework | Runtime Code Analysis (IAST) |
---|---|
http | |
https |
Datastore tracing provides:
Framework | Versions | Runtime Code Analysis (IAST) |
---|---|---|
@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 |
The following code security capabilities are supported in the Python library, for the specified tracer version:
Code Security capability | Minimum Python tracer version |
---|---|
Runtime Software Composition Analysis (SCA) | 1.5.0 |
Runtime Code Analysis (IAST) | Preview (2.9.3) |
Type | Runtime Code Analysis (IAST) |
---|---|
Docker | |
Kubernetes | |
Amazon ECS | |
AWS Fargate | Preview (2.9.3) |
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 | Runtime Code Analysis (IAST) |
---|---|---|
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.