Quanti programmi installati su Windows si collegano a Internet senza chiedere alcuna autorizzazione? Browser, utility, aggiornamenti automatici e applicazioni apparentemente innocue comunicano continuamente con uno o più server remoti. Il firewall di Windows 11 controlla il traffico di rete, ma nella configurazione predefinita consente le connessioni in uscita, a meno che una regola non le vieti espressamente. PacketHound ribalta questo comportamento: ogni applicazione sconosciuta deve ottenere il permesso prima di poter comunicare con l’esterno.
L’idea ricorda Little Snitch, storico firewall applicativo per macOS (e più di recente per Linux), e strumenti come Windows Firewall Control. PacketHound, però, sceglie un’implementazione interessante: non introduce driver aggiuntivi e sfrutta direttamente le funzionalità di sicurezza Microsoft. Il progetto, distribuito con licenza GPLv3 (download), funziona su Windows 10 dalla versione 1809 e su Windows 11, esclusivamente a 64 bit.
Come PacketHound trasforma Windows Firewall in un sistema di autorizzazioni
La differenza fondamentale riguarda la politica di gestione delle connessioni.
Di norma, Windows adotta un comportamento permissivo per il traffico in uscita: PacketHound imposta invece DefaultOutboundAction su Block per tutti e tre i profili firewall: Domain, Private e Public. Di conseguenza, un programma privo di regole esplicite non può comunicare attraverso la rete.
Per capire quali programmi tentano di accedere a Internet, PacketHound sfrutta il registro degli eventi di Windows: quando il firewall blocca una connessione in uscita, Windows può registrare l’operazione indicando quale programma ha tentato di collegarsi, a quale indirizzo IP, su quale porta e con quale protocollo.

PacketHound attiva questa funzionalità di controllo, chiamata Filtering Platform Connection, e tiene sotto osservazione gli eventi che segnalano una connessione bloccata. In particolare, utilizza l’evento 5157, documentato da Microsoft, per risalire all’applicazione che ha cercato di comunicare con l’esterno.
Se il tentativo proviene da un programma di terze parti per il quale non esiste ancora una regola, PacketHound fa scattare la comparsa di una finestra che chiede all’utente come comportarsi: si può autorizzare la connessione (Allow), bloccarla (Block) oppure rimandare la decisione.

La particolarità è che PacketHound non utilizza un proprio firewall: crea e gestisce le regole direttamente in quello integrato in Windows. Le autorizzazioni rimangono quindi consultabili e modificabili anche attraverso la console di gestione avanzata, che si apre premendo Windows+R e digitando wf.msc.
Autorizzare un programma non significa accesso illimitato!
Una delle funzionalità più interessanti riguarda la granularità delle decisioni: PacketHound consente cioè di autorizzare un’applicazione verso qualsiasi destinazione, soltanto verso un indirizzo IP oppure limitatamente a uno specifico host o dominio, inclusi eventuali sottodomini.
Windows Firewall applica le regole di destinazione usando indirizzi IP, non nomi DNS. PacketHound deve quindi mantenere aggiornato l’elenco degli indirizzi associati al dominio autorizzato. Se il server cambia IP, la prima connessione al nuovo indirizzo potrebbe fallire prima dell’aggiornamento della regola.
Limitare le connessioni per dominio non equivale a controllare precisamente ogni servizio remoto: più siti ospitati sullo stesso indirizzo IP, come accade frequentemente con le CDN, possono condividere la stessa autorizzazione. Inoltre, la finestra di PacketHound non permette di limitare direttamente una regola a una determinata porta; per farlo occorre modificarla successivamente attraverso wf.msc.
Le autorizzazioni possono durare indefinitamente oppure soltanto fino alla chiusura dell’applicazione.
La sezione Activity mostra i tentativi bloccati, mentre Rules permette di modificare, eliminare e individuare regole associate a programmi non più presenti sul PC.

