Información general

Si experimentas un comportamiento inesperado al utilizar Datadog Application Security Management (ASM), existen algunos problemas comunes que puedes investigar, como se menciona a continuación. Si sigues teniendo problemas, ponte en contacto con el servicio de asistencia de Datadog para obtener más ayuda.

Límites de frecuencias de ASM

Las trazas (traces) de ASM tienen un límite de frecuencia de 100 trazas por segundo. Las trazas enviadas más allá de este límite no se informan. Si necesitas cambiar el límite, ponte en contacto con el servicio de asistencia de Datadog.

ASM no detecta ninguna traza de seguridad

Existe una serie de pasos que deben ejecutarse correctamente para que la información sobre amenazas aparezca en el Explorador de trazas y señales de ASM. Al investigar este problema, es importante verificar cada paso. Los pasos adicionales para solucionar problemas para lenguajes específicos se encuentran en la pestaña de lenguajes al final.

Confirmar que ASM está habilitado

Para comprobar si ASM se está ejecutando, puedes utilizar la métrica datadog.apm.appsec_host.

  1. Ve a Métricas > Resumen en Datadog.
  2. Busca la métrica datadog.apm.appsec_host . Si la métrica no existe, entonces no hay servicios ejecutando ASM. Si la métrica existe, los servicios se informan mediante las etiquetas (tags) de métricas host y service.
  3. Selecciona la métrica y busca service en la sección Etiquetas para ver qué servicios están ejecutando ASM.

Si no ves datadog.apm.appsec_host, comprueba las instrucciones en la aplicación para confirmar que se han completado todos los pasos de la configuración inicial.

Los datos de ASM se envían con trazas de APM. Consulta Solucionar problemas de APM para confirmar la configuración de APM y comprobar si hay errores de conexión.

Envío de un ataque de prueba a tu aplicación

Para probar tu configuración de ASM, activa la regla Analizador de seguridad detectado, ejecutando un archivo que contenga el siguiente script curl:

for ((i=1;i<=250;i++));
do
# Apunta a rutas de servicios existentes
curl https://your-application-url/existing-route -A Arachni/v1.0;
# Apunta a rutas de servicios no existentes
curl https://your-application-url/non-existing-route -A Arachni/v1.0;
done

Unos minutos después de habilitar tu aplicación y ejercitarla, si todo sale según lo esperado, aparecerá información sobre amenazas en el Explorador de trazas y señales.

Página con información sobre señales de seguridad, que muestra etiquetas, métricas, pasos a seguir sugeridos y direcciones IP de atacantes asociados a una amenaza.

Comprobar si las integraciones requeridas del rastreador están desactivadas

ASM depende de ciertas integraciones del rastreador. Si están desactivadas, ASM no funcionará. Para ver si hay integraciones desactivadas, busca disabled_integrations en tus logs de inicio.

Las integraciones requeridas varían según el lenguaje.

Los siguientes frameworks Go deben ser instrumentados utilizando el out-of-the-box APM integraciones :

Si tu marco no es compatible, crea una nueva incidencia en el repositorio Go.

Comprobar la configuración del Datadog Agent

Para resolver este paso del proceso, haz lo siguiente:

  • Comprueba los detalles del Agent que se está ejecutando en esta dirección http://<agent-machine-name>:<agent-port>/info, normalmente http://localhost:8126/info.
  • Asegúrate de que no hay errores de transmisión del Agent relacionados con tramos (spans) en los logs de tu rastreador.
  • Si el Agent se instala en una máquina independiente, comprueba que DD_AGENT_HOST y, opcionalmente, DD_TRACE_AGENT_PORT están configurados, o que DD_TRACE_AGENT_URL está configurado para la biblioteca de rastreo de aplicaciones.

Comprobar si los tramos se transmiten correctamente a Datadog

Los datos de ASM se envían a través de tramos. Para confirmar si los tramos se transmiten correctamente a Datadog, comprueba si tu rastreador contiene logs con un aspecto parecido al siguiente:

