54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
|
# 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)
|