8.6 KiB
🛡️ Audit Firewall - Network Reputation Service
Uno strumento professionale di audit PowerShell per valutare l'efficacia del filtraggio del tuo firewall testando URL categorizzati basati sulla loro reputazione di rete.
📋 Indice dei Contenuti
- Panoramica
- Caratteristiche
- Prerequisiti
- Installazione
- Utilizzo
- Configurazione
- Report Generato
- Struttura Dati
- Sistema di Punteggio
- Risoluzione Problemi
- Contribuire
- Licenza
🎯 Panoramica
Questo script PowerShell testa l'efficacia del tuo firewall verificando che gli URL malevoli siano correttamente bloccati mentre i siti legittimi rimangano accessibili. Genera un report HTML professionale con punteggi, statistiche e raccomandazioni.
Autore: Hubert Cornet
Versione: 1.3
Data: 3 settembre 2025
✨ Caratteristiche
- 🔍 Test automatizzato di centinaia di URL categorizzati
- 📊 Punteggio intelligente con voti da A+ a F
- 📱 Report HTML responsive con interfaccia interattiva
- 🔧 Supporto proxy con autenticazione
- ⚡ Barre di progresso in tempo reale
- 🎨 Visualizzazioni colorate dei risultati
- 💾 Esportazione JSON dei dati grezzi
- 🌐 Rilevamento multi-metodo dei blocchi
📋 Prerequisiti
Requisiti di Sistema
- Windows 10/11 o Windows Server 2016+
- PowerShell 5.1 o superiore
- Connessione Internet attiva
- Permessi di scrittura nella directory dello script
Moduli PowerShell (installati automaticamente)
PSWriteHTML
PSWriteColor
File Richiesti
file-nrs.json
- Database di URL categorizzati
🚀 Installazione
- Scarica lo script in una cartella dedicata
- Scarica il file JSON da:
https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
- Posiziona entrambi i file nella stessa directory
💻 Utilizzo
Utilizzo Base
.\AuditFirewall.ps1
Con Proxy
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.azienda.com:8080"
Con Autenticazione Proxy
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.azienda.com:8080" -ProxyUseAuthentication
Con Timeout Personalizzato
.\AuditFirewall.ps1 -TimeoutSeconds 15
⚙️ Configurazione
Parametri Disponibili
Parametro | Tipo | Descrizione | Predefinito |
---|---|---|---|
ProxyUrl |
String | URL del proxy di rete | Nessuno |
ProxyUseAuthentication |
Switch | Abilita autenticazione proxy | False |
TimeoutSeconds |
Integer | Timeout per URL | 10 |
Personalizzazione Parole Chiave di Blocco
Modifica la variabile $BlockKeywords
nello script:
$BlockKeywords = @("sito bloccato", "accesso negato", "filtraggio web", "Access Denied", "Site Blocked")
📊 Report Generato
Lo script genera automaticamente:
📁 Struttura File di Output
Rapports/
└── [Data e Ora]/
├── Audit_Firewall_Report.html # Report principale
└── Results.json # Dati grezzi
🎨 Contenuto Report HTML
- Riassunto Esecutivo: Punteggio globale e statistiche chiave
- Tabella Punteggi: Performance per categoria
- Dettagli Interattivi: Test individuali per URL
- Scala di Valutazione: Spiegazione del sistema di punteggio
📁 Struttura Dati
Formato file-nrs.json
{
"categorie": [
{
"id": "malware",
"nom": "Malware",
"description": "Siti che distribuiscono software malevolo",
"urls": [
{
"url": "http://esempio-malware.com",
"reputation": "malicious",
"expected_action": "block"
},
{
"url": "https://sito-legittimo.com",
"reputation": "safe",
"expected_action": "allow"
}
]
}
]
}
Azioni Attese
"block"
: L'URL dovrebbe essere bloccato dal firewall"allow"
: L'URL dovrebbe rimanere accessibile
📈 Sistema di Punteggio
Scala di Valutazione
Voto | Punteggio | Interpretazione |
---|---|---|
A+ | 95-100% | 🟢 Eccellente / Perfetto |
A | 90-95% | 🟢 Ottimo livello di filtraggio |
B+ | 85-90% | 🟡 Molto buono |
B | 80-85% | 🟡 Buono, alcuni aggiustamenti necessari |
C+ | 75-80% | 🟠 Discreto |
C | 70-75% | 🟠 Medio, lacune significative |
D+ | 65-70% | 🔴 Accettabile |
D | 60-65% | 🔴 Debole, filtraggio inefficace |
E+ | 55-60% | 🔴 Molto debole |
E | 50-55% | 🔴 Insufficiente |
F+ | 45-50% | ⚫ Critico |
F | 0-45% | ⚫ Azione immediata richiesta |
Metodo di Calcolo
Punteggio = (URL filtrati correttamente / Totale URL testati) × 100
🔍 Metodi di Rilevamento
Come lo script rileva i blocchi:
- Analisi del Contenuto: Ricerca parole chiave delle pagine di blocco
- Timeout di Rete: Richieste che scadono (probabile blocco firewall)
- Errori di Connessione: Incapacità di raggiungere il server
- Codici di Stato HTTP: Analisi delle risposte del server
Header HTTP Simulati:
Lo script simula un browser moderno per evitare il rilevamento:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml...
Accept-Language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7
🔧 Risoluzione Problemi
Problemi Comuni
❌ "File 'file-nrs.json' non esiste!"
Soluzione: Scarica il file JSON dal link fornito e posizionalo nella stessa cartella dello script.
❌ "Impossibile installare il modulo X"
Soluzione: Esegui PowerShell come amministratore o usa:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
❌ Timeout Frequenti
Soluzioni:
- Aumenta il valore di
-TimeoutSeconds
- Verifica la tua connessione di rete
- Configura correttamente le impostazioni proxy
❌ Falsi Positivi/Negativi
Soluzioni:
- Aggiorna le parole chiave di blocco
- Verifica la configurazione del firewall
- Adatta il file JSON al tuo ambiente
🏢 Casi d'Uso Raccomandati
📅 Uso Periodico
- Audit mensile dell'efficacia del firewall
- Validazione dopo aggiornamenti delle regole
- Benchmarking tra soluzioni di sicurezza
👥 Report Manageriali
- Dashboard per il management IT
- KPI di sicurezza misurabili
- Giustificazione investimenti in sicurezza
🔧 Test di Configurazione
- Validazione dopo modifiche di rete
- Test di regressione delle regole firewall
- Audit di conformità della sicurezza
⚠️ Limitazioni Tecniche
Punti di Attenzione:
- Test Sequenziali: Nessuna parallelizzazione (può essere lento)
- Rilevamento Base: Si basa su parole chiave predefinite
- Falsi Positivi: Siti legittimi temporaneamente inaccessibili
- Sicurezza: Lo script contatta effettivamente gli URL testati
Best Practice:
- 🕐 Esegui durante le ore di minor traffico
- 📊 Analizza i risultati nel contesto
- 🔄 Mantieni aggiornato il file JSON
- 📈 Monitora l'evoluzione dei punteggi nel tempo
🤝 Contribuire
Per Contribuire:
- Fai fork del progetto
- Crea il tuo branch feature
- Committa le tue modifiche
- Push al branch
- Apri una Pull Request
Idee di Miglioramento:
- Parallelizzazione test per migliori performance
- Rilevamento più sofisticato delle pagine di blocco
- Supporto database reputazione esterni
- Interfaccia grafica per la configurazione
- Integrazione con API di threat intelligence
🎯 Roadmap
Versione 1.4 (pianificata)
- Test paralleli per performance migliorate
- Supporto certificati SSL personalizzati
- Notifiche email per i risultati
Versione 2.0 (futuro)
- Interfaccia web per configurazione
- Integrazione con soluzioni SIEM
- API REST per automazione
📞 Supporto
Per aiuto o segnalare problemi:
- 📧 Contatta l'autore: Hubert Cornet
- 🐛 Apri un issue nel repository del progetto
- 📚 Consulta la documentazione tecnica
📄 Licenza
Questo progetto è sotto licenza MIT. Vedi il file LICENSE
per maggiori dettagli.
⭐ Se questo script ti è stato utile, non esitare a dargli una stella!
Ultimo aggiornamento: 3 settembre 2025