Procédures d'analyse dynamique

ZAP

Outil de numérisation Web Mobile Local API Extension Serverless Instructions
OWASP® Zed Attack Proxy (ZAP)

Utilisez le conteneur OWASP ZAP ; du conteneur Docker ZAP pour effectuer des analyses dynamiques automatiques (DAST) sur votre application. Les fichiers de configuration prédéfinis incluent 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

Pour effectuer une analyse complète sur le Web, les applications mobiles ou les applications internes, procédez 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 dans un environnement prod-1 ou de préproduction. 

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

  1. Générez un fichier de contexte pour l'exécution de votre analyse. Pour en savoir plus, consultez la section 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 sera enregistrée dans un fichier XML (exemple joint : zap-results-full.xml)

Une analyse d'API peut être effectuée 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. Le résultat sera enregistré dans un fichier XML (exemple 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 accessibles. Cette opération nécessite une configuration pour pouvoir exécuter vos analyses. L'image Docker ZAP autorise deux arguments liés à l'authentification:

-n contexte_fichier

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 cela, il suffit d'utiliser l'interface utilisateur de bureau ZAP.

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 JSON

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

Une fois ces paramètres configurés, vous pouvez exporter le contexte sous la forme d'un fichier de référence pour votre analyse.

Contexte d'exportation zap

Assurez-vous d'enregistrer le contexte où vous pouvez le référencer facilement, car vous devrez inclure le chemin d'accès au fichier en tant qu'argument pour votre commande d'analyse. Vous pouvez maintenant exécuter une analyse authentifiée avec la connexion utilisateur spécifiée dans le contexte. Exemple :

Créer un compte utilisateur 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