CAMSCANNER VIRUS

Camscanner virus: tutte le caratteristiche dell’infezione

Camscanner, applicazione per Android con oltre 100 milioni di download, nell’estate del 2019 è stata veicolo di diffusione di pericolosi moduli trojan.

Ma cos’è un trojan horse e quali rischi corrono i dati degli utenti?
L’analisi del caso Camscanner ci permetterà di far luce sul fenomeno.

Camscanner: tra le top 30 app di Google Play

La trattazione dell’argomento richiede due doverosa premesse:

  • quanto riportato in seguito si riferisce a un periodo circoscritto nella storia dell’applicazione: precisamente all’estate del 2019.
    Nello specifico, la versione incriminata risultava essere CamScanner 5.11.7.
  • gli sviluppatori dell’app sono stati vittime e non fautori di quanto accaduto.

Ad oggi, infatti, l’applicazione risulta nuovamente scaricabile sullo store Google e del tutto priva di rischi.

Inoltre, bisogna tener presente che la compromissione di un software, così come qualsiasi prodotto commerciale, non rientra in alcun modo nelle logiche di mercato di chi lo sviluppa. Come si avrà modo di constatare in seguito, quanto avvenuto è frutto di una partnership sbagliata dell’azienda produttrice dell’app con una società pubblicitaria cinese.

In breve, fu l’intento di inserire advertising all’interno della versione free, al fine di monetizzare e consentire acquisti in app, a compromettere il ritorno d’immagine e di profitto.

La chiave del successo di CamScanner

CamScanner, anche nota come Phone PDF Creator o CamScanner-Scanner to scan PDF, è una app utility per Android che ha rivoluzionato il processo di virtualizzazione dei documenti cartacei.

Se in precedenza per digitalizzarli fosse stato indispensabile una stampante dotata di scanner, attraverso CamScanner si sarebbe riuscito per la prima volta a trasformare il proprio device mobile in strumento di scannerizzazione.

A ciò era da aggiungere la sua semplicità di utilizzo: bastava inquadrare con la fotocamera un qualsiasi documento e scattarne un’istantanea per far sì che questo venisse trasformato in un file PDF.

Inutile sottolineare quanto questa semplificazione delle procedure abbia costituito la chiave per il successo dell’app: non stupisce, dunque, che sia riuscita a raccogliere un bacino d’utenza di oltre 100 milioni di utenti che ne hanno effettuato il download.

Funzionalità di Camscanner

CamScanner si presenta ad oggi come app per la gestione documentale.
Essa permette infatti di:

  • acquisire
  • organizzare
  • condividere

dei file in diversi formati (Word, Excel e soprattutto PDF).

L’applicativo è inoltre dotato del sistema di riconoscimento ottico OCR (Optical Character Recognition)  che permette l’interpretazione dei caratteri stampati.

Offre la possibilità di scannerizzare i documenti sia come singola immagine, che in modalità multipla: in questo secondo caso gli scan vengono automaticamente memorizzati in un unico blocco, che può poi essere condiviso nel formato che si desidera.

Una volta che il documento è stato digitalizzato, la funzione Batch Scan Mode racchiude opzioni standard per la modifica delle immagini, come ritaglio, filtri, regolazione contrasto e luminosità.

Sulla schermata principale è poi possibile:

  • organizzare i documenti per data;
  • inserirli in gruppi,
  • aggiungere tag
  • o renderli privati attraverso una password.

Quanto visto finora rientra nelle funzionalità standard dell’app, tutte sostanzialmente innocue dal punto di vista della cyber security.

Ma cos’è che ha originato la falla?
Quali rischi ha comportato per gli utenti?

Per rispondere a questi interrogativi sarà bene comprendere cosa siano e come funzionino le SDK all’interno delle app, e in cosa consista esattamente la compromissione di un dispositivo da parte di un malware come il trojan.

Prime avvisaglie del problema

Per lungo tempo l’applicazione è stata considerata del tutto legittima, compresa persino nella top 30 delle app consigliate da Google Play.

Questo almeno fino a fine agosto 2019, quando i ricercatori di Kasperesky Lab, constatando il susseguirsi di recensioni negative sullo store, non hanno rilevato la presenza di un Trojan Dropper al suo interno.

