Empezando con Code Security

Información general

Datadog Code Security te ayuda a proteger y mantener el código de origen de tus aplicaciones y las bibliotecas de código abierto desde el desarrollo hasta la producción.

Te ofrece un conjunto de herramientas para ayudarte a proteger tu código a lo largo del ciclo de vida de desarrollo del software:

  • Static Code Analysis (SAST) utiliza un método de test estático de seguridad de las aplicaciones para analizar tus repositorios en búsqueda de problemas de seguridad y calidad en el código de origen, y te ofrece sugerencias de corrección para evitar que estos problemas lleguen a la producción.
  • Software Composition Analysis (SCA) detecta las bibliotecas de código abierto vulnerables que están presentes en tus repositorios y que afectan a tus servicios en tiempo de ejecución, y te ayuda a proteger y mantener tu cadena de suministro de software.
  • Runtime Code Analysis (IAST) utiliza un método de test interactivo de seguridad de las aplicaciones para detectar vulnerabilidades que afectan a tus servicios en tiempo de ejecución.

Configurar Code Security

Bibliotecas de código abierto

Datadog Software Composition Analysis detecta vulnerabilidades de biblioteca y cataloga las dependencias en tu base de código y tus servicios en ejecución.

Consulta Software Composition Analysis para configurar la detección estática de vulnerabilidades o bibliotecas en tiempo de ejecución.

Código de origen

Existen dos maneras de proteger y mantener tu código de origen con Datadog:


Integraciones de herramientaa para desarrolladores

Activar comentarios en solicitudes de extracción

Datadog puede actuar como un revisor automático de código para señalar vulnerabilidades e infracciones de calidad en las solicitudes de extracción de GitHub. Para obtener más información, consulta Solicitudes de extracción de GitHub.

Revisión del código de Datadog en Github

Instalar integraciones IDE

Instala los complementos IDE de Datadog para ejecutar análisis de Static Code Analysis (SAST) localmente y ver los resultados directamente en tu editor de código. Puedes detectar y corregir problemas como vulnerabilidades de seguridad, problemas de mantenibilidad o errores en tu código antes de confirmar los cambios.

Para empezar a ejecutar análisis de código en tu IDE, consulta la documentación correspondiente al editor de código de tu elección.

Consulta la documentación para ver información sobre las siguientes integraciones:


Personalizar la configuración de tu repositorio

En parámetros de Code Security, puedes gestionar qué repositorios tienen los comentarios en solicitudes de extracción habilitados, así como personalizar la configuración de qué reglas de Static Code Analysis (SAST) se aplican a través o dentro de los repositorios. Para conocer todas las reglas por defecto proporcionadas por Datadog, consulta Reglas SAST.

Configurar Puertas de calidad

Datadog proporciona Puertas de calidad como una funcionalidad de la plataforma para ayudarte a mantener y hacer cumplir las normas de seguridad y calidad en los cambios introducidos en tu base de código. Para obtener más información, consulta Configuración de puertas de calidad.

Priorizar las vulnerabilidades con el contexto del tiempo de ejecución

Code Security ofrece vistas centradas en las vulnerabilidades de todas las vulnerabilidades de biblioteca y código detectadas, tanto a partir del análisis estático de repositorios como de la detección de servicios en tiempo de ejecución.

Explorar vulnerabilidades

Para las vulnerabilidades de biblioteca, cada fila de la tabla representa una vulnerabilidad específica que afecta a una versión de biblioteca. En función de si tienes activada la detección estática o en tiempo de ejecución, la columna Detectado en muestra los repositorios o servicios específicos afectados por esta vulnerabilidad.

En el panel lateral de una única vulnerabilidad de biblioteca en SCA, además de los detalles sobre la vulnerabilidad, Datadog muestra:

  • Un desglose de la gravedad de la instancia de mayor gravedad de esta vulnerabilidad observada en tus repositorios y servicios. Para cada localización detectada de la vulnerabilidad en tus repositorios o servicios, Datadog ajusta la puntuación de la gravedad de base de la vulnerabilidad basándose en factores del entorno. Para obtener más información, consulta Puntuación de la gravedad de Datadog.
  • Una tabla Repositorios de todas las instancias en las que se detectó la vulnerabilidad en tus repositorios. Para cada instancia, Datadog muestra si la dependencia está clasificada como directa o transitiva, el estado de corrección de la vulnerabilidad, así como los pasos específicos de la corrección.
  • Una tabla Servicios afectados de todos los servicios en ejecución afectados por esta vulnerabilidad de biblioteca. Un servicio está afectado por una vulnerabilidad de biblioteca si la biblioteca fue cargada en tiempo de ejecución y detectada por bibliotecas de rastreo de aplicaciones de Datadog.

La gravedad se puntúa de la siguiente manera:

Puntuación CVSSCalificación cualitativa
0.0Sin gravedad
0.1 - 3.9Baja
4.0 - 6.9Media
7.0 - 8.9Alta
9.0 - 10.0Crítica

Explorar resultados por repositorio

Code Security también ofrece vistas centradas en los repositorios de los resultados de los análisis estáticos, lo que permite un filtrado granular de todas las ramas y confirmaciones de los repositorios analizados.

Haz clic en un repositorio en la página Repositorios para acceder a una vista más detallada donde puedes personalizar la consulta de búsqueda por rama (primero aparece la rama por defecto) y por commit (empezando por el más reciente).

Puedes utilizar las siguientes facetas predefinidas para crear una consulta de búsqueda a fin de identificar y solucionar malas prácticas de codificación, en la pestaña Calidad del código, o riesgos de seguridad, en la pestaña Vulnerabilidades de código.

