Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

App and API Protection est en préversion sur le site Datadog Government US1-FED.

Vous pouvez surveiller la protection des applications et des API pour les applications .NET exécutées dans Docker, Kubernetes, Amazon ECS et AWS Fargate.

Prerequisites

1-Click Enablement
If your service is running with an Agent with Remote Configuration enabled and a tracing library version that supports it, hover over the Not Enabled indicator in the AAP Status column and click Enable AAP. There's no need to re-launch the service with the DD_APPSEC_ENABLED=true or --enable-appsec flags.

Activation de la détection des menaces

Démarrer

  1. Mettez à jour votre bibliothèque Datadog .NET vers au moins la version 2.2.0 pour l’architecture de votre système d’exploitation cible.

    Pour vérifier que les versions du langage et du framework de votre service sont prises en charge pour les fonctionnalités AAP, consultez Compatibilité.

  2. Activez AAP en définissant la variable d’environnement DD_APPSEC_ENABLED sur true. Par exemple, sur Windows auto-hébergé, exécutez l’extrait PowerShell suivant dans le cadre de votre script de démarrage d’application :

    $target=[System.EnvironmentVariableTarget]::Process
    [System.Environment]::SetEnvironmentVariable("DD_APPSEC_ENABLED","true",$target)
    

    Ou l’une des méthodes suivantes, selon l’endroit où votre application s’exécute :

    Dans une console Windows :

    rem Set environment variables
    SET CORECLR_ENABLE_PROFILING=1
    SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    SET DD_APPSEC_ENABLED=true
    
    rem Start application
    dotnet.exe example.dll
    

    Exécutez la commande PowerShell suivante en tant qu’administrateur pour configurer les variables d’environnement nécessaires dans le registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment et redémarrez IIS.

    $target=[System.EnvironmentVariableTarget]::Machine
    [System.Environment]::SetEnvironmentVariable("DD_APPSEC_ENABLED","true",$target)
    net stop was /y
    net start w3svc
    

    Ou, pour les services IIS exclusivement, sur WAS et W3SVC avec PowerShell en tant qu’administrateur, exécutez :

    $appsecPart = "DD_APPSEC_ENABLED=true"
    [string[]] $defaultvariable = @("CORECLR_ENABLE_PROFILING=1", "CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}", $appsecPart)
    
    function Add-AppSec {
    
        param (
            $path
        )
        $v = (Get-ItemProperty -Path $path).Environment
        If ($v -eq $null) {
            Set-ItemProperty -Path $path -Name "Environment" -Value $defaultvariable
        }
        ElseIf (-not ($v -match $appsecPart)) {
            $v += " " + $appsecPart;
            Set-ItemProperty -Path $path -Name "Environment" -Value $v
        }
    }
    Add-AppSec -path "HKLM:SYSTEM\CurrentControlSet\Services\WAS\"
    Add-AppSec -path "HKLM:SYSTEM\CurrentControlSet\Services\W3SVC\"
    
    net stop was /y
    net start w3svc
    

    Ou, pour éviter de modifier les clés de registre, modifiez les paramètres d’application dans le fichier web.config de votre application :

    <configuration>
      <appSettings>
            <add key="DD_APPSEC_ENABLED" value="true"/>
      </appSettings>
    </configuration>
    

    Cela peut également être effectué au niveau des pools d’applications IIS dans le fichier applicationHost.config, généralement dans C:\Windows\System32\inetsrv\config\ :

    <system.applicationHost>
    
        <applicationPools>
            <add name="DefaultAppPool">
                <environmentVariables>
                    <add name="DD_APPSEC_ENABLED" value="true" />
                </environmentVariables>
                (...)
    

    Ajoutez la ligne suivante à la configuration de votre application :

    DD_APPSEC_ENABLED=true
    

    Mettez à jour votre conteneur de configuration pour l’APM en ajoutant l’argument suivant dans votre commande docker run :

    docker run [...] -e DD_APPSEC_ENABLED=true [...]
    

    Ajoutez la valeur de variable d’environnement suivante le Dockerfile de votre conteneur :

    ENV DD_APPSEC_ENABLED=true
    

    Mettez à jour votre fichier de configuration de déploiement pour APM et ajoutez la variable d’environnement AAP :

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

    Mettez à jour le fichier JSON de votre définition de tâche ECS en ajoutant la section environnement suivante :

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

    Ajoutez la ligne suivante dans le Dockerfile de votre conteneur :

    ENV DD_APPSEC_ENABLED=true
    
  3. Redémarrez l’application en effectuant un arrêt et un démarrage complets.

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

  4. 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 dd-test-scanner-log;
    # Target non existing service's routes
    curl https://your-application-url/non-existing-route -A dd-test-scanner-log;
    done

    Note: The dd-test-scanner-log value is supported in the most recent releases.

    A few minutes after you enable your application and send known attack patterns to it, threat information appears in the Application Signals Explorer and vulnerability information appears in the Vulnerabilities explorer.

Utilisation d’AAP sans traçage APM

Si vous souhaitez utiliser [App and API Protection] sans la fonctionnalité de traçage APM, vous pouvez déployer avec le traçage désactivé :

  1. Configurez votre SDK avec la variable d’environnement DD_APM_TRACING_ENABLED=false en plus de la variable d’environnement DD_APPSEC_ENABLED=true.
  2. Cette configuration réduira la quantité de données APM envoyées à Datadog au minimum requis par les produits App and API Protection.

Pour plus de détails, consultez [Standalone App and API Protection][standalone_billing_guide]. [standalone_billing_guide]: /security/application_security/guide/standalone_application_security/

4. Verify setup

To verify that App and API Protection is working correctly:

  1. Send some traffic to your application
  2. Check the Application Signals Explorer in Datadog
  3. Look for security signals and vulnerabilities

Pour aller plus loin