Un nostro lettore ci ha chiesto alcuni chiarimenti sul funzionamento della protezione web offerta da molti antivirus e, in particolare, sulla scansione HTTPS.
Come fanno gli antimalware ad esaminare il contenuto dei pacchetti dati scambiati via HTTPS alla ricerca di eventuali minacce se essi, com’è noto, sono scambiati in forma cifrata?
HTTPS aggiunge, rispetto a HTTP, l’impiego di un protocollo per la cifratura dei dati (TLS o il predecessore SSL). Inoltre, il sito web che fa uso di HTTPS deve mostrare al browser un certificato digitale valido, non scaduto ed emesso da un’autorità di certificazione riconosciuta. Il certificato viene usato per confermare l’identità del sito web; quando esso risultasse non valido, scaduto oppure non prodotto da un’autorità di certificazione riconosciuta, il browser blocca la connessione e mostra un eloquente messaggio d’allerta.
I principali browser, poi, mostrano adesso l’indicazione Sito sicuro nella barra degli indirizzi per quei siti web che sfruttano HTTPS (quindi proteggono con la crittografia il flusso di dati tra client e server) e, viceversa, Non sicuro su quei siti che non solo non usano il protocollo HTTPS ma, soprattutto, dispongono di almeno un form per il login: Sito sicuro su Chrome e Firefox, che cosa significa.
È infatti sconsigliato inserire nome utente e password in un sito HTTP perché tali credenziali, viaggiando in chiaro sulla rete, potrebbero essere intercettate e sottratte da terze parti, a vari livelli semplicemente esaminando il contenuto dei pacchetti dati in transito (basta Wireshark o software similari).
Protezione web degli antivirus: come funziona la scansione del traffico HTTPS
Tutti i principali sviluppatori di soluzioni per la sicurezza informatica hanno presentato software che consentono di esaminare anche il traffico veicolato mediante protocollo HTTPS.
Se la scansione del traffico HTTP è banale, essendo in chiaro, come fanno gli antivirus a esaminare il contenuto dei pacchetti HTTPS alla ricerca di eventuali minacce?
HTTPS si occupa infatti, come accennato in precedenza, di creare un canale di comunicazione sicuro attraverso una rete di computer non sicura qual è Internet.
L’obiettivo è evidentemente proteggere le comunicazioni dai cosiddetti attacchi man-in-the-middle (MITM) che consentono di leggere i dati, appropriarsene ed eventualmente danneggiarli o modificarli arbitrariamente.
I moderni browser web verificano non soltanto che il sito web che usa HTTPS faccia impiego di un certificato digitale con tutte le caratteristiche di sicurezza ma anche che per lo scambio dei dati vengano usati protocolli, algoritmi per lo scambio reciproco delle chiavi asimmetriche e cifrari sicuri e attuali.
Cliccando sul simbolo del lucchetto a sinistra della barra degli indirizzi del browser, qualunque esso sia, è possibile leggere le informazioni sul certificato digitale in uso sul sito HTTPS.
Nel caso di Chrome, basta cliccare su Valido in corrispondenza della voce Certificato mentre in Firefox sulla freccia quindi su Ulteriori informazioni.
Cliccando su Visualizza certificato in Firefox è possibile consultare il contenuto del certificato digitale: in bell’evidenza le date di emissione, scadenza e il soggetto (certification authority) che l’ha prodotto.
Se la connessione HTTPS è crittografata e nessuno può interporsi sul canale di comunicazione per leggere in transito, come fa un antivirus e la sua funzionalità per la protezione web a leggere il contenuto dei pacchetti dati? Semplicemente, viene usato un trucco.
Per analizzare il traffico scambiato usando connessioni HTTPS o le email inviate e ricevute usando i protocolli SSL/TLS, gli antivirus dotati di protezione web installano sul sistema un certificato digitale “root” autogenerato in Windows.
Quando un utente chiede, mediante il browser, di visitare una pagina web HTTPS tale richiesta transita attraverso un proxy locale attivato dall’antivirus e non viene indirizzata direttamente al sito web di destinazione.
Di fatto, quindi, il browser non si collega direttamente al sito web richiesto ma è il proxy dell’antivirus a farlo restituendo poi al browser i dati ottenuti.
Si provi ad aprire ad esempio Internet Explorer: verificando il certificato digitale, con gli antivirus dotati di protezione web non si troverà più quello mostrato dal sito originale bensì un certificato “farlocco” autogenerato dall’antivirus e installato in locale su sistema.
Come si vede nell’immagine, se da Internet Explorer si proverà a verificare il certificato digitale usato su www.google.it, non si troverà più quello di Google ma quello “auto-emesso” dall’antivirus (in questo caso Avast).
I certificati root autogenerati dagli antivirus possono essere facilmente rinvenuti nella sezione Autorità di certificazione radice, Certificati della finestra che appare premendo Windows+R
e digitando certmgr.msc
.
Avast, ad esempio, sostiene di aver ricevuto un giudizio estremamente positivo durante i test svolti da alcuni team formati in ambito accademico oltre che dagli esperti di Cloudflare, Google e Mozilla.
Il fatto è che la scansione del traffico HTTPS da parte degli antivirus è ormai morta. Da qualche tempo a questa parte, Avast – così come altri produttori di soluzioni per la sicurezza – non usano più lo schema illustrato precedentemente in Google e Chrome ma si limitano a farlo solo con i browser più vecchi.
Il motivo è quello illustrato nell’articolo Chrome 63 proteggerà dagli attacchi MITM e dai certificati digitali fasulli.
Quello posto in essere dagli antivirus dotati di protezione web è infatti un MITM a tutti gli effetti seppur eseguito in ambito locale. Non è infatti possibile decodificare il traffico HTTPS senza rompere la crittografia.
Ecco perché installando ad esempio Avast, pur con la scansione HTTPS abilitata, se si esamina il certificato emesso da Google o usato su qualunque altro sito HTTPS non si troverà più quello autogenerato dal produttore dell’antivirus.
La scansione dei pacchetti dati HTTPS da parte dei software antivirus, quindi, è ormai già morta.
Il fatto che l’antivirus permetta di bloccare, per esempio, un sito HTTPS dal suo pannello di configurazione non ha nessuna importanza: in questo caso, infatti, viene semplicemente impedita la connessione al sito web specificato ma non v’è evidentemente alcun collegamento con l’utilizzo della cifratura.
L’unica soluzione per i produttori di software antivirus che volessero continuare ad effettuare la scansione del traffico HTTPS è disporre l’installazione di un componente aggiuntivo nel browser che di fatto permetterebbe di intercettare tutto il traffico. In questo caso tutto ciò che transita attraverso il browser può essere esaminato.