README du dépôt
🛡 Security Scanner PC
Outil de cybersécurité défensif pour Windows — analyse locale, aucune donnée envoyée à l'extérieur.
📋 Présentation
Security Scanner PC est une application Windows open-source qui analyse la sécurité de votre ordinateur en quelques minutes. Elle est conçue pour être utilisée aussi bien par des utilisateurs novices (mode simplifié) que par des professionnels (mode expert).
Pourquoi cette application ?
La sécurité informatique est souvent complexe et inaccessible. Security Scanner PC vous donne une vue claire et immédiate de l'état de sécurité de votre PC, avec des recommandations concrètes pour corriger les problèmes détectés.
⚠️ Usage défensif uniquement. L'application analyse uniquement la machine locale. Aucune connexion externe n'est effectuée.
✨ Fonctionnalités
🔍 9 Modules d'analyse
| Module | Icône | Description | Scan rapide | Scan complet |
|---|---|---|---|---|
| Sécurité système | 🛡 | Defender, UAC, BitLocker, Secure Boot, connexion auto, RDP | ✅ | ✅ |
| Pare-feu | 🔥 | Profils actifs, règles entrantes suspectes | ✅ | ✅ |
| Ports ouverts | 🔌 | Scan des 1024 ports + ports sensibles connus | ✅ | ✅ |
| Mots de passe | 🔑 | Comptes Windows, politique de sécurité | ✅ | ✅ |
| Malware | 🦠 | Fichiers suspects dans AppData/Temp, registre Run | ❌ | ✅ |
| Démarrage | 🚀 | Programmes auto-lancés, tâches planifiées suspectes | ❌ | ✅ |
| Extensions | 🧩 | Chrome, Edge, Firefox — permissions dangereuses | ❌ | ✅ |
| Logiciels | 📦 | Détection Java ancien, Flash, WinRAR <6, IE… | ❌ | ✅ |
| Réseau local | 🌐 | Appareils connectés, ports ouverts sur chaque hôte | ❌ | ✅ |
🎯 Score de sécurité global
Un score de 0 à 100 calculé à partir de tous les modules, avec des explications sur les points retirés.
| Score | Niveau | Signification |
|---|---|---|
| 85 – 100 | 🟢 BON | PC bien protégé |
| 70 – 84 | 🟡 MOYEN | Quelques améliorations recommandées |
| 50 – 69 | 🟠 RISQUÉ | Actions recommandées |
| 30 – 49 | 🔴 ÉLEVÉ | Risques importants — agir rapidement |
| 0 – 29 | 🟣 CRITIQUE | PC très vulnérable — actions urgentes |
🖥️ Interface moderne
- Thème sombre / clair — switch instantané
- Mode novice — explications simplifiées sans jargon technique
- Tableau de bord avec cartes de statut par module
- Scan rapide (~1 min) et Scan complet (~5-10 min)
- Barre de progression détaillée par phase
- Score circulaire avec breakdown par catégorie
📄 Exports et historique
- Export PDF professionnel (rapport complet avec tableaux et recommandations)
- Export JSON (pour intégration dans d'autres outils)
- Historique des scans avec base SQLite locale
- Comparaison entre deux scans (évolution du score)
🚀 Installation rapide
Prérequis
- Windows 10 ou 11
- Python 3.11+ — Télécharger Python
✅ Cochez "Add Python to PATH" lors de l'installation
Option 1 — Installation automatique (recommandée)
Double-cliquez sur le fichier :
install_and_run.bat
Ce script :
- Vérifie que Python est installé
- Crée un environnement virtuel
- Installe toutes les dépendances
- Lance l'application
Option 2 — Installation manuelle
# 1. Aller dans le dossier du projet
cd security-scanner
# 2. Créer l'environnement virtuel
python -m venv .venv
# 3. Activer l'environnement
.venv\Scripts\activate
# 4. Installer les dépendances
pip install -r requirements.txt
# 5. Lancer l'application
python main.py
Lancement rapide (après installation)
run.bat
📖 Guide d'utilisation
Première utilisation
- Lancez l'application via
run.batoupython main.py - L'écran d'accueil s'affiche avec les 9 cartes de modules
- Choisissez votre type de scan :
- ⚡ Scan rapide : vérifications essentielles (~1 minute)
- 🔍 Scan complet : analyse approfondie (~5-10 minutes)
- Attendez la fin du scan (la barre de progression indique l'avancement)
- Consultez votre score et les recommandations
Mode Novice vs Expert
| Mode Novice 👤 | Mode Expert | |
|---|---|---|
| Langage | Simple, sans jargon | Technique |
| Recommandations | Étapes concrètes | Détails techniques |
| Résultats | Explication simplifiée | Données brutes |
Activez le mode novice avec le bouton 👤 Mode novice en haut à droite.
Exporter un rapport
- Après le scan, cliquez sur 📄 Exporter PDF ou 💾 Exporter JSON
- Choisissez l'emplacement du fichier
- Le rapport s'ouvre automatiquement
Consulter l'historique
Cliquez sur 📋 Historique des scans pour :
- Voir tous vos scans précédents
- Comparer l'évolution de votre score dans le temps
- Identifier les améliorations apportées
🏗️ Architecture du projet
security-scanner/
│
├── main.py # Point d'entrée
├── requirements.txt # Dépendances Python
├── settings.json # Paramètres (thème, mode novice)
├── scan_history.db # Historique SQLite (auto-créé)
├── install_and_run.bat # Installation + lancement
├── run.bat # Lancement rapide
│
├── scanner/ # Modules d'analyse
│ ├── port_scanner.py # Scan des ports (ThreadPoolExecutor)
│ ├── malware_scanner.py # Fichiers suspects + registre Run
│ ├── password_checker.py # Comptes + politique MDP
│ ├── browser_extensions.py # Chrome / Edge / Firefox
│ ├── software_checker.py # Logiciels vulnérables (registre)
│ ├── firewall_checker.py # netsh advfirewall
│ ├── startup_analyzer.py # Registre Run + dossier démarrage + schtasks
│ ├── system_security.py # Defender, UAC, BitLocker, Secure Boot
│ ├── network_scanner.py # Ping sweep + ARP + scan ports
│ └── score_engine.py # Score pondéré 0-100
│
├── ui/ # Interface PyQt6
│ ├── main_window.py # Fenêtre principale (dashboard + tabs)
│ ├── scan_worker.py # QThread — scan non bloquant
│ ├── styles.py # Thèmes sombre et clair
│ └── widgets.py # Jauge score, barres, cartes modules
│
├── reports/
│ └── pdf_report.py # Rapport PDF ReportLab (9 sections)
│
└── utils/
├── settings.py # Paramètres persistants (JSON)
├── history.py # Historique SQLite
└── json_export.py # Export JSON des résultats
Flux de données
main.py
└─▶ MainWindow (PyQt6)
├─▶ ScanWorker (QThread)
│ ├─▶ system_security.py → SystemCheckResult[]
│ ├─▶ firewall_checker.py → FirewallResult
│ ├─▶ port_scanner.py → PortResult[]
│ ├─▶ password_checker.py → AccountInfo[], PolicyInfo
│ ├─▶ malware_scanner.py → SuspiciousFile[]
│ ├─▶ startup_analyzer.py → StartupEntry[]
│ ├─▶ browser_extensions.py → Extension[]
│ ├─▶ software_checker.py → InstalledSoftware[]
│ ├─▶ network_scanner.py → NetworkDevice[]
│ └─▶ score_engine.py → SecurityScore
├─▶ MainWindow._on_results()
│ ├─▶ Populate tabs
│ ├─▶ Update score widget
│ ├─▶ Update recommendations panel
│ └─▶ Save to history (SQLite)
└─▶ Export: pdf_report.py | json_export.py
🔢 Explication du score de sécurité
Pondération des modules
| Module | Poids | Justification |
|---|---|---|
| 🛡 Sécurité système | 18% | Defender, UAC désactivés = risque critique |
| 🔑 Mots de passe | 15% | Premier vecteur d'attaque |
| 🦠 Malware | 15% | Fichiers dangereux actifs |
| 🔌 Ports ouverts | 12% | Exposition réseau directe |
| 📦 Logiciels | 12% | Vulnérabilités exploitables |
| 🔥 Pare-feu | 10% | Barrière réseau principale |
| 🚀 Démarrage | 10% | Persistance malveillante |
| 🧩 Extensions | 8% | Risque modéré, souvent ignoré |
| 🌐 Réseau | 0% | Informatif uniquement |
Calcul du score
Score global = Σ (score_module × poids_module)
Chaque module retourne un score 0-100. Les pénalités sont appliquées ainsi :
| Risque | Pénalité typique |
|---|---|
| CRITIQUE | -30 points |
| HIGH | -15 à -20 points |
| MEDIUM | -5 à -10 points |
| LOW | -1 à -3 points |
🛠️ Dépendances
PyQt6>=6.4.0 Interface graphique
psutil>=5.9.0 Informations système
reportlab>=4.0.0 Génération PDF
requests>=2.28.0 Requêtes HTTP (optionnel)
🔒 Sécurité et confidentialité
- ✅ 100% local — aucune donnée envoyée à l'extérieur
- ✅ Lecture seule — l'application ne modifie aucun fichier système
- ✅ Open source — le code est entièrement auditable
- ✅ Pas de telemetry — aucune collecte de données
- ⚠️ Droits administrateur recommandés pour les analyses complètes (pare-feu, politique MDP, BitLocker)
🖥️ Lancer en mode Administrateur (recommandé)
Pour des résultats plus complets (politique de mots de passe, règles pare-feu avancées, BitLocker) :
- Clic droit sur
run.bat - "Exécuter en tant qu'administrateur"
❓ Résolution de problèmes courants
| Problème | Solution |
|---|---|
python n'est pas reconnu | Réinstallez Python en cochant "Add to PATH" |
Erreur PyQt6 | Relancez pip install -r requirements.txt |
| Score pare-feu = 0 | Lancez en mode Administrateur |
| Scan réseau très lent | Normal — le ping sweep de 254 hôtes prend 2-3 min |
| Historique vide | Le fichier scan_history.db est créé au premier scan |
📜 Avertissement légal
Ce logiciel est conçu exclusivement pour l'analyse défensive de votre propre machine.
- Il n'effectue aucune connexion réseau externe
- Il n'envoie aucune donnée à des tiers
- Il ne modifie aucun paramètre système
- Son utilisation sur des machines tierces sans autorisation explicite est interdite
🤝 Contribution
Les contributions sont les bienvenues !
- Forkez le projet
- Créez une branche :
git checkout -b feature/nouveau-module - Committez vos changements
- Ouvrez une Pull Request
Idées de contributions
- Nouveaux patterns dans la base de logiciels vulnérables (
scanner/software_checker.py) - Traductions (EN, ES, DE…)
- Nouveaux modules (VPN checker, DNS leak, etc.)
- Tests unitaires
Security Scanner PC — Fait pour protéger, pas pour attaquer.
