From 25d1f582a8725d803de131d3751f16e2b9f3811b Mon Sep 17 00:00:00 2001 From: William Petit Date: Fri, 22 Dec 2017 10:16:12 +0100 Subject: [PATCH] =?UTF-8?q?DIIAGE:=20TP=20s=C3=A9curit=C3=A9=20des=20appli?= =?UTF-8?q?caiton=20web=20&=20m=C3=A9trologie=20appliqu=C3=A9e=20=C3=A0=20?= =?UTF-8?q?la=20s=C3=A9curit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20171222_Métrologie/tp.md | 53 +++++++++++++++++++ .../start-minio.sh | 2 +- diiage/Misc/tp_epicfaild.md | 26 +++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 diiage/C3-2_Sécurité_SI/20171222_Métrologie/tp.md create mode 100644 diiage/Misc/tp_epicfaild.md diff --git a/diiage/C3-2_Sécurité_SI/20171222_Métrologie/tp.md b/diiage/C3-2_Sécurité_SI/20171222_Métrologie/tp.md new file mode 100644 index 0000000..e6d49f0 --- /dev/null +++ b/diiage/C3-2_Sécurité_SI/20171222_Métrologie/tp.md @@ -0,0 +1,53 @@ +# TP - Métrologie appliquée à la sécurité + +## Objectifs + +- En fonction de scénarios d'attaque identifiés dans une application Web, proposer et implémenter des métriques permettant de détecter ceux ci. + +## Contexte et contraintes + +Soit une application simpliste de "trading" de cryptomonnaie fictive FakeCoin© et les scénarios d'attaque ci dessous: + +1. Implémenter l'API en NodeJS +2. Identifier et proposer des métriques pour détecter les scénarios d'attaque +3. Mettre en place les sondes dans l'application et proposer des requêtes avec leur seuil de déclenchement pour l'émission d'alertes. + +### API de l'application + +- **URL** `GET /wallet` + + **Données retournées** + + Total de FakeCoins présents dans le portefeuille de l'utilisateur. + +- **URL** `POST /sell` + + **Paramètres** + + `amount` Nombre de FakeCoins à vendre (à retirer du portefeuille) + + **Données retournées** + + Total de FakeCoins vendus, si la vente a réussie. + + **Contraintes** + + - On ne peut pas vendre plus de FakeCoins que l'on en possède dans son portefeuille. + +- **URL** `POST /buy` + + **Paramètres** + + `amount` Nombre de FakeCoins à acheter (à ajouter au portefeuille) + +### Scénarios d'attaque + +1. **Vol de compte** Un attaquant a réussi à obtenir les identifiants d'accès au compte d'un utilisateur et tente d'effectuer des ordres de ventes depuis une **autre adresse IP**. +2. **Tentative d'abus sur le mécanisme de vente** Un utilisateur mal intentionné tente d'effectuer **un grand nombre d'ordres de vente** en parallèle afin d'exploiter une vulnérabilité sur l'application de la contrainte de vente. +3. **Tentative de blanchiment d'argent** Un utilisateur mal intentionné tente d'effectuer du blanchiment d'argent via la plateforme en lançant des ordres d'achat de FakeCoins avec **des montants anormalement hauts**. + +## Ressources + +- [Documentation du projet Prometheus](https://prometheus.io/docs/introduction/overview/) +- [Module ExpressJS - Framework de création d'application Web pour NodeJS](http://expressjs.com/en/starter/installing.html) +- [Module PromClient - Module NodeJS "client" pour Prometheus](https://github.com/siimon/prom-client) diff --git a/diiage/C3-4_Base_de_données_Big_Data_BI/20171208_Conteneurisation_Docker/start-minio.sh b/diiage/C3-4_Base_de_données_Big_Data_BI/20171208_Conteneurisation_Docker/start-minio.sh index e38ad38..d49e856 100755 --- a/diiage/C3-4_Base_de_données_Big_Data_BI/20171208_Conteneurisation_Docker/start-minio.sh +++ b/diiage/C3-4_Base_de_données_Big_Data_BI/20171208_Conteneurisation_Docker/start-minio.sh @@ -12,7 +12,7 @@ LINKS=${@:3} # docker network create --driver bridge minio -DOCKER_ARGS="--rm -p ${PORT}:9000 --name ${NAME} --network bridge" +DOCKER_ARGS="--rm -p ${PORT}:9000 --name ${NAME} --network minio" DOCKER_ARGS="${DOCKER_ARGS} -e MINIO_ACCESS_KEY=access_key" DOCKER_ARGS="${DOCKER_ARGS} -e MINIO_SECRET_KEY=secret_key" DOCKER_ARGS="${DOCKER_ARGS} minio/minio server" diff --git a/diiage/Misc/tp_epicfaild.md b/diiage/Misc/tp_epicfaild.md new file mode 100644 index 0000000..7ed9c44 --- /dev/null +++ b/diiage/Misc/tp_epicfaild.md @@ -0,0 +1,26 @@ +# TP - Sécurité des applications Web + +## Objectifs + +- Découvrir les principales vulnérabilités affectant les applications Web. + +## Contexte et contraintes + +- Utilisation de [Docker CE](https://docs.docker.com/) et de l'image `bornholm/epicfaild` sur une distribution GNU/Linux. + +### Déroulement + +1. Sur votre machine avec Docker, exécuter la commande suivante: + + ```bash + docker run -it --rm -p 8080:8080 bornholm/epicfaild + ``` + _Vous pouvez faire un `Ctrl+C` pour stopper le conteneur puis relancer la commande si vous voulez récupérer une instance "propre" de l'application._ + +2. Ouvrir dans un navigateur l'URL http://localhost:8080 +3. Effectuer les différents exercices ("gates") proposés en s'appuyant sur les consignes et les ressources présentées. + +## Ressources + +- [ISO Ubuntu Server 16.04.3 LTS](https://www.ubuntu.com/download/server/thank-you?version=16.04.3&architecture=amd64) +- [Installer Docker sur Ubuntu](https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/)