Gli articoli delle maggiori aziende cyber security dell’epoca stroncarono l’app, invitando chiunque l’avesse scaricata sul proprio device a disinstallarla immediatamente.

Google Play la rimosse temporaneamente dallo store, mentre la società produttrice, la CamSoft Information, fu costretta a correre subito ai ripari.

Poco dopo l’allarme lanciato da Kasperesky, emanò uno statement ufficiale in cui comunicava agli utenti il rilascio della versione aggiornata e ripulita dal malware, nonché:

  • rassicurava sul fatto che fino a quel momento non c’erano prove evidenti che il codice sospetto (che fu specificato appartenere a un SDK di terzi) avesse generato una fuga di dati sensibili: pertanto i documenti potevano considerarsi al sicuro;
  • che avrebbe temporaneamente rimosso qualsiasi tipo di SDK di advertising, compresi quelli rilasciati da Google e Facebook;
  • ed infine, incoraggiava gli utenti a scansionare la nuova versione con un antivirus al fine di comunicar loro qualsiasi tipo di problema fosse insorto.

Visto il ruolo giocato dagli SDK nella vicenda, non resta che chiarirne la natura e il funzionamento.

SDK, ovvero implementazioni per le app

Un SDK, conosciuto anche come DevKit (Software Development Kit), è un pacchetto strumentale di informazioni rilasciato da un produttore per uno specifico sistema hardware/ software e in uno determinato linguaggio di programmazione.

Il suo scopo è mettere a disposizione di terzi gli elementi costitutivi o gli strumenti di sviluppo del proprio prodotto.

Quando si parla di SDK in relazione ad applicazioni mobili si fa riferimento a “pacchetti informativi” che verranno integrati nelle app al fine di ampliarne le funzionalità. Un parallelismo col quotidiano potrebbe essere figurarsi un SDK come una cassetta degli attrezzi, che in campo informatico equivale a una stringa di codice.

Grazie a questi strumenti, gli sviluppatori non necessitano di programmare da zero le implementazioni che intendono aggiungere alle app, poiché gli basta servirsi di uno specifico SDK già contenente gli elementi essenziali di sviluppo.

In linea di massima esso è composto da:

  • un compilatore, che rende eseguibile il codice sorgente;
  • un debugger, che elimina gli errori di programmazione interni al codice;
  • interfacce di programmazione delle applicazioni (API), ossia librerie informatiche: insiemi di funzioni e strutture dati preimpostate;

cui si aggiungono:

  • Documentazione;
  • Editor;
  • ambienti di runtime e di sviluppo;
  • Strumenti di test o analisi;
  • Driver;
  • Protocolli di rete.

Solitamente alcuni produttori aggiungono anche esempi o progetti di test più piccoli, così da facilitarne il primo utilizzo. Ne consegue che in relazione al servizio che si intende implementare nell’app sarà necessario un determinato SDK.

Data la susseguente diversificazione, questi strumenti si suddividono in molteplici categorie, le più significative delle quali sono:

  • Analytics: supportano l’analisi dei dati, permettendo di comprendere il comportamento degli utenti;

  • Attribution & Tracking: questa categoria di SDK aiuta a visualizzare quali risultati si stanno ottenendo con le campagne marketing;

  • CRM (customer relationship management): vengono utilizzati per aumentare l’engagement degli utenti durante l’utilizzo dell’app;

  • Monetizzazione: solitamente inseriti all’interno di applicazioni che non prevedono acquisti, questo tipo di SDK permette di inserirvi inserzioni pubblicitarie, automatizzando il posizionamento;

  • Pagamento: garantiscono e semplificano gli acquisti direttamente in app;

  • Geolocalizzazione: implementano servizi relativi a determinate aree geografiche, così da migliorare la localizzazione, il targeting e la monetizzazione;

  • Gestione Dati: evita che l’app si appesantisca con i dati raccolti, quindi li decentralizza, garantendone al contempo l’accesso.

Fin qui, dunque, si sono passate in rassegna le varie tipologie di SDK e i vari benefici che possono apportare nell’economia dell’app.