Nombre de la facetaDescripción
Estado del resultadoFiltra los resultados en función del estado de finalización del análisis.
ID de reglaNormas específicas que activaron los hallazgos.
Nombre de la herramientaDetermina qué herramientas contribuyeron al análisis.
CWE (Common Weakness Enumeration)Filtra los resultados por categorías de vulnerabilidad reconocidas.
Tiene correccionesFiltra los problemas para los que existen correcciones sugeridas.
Mensaje de resultadoContiene descripciones concisas o mensajes asociados a los resultados.
Descripción de la reglaContiene la justificación de cada regla.
Fuente de origenContiene los archivos en los que se detectaron problemas.
Versión de la herramientaFiltra los resultados por la versión de las herramientas utilizadas.

Puedes acceder a las correcciones sugeridas directamente desde los resultados para abordar las vulnerabilidades de seguridad o mejorar las prácticas de calidad del código.

Corrección de código sugerida en la pestaña Correcciones de un resultado de Code Analysis

Puedes utilizar las siguientes facetas predefinidas para crear una consulta de búsqueda a fin de identificar y tratar los riesgos de seguridad en bibliotecas de terceros en la pestaña Vulnerabilidades de bibliotecas o revisar tu inventario de bibliotecas en la pestaña Catálogo de bibliotecas.

Nombre de la facetaDescripción
Nombre de la dependenciaIdentifica las bibliotecas por sus nombres.
Versión de la dependenciaFiltros por versiones específicas de bibliotecas.
LenguajeOrdena bibliotecas por el lenguaje de programación.
PuntuaciónOrdena la puntuación de riesgo o calidad de las dependencias.
GravedadFiltra las vulnerabilidades en función de su gravedad.
PlataformaDistingue bibliotecas por la plataforma a la que van destinadas.

Puedes acceder a los informes sobre vulnerabilidades y localizar los archivos fuente en los que se detectó la vulnerabilidad en tus proyectos, junto con información sobre los propietarios de código del archivo.

Enlace al código fuente directamente en GitHub, a partir de una vulnerabilidad de biblioteca detectada

Notificar, corregir e informar

Code Security te ayuda a configurar flujos de trabajo para realizar un seguimiento y gestionar la corrección de los hallazgos:

  • Configura reglas de notificación para notificar a tu(s) equipo(s) los nuevos hallazgos a través de Slack, Jira, correo electrónico, etc.
  • Haz un seguimiento de las vulnerabilidades por servicio y por equipo en la página Resumen de Code Security.

Vincular resultados a servicios y equipos de Datadog

Vincular resultados a servicios

Datadog asocia los resultados del análisis del código y de la biblioteca con los servicios pertinentes mediante los siguientes mecanismos:

  1. Identificación de la localización del código asociado a un servicio mediante el Catálogo de software
  2. Detección de patrones de uso de archivos en productos adicionales de Datadog.
  3. Búsqueda del nombre del servicio en la ruta del archivo o el repositorio

Si un método tiene éxito, no se realizan más intentos de asignación. A continuación se detalla cada método de asignación.

Identificación de la localización del código en el Catálogo de software

La versión del esquema v3 y posteriores del Catálogo de software te permiten añadir la asignación del código de localización de tu servicio. La sección codeLocations especifica la localización del repositorio que contiene el código y sus rutas asociadas.

El atributo paths es una lista de globs que deben coincidir con las rutas del repositorio.

entity.datadog.yaml

apiVersion: v3
kind: service
metadata:
  name: my-service
datadog:
  codeLocations:
    - repositoryURL: https://github.com/myorganization/myrepo.git
      paths:
        - path/to/service/code/**

Detección de patrones de uso de archivos

Datadog detecta el uso de archivos en productos adicionales como Error Tracking y asocia archivos al servicio de tiempo de ejecución. Por ejemplo, si un servicio llamado foo tiene una entrada de log o una traza (trace) de stack tecnológico que contiene un archivo con una ruta /modules/foo/bar.py, se asocian los archivos /modules/foo/bar.py al servicio foo.

Detección de nombres de servicios en rutas y nombres de repositorios

Datadog detecta nombres de servicios en rutas y nombres de repositorios y asocia el archivo al servicio, si se encuentra una coincidencia.

Para una coincidencia de repositorios, si existe un servicio llamado myservice y la URL del repositorio es https://github.com/myorganization/myservice.git, se asocia myservice a todos los archivos del repositorio.

Si no se encuentra ninguna coincidencia de repositorios, Datadog intenta encontrar una coincidencia en la path del archivo. Si existe un servicio llamado myservice y la ruta es /path/to/myservice/foo.py, el archivo se asocia a myservice ya que el nombre del servicio forma parte de la ruta. Si hay dos servicios presentes en la ruta, se selecciona el nombre del servicio más cercano al nombre del archivo.

Vincular resultados a equipos

Datadog asocia automáticamente el equipo adjunto a un servicio cuando se detecta una infracción o vulnerabilidad. Por ejemplo, si el archivo domains/ecommerce/apps/myservice/foo.py está asociado a myservice, entonces el equipo myservice se asociará a cualquier infracción detectada en este archivo.

Si no se encuentran servicios o equipos, Datadog utiliza el archivo CODEOWNERS de tu repositorio. El archivo CODEOWNERS determina a qué equipo pertenece un archivo en tu proveedor Git.

Nota: Para que esta característica funcione correctamente, debes asignar con precisión tus equipos de proveedores Git a tus equipos de Datadog.