Newer
Older
# 🔐 MD5 Bruteforce App with Flask, Redis, Docker Swarm & GitLab CI/CD
Ce projet est une application de démonstration pour effectuer une attaque par bruteforce sur un hash MD5.
Il inclut :
- 🐍 Backend Flask
- 🔥 Redis (cache de hash)
- 🚀 Autoscaling intelligent via un script Python
- 🧠 Monitoring CPU + réplicas
- 🌐 Frontend HTML/JS
- 🐳 Docker
- 📦 CI/CD avec GitLab
docker-swarm-md5/
│
├── backend/ # Code Flask backend
│ ├── app.py # Application principale
│ └── Dockerfile # Image Docker du backend
│
├── frontend/ # Interface utilisateur simple
│ └── index.html
│
├── infra/
│ └── stack.yml # Fichier de déploiement Swarm
│
├── autoscaler/
│ └── autoscale.py # Script Python de scaling automatique
│
├── requirements.txt # Dépendances backend
└── .gitlab-ci.yml # Pipeline CI/CD GitLab
```bash
cd backend
docker build -t md5_backend:latest .
```
```bash
cd infra
docker stack deploy -c stack.yml md5_stack
```
Ce script surveille les requêtes et adapte le nombre de réplicas du backend :
```bash
cd autoscaler
pip install -r ../requirements.txt
python autoscale.py
```
| Méthode | Endpoint | Description |
|---------|------------------------|--------------------------------------------------|
| GET | `/health` | Vérifie si l'app fonctionne |
| POST | `/bruteforce` | Envoie un hash à casser |
| GET | `/resolved` | Liste des hash résolus |
| GET | `/resolved/<hash>` | Résultat d’un hash donné |
| GET | `/request_count` | Nombre total de requêtes reçues |
| DELETE | `/clear_cache` | Vide le cache Redis (hors compteur) |
| GET | `/replicas` | Nombre de réplicas du backend (via Swarm) |
| GET | `/cpu_usage` | Utilisation CPU du service (via `docker stats`) |