Vi è, però, un rovescio della medaglia legato ai protocolli di cui queste tecnologie si servono. Nel prossimo paragrafo si farà una breve analisi del caso.

Quali minacce possono celarsi dietro un SDK?

La trasmissione di dati in internet viaggia secondo protocolli: questi fanno sì che il passaggio delle informazioni avvenga senza errori. Comprendono accordi per lo scambio dei dati e regolano:

  • i prerequisiti per il collegamento;
  • i metodi di indirizzamento;
  • il percorso del pacchetto (instradamento);
  • la verifica degli errori.

Nel caso degli SDK, quelli messi in gioco sono: HTTP e HTTPS, due varianti dello stesso protocollo.

In particolare:

  • HTTP (HyperText Transfer Protocol) è notoriamente considerato come non sicuro perché lo scambio di informazioni tra client e server avviene in chiaro: può essere cioè letto da chiunque decida di intromettersi illegittimamente nello scambio;
  • HTTPS (HyperText Transfer Protocol over Secure Socket Layer), invece, prevede l’impiego di certificati SSL (Secure Secret Layer) che garantiscono l’integrità e la riservatezza dei dati, la loro trasmissione crittografata e la verifica d’integrità del traffico.

La vulnerabilità degli SDK si cela dunque dietro l’utilizzo di protocolli http non crittografati, che trasformano le app in vetrine di malware, anziché di legittimi annunci.

A questo punto risulta più chiaro il meccanismo che compromette il corretto funzionamento di un’app che nella sua essenza appare del tutto legittima.
Passiamo ora ad analizzare l’entità del rischio veicolato da una di queste possibili compromissioni.

Cos’è un trojan e quali strategie mette in atto

Riassumendo il caso preso in esame, l’app CamScanner, che implementava una di queste SDK, è divenuta veicolo di diffusione di uno dei virus più subdoli: il trojan.

Il Trojan Horse, più comunemente noto con l’abbreviazione di trojan, è un malware che eredita il nome dall’antica mitologia greca.

Come Odisseo escogitò lo stratagemma del Cavallo di Troia per penetrare nelle mura della città, così l’attacco informatico sfrutta l’ingenuità degli utenti per carpirne informazioni e dati sensibili.

Questo tipo di attacchi informatici sfrutta gli espedienti offerti dall’ingegneria sociale per far sì che non solo la vittima resti ignara dell’attacco, ma collabori alla sottrazione dei propri dati, restandone ovviamente del tutto all’oscuro.

La logica di funzionamento di un trojan è abbastanza semplice: il codice malevolo viene nascosto all’interno di software e servizi del tutto legittimi, cosicché questi, una volta penetrati nei device, possano tracciare il comportamento dell’utilizzatore.

Il trojan, quindi, non indica uno specifico tipo di infezione, ma una strategia messa in atto per infiltrare qualunque altro tipo di minaccia.

Le differenti morfologie che un malware di questo tipo può assumere sono:

  • spyware: spiano l’utente con l’intento di sottrarre password e dati bancari;
  • backdoor: consentono l’accesso remoto ai dispositivi, dando il controllo del device direttamente all’hacker;
  • dialer: stabilisce una connessione a Internet o a una rete di computer tramite una connessione telefonica analogica o una rete ISDN (Integrated Services Digital Network);
  • zombie: che connettono un device alla rete sotto il controllo dell’hacker;
  • downloader (o dropper): che scaricano ed eseguono altri malware, come ransomware e keylogger.

Il rischio di scaricare un trojan diminuisce proporzionalmente all’aumentare dell’affidabilità del sito o dello store da cui si scaricano software e app, ma non mancano le eccezioni. Nel mare magnum composto da migliaia e migliaia di app, anche distributori ufficiali possono riscontrare falle nell’analisi e rilasciare prodotti potenzialmente dannosi.

Google, ad esempio, sfrutta un apposito strumento per salvaguardare i sistemi Android da queste possibili intrusioni.

Google Play Protect: come Google tutela gli utenti di Play Store

Google Play Protect è un tool messo a disposizione da Google per fornire una costante protezione anti-malware agli utilizzatori Android, garantendo un costante miglioramento delle sue prestazioni grazie agli algoritmi di machine learning.