PacketHound riconosce i componenti di Windows senza chiedere centinaia di autorizzazioni
Bloccare indiscriminatamente tutte le comunicazioni in uscita potrebbe compromettere il funzionamento di componenti come Windows Update, Microsoft Defender e altri servizi del sistema operativo. Gli sviluppatori hanno quindi introdotto una classificazione dei componenti Microsoft.
Per considerare attendibile un eseguibile Windows, PacketHound verifica contemporaneamente il percorso di installazione, la proprietà del file e la validità della firma digitale Authenticode. Il file deve appartenere a TrustedInstaller oppure SYSTEM e presentare una firma Microsoft Windows valida. Non basta, insomma, collocare un eseguibile nella cartella System32.
PacketHound distingue inoltre i componenti Windows dalle utility dei produttori hardware, anche quando queste ultime dispongono di certificazioni WHQL.
Esiste un’eccezione importante: strumenti come PowerShell, cmd, curl, certutil, bitsadmin, mshta, rundll32 e regsvr32 continuano a richiedere un’autorizzazione. Sono infatti programmi legittimi che possono però facilitare il download di componenti malevoli o altre attività indesiderate. È un accorgimento sensato, pur senza rappresentare una protezione completa contro il malware.
Installazioni e aggiornamenti: il problema degli eseguibili temporanei
Molti installer estraggono programmi in cartelle temporanee con nomi differenti a ogni esecuzione: una normale regola firewall basata sul percorso diventerebbe rapidamente inutilizzabile.
PacketHound affronta il problema riconoscendo gli installer firmati digitalmente. Dopo un’autorizzazione, può ricordare nome del file e firmatario, consentendo successive copie temporanee con le stesse caratteristiche. Prima di applicare la regola verifica nuovamente la firma e mantiene aperto il file, impedendone la sostituzione durante l’esecuzione.
Resta un limite: se il programma tenta di comunicare prima che PacketHound abbia predisposto la regola, la connessione iniziale fallisce.
Il software offre quindi la possibilità di sospendere temporaneamente la protezione per 5 minuti, 15 minuti oppure un’ora. Le regole esplicite di blocco rimangono comunque attive.
Il limite rispetto a Little Snitch: la prima connessione fallisce
PacketHound non sospende una connessione nell’attesa della risposta dell’utente: prima la blocca, poi legge l’evento 5157, quindi propone la decisione. Dopo l’autorizzazione, l’applicazione deve riprovare a collegarsi.
Un browser generalmente effettua da solo un aggiornamento della pagina; alcuni installer, invece, interpretano il primo errore come definitivo.
Per trattenere davvero una connessione fino alla decisione servirebbe un driver WFP in modalità kernel, opportunamente firmato: PacketHound evita deliberatamente questa complessità.
Un’altra considerazione riguarda i PC aziendali: eventuali Group Policy possono prevalere sulle modifiche locali, limitando il funzionamento dello strumento. Inoltre, l’attivazione dell’auditing aumenta il numero di eventi nel registro Security.
Come installare PacketHound e cosa controllare prima di utilizzarlo
PacketHound si scarica dal sito ufficiale; il codice sorgente su GitHub permette di verificarne l’implementazione. Il progetto utilizza .NET 10 e offre anche un installer autonomo che non richiede l’installazione separata del runtime.
L’esecuzione richiede privilegi amministrativi perché il software modifica le regole firewall e la politica di auditing: l’installer colloca i componenti nella directory Program Files e può configurare l’avvio automatico tramite Utilità di pianificazione.
La disinstallazione di PacketHound tramite installer permette di ripristinare le impostazioni precedenti e scegliere se conservare le regole create. Il punto di forza di PacketHound rimane proprio questo: aggiunge un livello di controllo alle connessioni in uscita senza sostituire l’infrastruttura di sicurezza Microsoft.
È un approccio certamente interessante per chi desidera sapere quali applicazioni comunicano su Internet, pur accettando qualche limitazione operativa.