arrow_back

Identifier les failles dans les applications avec Security Command Center

Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Identifier les failles dans les applications avec Security Command Center

Atelier 1 heure 15 minutes universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP1262

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Web Security Scanner (WSS) est un des services intégrés de Security Command Center pouvant être utilisés pour identifier 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. Vous pouvez facilement configurer, exécuter, programmer et gérer des analyses de sécurité.

Dans cet atelier, vous allez utiliser Web Security Scanner pour analyser une application Python Flask à la recherche d'éventuelles failles.

Objectifs

Dans cet atelier, vous allez apprendre à 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éceler 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.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. 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.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. 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.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Scénario

Logo Cymbal Bank

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 directeur de la technologie aimerait donc savoir comment Google Cloud détecte et neutralise les failles applicatives. En tant qu'ingénieur en sécurité cloud, vous allez devoir démontrer les capacités de pointe de Security Command Center dans ce domaine.

Tâche 1 : Lancer une machine virtuelle et créer une règle de pare-feu pour WSS

Dans cette tâche, vous allez configurer l'infrastructure et présenter une faille applicative au CTO de Cymbal Bank. Plus précisément, vous allez déployer une machine virtuelle et ouvrir une règle de pare-feu permettant à Web Security Scanner d'accéder à l'application vulnérable que vous avez l'intention de déployer.

  1. Dans la barre de titre de la console Google Cloud, cliquez sur Activer Cloud Shell (Icône Activer Cloud Shell). Si vous y êtes invité, cliquez sur Continuer.

  2. Exécutez la commande suivante pour créer une adresse IP statique permettant d'analyser l'application Web vulnérable :

gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region|lab region}}}
  1. Exécutez la commande suivante pour afficher l'adresse IP statique que vous venez de générer :
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region|lab region}}} --format="value(address)"
  1. Copiez l'adresse IP (celle-ci correspond à une seule ligne de la sortie) et enregistrez-la dans un bloc-notes.

  2. Exécutez la commande suivante pour créer une instance de VM afin d'y exécuter l'application vulnérable :

