Logo Lanfrica

Echalh-mouna/phishing-detector-pme

Domain:

digital infrastructure

Record type:

software
Creator:
Ech
Host:
# Système de détection et d'alerte précoce des cybermenaces ciblant les PME Prototype développé dans le cadre d'un stage PFA (Projet de Fin d'Année) — CMRPI, été 2026. ## Contexte Les PME manquent souvent de ressources dédiées à la cybersécurité, ce qui en fait des cibles privilégiées pour les cyberattaques. Ce projet propose un prototype capable de détecter et de notifier en quasi temps réel les URLs de phishing, en s'appuyant sur une source de Threat Intelligence publique et un modèle de Machine Learning simple. **Ce projet est un parcours d'apprentissage guidé, pas un produit fini.** Chaque brique technique a été choisie pour rester simple et compréhensible, plutôt que pour maximiser la performance. ## Ce que fait le prototype 1. Récupère des URLs suspectes depuis **URLhaus** (abuse.ch), une source publique et gratuite de Threat Intelligence. 2. Extrait des caractéristiques directement à partir du texte de chaque URL (longueur, ponctuation, mots-clés suspects, sous-domaines...). 3. Classe chaque URL comme **légitime** ou **phishing** à l'aide d'un arbre de décision (scikit-learn). 4. Affiche les résultats dans un tableau de bord web (Streamlit). 5. Envoie une alerte e-mail automatique en cas de détection, avec des fiches réflexes en pièce jointe. ## Architecture générale ``` URLhaus (source de Threat Intelligence) │ ▼ Extraction de caracteristiques (features_url.py) │ ▼ Modele de classification (arbre de decision, scikit-learn) │ ▼ ┌────┴────┐ ▼ ▼ Dashboard Alerte e-mail Streamlit (smtplib) + fiches reflexes ``` ## Déroulement du projet Le stage s'est déroulé en 3 jalons de 15 jours, chacun avec son propre README détaillé : | Jalon | Contenu | Documentation | |---|---|---| | Jalon 1 | Découverte du phishing, prise en main de l'environnement, script de téléchargement des URLs URLhaus | `Jalon1/README.md` | | Jalon 2 | Entraînement d'un premier modèle de détection (arbre de décision) sur un dataset étiqueté | `Jalon2/README.md` | | Jalon 3 | …