En esta página hablamos sobre la seguridad de los datos que se envían a Datadog. Si estás buscando productos y funciones para proteger las aplicaciones y las soluciones en la nube, consulta la sección Seguridad.
Es posible enviar datos al servicio Datadog utilizando un Agent instalado localmente o a través de nuestra API HTTP. Aunque para utilizar Datadog no es estrictamente necesario utilizar el Datadog Agent, la gran mayoría de los clientes aprovechan esta posibilidad. Este artículo describe las principales funciones y características de seguridad disponibles para garantizar la seguridad de tu entorno.
Distribución del Agent
Los repositorios oficiales y los paquetes binarios del Agent están firmados. Para verificar el canal de distribución, comprueba la firma con una de las siguientes claves públicas:
Paquetes DEB de Linux y metadatos del repositorio:
Huella digital del certificado de Apple FDD2ADF623EA75E62C6DC6DBFBA7520CA549AB7314E660D78B0E3DCCF15B2FBA
En Debian y Ubuntu, el paquete datadog-agent tiene una dependencia relativa del paquete de datadog-signing-keys, lo que hace que las claves anteriores sean de confianza para APT. Al mantener el paquete actualizado, te aseguras de que las últimas claves de firma están presentes en tu sistema.
Windows MSI
Para verificar la firma de un archivo de instalación del Datadog Agent en Windows, canaliza la salida de Get-AuthenticodeSignature a través de FormatList (fl) y asegúrate de que:
el estado es válido
el certificado está firmado por Datadog, Inc
el emisor es DigiCert
Por ejemplo, para verificar un archivo .msi denominado ddagent-cli-7.49.1.msi:
Si la salida del comando es A certificate chain could not be built to a trusted root authority, el equipo puede necesitar una actualización de la CA raíz DigiCert.
Seguridad de la información
El Datadog Agent envía datos a Datadog a través de una conexión TCP cifrada TLS por defecto. A partir de la versión 6, el Agent puede configurarse para imponer una versión mínima de TLS al conectarse a Datadog. Si necesitas utilizar una criptografía sólida (p. ej., para cumplir con los requisitos PCI), debes utilizar el Agent v6 o v7 y establecer el parámetro min_tls_version: 'tlsv1.2' o force_tls_12: true para el Agent v6.39.0/v7.39.0 o versiones anteriores, en el archivo de configuración del Agent.
Redes y proxy
Datadog es un producto SaaS: para enviar datos de monitorización es necesario establecer una conexión saliente desde tu red a la Internet pública. El Agent siempre inicia el tráfico a Datadog desde una conexión TCP cifrada TLS por defecto. Nunca se inician sesiones desde Datadog hacia el Agent. Para obtener más información sobre la configuración de cortafuegos para permitir la lista de dominios y puertos de Datadog necesarios, consulta la página Red del Agent. Además, si quieres monitorizar hosts sin una conexión directa a la Internet pública o con tráfico saliente restringido considera la posibilidad de enviar datos de monitorización desde un proxy.
Enmascarar logs del Agent
El Datadog Agent genera logs locales para facilitar la resolución de problemas del Agent, si es necesario. Como medida de seguridad, estos logs locales se filtran en busca de algunas palabras clave y patrones específicos que podrían indicar una posible credencial (por ejemplo, clave de API, contraseña y palabras clave de token), que luego se enmascaran antes de escribirse en el disco.
Servidor HTTPS local
El Agent v6 y v7 exponen una API HTTPS local para facilitar la comunicación entre un Agent en ejecución y las herramientas del Agent (por ejemplo, los comandos datadog-agent). Sólo se puede acceder al servidor de API desde la interfaz de red local (localhost/127.0.0.1) y la autenticación se realiza mediante un token que sólo puede leer el usuario con el que se ejecuta el Agent. La comunicación con la API HTTPS local está cifrada durante el transporte para protegerla de posibles interceptaciones en localhost.
GUI del Agent
El Agent v6 y v7 viene con una interfaz gráfica de usuario (GUI) por defecto que se inicia en tu navegador web predeterminado. La GUI sólo se inicia si el usuario que la ejecuta tiene los permisos de usuario adecuados, incluyendo la capacidad de abrir el archivo de configuración del Agent. Sólo se puede acceder a la GUI desde la interfaz de red local (localhost/127.0.0.1). Además, las cookies del usuario deben estar habilitadas, ya que la GUI genera y guarda un token que se utiliza para autenticar todas las comunicaciones con el servidor de la GUI, así como para proteger contra ataques de falsificación de petición en sitios cruzados (CSRF). Si es necesario, también es posible desactivar por completo la GUI.
Análisis de seguridad del Agent
El programa de gestión de vulnerabilidades de Datadog incluye evaluaciones periódicas de la infraestructura de soporte y los componentes de las aplicaciones, incluidos los análisis activos de los principales servicios de soporte. Los equipos de seguridad de Datadog realizan análisis mensuales para identificar vulnerabilidades en la configuración y el software, y realizan un seguimiento de la corrección de los resultados de acuerdo con la política de gestión de vulnerabilidades de Datadog.
En lo que respecta específicamente a su Agent de contenedores, Datadog realiza análisis estáticos de vulnerabilidades de forma regular a través de clair by CoreOS y snyk.io. Además, Datadog aprovecha el análisis de seguridad como parte de sus lanzamientos del Agent de contenedores al Docker Trusted Registry, así como al catálogo de contenedores de Red Hat. Además del programa interno de gestión de vulnerabilidades de Datadog, Datadog también se asocia con proveedores de seguridad para contenedores.
Si crees que has descubierto un fallo en la seguridad de Datadog, escribe a la dirección security@datadoghq.com y nos pondremos en contacto contigo en un plazo de 24 horas. La clave PGP de Datadog está disponible para su descarga, en caso de que necesites cifrar las comunicaciones con nosotros. Te pedimos que no divulgues públicamente el problema hasta que hayamos tenido la oportunidad de solucionarlo.
Ejecución como usuario sin privilegios
Por defecto, el Agent se ejecuta como el usuario dd-agent en Linux y como la cuenta ddagentuser en Windows. Estas son las excepciones:
El system-probe se ejecuta como root en Linux y como LOCAL_SYSTEM en Windows.
El process-agent se ejecuta como LOCAL_SYSTEM en Windows.
El security-agent se ejecuta como root en Linux.
Gestión de secretos
Si necesitas evitar el almacenamiento de secretos en texto simple en los archivos de configuración del Agent, puedes utilizar el paquete de gestión de secretos. Este paquete permite al Agent llamar a un ejecutable proporcionado por el usuario para que gestione la recuperación o el descifrado de secretos, que el Agent carga posteriormente en la memoria. Puedes diseñar tu ejecutable de acuerdo con tu servicio de gestión de claves, método de autenticación y flujo de trabajo de integración continua preferidos.
Para obtener más información, consulta la documentación sobre la gestión de secretos.
Recopilación de telemetría
El Agent en sitios no gubernamentales recopila información del entorno, del rendimiento y del uso de funciones del Datadog Agent. Cuando el Agent detecta un sitio gubernamental o se utiliza el proxy FIPS del Datadog Agent, el Agent desactiva automáticamente la recopilación de telemetría. Cuando la detección es imposible (por ejemplo, si se está utilizando un proxy), se emite la telemetría del Agent, pero se abandona inmediatamente en el consumo de Datadog. Para evitar que se emitan estos datos en primer lugar, Datadog recomienda desactivar explícitamente la telemetría del Agent, actualizando el parámetro agent_telemetry en el archivo de configuración del Agent, como se muestra en el ejemplo siguiente.
agent_telemetry:enabled:false
DD_AGENT_TELEMETRY_ENABLED=false
Datadog puede recopilar información sobre el entorno, el rendimiento y el uso de funciones del Datadog Agent. Esto puede incluir logs de diagnóstico y volcados de memoria del Datadog Agent con trazas (traces) de stack tecnológico ofuscadas para respaldar y mejorar el Datadog Agent.
Puedes desactivar la recopilación de telemetría actualizando el parámetro agent_telemetry en el archivo de configuración del Agent, como se muestra en el siguiente ejemplo.