Files
Powershell/cybersecurity/Network Reputation Service

Audit de Filtrage Web par PowerShell

Ce projet contient un script PowerShell conçu pour auditer l'efficacité des politiques de filtrage web d'un pare-feu ou d'un proxy. Il teste une liste d'URLs prédéfinies, vérifie si le résultat (bloqué ou autorisé) correspond à l'attente, et génère un rapport de conformité.

Fonctionnalités

  • Audit basé sur des catégories : Testez des listes d'URLs organisées par catégories (Réseaux sociaux, Adulte, Actualités, etc.).
  • Configuration flexible via JSON : Toutes les catégories et URLs sont définies dans un fichier urls.json facile à éditer.
  • Validation à double sens : Vérifie non seulement que les sites interdits sont bien bloqués, mais aussi que les sites autorisés sont bien accessibles.
  • Calcul de score : Attribue un score de conformité global et par catégorie.
  • Support des Proxys : Peut fonctionner à travers un proxy HTTP, avec ou sans authentification.
  • Simulation d'un navigateur : Utilise un User-Agent de navigateur standard pour éviter les blocages anti-bots qui pourraient fausser les résultats.
  • (À venir) Génération d'un rapport HTML interactif.

Prérequis

  • PowerShell 5.1 ou une version supérieure.
  • Accès à Internet depuis la machine exécutant le script.
  • Les permissions nécessaires pour exécuter des scripts PowerShell. Si vous rencontrez une erreur, vous pouvez l'autoriser pour la session en cours avec la commande :
    Set-ExecutionPolicy RemoteSigned -Scope Process
    

Installation

  1. Créez un dossier pour votre projet (par exemple, C:\Scripts\AuditFirewall).
  2. Copiez le script principal (par exemple, Audit-WebFilter.ps1) dans ce dossier.
  3. Créez un fichier nommé urls.json dans le même dossier.

Configuration

Le cœur de l'audit réside dans le fichier urls.json. Il définit les catégories et les URLs à tester, ainsi que le résultat attendu pour chacune.

Structure du fichier urls.json

{"categorie": [
	{
		"id": 1,
		"nom": "Alcool",
		"description": "Pages web qui promeuvent, préconisent ou vendent de l'alcool, y compris de la bière, du vin et des alcools forts.",
		"urls" : [
			{ "url": "https://www.wine-searcher.com", "reputation": "Information sur l'alcool", "expected_action": "allow" },
			{ "url": "https://www.alcool-info-service.fr", "reputation": "Prévention alcool", "expected_action": "allow" },
			{ "url": "https://www.thebar.com", "reputation": "Bars", "expected_action": "block" },
			{ "url": "https://www.cocktaildb.com", "reputation": "Cocktails", "expected_action": "block" },
			{ "url": "https://www.diffordsguide.com", "reputation": "Cocktails", "expected_action": "allow" }
		]
	},
	{
		"id": 2,
		"nom": "Anonymiseur",
		"description": "Pages web qui font la promotion de serveurs mandataires et d'anonymiseurs pour la navigation sur des sites web dans le but de contourner les filtres.",
		"urls" : [
			{ "url": "https://www.whonix.org", "reputation": "Navigateurs anonymes", "expected_action": "block" },
			{ "url": "https://brave.com", "reputation": "Navigateurs anonymes", "expected_action": "allow" },
			{ "url": "https://duckduckgo.com", "reputation": "Services de confidentialité", "expected_action": "allow" },
			{ "url": "https://startpage.com", "reputation": "Services de confidentialité", "expected_action": "allow" },
			{ "url": "https://www.ghostery.com", "reputation": "Services de confidentialité", "expected_action": "allow" }
		]
	}