Simulation de ransomware moderne à des fins éducatives et de recherche en cybersécurité.
CE PROJET EST STRICTEMENT ÉDUCATIF.
Ce code est destiné uniquement à :
- L'apprentissage des mécanismes des ransomwares
- La formation en cybersécurité
- La recherche académique
- Les démonstrations en environnement contrôlé
Toute utilisation malveillante est illégale et passible de poursuites pénales.
L'auteur décline toute responsabilité en cas d'utilisation inappropriée.
Ce projet simule le comportement d'un ransomware moderne en chiffrant des fichiers avec l'algorithme Fernet (AES-128) et en générant des notes de rançon réalistes. Il inclut également un décrypteur pour restaurer les fichiers.
Chiffrement (encrypt.py)
- Génération d'une clé de chiffrement unique
- Scan récursif des fichiers par extension
- Chiffrement avec Fernet (cryptographie symétrique)
- Renommage des fichiers avec extension .locked
- Génération de notes de rançon (TXT et HTML)
- Interface visuelle inspirée des vrais ransomwares
- Génération d'ID victime unique
- Simulation de deadline et montant de rançon
Déchiffrement (decrypt.py)
- Vérification de paiement (simulée)
- Chargement de la clé de déchiffrement
- Restauration des fichiers originaux
- Suppression des fichiers .locked
- Nettoyage automatique des notes de rançon
- Barre de progression et statistiques
ransomware_educatif/
├── encrypt.py # Script de chiffrement principal
├── decrypt.py # Script de déchiffrement
├── my_key.key # Clé de chiffrement (générée automatiquement)
├── README_RANSOM.txt # Note de rançon texte (générée)
├── RANSOM_NOTE.html # Note de rançon HTML (générée)
├── DECRYPT_INSTRUCTIONS.txt # Instructions de déchiffrement
├── fileX.txt / test.test # Des fichiers de test
└── README.md # Ce fichier- Python 3.7 ou supérieur
- pip (gestionnaire de paquets Python)
pip install cryptography- Cloner le dépôt
git clone https://github.com/Bamolitho/ransomware.git
cd ransomware- Installer les dépendances
pip install -r requirements.txtOu manuellement :
pip install cryptographyUtilisez ce projet UNIQUEMENT dans un environnement de test isolé :
- Machine virtuelle (VirtualBox, VMware)
- Conteneur Docker
- Dossier dédié avec fichiers de test uniquement
NE JAMAIS exécuter sur :
- Votre système principal
- Des fichiers importants
- Un réseau de production
- Des systèmes que vous ne possédez pas
- Placer encrypt.py dans un dossier contenant des fichiers de test
- Exécuter le script :
python3 encrypt.py- Taper 'SIMULATE' pour confirmer
- Taper 'YES' pour lancer le chiffrement
- Les fichiers seront chiffrés avec l'extension .locked
- Une note de rançon sera créée
- Exécuter le script de déchiffrement :
python3 decrypt.py- Le script chargera automatiquement la clé (my_key.key)
- Appuyer sur ENTRÉE pour confirmer
- Les fichiers seront restaurés automatiquement
- Algorithme : Fernet (AES-128 en mode CBC avec HMAC)
- Bibliothèque : cryptography (Python)
- Padding : PKCS7
- Sécurité : Authentification des données chiffrées
Le ransomware cible les extensions suivantes :
.txt, .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx
.jpg, .jpeg, .png, .gif, .mp4, .avi, .mp3
.zip, .rar, .sql, .csv, .json, .xml
.html, .css, .jsLes fichiers suivants ne sont jamais chiffrés :
encrypt.py
decrypt.py
encrypt_v0.py
decrypt_0.py
my_key.key
README_RANSOM.txt
DECRYPT_INSTRUCTIONS.txt
README.mdLa clé de chiffrement est générée via :
from cryptography.fernet import Fernet
key = Fernet.generate_key() # Clé aléatoire de 32 bytesFormat : Base64, 44 caractères
| Aspect | Simulation | Ransomware réel |
|---|---|---|
| Clé de chiffrement | Stockée localement (my_key.key) | Envoyée au serveur C&C, détruite localement |
| Paiement | Simulé, aucun vrai paiement | Bitcoin vers wallet des attaquants |
| Propagation | Aucune | Propagation réseau, exploits, phishing |
| Persistance | Aucune | Modification registre, tâches planifiées |
| Communication | Aucune | Serveur Command & Control (C2) |
| Obfuscation | Code lisible | Code fortement obfusqué |
- Pièces jointes email malveillantes (macros Office)
- Exploits de vulnérabilités (EternalBlue, SMB)
- Sites web compromis (drive-by download)
- Faux logiciels / cracks
- RDP (Remote Desktop Protocol) non sécurisé
-
Sauvegardes régulières
- Règle 3-2-1 : 3 copies, 2 supports, 1 hors site
- Sauvegardes déconnectées du réseau
- Tests réguliers de restauration
-
Sécurité du système
- Mises à jour automatiques (OS, logiciels)
- Antivirus professionnel à jour
- Pare-feu activé
- UAC (User Account Control) activé
-
Comportement sécurisé
- Ne pas ouvrir pièces jointes suspectes
- Vérifier expéditeur des emails
- Ne pas cliquer sur liens inconnus
- Utiliser des mots de passe forts + MFA
-
Sécurité réseau
- Désactiver RDP si non nécessaire
- VPN pour accès distants
- Segmentation réseau
- Monitoring des activités suspectes
- Isoler immédiatement le système du réseau
- Ne pas payer la rançon (pas de garantie)
- Contacter un spécialiste en cybersécurité
- Signaler aux autorités (police, ANSSI)
- Restaurer depuis sauvegardes si disponibles
- Analyser pour identifier le vecteur d'infection
Code pénal, Article 323-1 : Accès frauduleux à un système de traitement automatisé de données
- Peine : 2 ans d'emprisonnement et 60 000 euros d'amende
Code pénal, Article 323-2 : Entrave au fonctionnement d'un système
- Peine : 5 ans d'emprisonnement et 150 000 euros d'amende
Code pénal, Article 323-3 : Atteinte à l'intégrité des données
- Peine : 5 ans d'emprisonnement et 150 000 euros d'amende
- États-Unis : Computer Fraud and Abuse Act (CFAA) - Jusqu'à 20 ans de prison
- Union Européenne : Directive NIS, RGPD - Amendes jusqu'à min (4% du CA mondial, 20M euros)
- Royaume-Uni : Computer Misuse Act 1990 - Jusqu'à 10 ans de prison
- No More Ransom Project - Outils de déchiffrement gratuits
- ANSSI - Guide ransomware - Guide officiel français
- MITRE ATT&CK - Base de données des techniques d'attaque
- OWASP - Ressources sur la sécurité applicative
- Certifications : CEH, OSCP, GIAC
- Plateformes : TryHackMe, HackTheBox, Root-Me
- Cours en ligne : Coursera, Udemy, edX
Les contributions sont bienvenues pour améliorer l'aspect éducatif du projet :
- Fork le projet
- Créer une branche (
git checkout -b feature/amelioration) - Commit les changements (
git commit -m 'Ajout fonctionnalité') - Push vers la branche (
git push origin feature/amelioration) - Ouvrir une Pull Request
Critères d'acceptation :
- Code bien documenté
- Respect du but éducatif
- Aucune amélioration malveillante
- Tests en environnement isolé
Amolitho Baldé
- Portfolio : https://bamolitho.github.io/portfolio/
- GitHub : https://github.com/Bamolitho/
- LinkedIn : https://www.linkedin.com/in/amolithobalde/
Ce projet a été développé dans un cadre strictement éducatif pour sensibiliser aux dangers des ransomwares et enseigner les bonnes pratiques de cybersécurité.
Merci aux organisations suivantes pour leurs ressources pédagogiques :
- ANSSI (Agence Nationale de la Sécurité des Systèmes d'Information)
- CERT-FR (Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiques)
- No More Ransom Project
- OWASP Foundation
- Simulation complète de ransomware moderne
- Interface visuelle réaliste
- Génération de notes de rançon (TXT + HTML)
- Décrypteur avec vérification de paiement
- Documentation complète
- Support multi-plateforme (Windows, Linux, macOS)
RAPPEL FINAL : CE PROJET EST STRICTEMENT ÉDUCATIF. TOUTE UTILISATION MALVEILLANTE EST ILLÉGALE.