# πŸ›‘οΈ Audit Firewall - Network Reputation Service ![Version](https://img.shields.io/badge/version-1.3-blue.svg) ![PowerShell](https://img.shields.io/badge/PowerShell-5.1+-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) 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](#-panoramica) - [Caratteristiche](#-caratteristiche) - [Prerequisiti](#-prerequisiti) - [Installazione](#-installazione) - [Utilizzo](#-utilizzo) - [Configurazione](#-configurazione) - [Report Generato](#-report-generato) - [Struttura Dati](#-struttura-dati) - [Sistema di Punteggio](#-sistema-di-punteggio) - [Risoluzione Problemi](#-risoluzione-problemi) - [Contribuire](#-contribuire) - [Licenza](#-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 1. **Scarica lo script** in una cartella dedicata 2. **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 ``` 3. **Posiziona entrambi i file** nella stessa directory ## πŸ’» Utilizzo ### Utilizzo Base ```powershell .\AuditFirewall.ps1 ``` ### Con Proxy ```powershell .\AuditFirewall.ps1 -ProxyUrl "http://proxy.azienda.com:8080" ``` ### Con Autenticazione Proxy ```powershell .\AuditFirewall.ps1 -ProxyUrl "http://proxy.azienda.com:8080" -ProxyUseAuthentication ``` ### Con Timeout Personalizzato ```powershell .\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: ```powershell $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` ```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: 1. **Analisi del Contenuto**: Ricerca parole chiave delle pagine di blocco 2. **Timeout di Rete**: Richieste che scadono (probabile blocco firewall) 3. **Errori di Connessione**: IncapacitΓ  di raggiungere il server 4. **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: ```powershell 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: 1. πŸ• Esegui durante le ore di minor traffico 2. πŸ“Š Analizza i risultati nel contesto 3. πŸ”„ Mantieni aggiornato il file JSON 4. πŸ“ˆ Monitora l'evoluzione dei punteggi nel tempo ## 🀝 Contribuire ### Per Contribuire: 1. Fai fork del progetto 2. Crea il tuo branch feature 3. Committa le tue modifiche 4. Push al branch 5. 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*