이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Prerequisites

Before setting up Runtime Code Analysis (IAST), ensure the following prerequisites are met:

  1. Datadog Agent Installation: The Datadog Agent is installed and configured for your application’s operating system or container, cloud, or virtual environment.
  2. Datadog APM Configuration: Datadog APM is configured for your application or service, and web traces (type:web) are being received by Datadog.
  3. Supported Tracing Library: The Datadog Tracing Library used by your application or service supports Runtime Code Analysis (IAST) capabilities for the language of your application or service. For more details, see the Compatibility Requirements section below.

Using Datadog Tracing Libraries

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:

  1. Update your Datadog Agent to at least version 7.41.1.

  2. 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.

  3. 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.

Docker CLI

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

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

Dockerfile

Add the following environment variable value to your container Dockerfile:

DD_IAST_ENABLED=true

Kubernetes

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"

Amazon ECS

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:

  1. Update your Datadog Agent to at least version 7.41.1.

  2. 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.

  3. 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:

Windows-Self-Hosted

In a Windows console:

rem Set environment variables
SET DD_IAST_ENABLED=true

rem Start application
dotnet.exe example.dll

IIS

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

Linux

Add the following to your application configuration:

DD_IAST_ENABLED=true

Docker CLI

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

Dockerfile

Add the following environment variable value to your container Dockerfile:

ENV DD_IAST_ENABLED=true

Kubernetes

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"

AWS ECS

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

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

AWS Fargate

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:

  1. Update your Datadog Agent to at least version 7.41.1.

  2. 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.

  3. 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:

Docker CLI

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

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

Dockerfile

Add the following environment variable value to your container Dockerfile:

ENV DD_IAST_ENABLED=true

Kubernetes

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"

Amazon ECS

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:

  1. Update your Datadog Agent to at least version 7.41.1.

  2. 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.

  3. 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:

Docker CLI

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

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

Dockerfile

Add the following environment variable value to your container Dockerfile:

DD_IAST_ENABLED=true

Kubernetes

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"

Amazon ECS

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

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

Third-Party Library Compatibility Note

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:

  • Numba
  • JAX
  • TorchScript
  • TensorFlow
  • Bytecode
  • Codetransformer
  • PyPy

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.

Finishing setup

  1. Restart your service.
  2. 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.

Compatibility Requirements

The following code security capabilities are supported relative to each language’s tracing library:

Code Security capabilityJava.NETNode.jsPythonGoRubyPHP
Runtime Software Composition Analysis (SCA)1.1.42.16.04.0.01.5.01.49.01.11.00.90.0
Runtime Code Analysis (IAST)1.15.02.42.04.18.0Previewnot supportednot supportednot 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.

Code Security capabilities

The following code security capabilities are supported in the Java library, for the specified tracer version:

Code Security capabilityMinimum 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.

Supported deployment types

