Lecteur Markdown
INTRUSION_SCANNER_DOCUMENTATION_FR
BeamReactor Intrusion Scanner #
Description #
Outil de scan de sécurité qui teste l'accès direct à tous les fichiers PHP de l'installation BeamReactor pour vérifier qu'ils sont correctement protégés.
Fonctionnalités #
- Scan Récursif : Parcourt automatiquement tous les répertoires (modules/, plugins/, rss/, members/)
- Catégorisation : Identifie le type de chaque fichier (handler, config, library, locale, etc.)
- Tests HTTP : Vérifie que l'accès direct renvoie bien "forbidden" ou 401/403
- Détection de Fuites : Identifie les fichiers qui exposent du contenu sans protection
- Rapport Détaillé : Affiche les résultats avec code HTTP et extrait de réponse
Structure du Plugin #
plugins/intrusion_scanner/
├── intrusion_scanner.php # Interface principale
├── conf/
│ └── intrusion_scanner.conf.inc.php # Configuration
└── locale/
└── intrusion_scanner.fr.inc.php # Traductions françaises
Installation #
1. Créer le répertoire `plugins/intrusion_scanner/`
2. Copier les fichiers dans la structure ci-dessus
3. Accéder à `index.php?obj=intrusion_scanner.php` (niveau OVERMIND requis)
Utilisation #
Lancer un Scan #
1. Accéder au plugin : `?obj=intrusion_scanner.php`
2. Cliquer sur "Lancer le Scan"
3. Attendre la fin du scan (peut prendre quelques minutes)
Interpréter les Résultats #
Le scanner classe les fichiers en 4 catégories :
✓ Fichiers Protégés (Vert) #
Fichiers correctement sécurisés qui renvoient :
- Le texte "forbidden"
- Un code HTTP 401 ou 403
- Tout autre message d'interdiction configuré
Action : Aucune action requise
✗ Fichiers Vulnérables (Rouge) #
Fichiers qui renvoient du contenu (>50 caractères) sans protection.
Action URGENTE : Vérifier chaque fichier et ajouter la protection :
if(!function_exists('frameheader')) die('forbidden');
? Vérification Manuelle Requise (Orange) #
Fichiers avec réponse ambiguë (courte mais pas "forbidden").
Action : Vérifier manuellement chaque fichier
⚠ Erreurs (Rouge) #
Fichiers qui n'ont pas pu être testés (erreur cURL, timeout, etc.).
Action : Vérifier la configuration réseau et réessayer
Configuration #
Répertoires Scannés #
Par défaut :
- `modules/`
- `plugins/`
- `rss/`
- `members/`
Répertoires Exclus #
- `data/`, `var/` (données)
- `ui/`, `css/`, `js/` (assets)
- `doc/`, `sql/`, `tests/` (dev)
- `.git/`, `node_modules/` (version control)
Fichiers Exclus #
- `index.php` (point d'entrée légitime)
- `.htaccess`
- `README.md`
Réponses Attendues #
Le scanner considère qu'un fichier est protégé s'il contient :
- `forbidden`
- `401`
- `unauthorized`
- `access denied`
- `direct access not permitted`
Sécurité #
Niveau d'Accès #
OVERMIND uniquement : Cet outil peut révéler la structure interne du système et doit être strictement limité aux administrateurs système.
Protection des Données #
- Limite la taille de réponse capturée (500 caractères)
- N'enregistre pas les réponses complètes
- Timeout de 10 secondes par fichier
Performance #
- Timeout total : 300 secondes (5 minutes)
- Timeout par fichier : 10 secondes
- Progression : Affichage en temps réel via JavaScript
Résolution de Problèmes #
Le scan ne démarre pas #
- Vérifier que vous avez le niveau OVERMIND
- Vérifier que cURL est activé en PHP
Tous les fichiers sont en erreur #
- Vérifier la configuration réseau
- Vérifier que le serveur web est accessible en local
Faux positifs #
- Vérifier manuellement les fichiers "ambigus"
- Ajuster `max_response_length` si nécessaire
Recommandations #
Après un Scan #
1. Corriger immédiatement tous les fichiers vulnérables
2. Vérifier les fichiers ambigus
3. Documenter les exceptions légitimes
4. Re-scanner après correction
Bonnes Pratiques #
- Lancer un scan après chaque ajout de plugin
- Lancer un scan après chaque mise à jour majeure
- Vérifier les fichiers .htaccess dans les répertoires sensibles
Architecture BeamReactor #
Rappel : Aucun fichier PHP ne doit être accessible directement
Tous les accès passent par `index.php` :
- `members/edit_profile.php` → `index.php?obj=edit_profile.php`
- `plugins/mailbox/mailbox.php` → `index.php?obj=mailbox.php`
- `modules/handler.mod.php` → `index.php?obj=handler.mod`
Chaque fichier doit commencer par :
if(!function_exists('frameheader')) die('forbidden');
Version #
- Version : 1.0.0
- Date : 2025-12-27
- Auteur : Treveur Bretaudière
Support #
Pour toute question ou problème, contacter l'équipe BeamReactor/AEGIS IA.