2021-11-29 21:19:58 CET | TRACE | INFO | (pkg/trace/info/stats.go:111 in LogStats) | [lang:.NET lang_version:5.0.10 interpreter:.NET tracer_version:1.30.1.0 endpoint_version:v0.4] -> traces received: 2, traces filtered: 0, traces amount: 1230 bytes, events extracted: 0, events sampled: 0

Si no se transmiten tramos, el rastreador contendrá logs con un aspecto parecido al siguiente:

2021-11-29 21:18:48 CET | TRACE | INFO | (pkg/trace/info/stats.go:104 in LogStats) | No data received

Solucionar problemas por lenguaje

A continuación se indican los pasos adicionales para solucionar problemas para lenguajes específicos.

Confirmar que ASM está habilitado en la aplicación en ejecución

Los logs de inicio del rastreador muestran la configuración del rastreador y si ASM está habilitado o no. Si appsec es true, entonces ASM está habilitado y funcionando.

Por ejemplo, el siguiente log de inicio muestra que ASM está deshabilitado:

2022/02/17 14:49:00 Datadog Tracer v1.36.0 INFO: DATADOG TRACER CONFIGURATION {"date":"2022-02-17T14:49:00+01:00","os_name":"Linux (Unknown Distribution)","os_version":"5.13.0","version":"v1.36.0","lang":"Go","lang_version":"go1.17.1","env":"prod","service":"grpcserver","agent_url":"http://localhost:8126/v0.4/traces","debug":false,"analytics_enabled":false,"sample_rate":"NaN","sampling_rules":null,"sampling_rules_error":"","service_mappings":null,"tags":{"runtime-id":"69d99219-b68f-4718-9419-fa173a79351e"},"runtime_metrics_enabled":false,"health_metrics_enabled":false,"profiler_code_hotspots_enabled":false,"profiler_endpoints_enabled":false,"dd_version":"","architecture":"amd64","global_service":"","lambda_mode":"false","appsec":false,"agent_features":{"DropP0s":false,"Stats":false,"StatsdPort":0}}

Habilitar logs de depuración

Habilita logs de depuración con la variable de entorno DD_TRACE_DEBUG=1. La biblioteca ASM generará logs para el resultado de error estándar.

Nota: ASM sólo envía logs cuando está habilitado. Utiliza la variable de entorno DD_APPSEC_ENABLED=1 para habilitar ASM.

El Análisis de composición del software no ha detectado vulnerabilidades

Hay una serie de pasos que debes ejecutar correctamente para que la información sobre las vulnerabilidades aparezca en la vista de seguridad del catálogo de servicios o en el Explorador de vulnerabilidades. Al investigar este problema, es importante comprobar cada paso.

Confirmar que ASM está habilitado

Para comprobar si ASM se está ejecutando, puedes utilizar la métrica datadog.apm.appsec_host.

  1. Ve a Métricas > Resumen en Datadog.
  2. Busca la métrica datadog.apm.appsec_host . Si la métrica no existe, entonces no hay servicios ejecutando ASM. Si la métrica existe, los servicios se informan mediante las etiquetas (tags) de métricas host y service.
  3. Selecciona la métrica y busca service en la sección Etiquetas para ver qué servicios están ejecutando ASM.

Si no ves datadog.apm.appsec_host, comprueba las instrucciones en la aplicación para confirmar que se han completado todos los pasos de la configuración inicial.

Los datos de ASM se envían con trazas de APM. Consulta Solucionar problemas de APM para confirmar la configuración de APM y comprobar si hay errores de conexión.

Confirmar que las versiones del rastreador están actualizadas

Consulte la documentación de configuración del producto Application Security para validar que está utilizando la versión correcta del rastreador. Estas versiones mínimas son necesarias para comenzar a enviar datos de telemetría que incluyan información de biblioteca.

Garantizar la comunicación de los datos de telemetría

Asegúrate de que la variable de entorno DD_INSTRUMENTATION_TELEMETRY_ENABLED (DD_TRACE_TELEMETRY_ENABLED para Node.js) está configurada como true o que la propiedad del sistema correspondiente a tu lenguaje está habilitada. Por ejemplo, en Java: -Ddd.instrumentation.telemetry.enabled=true

