Procédures d'analyse dynamique

ZAP

Outil d'analyse Web Mobile Local API Extension Serverless Instructions
OWASP® Zed Attack Proxy (ZAP)

Utilisez le conteneur Docker OWASP ZAP pour effectuer des analyses dynamiques automatisées (DAST) sur votre application. Les fichiers de configuration prédéfinis contiennent déjà tous les CWE nécessaires. Il vous suffit de l'ajouter à votre environnement et à la commande docker run.

Pour connaître la définition de chaque type, cliquez ici. Types d'applications

Vous pouvez effectuer une analyse complète des applications Web, mobiles ou internes en procédant comme suit:

  1. Les analyses DAST et API seront exécutées à l'aide de l'image Docker ZAP. Pour les applications Web, mobiles ou internes, l'analyse ZAP complète doit être exécutée sur un environnement prod-1 ou de préproduction. 

  2. Téléchargez le fichier de configuration zap-casa-config.conf et accédez à son répertoire. 

  1. Générez un fichier de contexte sur lequel exécuter votre analyse. Pour en savoir plus, consultez les instructions sur l'authentification ci-dessous.

  1. Exécutez la commande suivante : 

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py 
-t https://example.com -P 8080 
-c zap-casa-config.conf 
-x results-full.xml -n example.context -U username
  1. La sortie est enregistrée dans un fichier XML (exemple joint : zap-results-full.xml).

Une analyse d'API peut être effectuée en procédant comme suit:

  1. Pour les analyses d'API, utilisez le fichier de configuration zap-casa-api-config.conf

  1. Accédez à son répertoire et exécutez la commande suivante :

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
-t owasp/zap2docker-stable zap-api-scan.py 
-t https://example.com -f openapi-P 8080 
-c zap-casa-api-config.conf 
-x results-full.xml
  1. La sortie est enregistrée dans un fichier XML (exemple ci-joint: zap-results-api.xml).

Authentification

Les analyses ZAP doivent être effectuées avec authentification pour comprendre où les données utilisateur sont stockées et où elles sont accessibles. Vous devez configurer cette fonctionnalité avant d'exécuter vos analyses. L'image Docker du ZAP autorise deux arguments liés à l'authentification:

-n fichier_contexte

Fichier de contexte qui sera chargé avant l'analyse de la cible

-U utilisateur

Nom d'utilisateur à utiliser pour les analyses authentifiées. L'utilisateur doit être défini dans le fichier de contexte donné. 

Pour définir ces paramètres, vous devez créer un fichier de contexte. Pour ce faire, utilisez l'interface utilisateur de ZAP pour ordinateur.

contexte Zap
  1. Définissez le mécanisme d'authentification. ZAP est actuellement compatible avec cinq approches d'authentification :

    • Authentification manuelle

    • Authentification par formulaire

    • Authentification HTTP/NTLM

    • Authentification basée sur un script

    • Authentification basée sur JSON

Authentification zap
  1. Définissez vos paramètres d'authentification. Il s'agit généralement de l'URL de connexion et du format de la charge utile (nom d'utilisateur et mot de passe). Les paramètres obligatoires sont spécifiques aux méthodes d'authentification utilisées.
Configurer l'authentification zap
  1. Ajoutez un nom d'utilisateur et un mot de passe valides. Créez plusieurs utilisateurs si l'application expose différentes fonctionnalités en fonction des rôles.
Configurer les utilisateurs dans Zap

Une fois que vous avez configuré ces paramètres, vous pouvez exporter le contexte sous forme de fichier pour analyse afin de pouvoir vous y référer.

Contexte d'exportation zap

Veillez à enregistrer le contexte dans un emplacement facile à référencer, car vous devrez inclure le chemin d'accès au fichier en tant qu'argument de votre commande d'analyse. Vous pouvez maintenant exécuter une analyse authentifiée avec la connexion de l'utilisateur spécifiée dans le contexte. Exemple :

Créer un utilisateur dans Zap
  docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
  -t owasp/zap2docker-stable zap-full-scan.py 
  -t https://example.com -P 8080 
  -c zap-casa-config.conf -x results-full.xml 
  -n /Users/DemoUser/Documents/Context.context -U test@example.com