File OVPN sconosciuti: rischio locale e fiducia remota
Un profilo può influenzare il client sulla tua macchina e scegliere l’operatore che vede il tuo traffico. Esamina entrambe le decisioni prima di importare il file.
Tratta un file OVPN come input per un programma, non come un certificato che il suo contenuto sia innocuo. Controllare l’indirizzo del server risponde solo a dove il profilo vuole connettersi, e a nient’altro. Dentro quel file ci sono due decisioni di fiducia separate: cosa può fare il client sulla tua macchina e quale operatore riceve il traffico. Un nome di protocollo familiare non risolve nessuna delle due.
Due decisioni si nascondono in un solo file
La prima decisione è locale. Il profilo è un linguaggio di configurazione, e il client che lo legge può supportare direttive che caricano un plugin, eseguono uno script o cambiano il modo in cui vengono applicati routing e DNS. La seconda decisione è remota. Qualunque cosa contenga il file, l’operatore di uscita vede il traffico che arriva a lui.
Confondere le due produce cattivi consigli in entrambe le direzioni: un profilo dall’aria pulita da un operatore sconosciuto, o il profilo di un operatore noto con un hook che nessuno ha letto. Un profilo sicuro localmente può comunque consegnare il tuo traffico a qualcuno che non sceglieresti.
Leggi il profilo prima che lo faccia qualsiasi client
Leggi il file come testo prima che qualsiasi client lo elabori. Cerca direttive che puntano fuori dal file, fanno riferimento a eseguibili o cambiano privilegi, e confronta quell’elenco con il supporto documentato del client. Una breve ricerca non è un audit di sicurezza, ma ti dice se il profilo è un elenco di server o qualcosa di più.
grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn
Un risultato vuoto è rassicurante e non conclusivo, perché le opzioni possono interagire o arrivare da un file incluso. Considera l’elenco filtrato un motivo per continuare a leggere, non un verdetto.
Le istruzioni che arrivano insieme al profilo meritano lo stesso esame del profilo. Quattro richieste dovrebbero fermarti: abilitare script, installare un helper o una libreria, eseguire il client come amministratore o indebolire una restrizione di importazione. Ognuna sposta il confine di fiducia verso l’esterno, e nessuna fa parte dell’importazione normale di un elenco di server.
Leggi anche l’intero file una volta, perché una singola riga sconosciuta si giudica meglio nel contesto che in un elenco filtrato. Se una riga ti è sconosciuta, cercala nel manuale del tuo client invece di indovinare.
Cosa eseguirà davvero il client
Il manuale 2.6 di Community OpenVPN documenta i livelli di script-security: il livello 1 è quello predefinito e blocca gli script definiti dall’utente, mentre il livello 2 li consente. Il caricamento dei plugin è un meccanismo separato con la propria direttiva. Per questo lo stesso file può significare cose diverse in client diversi. I client mobili e dei produttori possono accettare un insieme più ristretto di direttive, o nessuno degli hook.
Il metodo di avvio conta quanto il client. Un profilo avviato da un helper con privilegi può fare più di uno avviato nello spazio utente, e questa differenza è un motivo per leggere la richiesta di importazione invece di scartarla.
Anche la versione conta, perché questi livelli sono definiti per release e un client diverse versioni indietro potrebbe non applicare la stessa politica. Leggi il manuale che corrisponde alla build che esegui, non il più recente che trovi. Se il client non mostra da nessuna parte una stringa di versione, è già un motivo per rallentare.
Confronta l’operatore, non solo l’indirizzo
Confronta gli operatori come confronti qualsiasi altro intermediario. Chiedi chi gestisce l’uscita, cosa registrano e come il profilo è arrivato a te. Una pagina di download verificata e un’impronta digitale corrispondente dicono più di un nome host familiare. Un server raggiungibile dimostra solo che qualcosa ha risposto.
Le credenziali sono la parte in cui le persone sbagliano sotto pressione. Non digitare la password di un account non correlato in un profilo scaricato perché il nome del server sembra familiare. Un profilo può anche portare una chiave privata in chiaro, quindi pubblicare l’intero file in un thread di revisione consegna quella chiave al thread.
Una sessione HTTPS correttamente validata nasconde ancora il contenuto della pagina a chiunque si limiti a inoltrare pacchetti, quindi l’uscita non vede automaticamente ogni password. Vede però quali siti raggiungi, e questo confine merita di essere detto con precisione invece che esagerato.
Dove l’origine del file resta poco chiara, o un privilegio richiesto non ha una spiegazione che puoi accettare, sostituisci il profilo con uno proveniente da una fonte che si può chiamare a rispondere. Su una connessione di lavoro gestita, l’amministratore dovrebbe approvare il client e la configurazione come un’unica decisione, non due. Nulla qui richiede che tu provi prima un intento malevolo; rifiutare l’accesso è una risposta legittima.