Deshabilitar la gestión de amenazas y la protección

Para deshabilitar la gestión de amenazas, elimina la variable de entorno DD_APPSEC_ENABLED=true de la configuración de tu aplicación y reinicia tu servicio.

Si no has configurado ninguna variable de entorno DD_APPSEC_ENABLED=true para tu servicio, realiza una de las siguientes acciones:

  • Si se trata de un servicio PHP: configura explícitamente la variable de entorno como DD_APPSEC_ENABLED=false y reinicia tu servicio.
  • Si la gestión de amenazas se ha activado mediante configuración remota, haz lo siguiente:
    1. Ve a Servicios (ASM > Catálogo > Servicios).
    2. Selecciona Gestión de amenazas en modo monitorización.
    3. En la faceta Gestión de amenazas, activa Monitoring Only, No data, and Ready to block (Sólo monitorización, Sin datos y Listo para el bloqueo).
    4. Haz clic en un servicio.
    5. En los detalles del servicio, en Detección de amenazas, haz clic en Deactivate (Desactivar).
Si la gestión de amenazas se ha activado mediante Configuración remota, puedes utilizar el botón Deactivate (Desactivar). Si la gestión de amenazas se ha activado mediante configuración local, el botón Desactivar no es una opción.
  • Para desactivar la gestión de amenazas en tus servicios masivos, haz lo siguiente:
    1. Ve a Servicios.
    2. En la faceta Gestión de amenazas, activa Monitoring Only, No data, and Ready to block (Sólo monitorización, Sin datos y Listo para el bloqueo).
    3. Selecciona las casillas de verificación de servicios en las que quieres deshabilitar la detección de amenazas.
    4. En Acciones masivas, selecciona Desactivar detección de amenazas en (número) servicios.

Deshabilitación del Análisis de composición del software

Para deshabilitar el Análisis de composición del software:

  • Ve a Servicios, selecciona Análisis de composición del software (SCA), haz clic en tu servicio y, a continuación, haz clic en Deactivate (Desactivar).
  • Para deshabilitar el Análisis de composición del software en tus servicios masivos, haz clic en la casilla de verificación de la cabecera de la lista y, a continuación, selecciona **Desactivar el Análisis de composición del software (SCA) en (número) servicios en Acciones masivas.
  • Para deshabilitarr el Análisis de composición del software utilizando la variable de entornoDD_APPSEC_SCA_ENABLED, elimina la variable de entorno DD_APPSEC_SCA_ENABLED=true de la configuración de tu aplicación y reinicia tu servicio. Esto no se aplica a las aplicaciones PHP.

Deshabilitar la seguridad del código

Para deshabilitar la detección de vulnerabilidades Seguridad del código, elimina la variable de entorno DD_IAST_ENABLED=true de la configuración de tu aplicación y reinicia tu servicio. Esto no se aplica a las aplicaciones PHP.

Si no hay ninguna variable de entorno DD_IAST_ENABLED=true para tu servicio, haz lo siguiente:

  1. Ve a Servicios.
  2. Selecciona Seguridad del código.
  3. Haz clic en un servicio.
  4. En los detalles del servicio, en Detección de vulnerabilidades, haz clic en Deactivate (Desactivar).

No se detectan algunas o todas las vulnerabilidades IAST/Código personalizado

Confirmar que IAST está habilidado

Asegúrate de que la variable de entorno DD_IAST_ENABLED está configurada como true o que la propiedad del sistema correspondiente a tu lenguaje está habilitada.

En Python+Flask, llama a la función de parche del punto de entrada

Si estás ejecutando una aplicación Flask, asegúrate de que estás llamando a la función ddtrace_iast_flask_patch() en el nivel superior del módulo, antes de llamar a app.run(). Para obtener más información, consulta la documentación de la integración Flask.

¿Necesitas más ayuda?

Si sigues teniendo problemas con ASM, ponte en contacto con el servicio de asistencia de Datadog y proporciona la siguiente información:

Referencias adicionales

PREVIEWING: dgreen15/fixing-image-self-service-actions