Nel concreto, per ciò che concerne le applicazioni mobili, Play Protect assolve le seguenti funzioni:

  • esegue un controllo preliminare sulla sicurezza delle app che mette a disposizione;
  • scansiona periodicamente le app sul dispositivo;
  • segnala la presenza di app potenzialmente nocive, rimuovendo dallo store quelle su cui viene riscontrato un qualsiasi fattore di pericolosità.

L’applicativo consente inoltre di aggiungere una funzionalità, nota come “Migliorare il rilevamento di app dannose”, la quale, se attivata, permette di inviare a Google app esterne perché vengano esaminate.

Quello di Play Protect è un lavoro che prevede la scansione quotidiana di centinaia di migliaia di prodotti. Pertanto, sebbene la sua efficienza rimanga indiscutibile, ciò non pregiudica la sua sporadica fallibilità: il caso Camscanner ne è un esempio emblematico.

Cosa accadde nello specifico a CamScanner

Dopo aver chiarito cosa siano gli SDK e quali rischi possano insorgere qualora questi pacchetti provengano da fonti poco attendibili, è possibile andare più nello specifico nella vicenda CamScanner.

Ciò che accadde nell’agosto del 2019 si può riassumere in 7 step:

  1. l’azienda produttrice dell’app decise di monetizzare la versione free inserendovi campagne d’advertising;
  2. queste pubblicità erano implementate attraverso SDK di monetizzazione prodotti da una società pubblicitaria cinese, chiamata AdHub;
  3. questi SDK veicolarono sui device degli utenti un Trojan Dropper, ribattezzato Trojan-Dropper.AndroidOS.Necro.n;
  4. il malware fece sì che venissero installati ulteriori moduli dannosi, che comportarono la costante comparsa di adware, ovvero annunci pubblicitari invasivi e indesiderati e scatenarono il comportamento anomalo degli smartphone;
  5. tutto ciò si sarebbe poi tradotto in un rischio per l’integrità e la riservatezza dei dati sensibili degli utenti, come rilevamento dei dati bancari o delle password.

Il tutto si tradusse in un’ondata di clamore mediatico e in una quasi irreversibile perdita di popolarità per l’applicazione, nonché nella temporanea rimozione da Google Play.

Principali alternative a CamScanner

Come si sottolineava nell’incipit dell’articolo, ad oggi installare CamScanner non comporta più alcun pericolo.
Se, però, si ha voglia di sperimentare qualche altra app, basta andare sullo store di Google e cercare quella che più fa al caso proprio.

Qui proponiamo una breve carrellata di applicazioni che permettono di trasformare il proprio smartphone in uno scanner:

  • Microsoft Office Lens
  • Adobe Scan
  • Genius Scan
  • SwiftScan
  • Tiny Scanner, ecc..

A questi si aggiunge una funzionalità forse sconosciuta ai più: Google Drive permette di acquisire i documenti scannerizzandoli direttamente al suo interno.

Per farlo basterà fare click sul pulsante “+”, che simboleggia la possibilità di caricare un file, e selezionare la voce “Scansiona”: così facendo si avrà il duplice vantaggio di avere il documento scansionato e direttamente disponibile sulla propria cartella drive.

Conclusioni

Come illustra la vicenda appena mostrata, l’antico adagio “fidarsi è bene ma non fidarsi è meglio” rimane attuale in tutti i campi, soprattutto per quanto riguarda la sicurezza informatica.

Concludiamo pertanto con una serie di consigli per evitare che il proprio smartphone sia vittima di un Trojan Dropper, o in generale di un malware:

  • non scaricare mai app provenienti da store non attendibili;
  • eseguire periodicamente gli aggiornamenti del proprio device: ciò garantirà l’aggiornamento delle implementazioni per la sicurezza;
  • eseguire periodiche scansioni antivirus;
  • controllare il comportamento del proprio dispositivo: qualora si riscontrino anomalie, constatare le segnalazioni rilevate dal software antivirus;
  • nel caso venga rilevata un’app infetta, procedere immediatamente alla disinstallazione.