gcloud compute instances create xss-test-vm-instance \ --address=xss-test-ip-address --no-service-account \ --no-scopes --machine-type=e2-micro --zone={{{project_0.default_zone|lab zone}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

Le script de démarrage installe le framework d'application Web python-flask qui vous servira à exécuter une application Python simple présentant une vulnérabilité XSS (script intersites), une faille de sécurité courante dans les applications Web.

  1. Exécutez la commande suivante pour ouvrir 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.
gcloud compute firewall-rules create enable-wss-scan \ --direction=INGRESS --priority=1000 \ --network=default --action=ALLOW \ --rules=tcp:8080 --source-ranges=0.0.0.0/0

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer la VM avec les configurations adéquates

Tâche 2 : Déployer une application vulnérable pour déclencher une faille XSS

Dans cette tâche, vous allez obtenir le code d'application et introduire une faille que Web Security Scanner devra détecter. 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.

  1. Dans la console Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Compute Engine > Instances de VM.

    La première initialisation peut prendre une minute.

  2. Ensuite, cliquez sur le bouton SSH correspondant à votre instance :

Bouton SSH dans la console Cloud
  1. Il est possible qu'une fenêtre pop-up s'affiche pour vous demander d'autoriser la fonctionnalité SSH dans le navigateur à se connecter aux VM. Cliquez sur Autoriser.

Cette action entraîne l'ouverture d'une connexion SSH vers votre instance de VM dans une nouvelle fenêtre.

  1. 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 :
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar
  1. Exécutez maintenant cette commande pour déployer votre application :
python3 app.py
  1. Un message confirmant le lancement de l'application doit rapidement apparaître.

Résultat :

* Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
  1. Retrouvez l'adresse IP statique notée précédemment.

  2. Dans l'URL ci-dessous, remplacez YOUR_EXTERNAL_IP par cette adresse IP, puis ouvrez l'URL dans un nouvel onglet du navigateur :

http://<YOUR_EXTERNAL_IP>:8080 Remarque : Vous pouvez aussi retrouver l'adresse IP externe dans la console Google Cloud. Elle y est indiquée dans un champ associé à votre instance de VM.

Un portail de services bancaires Cymbal Bank dédié aux professionnels et comportant un formulaire Web doit s'afficher.

  1. Dans ce formulaire, saisissez la chaîne suivante :
<script>alert('This is an XSS Injection')</script>
  1. Cliquez ensuite sur le bouton POST.

La fenêtre d'alerte suivante doit s'afficher.

Fenêtre d&#39;alerte dans le navigateur

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élécharger les fichiers de l'application Web vulnérable sur la VM

Tâche 3 : Activer l'API Web Security Scanner

Maintenant que nous avons lancé notre application vulnérable, il est temps de démontrer au directeur de la technologie les capacités de Web Security Scanner. Mais d'abord, vous devez configurer l'API que WSS utilise pour s'exécuter.

  1. Revenez à l'onglet de navigateur ouvert sur la console Cloud.

  2. Dans le menu de navigation (Icône du menu de navigation), sélectionnez API et services > Bibliothèque.

  3. Dans le champ "Rechercher des API et des services", saisissez Web Security Scanner, puis appuyez sur Entrée.

  4. Sélectionnez l'API Web Security Scanner.

  5. Cliquez sur Activer pour activer l'API Web Security Scanner.

Cliquez sur Vérifier ma progression pour valider l'objectif. Activer l'API Web Security Scanner

Tâche 4 : Analyser l'application déployée avec WSS

Dans cette tâche, vous allez configurer et lancer une analyse de l'application afin de détecter d'éventuelles failles de sécurité dans celle-ci.

  1. Ouvrez le menu de navigation (Icône du menu de navigation) et sélectionnez Sécurité > Web Security Scanner.

  2. Cliquez sur + Nouvelle analyse.

  3. Dans la section URL de démarrage, le champ URL de démarrage 1 doit être prérempli avec votre adresse IP statique.

  4. Ajoutez le numéro de port 8080, de sorte que l'URL de démarrage ressemble à l'exemple suivant :

http://<EXTERNAL_IP>:8080
  1. Si l'URL de démarrage 2 est présente, supprimez-la.

  2. 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.
  1. Vérifiez que l'option Authentification est toujours définie sur Aucune et que Programmation est définie sur Jamais.

  2. Cliquez sur Afficher plus pour examiner les paramètres restants.

  3. Cliquez sur Enregistrer pour créer l'analyse.

Remarque : L'analyse est créée, mais elle n'est pas exécutée. Pour l'instant, elle doit être lancée manuellement puisque vous n'avez pas encore créé de programmation.
  1. Cliquez sur Exécuter pour démarrer l'analyse.
Remarque : Étant donné le nombre de tests possibles, l'analyse peut prendre un peu plus de dix minutes.
  1. Revenez à votre session SSH dans la fenêtre de navigateur concernée.

Si la session a expiré, exécutez la commande suivante pour redémarrer votre application :

python3 app.py

Dans votre fenêtre SSH, vous devriez commencer à voir apparaître les journaux générés, comme dans l'exemple ci-dessous. Cela signifie que Web Security Scanner teste toutes les URL possibles afin de détecter des failles potentielles.

Résultat :

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -

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 la documentation Codes d'état et d'erreur HTTP pour en savoir plus.

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.

  1. Une fois l'analyse terminée, l'onglet Résultats indique les failles intersites détectées.
Résultats de Web Security Scanner présentant des failles

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.

Cliquez sur Vérifier ma progression pour valider l'objectif. Exécuter une analyse Web Security Scanner et détecter des failles applicatives

Tâche 5 : 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.

  1. Revenez à la fenêtre SSH connectée à votre instance de VM.
  2. Arrêtez l'application en cours d'exécution en appuyant sur les touches CTRL+C.
  3. Modifiez le fichier app.py à l'aide de l'éditeur nano en exécutant la commande suivante :
nano app.py
  1. Repérez les deux lignes qui définissent la chaîne de sortie :
# output_string = "".join([html_escape_table.get(c, c) for c in input_string]) output_string = input_string
  1. 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).

Les lignes finales doivent se présenter comme suit :

@app.route('/output') def output(): output_string = "".join([html_escape_table.get(c, c) for c in input_string]) # output_string = input_string return flask.render_template("output.html", output=output_string) Remarque : html_escape_table est un dictionnaire qui contient des correspondances uniques de caractères HTML spéciaux tels que "<" avec leur représentation textuelle. Vous allez utiliser cette table pour remplacer les caractères HTML spéciaux, de sorte que votre formulaire ingère et interprète le contenu transmis uniquement sous forme de texte brut. Consultez la documentation Qu'est-ce que l'échappement HTML ? pour en savoir plus.
  1. Appuyez ensuite sur CTRL+X, Y puis Entrée pour enregistrer les modifications.

  2. Relancez l'application :

python3 app.py
  1. Revenez à l'onglet de la console Google Cloud (la page Web Security Scanner doit être encore ouverte) :

  2. Cliquez sur Exécuter en haut de la page.

Dans votre fenêtre SSH, vous devriez commencer à 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.

Résultat :

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -
  1. 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.

  2. Saisissez la même chaîne que précédemment :

<script>alert('This is an XSS Injection')</script>
  1. Cliquez ensuite sur le bouton POST.

  2. Vérifiez que cette fois, la chaîne suivante s'affiche dans le navigateur :

Entrée affichée sous forme de chaîne textuelle Remarque : Bien que cette technique fonctionne dans ce scénario simple, la protection adéquate de votre application Web requiert des techniques et des frameworks plus avancés, qui ne sont pas abordés dans cet atelier.

Des ressources supplémentaires sont disponibles via les liens fournis ci-dessous :
  1. Revenez à la console Google Cloud, sur votre page Web Security Scanner.

  2. Cliquez sur Exécuter en haut de la page pour analyser à nouveau votre application.

  3. Rapidement, vous devriez voir que les résultats ne renvoient plus aucune faille XSS :

Résultats de Web Security Scanner, indiquant l&#39;absence de faille

Cliquez sur Vérifier ma progression pour valider l'objectif. Corriger des failles et analyser à nouveau votre application à l'aide de Web Security Scanner

Félicitations !

Vous avez montré au directeur de la technologie de Cymbal Bank comment identifier et corriger efficacement des failles XSS à l'aide de la solution Web Security Scanner de Google Cloud.

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.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 10 février 2025

Dernier test de l'atelier : 10 février 2025

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.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.