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
- Créez un dossier pour votre projet (par exemple,
C:\Scripts\AuditFirewall
). - Copiez le script principal (par exemple,
Audit-WebFilter.ps1
) dans ce dossier. - 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" }
]
}