Può capitare di trovarsi davanti dei file sospetti di documenti (Office, PDF o simili), magari arrivati via mail, che il nostro antimalware reputa sicuri, ma nondimeno esitiamo ad aprirli perché qualcosa non ci convince e al tempo stesso non vogliamo semplicemente cancellarli, magari perché stavamo aspettando di ricevere qualcosa del genere. Purtroppo non abbiamo modo di contattare direttamente la fonte che ce li ha inviati e non è pubblicamente controllabile il loro hash (come quando si scarica un file dai siti più attenti alla sicurezza). Come procedere? Il dilemma amletico "aprire il file o non aprirlo?" può essere sciolto usando, come "ultima spiaggia", il programma Dangerzone (scaricabile da qui).
Per capirne e apprezzarne il funzionamento è necessario fare un passo indietro e arrivare allegoricamente fino al Far West. Solitamente l’individuazione di malware nei file è basata sulla scansione del loro contenuto e simultaneo confronto con una black list di signature, ossia un elenco di stringhe di byte associate a codice notoriamente malevolo, oppure sul rilevamento di anomalie (anomaly detection), ossia processi e operazioni insoliti o sospetti attivati dal file in questione. Entrambi i metodi sono il pane quotidiano della malware analysis. Il programma che abbiamo testato si basa su un terzo ulteriore metodo: il CDR (Content Disarm and Reconstruction), un approccio alla sanificazione dei file che mira a disinnescare anche gli zero-day e i malware non schedati, ancor prima che manifestino comportamenti nocivi e compromettano il PC che li ha incautamente accolti. L’idea di fondo è analizzare la struttura del file e il suo contenuto per eliminare quello che risulta sospetto, non perché sia identificato come malware, ma semplicemente perché quel determinato tipo di file non dovrebbe contenere quel tipo di codice, pur non essendo questo in nessuna black list. Per approfondire sul CDR, si possono considerare questa esemplificazione e questi sintetici case studies; per sintetizzare, l'immagine seguente (fonte) rappresenta le varie fasi:
Ad esempio, un PDF non dovrebbe contenere un eseguibile nascosto che si avvia aprendo il file, così come un documento Office non dovrebbe avere del codice che invia dati dal PC host ad un server remoto. A prescindere che si tratti di minacce note o solo potenziali, il CDR “disarma” tali righe di codice, preleva il contenuto che invece è affidabilmente tipico per quel tipo di file, e ricostruisce poi un nuovo file, privo di quelle “difformità” ma con il suo contenuto tutelato. In pratica è come se, in un film western, lo sceriffo sbattesse fuori dal saloon alcuni soggetti, non perché sono nella sua lista di ricercati “wanted” (signature based detection), né perché si comportano in modo insolito e molesto (anomaly detection), ma semplicemente perché sono indiani, predicatori, bambini o altri soggetti che non è previsto stiano solitamente in un saloon, anche se magari apparentemente non hanno cattive intenzioni.
Lasciamo ora alle spalle il Far West e risincronizziamoci al presente per osservare meglio il programma in questione: Dangerzone è un programma multipiattaforma, gratuito e open source, che ha come scopo la bonifica di file dei più diffusi formati (PDF, MS Office, Open Document e principali formati immagine). Il suo funzionamento essenziale è semplice: converte il file sospetto in una serie di immagini tramite una scansione ottica virtualizzata, con integrata una funzione di OCR (Optical Character Recognition), e poi riassembla il tutto in un unico file PDF. Con questo duplice passaggio, ogni riga di codice malevolo, ogni macro, ogni malware, vengono, se non rimossi, quantomeno ridotti a innocui pixel di colore e, nel peggiore dei casi, "graficamente stampati” in un PDF di output che potremo consultare tranquillamente.
Alcuni lettori di PDF, come Acrobat PRO, SodaPDF, PDFsam Enhanced o PDFStudio Pro, propongono funzioni di sanificazione (solitamente a pagamento), ma queste presuppongono spesso che il file venga comunque aperto e quindi potrebbe essere, in caso di alcuni malware, ormai troppo tardi. Non basterebbe allora usare un comune convertitore di file per trasformare i PDF o i file Office in immagini e poi usare la funzione "stampa in PDF" per ottenere un PDF sanificato? Il procedimento, almeno concettualmente è indubbiamente simile, tuttavia la differenza cruciale è che Dangerzone esegue questi due passaggi di trasformazione in due differenti container di Docker (come vedremo a breve), ossia in due ambienti isolati che garantiscono quindi la protezione del sistema host e rendono esponenzialmente più sicura la bonifica dei file. Si potrebbero allora usare dei convertitori in PDF online per eseguire tutto in un unico passaggio e senza installare nulla? Certamente, ma, oltre a dover rinunciare alla comodità (e alla sicurezza) di poter lavorare offline, se si tratta di dati personali o sensibili, propri o altrui, non è troppo consigliabile caricarli su siti che magari non danno garanzie di adeguata tutela della privacy dei documenti trattati. Anche perché, ad essere davvero scrupolosi, ottenendo così un file prodotto "altrove", questo meriterebbe a sua volta scansione e bonifica. Anche in questo caso, per coniugare privacy, cybersecurity e una sana diffidenza, è dunque ragionevole usare soluzioni in ambiente locale adeguatamente compartimentalizzate.
prerequisiti e Installazione
Passiamo quindi dalla teoria alla pratica: per utilizzare DangerZone è necessario avere Docker installato sul PC; tranquilli, non bisogna sapersi destreggiare fra container e file .yaml, è sufficiente solo avere a disposizione i circa 3 GB di spazio per la sua installazione, al resto penserà Dangerzone. Docker richiede che sia abilitato Hyper-V, il sistema di virtualizzazione (ormai disponibile nei processori più diffusi) usato da Windows e, facoltativamente, avere abilitato anche WSL, il Windows Subsystem for Linux. Se li avete entrambi già installati, potete passare direttamente al prossimo capitolo, se invece non sono entrambi già attivi sul vostro PC, sappiate che abilitarli è più facile a farsi che a dirsi. Per attivare Hyper-V è sufficiente usare la combinazione “tasto Win + R
”, digitare “appwiz.cpl
” e premere invio. Poi, a sinistra dell'elenco delle applicazioni, cliccare su "Attivazione o disattivazione delle funzionalità Windows
" e mettere una spunta sulle voci “Hyper-V
”, “Piattaforma macchina virtuale
” e “Piattaforma Windows Hypervisor
”. Dopo aver riavviato il PC, seguendo la stessa procedura, nel medesimo elenco di funzionalità, sarà possibile attivare anche WSL spuntando “Sottosistema Windows per Linux
”; opzione facoltativa ma suggerita da Docker, altrimenti verrà usato comunque solo Hyper-V.
Se durante l'installazione di Docker abbiamo scelto di usare WSL, potrebbe esserci segnalato dal programma che la versione di WSL non è abbastanza aggiornata o comparire un messaggio di «errore inatteso»; in realtà potrebbe semplicemente essere che abbiamo solo abilitato il subsystem per Linux, ma non lo abbiamo ancora adeguatamente implementato. Sarà allora sufficiente procedere usando il comando ”wsl –update
” dalla shell di PowerShell per rendere WSL completamente fruibile (richiede circa 450 MB di spazio). Ricordiamo che Docker non necessita della creazione di un account e che nelle sue impostazioni possiamo decidere quali dati condividere, oltre che personalizzarne il funzionamento; comunque, ai fini dell'utilizzo di DangerZone, non è necessario impostare nulla di particolare.
A questo punto, anche partendo da un PC privo dei programmi richiesti da Dangerzone (fra Windows, Docker, WSL e Dangerzone, nel complesso consiglierei di avere almeno 8 GB di RAM nel PC), il più è ormai fatto, non resta che installare Dangerzone. Bastano dunque i soliti due click del mouse: accettare la licenza e acconsentire all'installazione (verranno usati circa 2 GB di spazio su disco). Prima di usare Dangerzone, ricordiamoci sempre di avviare Docker, che reclamerà i suoi circa 3 GB di RAM da usare, e poi di chiudere la sua finestra con la consueta “x” in altro a destra; Docker si ridurrà docilmente ad icona sulla tray. Dopo aver usato Dangerzone, dovremo di conseguenza ricordarci di chiudere Docker cliccando con il tasto destro sull'icona nella tray,
dangerzone in azione
Al primo avvio, Dangerzone installerà il suo duplice container, poi ci chiederà quale è il file da trattare, quale lingua usare per l’OCR (sì, c'è anche l'italiano) e dove salvare il file di output, al cui nome verrà aggiunto di default il suffisso “-safe” (“file.xxx” diventerà “file-safe.pdf”).
Come avete visto l’interfaccia di Dangerzone è davvero minimalista, a prova di confusione. Stranamente, dopo aver finito la conversione, pare non ci sia modo di avviarne un'altra: la schermata del completamento del processo non propone altre azioni e dal menu si può solo cercare aggiornamenti o uscire, anche se va comunque riconosciuto che è un programma rapido ad avviarsi. Come si comporta Dangerzone in azione? Scopriamolo con alcuni test.
Un file già in formato PDF (circa 50 pagine con molte foto e testo), può richiedere 4-5 minuti per essere convertito (con un PC poco performante) e il file sanificato è di circa 14,5 MB, rispetto all’originale che era di circa 55 MB. Un file Word di circa 50 MB, con 17 pagine e molte immagini, dopo circa un minuto, è diventato di circa 3 MB. Come avrete intuito, Dangerzone può quindi essere usato anche semplicemente come programma per ridurre le dimensioni di un PDF o di un Word (e anche di immagini per cui non è fondamentale la qualità, come testato con alcuni file JPG), così da rispettare ad esempio i limiti degli allegati delle mail. Test più cattivello: un Excel composto da 5 schede ricche di testo e con tabelle colorate: dopo i consueti 4-5 minuti, è passato da circa 700 kB a circa 29 MB (come paragone: usando lo stesso file sorgente, la funzione integrata in Office “Microsoft print to PDF”, dopo una manciata di secondi ha prodotto un PDF di circa 1 MB).
Al di là del cambio di dimensioni, la domanda che probabilmente vi starete facendo è: “va bene, ma com’è la qualità del file convertito?”. Il PDF derivato dal PDF originale presenta un leggero calo nella qualità delle immagini, che emerge perlopiù se le si confrontano fianco a fianco con gli originali, altrimenti non ci si farebbe probabilmente caso. Nel test con il file Word, le immagini sono rimaste apparentemente inalterate per qualità e il testo, pur essendo perfettamente comprensibile, risulta avere (probabilmente a causa della trasformazione tramite OCR) una formattazione differente, la dimensione dei caratteri è aumentata, ottenendo così paragrafi un po’ spaginati rispetto all’originale. Il file Excel, per quanto non fosse stato impostato per essere ben trasformato in PDF, è invece risultato comunque qualitativamente identico a quello prodotto da “Microsoft print to PDF”.
Per i più curiosi: durante l’uso di Dangerzone è possibile sbirciare “sotto il cofano” della conversione e visualizzare nell’interfaccia grafica di Docker l’avvicendarsi dei due container (il primo con l’OCR e il secondo con l’assemblaggio del PDF) e la quantità di risorse utilizzate. Da segnalare che la procedura di update del programma non è delle più snelle e rapide: anche il passaggio dalla versione 0.5.0 a quella 0,5.1. comporta scaricare (circa 815 MB) e reinstallare l'intero programma (operazione comunque veloce); quantomeno non è necessario disinstallare prima la versione precedente.
Considerazioni
Rispetto a una normale conversione in PDF, quello che si perde in termini di rapidità, lo si guadagna massicciamente in sicurezza, soprattutto se si è diffidenti circa il file originale, nonostante l'antivirus ci dica che è pulito e il mittente del file sembri attendibile. La GUI (Graphical User Interface) è estremamente facile ed intuitiva; i formati dei file accettati in ingresso sono numerosi e la qualità grafica del risultato è molto convincente, seppur non sempre a prova di confronto speculare. Inizialmente può richiedere un po’ di pazienza con l'installazione di Docker e, volendo, anche di WSL, ma ciò in fondo può essere uno spunto per imparare ad usare anche queste due utili risorse.
Alternative ugualmente free? Oltre alla funzionalità "qvm-convert-pdf
" disponibile nella distro Qubes (non esattamente il più user-friendly fra i sistemi Linux), o alla scelta di aprire i file sospetti in una sandbox o altro host virtualizzato (che non tutti hanno disponibile nel proprio PC), ci sono aziende che forniscono una prova gratuita online dei loro prodotti CDR professionali, sempre se ci si sente sicuri a caricare in rete i documenti da convertire e si è disposti a rispettare limiti nei parametri degli upload. Alcuni dei CDR online che possiamo provare gratuitamente sono quello di Deep-Secure, di Sanitox e di GlassWall.