Activar la protección de aplicaciones y API para Go

Este producto no es compatible con el sitio Datadog seleccionado. ().

Puedes monitorizar la seguridad de las aplicaciones Go que se ejecutan en Docker, Kubernetes y Amazon ECS.

Prerequisites

Activar la protección de aplicaciones y API

Para empezar

  1. Añade a las dependencias go.mod de tu programa la última versión de la biblioteca Go de Datadog (versión 1.53.0 o posterior):

    $ go get -v -u gopkg.in/DataDog/dd-trace-go.v1 # v1
    # $ go get -v -u github.com/DataDog/dd-trace-go/v2/ddtrace/tracer # v2
    
  2. Datadog ofrece una serie de paquetes conectables que proporcionan asistencia inmediata para la instrumentación de una serie de bibliotecas Go y marcos. En la página de requisitos de compatibilidad encontrarás una lista de estos paquetes. Importa estos paquetes en tu aplicación y sigue las instrucciones de configuración que aparecen junto a cada integración.

  3. Vuelve a compilar tu programa con la protección de aplicaciones y API activada:

    $ go build -v -tags appsec my-program
    

    Notas:

    • La etiqueta (tag) appsec de la compilación de Go no es necesaria si CGO está habilitado con CGO_ENABLED=1.
    • Datadog WAF necesita las siguientes bibliotecas compartidas en Linux: libc.so.6 y libpthread.so.0.
    • Cuando se utiliza la etiqueta appsec de la compilación y CGO está deshabilitado, el binario producido permanece vinculado dinámicamente a estas bibliotecas.
    • La etiqueta (tag) datadog.no_waf de creación Go se puede utilizar para desactivar la protección de aplicaciones y API en el momento de la creación en cualquier situación en la que los requisitos anteriores sean un obstáculo.
  4. Vuelve a desplegar tu servicio Go y activa la protección de aplicaciones y API configurando las variables de entorno:

    $ env DD_APPSEC_ENABLED=true DD_APM_TRACING_ENABLED=false ./my-program
    

    O uno de los siguientes métodos, dependiendo de dónde se ejecute la aplicación:

    Añade los siguientes valores de variables de entorno a tu línea de comandos Docker:

    $ docker run -e DD_APPSEC_ENABLED=true -e DD_APM_TRACING_ENABLED=false [...]
    

    Añade los siguientes valores de variables de entorno al archivo Docker de tu contenedor de aplicaciones:

    ENV DD_APPSEC_ENABLED=true
    ENV DD_APM_TRACING_ENABLED=false
    

    Actualiza el archivo de configuración de despliegue de tu aplicación para APM y añade las variables de entorno de protección de aplicaciones y API:

    spec:
      template:
        spec:
          containers:
            - name: <CONTAINER_NAME>
              image: <CONTAINER_IMAGE>/<TAG>
              env:
                - name: DD_APPSEC_ENABLED
                  value: "true"
                - name: DD_APM_TRACING_ENABLED
                  value: "false"
    

    Actualiza el archivo JSON de definición de tareas ECS de tu aplicación, añadiendo esto en la sección de entorno:

    "environment": [
      ...,
      {
        "name": "DD_APPSEC_ENABLED",
        "value": "true"
      },
      {
        "name": "DD_APM_TRACING_ENABLED",
        "value": "false"
      }
    ]
    

    The library collects security data from your application and sends it to the Agent, which sends it to Datadog, where out-of-the-box detection rules flag attacker techniques and potential misconfigurations so you can take steps to remediate.

  5. To see App and API Protection threat detection in action, send known attack patterns to your application. For example, trigger the Security Scanner Detected rule by running a file that contains the following curl script:

    for ((i=1;i<=250;i++)); 
    do
    # Target existing service’s routes
    curl https://your-application-url/existing-route -A Arachni/v1.0;
    # Target non existing service’s routes
    curl https://your-application-url/non-existing-route -A Arachni/v1.0;
    done

    A few minutes after you enable your application and exercise it, threat information appears in the Application Trace and Signals Explorer in Datadog.

Referencias adicionales