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

  1. Paramètres explicites dans l'appel de fonction
  2. Variables d'environnement (CYBERSECMODULE_*)
  3. 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 *
Details
Composer
2025-06-20 08:12:47 +00:00
1
Maël Donnart
6.4 KiB
Assets (1)
Versions (8) View all
0.2.1 2025-06-23
0.2.0 2025-06-23
0.1.3 2025-06-20
0.0.6 2025-06-18
0.0.5 2025-06-18