Points de contrôle
Create the VM with desired configurations
/ 20
Download vulnerable web application files on the VM
/ 20
Enable the Web Security Scanner API
/ 20
Run a Web Security Scanner scan and detect application vulnerabilities
/ 20
Correct vulnerabilities and rescan your application using Web Security Scanner
/ 20
Identifier les failles dans les applications avec Security Command Center
Présentation
Introduction
Dans cet atelier, vous allez utiliser Web Security Scanner, l'un des services intégrés à Security Command Center, pour détecter des failles dans une application Python Flask. Web Security Scanner identifie les failles de sécurité de vos applications Web App Engine, Google Kubernetes Engine (GKE) et Compute Engine.
Le service explore votre application et tous les liens associés à vos URL de démarrage, et essaie de tester un maximum d'entrées utilisateur et de gestionnaires d'événements. Il recherche et détecte automatiquement quatre failles courantes : les scripts intersites (XSS), les injections Flash, les contenus mixtes (HTTP dans HTTPS) et les bibliothèques obsolètes/non sécurisées.
Permettant d'identifier les failles à un stade précoce, Web Security Scanner présente également un taux de faux positifs très bas. Configurez, exécutez, programmez et gérez facilement des analyses de sécurité.
Scénario
Cymbal Bank est une banque de détail américaine comptant plus de 2 000 agences partout aux États-Unis. Elle propose des services de débit et de crédit adossés à une plateforme de paiement robuste. Cymbal Bank est une banque ancienne qui a désormais entamé sa transformation numérique.
Cymbal Bank a été créée initialement en 1920 sous le nom de Troxler. Après avoir investi massivement dans ses distributeurs automatiques propriétaires, Cymbal Group a acquis l'entreprise en 1975. Devenu l'un des leaders du secteur à l'échelle nationale, l'établissement mise à présent sur la modernisation de l'expérience client : une stratégie déployée tant au sein de ses agences qu'à travers ses services numériques, via une application lancée en 2014. Cymbal Bank emploie 42 000 personnes aux États-Unis et a enregistré un chiffre d'affaires de 24 milliards de dollars en 2019.
L'entreprise souhaite utiliser les technologies Google Cloud afin de développer une application bancaire pour ses clients professionnels. Dans ce contexte, la sécurité représente un enjeu critique. Son CTO aimerait donc savoir comment Google Cloud détecte et neutralise les failles applicatives. En tant que Cloud Security Engineer, vous allez devoir démontrer les fonctionnalités de pointe de Security Command Center dans ce domaine.
Objectifs
Dans cet atelier, vous allez effectuer les tâches suivantes :
- Lancer une application Python Flask vulnérable sur une instance Compute Engine
- Utiliser Web Security Scanner pour analyser l'application et détecter des failles
- Corriger les failles présentes dans l'application
- Analyser l'application à nouveau pour confirmer l'élimination des failles
Préparation
Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.
-
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
-
Vérifiez le temps imparti pour l'atelier (par exemple :
01:15:00
) : vous devez pouvoir le terminer dans ce délai.
Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début. -
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
-
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
-
Cliquez sur Ouvrir la console Google.
-
Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués. -
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
Tâche 1 : Lancer une machine virtuelle et déployer une application vulnérable
Dans cette tâche, vous allez configurer l'infrastructure dans le but de démontrer une faille applicative au CTO de Cymbal Bank. Plus spécifiquement, vous allez déployer une machine virtuelle, obtenir le code d'application et introduire une faille qui sera détectée par Web Security Scanner. Cette application se présente sous la forme d'un simple formulaire qui reçoit les entrées d'un utilisateur et les transmet en sortie sans aucune modification.
-
Dans la barre de titre de la console Google Cloud, cliquez sur Activer Cloud Shell (). Si vous y êtes invité, cliquez sur Continuer.
-
Créez une adresse IP statique que vous utiliserez pour analyser l'application Web vulnérable :
- Exécutez la commande suivante pour afficher l'adresse IP statique que vous venez de générer :
-
Copiez l'adresse IP (celle-ci correspond à une seule ligne de la sortie) et enregistrez-la dans un bloc-notes.
-
Exécutez la commande suivante pour créer une instance de VM afin d'y exécuter l'application vulnérable :
Le script de démarrage installera le framework d'application Web python-flask, servant à exécuter une application Python simple démontrant une vulnérabilité XSS (script intersites), une faille de sécurité courante dans les applications Web.
- Ouvrez une règle de pare-feu permettant à Web Security Scanner d'accéder à l'application vulnérable. Notez les plages sources à partir desquelles Web Security Scanner analyse les applications.
Cliquez sur Vérifier ma progression pour valider l'objectif.
-
Ouvrez le menu de navigation et sélectionnez Compute Engine > Instances de VM.
-
Ensuite, cliquez sur le bouton SSH en regard de votre instance :
- Un fenêtre pop-up peut s'afficher pour vous demander d'autoriser la fonctionnalité SSH dans le navigateur à se connecter aux VM. Cliquez sur Autoriser.
Une nouvelle fenêtre s'ouvre, établissant une connexion SSH à votre instance de VM.
- Dans cette fenêtre SSH (et non pas dans Cloud Shell), exécutez la commande suivante pour télécharger et extraire les fichiers de l'application Web vulnérable :
- Exécutez maintenant cette commande pour déployer votre application :
- Un message doit rapidement apparaître, confirmant le lancement de l'application :
-
Retrouvez l'adresse IP statique notée précédemment.
-
Dans l'URL ci-dessous, remplacez
VOTRE_IP_EXTERNE
par cette adresse IP, puis ouvrez l'URL dans un nouvel onglet du navigateur :
-
Un portail de services bancaires aux professionnels de Cymbal Bank doit apparaître, avec un formulaire Web.
-
Dans ce formulaire, saisissez la chaîne suivante :
- À présent, appuyez sur le bouton POST (PUBLIER).
La fenêtre d'alerte suivante doit apparaître :
Il s'agit d'un script intersites (XSS) : une faille de sécurité courante dans les applications Web. Cette vulnérabilité permet aux pirates informatiques d'exploiter votre application afin d'exécuter des scripts malveillants dans le navigateur des utilisateurs. Le navigateur exécute une chaîne JavaScript qu'il interprète comme étant légitime.
En exploitant un bug XSS pour injecter du code JavaScript dans une page HTML, les pirates obtiennent un accès quasi total aux sessions connectées des victimes qui consultent cette page. Cette technique leur permet de dérober et de modifier les données des utilisateurs, de modifier les paramètres de confidentialité ou de sécurité, voire d'altérer complètement l'affichage et le fonctionnement du produit. D'autre part, la présence d'une faille XSS dans une application, peu importe sa gravité, peut mettre en péril d'autres contenus au sein du même domaine.
C'est l'une des nombreuses failles applicatives que Web Security Scanner peut vous aider à identifier.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 2 : Analyser l'application avec Web Security Scanner
Maintenant que nous avons lancé notre application vulnérable, il est temps de démontrer au CTO les capacités de Web Security Scanner. Dans cette tâche, vous allez configurer et lancer une analyse afin de détecter des failles de sécurité dans l'application.
-
Revenez à l'onglet du navigateur qui affiche la console Cloud.
-
Ouvrez le menu de navigation et sélectionnez API et services > Bibliothèque.
-
Sous "Rechercher des API et des services", saisissez Web Security Scanner, puis appuyez sur Entrée.
-
Sélectionnez API Web Security Scanner.
-
Cliquez sur Activer pour activer l'API Web Security Scanner.
Cliquez sur Vérifier ma progression pour valider l'objectif.
-
Ouvrez le menu de navigation et sélectionnez Sécurité > Web Security Scanner.
-
Cliquez sur + Nouvelle analyse.
-
Dans la section URL de démarrage, le champ URL de démarrage 1 doit être prérempli avec votre adresse IP statique.
-
Ajoutez le numéro de port 8080, de sorte que l'URL de démarrage ressemble à l'exemple suivant :
-
Si l'URL de démarrage 2 est présente, supprimez-la.
-
Prenez quelques instants pour passer en revue les champs restants sur l'écran Créer une analyse.
- Authentification : une propriété pouvant être utilisée pour fournir des identifiants d'application afin de permettre à l'outil d'analyse de s'authentifier auprès d'une application pendant l'analyse.
- Programmation : une propriété pouvant être utilisée pour programmer l'exécution automatique d'analyses.
- Exporter vers Security Command Center : une propriété vous permettant d'exporter automatiquement les configurations et les résultats des analyses vers Cloud Security Command Center.
-
Vérifiez que l'option Authentification est toujours définie sur Aucune et que Programmation est définie sur Jamais.
-
Cliquez sur Afficher plus pour examiner les paramètres restants.
-
Cliquez sur Enregistrer pour créer l'analyse.
- Cliquez sur Exécuter pour démarrer l'analyse.
- Revenez à votre session SSH dans votre fenêtre distincte.
Si la session a expiré, exécutez la commande suivante pour redémarrer votre application :
Dans votre fenêtre SSH, vous commencerez à voir apparaître des journaux générés tels que dans l'exemple ci-dessous. Cela signifie que Web Security Scanner teste toutes les URL possibles afin de détecter des failles potentielles :
Des instructions de journalisation présentant les codes d'état HTTP suivants peuvent apparaître :
- 200 : une requête réussie, à laquelle le serveur HTTP renvoie une réponse positive.
- 302 : indique qu'une ressource est momentanément déplacée à un autre emplacement d'après l'en-tête "Location".
- 404 : indique qu'une ou plusieurs ressources sont introuvables.
Consultez cette documentation pour en savoir plus au sujet des codes d'erreur et d'état HTTP.
Pendant l'analyse, n'hésitez pas à explorer les onglets Résultats, URL explorées et Détails. Nous vous invitons par ailleurs à visionner cette vidéo de prise en main ou cette vidéo sur l'analyse des failles pour vous familiariser avec Web Security Scanner.
- Une fois l'analyse terminée, l'onglet Résultats indique les failles intersites détectées.
Web Security Scanner a analysé toutes les URL de démarrage et détecté les failles XSS dans l'application de Cymbal Bank. La détection automatique de ces failles critiques représente un atout majeur pour les entreprises soucieuses de leur sécurité, à l'image de Cymbal Bank. Vous allez à présent corriger la faille présente dans le code de l'application de Cymbal Bank avant d'effectuer de nouveaux tests.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 3 : Corriger la faille et analyser à nouveau
Maintenant que vous avez démontré l'aptitude de Web Security Scanner à détecter une faille XSS, vous allez neutraliser cette vulnérabilité, puis lancer une nouvelle analyse de l'application.
- Revenez à votre fenêtre SSH connectée à votre instance de VM.
- Arrêtez l'application en cours d'exécution en appuyant sur les touches CTRL+C.
- Modifiez le fichier app.py à l'aide de l'éditeur nano en exécutant la commande suivante :
- Repérez les deux lignes qui définissent la chaîne de sortie :
- Supprimez le symbole "#" dans la première ligne et ajoutez-le au début de la ligne suivante (veillez à bien respecter les retraits dans votre code).
Après avoir terminé, vos lignes doivent se présenter sous cette forme :
html_escape_table
est un dictionnaire qui contient des correspondances de caractères HTML spéciaux tels que "<" avec leur représentation textuelle. Nous utilisons cette table pour remplacer les caractères HTML spéciaux, de sorte que notre formulaire ingère et interprète le contenu transmis uniquement sous forme de texte brut. Cliquez ici pour obtenir de plus amples informations.-
Appuyez ensuite sur CTRL+X > Y > Entrée pour enregistrer vos modifications.
-
Relancez l'application :
-
Revenez à la console Google Cloud (la page Web Security Scanner doit être encore ouverte) :
-
Cliquez sur Exécuter en haut de la page.
Dans votre fenêtre SSH, vous commencerez à voir apparaître des journaux, ce qui signifie que Web Security Scanner teste les URL de l'application afin de détecter d'éventuelles failles :
-
Pendant que l'analyse s'exécute, connectez-vous à l'URL
http://<IP_EXTERNE>:8080
depuis un nouvel onglet de votre navigateur. -
Le formulaire Web s'affiche à nouveau.
-
Saisissez la même chaîne que précédemment :
-
À présent, appuyez sur le bouton POST (PUBLIER).
-
Vérifiez que cette fois, la chaîne s'affiche dans le navigateur :
-
Revenez à la console Google Cloud, sur votre page Web Security Scanner.
-
Cliquez sur Exécuter en haut de la page pour analyser à nouveau votre application.
-
Rapidement, vous verrez que les résultats ne renvoient plus aucune faille XSS :
Félicitations ! Vous avez montré au CTO de Cymbal Bank comment identifier et corriger efficacement des failles XSS à l'aide de la solution Web Security Scanner de Google Cloud.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Félicitations !
Dans cet atelier, vous avez réalisé les tâches suivantes :
- Lancer une application Python Flask vulnérable
- Utiliser Web Security Scanner pour analyser l'application et détecter des failles
- Corriger les failles présentes dans l'application
- Analyser l'application à nouveau pour confirmer l'élimination des failles
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.
Le nombre d'étoiles correspond à votre degré de satisfaction :
- 1 étoile = très insatisfait(e)
- 2 étoiles = insatisfait(e)
- 3 étoiles = ni insatisfait(e), ni satisfait(e)
- 4 étoiles = satisfait(e)
- 5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.
Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.