TypeRuntime Software Composition Analysis (SCA)Runtime Code Analysis (IAST)
Docker
Kubernetes
Amazon ECS
AWS FargatePreview (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.

Language and framework compatibility

Supported Java versions

The Java Tracer supports automatic instrumentation for the following Oracle JDK and OpenJDK JVM runtimes.

JVM versionsOperating SystemsSupport levelTracer version
8 to 17Windows (x86-64)
Linux (glibc, musl) (arm64, x86-64)
MacOS (arm64, x86-64)
SupportedLatest

Datadog does not officially support any early-access versions of Java.

Web framework compatibility

Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
  • If Runtime Code Analysis (IAST) does not support your framework, it continues to detect Weak Cipher, Weak Hashing, Weak Randomness, Insecure Cookie, Cookie without HttpOnly Flag, and Cookie without SameSite Flag vulnerabilities.
FrameworkVersionsRuntime Code Analysis (IAST)
Grizzly2.0+
Glassfish
Java Servlet2.3+, 3.0+
Jetty7.0-9.x, 10.x
Spring Boot1.5
Spring Web (MVC)4.0+
Spring WebFlux5.0+
Tomcat5.5+
Vert.x3.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.

If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Networking framework compatibility

dd-java-agent includes support for automatically tracing the following networking frameworks.

Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
  • If Runtime Code Analysis (IAST) does not support your framework, it continues to detect Weak Cipher, Weak Hashing, Insecure Cookie, Cookie without HttpOnly Flag, Cookie without SameSite Flag, HSTS Header Missing, and X-Content-Type-Options Header Missing vulnerabilities.
FrameworkVersionsRuntime Code Analysis (IAST)
Apache HTTP Client4.0+
gRPC1.5+
HttpURLConnectionall
Jax RS Clients2.0+
Jersey Server1.9-2.29
Netty HTTP Server3.8+
RESTEasy3.0.x
Spring SessionAwareMessageListener3.1+
If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Data store compatibility

dd-java-agent includes support for automatically tracing the following database frameworks/drivers.

Datastore tracing provides:

  • Timing request to response
  • Query info (for example, a sanitized query string)
  • Error and stacktrace capturing
Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
  • If your framework is not supported below, Runtime Code Analysis (IAST) won’t detect SQL Injection vulnerabilities, but it continues to detect the remaining vulnerability types listed here.
DatabaseVersionsRuntime Code Analysis (IAST)
Aerospike4.0+
Couchbase2.0+
JDBCN/A
MongoDB3.0-4.0+
If you don't see your framework of choice listed, let us know. Fill out this short form to send details.

Code Security capabilities support

The following code security capabilities are supported in the .NET library, for the specified tracer version:

Code Security capabilityMinimum .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.

Supported deployment types

TypeRuntime 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.

Language and framework compatibility

Supported .NET versions

.NET Framework VersionMicrosoft End of LifeSupport levelPackage version
4.8GAlatest
4.7.2GAlatest
4.7GAlatest
4.6.2GAlatest
4.6.104/26/2022GAlatest

These are supported on the following architectures:

  • Linux (GNU) x86-64, ARM64
  • Alpine Linux (musl) x86-64, ARM64
  • macOS (Darwin) x86-64, ARM64
  • Windows (msvc) x86, x86-64

Web framework compatibility

Code Security capability notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks.
  • If your framework is not listed below, Runtime Code Analysis (IAST) continues to detect Insecure Cookie vulnerabilities.
FrameworkRuntime Code Analysis (IAST)
ASP.NET MVC
ASP.NET Web API 2
If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Networking framework compatibility

Code Security capability notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
FrameworkRuntime Code Analysis (IAST)
http
https
If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Data store compatibility

Datastore tracing provides:

  • query info (for example, a sanitized query string)
  • error and stacktrace capturing
Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks.
FrameworkRuntime Code Analysis (IAST)
OracleDB
ADO.NET
SQL Server
MySQL
SQLite

Code Security capabilities

The following code security capabilities are supported in the Node.js library, for the specified tracer version:

Code Security capabilityMinimum 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+.

Supported deployment types

TypeRuntime Software Composition Analysis (SCA)Runtime Code Analysis (IAST)
Docker
Kubernetes
Amazon ECS
AWS FargatePreview (4.18.0 for Node.js 16+, or 5.0.0 for Node.js 18+)
AWS Lambdanot supported

Language and framework compatibility

Node.js Version Support

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.

Operating system support

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 SystemArchitecturesMinimum Versions
Linux (glibc)arm64, x64CentOS 7, Debian 9, RHEL 7, Ubuntu 14.04
Linux (musl)arm64, x64Alpine 3.13
macOSarm64, x64Catalina (10.15)
Windowsx64Windows 8.1, Windows Server 2012

Web framework compatibility

Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
  • If your framework is not listed below, Runtime Code Analysis (IAST) it continues to detect Weak Cipher, Weak Hashing, Weak Randomness, Insecure Cookie, Cookie without HttpOnly Flag, Cookie without SameSite Flag, HSTS Header Missing, and X-Content-Type-Options Header Missing vulnerabilities.
FrameworkVersionsRuntime Code Analysis (IAST)
express>=4
nextjs>=11.1
If you would like to see support added for any of the unsupported capabilities or for your Node.js framework, let us know! Fill out this short form to send details.

Networking framework compatibility

Code Security capability notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks
FrameworkRuntime Code Analysis (IAST)
http
https
If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Data store compatibility

Datastore tracing provides:

  • Query info (for example, a sanitized query string)
  • Error and stacktrace capturing
Code Security capability notes
  • Runtime Software Composition Analysis (SCA) is supported on all framework
FrameworkVersionsRuntime 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

Code Security capabilities support

The following code security capabilities are supported in the Python library, for the specified tracer version:

Code Security capabilityMinimum Python tracer version
Runtime Software Composition Analysis (SCA)1.5.0
Runtime Code Analysis (IAST)Preview (2.9.3)

Supported deployment types

TypeRuntime Code Analysis (IAST)
Docker
Kubernetes
Amazon ECS
AWS FargatePreview (2.9.3)
AWS Lambda

Language and framework compatibility

Supported Python versions

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:

ReleaseSupport level
<1Maintenance
>=1.0,<2General Availability

And the library supports the following runtimes:

OSCPURuntimeRuntime versionSupport ddtrace versions
Linuxx86-64, i686, AArch64CPython2.7, 3.5-3.11<2
MacOSIntel, Apple SiliconCPython2.7, 3.5-3.11<2
Windows64bit, 32bitCPython2.7, 3.5-3.11<2

Web framework compatibility

Code Security Capability Notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks

Supported frameworks

FrameworkVersionsRuntime Code Analysis (IAST)
Django1.8
Flask0.10

Support for query strings is not available for Flask.

If you don't see your framework of choice listed, let us know! Fill out this short form to send details.

Data store compatibility

Datastore tracing provides:

  • query info (for example, a sanitized query string)
  • error and stacktrace capturing
Code Security capability notes
  • Runtime Software Composition Analysis (SCA) is supported on all frameworks.

The Python library supports the database API specifications and supports all generic SQL databases. This includes databases such as SQLite, Mysql, Postgres and MariaDB.