In un certo senso so come funzionano le regole di un firewall per IP / port, ma non ho idea di come funzioni un firewall con i singoli programmi.
In altre parole, come fa il firewall a sapere che un programma vuole accedere a Internet e fermarlo?
I firewall di filtraggio delle applicazioni sono agganciati al sistema operativo a livello di kernel e sono al corrente di qualsiasi accesso ai file. La consapevolezza dell'accesso ai file include i socket di rete.
Per una dimostrazione visiva di questo su:
-i
lsof -i
Il firewall è a conoscenza del processo di richiesta e delle informazioni di rete associate (porta, stato, indirizzo, ecc.) esattamente come quelle sopra, ma ha anche la possibilità di modificare, impedire o chiudere connessioni.
Jeff Farland è assolutamente corretta, quindi se stai cercando una risposta breve e rapida, secondo me è proprio così.
Tuttavia, mi piace conoscere i dettagli esatti (come esattamente come è fatto) perché sono così e questo è un po 'troppo lungo per un commento, quindi, mi concentrerò sui firewall basati su software Windows, dal momento che è lì che è più probabile trovare firewall di applicazioni software commerciali. Molti di questi collegamenti sono diretti alla documentazione dello sviluppatore e diventano abbastanza tecnici abbastanza rapidamente, quindi se non sei quello che il lettore fa, mi scuso, spero che sia comunque un'introduzione utile a qualcuno.
Fondamentalmente, Windows ha in realtà un intero set di funzionalità del sistema operativo che ti permette di filtrare, negare richieste, iniettare richieste ecc. La documentazione più facile da trovare sull'argomento inizia con gestore del filtro file utilizzato da molti prodotti antivirus. C'è un diagramma brillante lì che ti mostra esattamente come funziona ogni richiesta. Essenzialmente, c'è uno stack di driver, che include una serie di minifilters ordinati per ordine di priorità e applicati alla richiesta. Questo è probabilmente ciò che fa il tuo antivirus medio ed è il motivo per cui molti prodotti antivirus non possono essere installati contemporaneamente; loro interferiscono l'uno con l'altro. Anche se questo è per attività basate su file, quindi:
Per i firewall, andare avanti ha più senso parlare della piattaforma di filtro di Windows , uno dei tanti cambiamenti di sicurezza che sono sorti in Vista. Un link diretto di interesse è la parte che spiega i molti modi per implementare i firewall a livello di applicazione nelle versioni precedenti di Windows. Fondamentalmente, è stato molto complicato e ancora perché due firewall potrebbero non causare solo collisioni, ma instabilità del sistema reale. A parte questo, molti venditori erano (stanno) scrivendo firewall.
Il modo davvero semplice per spiegare WPF è questo: hai due opzioni a tua disposizione. Il kernel (Windows stesso) ti fornisce un certo insieme di filtri predefiniti che puoi applicare (che sono abbastanza flessibili guardando i campioni). Se vuoi fare qualcosa di più, devi creare un driver callout che sia essenzialmente la stessa idea dei minifiltri sopra. In modalità driver callout, puoi ispezionare il contenuto del pacchetto e fare tutto ciò che vuoi in base a tali informazioni.
Il motivo dell'introduzione di questa modifica è l'introduzione della Protezione delle patch del kernel , un meccanismo per impedire ai guidatori di modificare il nucleo di Windows in modi che non si desidera. In aggiunta, è possibile eseguire molti filtri senza scrivere nemmeno i driver, vedi questo codice di esempio . E se sei interessato a crearne uno, o semplicemente a chiedermi dove ho trovato tutto questo, ecco i passaggi per scopri come creare una pagina del prodotto basata su WFP da MSDN.
Quindi, in pratica, quello che ha detto Jeff, davvero. Ovviamente Linux e Mac OS X sono di nuovo diversi; Ho cercato di concentrarmi sul sistema operativo con cui molte persone hanno utilizzato un prodotto come questo.
A proposito; Jeff ha menzionato Process Explorer. Le utilità sysinternals usano queste e altre API di filtraggio per darti le informazioni che vedi lì in questi giorni.
Fare il backup di un passaggio qui e scrivere tra i post - ci sono diversi tipi di firewall là fuori. Le funzionalità integrate nel firewall e la posizione del firewall all'interno della rete hanno molto a che fare con ciò che il firewall può fare. Se un firewall possa o meno persino rilevare il programma che trasmette i dati ha molto a che fare con questi fattori.
In primo luogo, una definizione: un firewall può (molto liberamente) essere definito come qualcosa che controlla e filtra il traffico su una rete. Può essere:
Può essere localizzato praticamente ovunque possa essere collegato, ma l'idea generale è metterla tra cose che vuoi proteggere e cose di cui non ti fidi.
Da lì, ci sono un numero vertiginoso di tipi di firewall là fuori e il modo in cui funzionano ha un'enorme influenza su ciò che possono fare. Ecco alcuni esempi di varianti:
livello di rete guardato - l'applicazione, la sessione e il livello di rete sono i più grandi. Sono sicuro che se uno sembra abbastanza difficile, si possono trovare firewall che operano su altri livelli, ma quelli sono i più grandi.
proxy vs. stateful - se si tratta di un firewall di tipo proxy, tutto ciò che può fare è confrontare questo messaggio con un insieme di regole per errato e corretto per il dato target. Se è di stato, può creare un insieme di regole basate su ciò che è venuto prima.
Combinando anche queste tre cose (dove si trova, quale livello di networking può guardare e se il suo proxy o stateful) può produrre un'ampia variazione in ciò che il firewall può fare.
In generale, tutti i firewall hanno una serie di regole per il comportamento buono o cattivo. Sospetto che, a meno che non si stia parlando di un firewall a livello di applicazione in esecuzione sul sistema informatico protetto con funzionalità non simili a firewall, che il firewall non sia in grado di individuare un programma e impedirne l'esecuzione. Non ho mai sentito parlare di un firewall che, ad esempio, possa vedere che sto usando Microsoft Word e mi impedisce di utilizzarlo.
Ciò che un firewall può fare, tuttavia, è il traffico di livello di applicazione , che renderà alcune applicazioni inutili - ad esempio, prova a utilizzare un browser web senza accesso a la rete. Di solito quando un firewall afferma di bloccare le applicazioni, significa applicazioni nel senso di trasmissioni di rete. In questo senso, il traffico HTTP prodotto dal mio browser Web è considerato l'applicazione.
Le regole possono variare da cose molto semplici - ad esempio "non consentire le richieste GET HTTP in arrivo" a qualcosa di complicato, come diagnosticare una serie di richieste che mostrano l'handle di una sorta di attacco. La chiave è che tutto ciò che un firewall deve seguire è da dove il messaggio sembra provenire, dove è diretto e cosa c'è dentro.
Un ultimo avvertimento: i metodi di crittografia cambieranno ciò che un firewall può e non può fare. Se il firewall termina la sessione SSL / TLS, allora può essere in grado di eseguire l'elaborazione a livello di applicazione, anche su trasmissioni SSL - ma se SSL / TLS o altro percorso crittografato è da client a server, allora il meglio che il firewall può fare è sicuro che SSL sia ben formato.
Dato che fai riferimento a IP e porta, presumo che tu stia facendo riferimento a un firewall basato su rete. Poiché tutti i firewall sensibili alle applicazioni non sono gli stessi, posso solo parlare di quello con cui ho esperienza: Palo Alto Networks. Se menzionare un fornitore specifico viola le regole di questo sito Web, basta rimuovere questa risposta.
Tutte le regole / le politiche basate su applicazioni di Palo Alto Networks si basano sull'identificazione dell'applicazione basata su rete. In altre parole, PAN esegue un'analisi approfondita dei pacchetti di tutto il traffico, in ogni momento, attraverso tutte le porte. Quindi il firewall non conosce o non si preoccupa delle applicazioni in esecuzione sui punti finali.
Palo Alto utilizza quattro metodi di analisi del traffico: Application Protocol Detection (include la decrittografia SSL), Decodifica del protocollo dell'applicazione, Firme dell'applicazione e Euristica). So che questi suoni come parole d'ordine, ma il punto è che ci sono più metodi utilizzati. A proposito, nessuno di loro è basato su proxy, che è una buona cosa.
Una volta classificato il traffico, vengono applicate le regole / le politiche. Le regole possono includere gruppi LDAP e / o utenti, QoS, Zone, ecc. BTW, puoi ancora utilizzare le porte e gli indirizzi IP nelle regole insieme agli altri elementi.
Se Palo Alto non è in grado di identificare l'applicazione di una sessione specifica, puoi bloccarla. In altre parole, default deny. Naturalmente, all'inizio dovresti solo avvertire prima di attivare il blocco. Palo Alto fornisce un report per queste sessioni in modo da poter tornare indietro e determinare il motivo per cui non è stato possibile identificare l'applicazione. Esistono diversi metodi di risoluzione a seconda del motivo.
Ti consiglio di dare un'occhiata ai livello di applicazione (3rd Gen) firewall Questi sono i tipi che sono a conoscenza di un particolare protocollo o applicazione.