nwb/cyber-sec-module (0.1.3)
Published 2025-06-20 08:12:47 +00:00 by drone_publisher
Installation
{
"repositories": [{
"type": "composer",
"url": " "
}
]
}
composer require nwb/cyber-sec-module:0.1.3
About this package
Module de remontée de piratage pour les applications web
📘 Module Commun de Remontée de Piratage
Module PHP réutilisable pour la détection et remontée automatique d'incidents de sécurité vers un endpoint centralisé.
🚀 Installation
composer require nwb/cyber-sec-module
🔧 Configuration
1. Variables d'environnement
Définissez les variables d'environnement suivantes :
export CYBERSECMODULE_TOKEN="votre-token-authentification"
export CYBERSECMODULE_URL="https://n8n.kub.nwb.fr/webhook/signalHackingAttempt"
2. Fichier de patterns de menaces
Le module nécessite un fichier JSON contenant les patterns de détection :
{
"threat_patterns": [
{
"threat_patch": "/wordpress",
"pattern": "scan page wordpress générique"
},
{
"threat_patch": "/wp-",
"pattern": "scan page wordpress"
},
{
"threat_patch": "/cgi-bin/",
"pattern": "scan répertoire cgi-bin"
}
]
}
💡 Utilisation
Détection automatique avec patterns
// Charger les patterns depuis un fichier JSON
$patterns = loadThreatPatterns('./rules-example.json');
// Détection automatique basée sur l'URI de la requête et envoie vers endpoint dédié du résultat
signalHackingAttempt([], $patterns);
Utilisation avec configuration personnalisée
$config = [
'endpoint' => 'https://custom.endpoint.com/webhook',
'auth_token' => 'token-personnalisé',
'timeout' => 10
];
Traitement de la file d'attente (pour worker CRON)
// Traiter les tentatives échouées
$processed = processCyberSecRetryQueue();
echo "Tentatives traitées : $processed";
🔒 Sécurité
- Les données sensibles (tokens, cookies de session) sont automatiquement hachées avec SHA-256
- Authentification Bearer token obligatoire
- Système de retry avec file d'attente en cas d'échec réseau
- Compression GZIP optionnelle
🧪 Tests
# Exécuter les tests
composer test
# Configuration requise : phpunit.xml avec vos vraies variables d'environnement
📊 Structure des données envoyées
{
"ip": "203.0.113.1",
"timestamp": "2024-01-15T14:30:00+01:00",
"pattern": "/wp-admin",
"data": {
"get": {...},
"post": {...},
"server": {...},
"cookie": {...}
}
}
⚙️ Configuration avancée
Priorités de configuration
- Paramètres explicites dans l'appel de fonction
- Variables d'environnement (
CYBERSECMODULE_*
) - Valeurs par défaut du module
Système de retry
- 3 tentatives maximum
- Délais exponentiels : 1s, 2s, 4s
- File d'attente en mémoire pour les échecs
- Worker CRON pour retraiter les échecs
🛠️ Développement
Prérequis
- PHP 7.0+
- Composer
Structure du projet
src/
functions.php # Fonctions principales du module
tests/
CyberSecModuleTest.php # Tests unitaires
rules-example.json # Exemple de fichier de patterns
example-simple.php # Exemple d'utilisation
📝 Licence
Propriétaire - NwB
👨💻 Mainteneur
Maël Donnart - mael.donnart@nwb.fr
Dependencies
Dependencies
ID | Version |
---|---|
php | >=7.0 |
Development Dependencies
ID | Version |
---|---|
phpunit/phpunit | * |
squizlabs/php_codesniffer | * |