Antes de configurar Runtime Code Analysis (IAST), asegúrate de que se cumplen los siguientes requisitos previos:
Instalación del Datadog Agent: El Datadog Agent se instala y configura para el sistema operativo de tu aplicación o contenedor, nube o entorno virtual.
Configuración de Datadog APM: Datadog APM está configurado para tu aplicación o servicio, y las trazas (traces) web (type:web) son recibidas por Datadog.
Biblioteca de rastreo compatible: La biblioteca de rastreo de Datadog utilizada por tu aplicación o servicio admite funcionalidades de Runtime Code Analysis (IAST) para el lenguaje de tu aplicación o servicio. Para ver más detalles, consulta la sección Requisitos de compatibilidad más abajo.
Selecciona el lenguaje de tu aplicación para obtener información detallada sobre cómo activar Runtime Code Analysis (IAST) para tu lenguaje y tus tipos de infraestructura.
Java
Puedes detectar vulnerabilidades a nivel de código y monitorizar la seguridad de las aplicaciones en aplicaciones Java que se ejecutan en Docker, Kubernetes, Amazon ECS y AWS Fargate.
Sigue estos pasos para activar Runtime Code Analysis (IAST) en tu servicio:
Actualiza tu biblioteca de rastreo de Datadog al menos a la versión mínima necesaria para activar Runtime Code Analysis (IAST). Para obtener más información, consulta Requisitos de compatibilidad más abajo.
Añade la variable de entorno DD_IAST_ENABLED=true a la configuración de tu aplicación.
Puedes detectar vulnerabilidades a nivel de código y monitorizar la seguridad de las aplicaciones en aplicaciones .NET que se ejecutan en Docker, Kubernetes, Amazon ECS y AWS Fargate.
Sigue estos pasos para activar Runtime Code Analysis (IAST) en tu servicio:
Actualiza tu biblioteca de rastreo de Datadog al menos a la versión mínima necesaria para activar Runtime Code Analysis (IAST). Para obtener más información, consulta Requisitos de compatibilidad más abajo.
Añade la variable de entorno DD_IAST_ENABLED=true a la configuración de tu aplicación. Por ejemplo, en Windows autoalojado, ejecuta el siguiente fragmento de PowerShell como parte del script de inicio de la aplicación:
Ejecuta el siguiente comando de PowerShell como administrador para configurar las variables de entorno necesarias en el registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment y reinicia IIS.
$target=[System.EnvironmentVariableTarget]::Machine
[System.Environment]::SetEnvironmentVariable("DD_IAST_ENABLED","true",$target)net stop was /y
net start w3svc
Añade la siguiente línea a tu contenedor Dockerfile:
ENV DD_IAST_ENABLED=true
Para ver Runtime Code Analysis (IAST) en acción, navega por tu servicio y encuentra vulnerabilidades a nivel de código en el Explorador de vulnerabilidades.
Puedes detectar vulnerabilidades a nivel de código y monitorizar la seguridad de las aplicaciones en aplicaciones Node.js que se ejecutan en Docker, Kubernetes, Amazon ECS y AWS Fargate.
Sigue estos pasos para activar Runtime Code Analysis (IAST) en tu servicio:
Actualiza tu biblioteca de rastreo de Datadog al menos a la versión mínima necesaria para activar Runtime Code Analysis (IAST). Para obtener más información, consulta Requisitos de compatibilidad más abajo.
Añade la variable de entorno DD_IAST_ENABLED=true a la configuración de tu aplicación.
Si inicializas la biblioteca de APM en la línea de comandos utilizando la opción --require para Node.js:
node --require dd-trace/init app.js
A continuación, utiliza variables de entorno para habilitar ASM:
DD_IAST_ENABLED=true node app.js
La forma de hacerlo varía en función de dónde se ejecuta el servicio:
Puedes detectar vulnerabilidades a nivel de código y monitorizar la seguridad de las aplicaciones en aplicaciones Python que se ejecutan en Docker, Kubernetes, Amazon ECS y AWS Fargate.
NOTA: La detección de vulnerabilidades a nivel de código en Python está en fase de Vista previa.
Sigue estos pasos para activar Runtime Code Analysis (IAST) en tu servicio:
Actualiza tu biblioteca de rastreo de Datadog al menos a la versión mínima necesaria para activar Runtime Code Analysis (IAST). Para obtener más información, consulta Requisitos de compatibilidad más abajo.
Añade la variable de entorno DD_IAST_ENABLED=true a la configuración de tu aplicación.
Desde la línea de comandos:
DD_IAST_ENABLED=true ddtrace-run python app.py
O uno de los siguientes métodos, dependiendo de dónde se ejecute la aplicación:
Runtime Code Analysis (IAST) modifica el código Python en tiempo de ejecución. Esto podría causar conflictos con otras bibliotecas de terceros Python que realizan transformaciones de código similares, en particular los siguientes, aunque sin limitarse a ellos:
Numba
JAX
TorchScript
TensorFlow
Bytecode
Codetransformer
PyPy
Además, Runtime Code Analysis (IAST) no propaga correctamente los rangos de taint sobre el código nativo (compilado). Por lo tanto, si tu código se basa en gran medida en módulos escritos en C o C++,
utilizando la API CPython, o en sistemas de lenguaje intermedio como Cython, los resultados podrían ser menos precisos de lo esperado.
Para ver Runtime Code Analysis (IAST) en acción, navega por tu servicio y encuentra vulnerabilidades a nivel de código en el Explorador de vulnerabilidades.
El Análisis de la composición del software es compatible con todos los marcos.
Si Runtime Code Analysis (IAST) no es compatible con tu marco de trabajo, sigue detectando las vulnerabilidades Cifrado débil, Hashing débil, Aleatoriedad débil, Cookie insegura, Cookie sin indicador HttpOnly y Cookie sin indicador SameSite.
Marco
Versiones
¿Es compatible la detección de amenazas?
¿Es compatible la protección frente a amenazas?
¿Runtime Code Analysis (IAST)?
Grizzly
2.0 o posterior
Glassfish
Java Servlet
2.3 o posterior, 3.0 o posterior
Jetty
7.0-9.x, 10.x
Spring Boot
1.5
Spring Web (MVC)
4.0 o posterior
Spring WebFlux
5.0 o posterior
Tomcat
5.5 o posterior
Vert.x
3.4-3.9.x
Nota: Muchos servidores de aplicaciones son compatibles con Servlet y están cubiertos automáticamente por esa instrumentación, como por ejemplo Websphere, Weblogic y JBoss. Además, los marcos como Spring Boot (versión 3) funcionan de forma inherente, ya que suelen utilizar un servidor de aplicaciones integrado compatible, como Tomcat, Jetty o Netty.
El Análisis de la composición del software es compatible con todos los marcos.
Si Runtime Code Analysis (IAST) no es compatible con tu marco, sigue detectando las vulnerabilidades Cifrado débil, Hashing débil, Cookie insegura, Cookie sin indicador HttpOnly, Cookie sin indicador SameSite, Falta encabezado HSTS y Falta encabezado X-Content-Type-Options.
El Análisis de la composición del software es compatible con todos los marcos.
La Protección frente a amenazas también funciona en la capa de solicitud HTTP (entrada), por lo que funciona para todas las bases de datos por defecto, incluso aquellas que no aparecen en la siguiente tabla.
Si tu marco de trabajo no es compatible, Runtime Code Analysis (IAST) no detectará vulnerabilidades de inyección SQL, pero seguirá detectando el resto de tipos de vulnerabilidades mencionadas aquí.
Base de datos
Versiones
¿Es compatible la detección de amenazas?
¿Runtime Code Analysis (IAST)?
Aerospike
4.0 o posterior
Couchbase
2.0 o posterior
JDBC
N/A
MongoDB
3.0-4.0 o posterior
dd-java-agent también es compatible con controladores JDBC comunes para la detección de amenazas, tales como:
El Análisis de la composición del software es compatible con todos los marcos.
Si tu marco de trabajo no se encuentra en la siguiente lista, Runtime Code Analysis (IAST) seguirá detectando vulnerabilidades de tipo Cookie insegura.
La Protección frente a amenazas también funciona en la capa de solicitud HTTP (entrada), por lo que funciona para todas las bases de datos por defecto, incluso aquellas que no aparecen en la siguiente tabla.
Cuando el proyecto Node.js deja de ser compatible con una versión principal de LTS (cuando llega al fin de su ciclo de vida), también deja de ser compatible con la siguiente versión principal de dd-trace.
La última versión principal de la biblioteca dd-trace es compatible con esa versión EOL de Node.js durante al menos otro año en modo de mantenimiento.
Algunos problemas no pueden solucionarse en dd-trace y deben solucionarse en Node.js. Cuando esto ocurre y la versión de Node.js en cuestión es EOL, no es posible solucionar el problema sin pasar a otra versión que no sea EOL.
Datadog no ofrece nuevas versiones de dd-trace para ofrecer una compatibilidad específica para las líneas de versiones principales de Node.js que no son LTS (versiones impares).
Para obtener el mejor nivel de compatibilidad, ejecuta siempre la última versión LTS de Node.js y la última versión principal de dd-trace. Sea cual sea la versión de Node.js que utilices, utiliza también la última versión de Node.js en esa línea de versiones, para asegurarte de que dispones de las últimas correcciones de seguridad.
Los siguientes sistemas operativos son oficialmente compatibles con dd-trace. Es probable que cualquier sistema operativo que no aparezca en la lista funcione, pero con algunas características ausentes, por ejemplo, las funciones de seguridad de las aplicaciones, la generación de perfiles y las métricas de tiempo de ejecución. En general, son compatibles los sistemas operativos que se mantienen de forma activa en el momento del lanzamiento inicial de una versión principal.
El Análisis de la composición del software es compatible con todos los marcos.
Si tu marco no se encuentra en la siguiente lista, Runtime Code Analysis (IAST) sigue detectando vulnerabilidades de Cifrado débil, Hashing débil, Aleatoriedad débil, Cookie insegura, Cookie sin indicador HttpOnly, Cookie sin indicador SameSite, Falta encabezado HSTS y Falta encabezado X-Content-Type-Options.
El Análisis de la composición del software es compatible con todos los marcos.
La Protección frente a amenazas también funciona en la capa de solicitud HTTP (entrada), por lo que funciona para todas las bases de datos por defecto, incluso aquellas que no aparecen en la siguiente tabla.
La biblioteca cliente de APM de Python sigue una política de control de versiones en la cual se especifica el nivel de compatibilidad para las diferentes versiones de la biblioteca y el tiempo de ejecución de Python.
Se admiten dos ramificaciones de versiones:
Versión
Nivel de compatibilidad
<1
Mantenimiento
>=1.0,<2
Disponibilidad general
Y la biblioteca es compatible con los siguientes tiempos de ejecución:
El Análisis de la composición del software es compatible con todos los marcos.
La Protección frente a amenazas también funciona en la capa de solicitud HTTP (entrada), por lo que funciona para todas las bases de datos por defecto, incluso aquellas que no aparecen en la siguiente tabla.
La biblioteca Python es compatible con las especificaciones de API de bases de datos y admite todas las bases de datos SQL genéricas. Esto incluye bases de datos como SQLite, Mysql, Postgres y MariaDB.