Malware Detection

Malware Detection per sistemi mobili. [version 1.0]

Malware Detection per sistemi mobili e tecniche utilizzate per il rilevamento. L’esistenza di malware (virus, worm, cavalli di Troia) è uno degli aspetti negativi più rilevanti della rivoluzione digitale, con risvolti penali e economici. Il fenomeno coinvolge anche il settore dei dispositivi mobili (smartphone, tablet, …) in cui si è passati da circa 2000 malware nel 2011, a più di 13000 nel 2012.

Questo articolo analizza le tecniche di Malware Detection ed analizza come riesca ad introdursi nei sistemi, rendersi residente, prenderne il controllo ed attivarsi a fronte di certi eventi, nascondendosi contemporaneamente ai programmi anti-virus. L’analisi considera anche i più recenti dispositivi mobili.

Evoluzione Malware Detection

Android è diventato il sistema operativo più popolare e più utilizzato. La sua esponenziale diffusione ha dato vita alla nascita di un gran numero di applicazioni installabili su di esso. Dalle semplici app come giochi, utility a vere applicazioni economiche-finanziarie come e-commerce e l’online
banking.

Questo ha dato vita alla gestione e profilazione di dati sensibili memorizzati sul sistema Android. A sua volta, la grande progressione del sistema Android ha creato un’attrazione per lo sviluppo di applicazioni
malevoli da parte di utenti malintenzionati. Definiti con il nome di Malware o “software malevolo descriviamo un programma/codice dannoso che mette a rischio un sistema.

Ostili, invasivi e volutamente maligni, i malware cercano di invadere, danneggiare o disattivare, sistemi, reti, tablet e dispositivi mobili, spesso assumendo il controllo parziale delle operazioni del dispositivo. Lo scopo dei malware è lucrare illecitamente a spese degli utenti. Sebbene i malware non possano danneggiare gli hardware fisici di un sistema o le attrezzature di rete, possono rubare, criptare o eliminare i dati, alterare o compromettere le funzioni fondamentali di uno smartphone e spiare le attività degli utenti senza che questi se ne accorgano o forniscano alcuna autorizzazione.

Attacchi di malware su telefoni Android

La maggioranza degli utenti Android effettuano il download delle applicazioni gratuite senza considerare se sono scaricate da fonti certificate come il play store o meno.
Diverse ricerche disponibile nel web confermano che il download di app da fonti sconosciute costituisce uno dei principali vettori di attacco con la quale i malware infettano un dispositivo.

Oltretutto, la diffusione è facilitata quando, dopo l’installazione, l’utente fornisce il consenso e autorizza l’app ad utilizzare tutte le risorse/funzionalità dello smartphone. Nonostante il grande sforzo di Google per scoprire le varie tecniche di offuscamento delle app malevoli, i
malware Android continuano a diffondersi esponenzialmente.

Lo scopo principale di questo lavoro di malware detection è fornire conoscenze sui malware e alcune tecniche di attacco in cui viene
distribuito, come eseguono il loro payload e sfruttano le vulnerabilità del sistema. Questa conoscenza aiuterà a sviluppare ulteriori parametri e strumenti di sicurezza che migliorerà la sicurezza mobile Android.
Sarà data la valutazione delle tecniche di rilevamento, un’idea sulla quale è più efficace nell’ attività di malware detection su piattaforme Android.

Il malware per dispositivi mobili

L’interesse degli utenti malevoli verso i dispositivi mobili nasce dagli anni 2000. Come si vede dalla figura, che illustra il numero totale di malware esistenti per dispositivi mobili secondo statistiche McAfee, in quel periodo i codici virali (consistenti in poche decine di unità) erano ancora poco presenti e non rappresentavano un problema. Le motivazioni di questa tendenza erano da ricercare, principalmente, nelle basse possibilità di
guadagno (per gli utenti malevoli) e nelle limitate potenze di calcolo degli smartphone e della rete telefonica.

Malware Detection Analisi Evoluzione McAfee
Malware Detection Analisi Evoluzione McAfee

La situazione cambia radicalmente a partire dal 2010, quando si realizzano una serie di condizioni che aumentano l’interesse degli utenti malevoli e quindi anche la creazione di malware. Infatti, attualmente esistono numerose congiunture che inducono gli aggressori a dedicarsi in maniera quasi esclusiva a questo settore:

  • Aumento delle vendite. Le vendite dei soli smartphone hanno superato quelle di desktop e notebook nel 2011, con i tablet che effettueranno il sorpasso a breve. L’incremento vertiginoso della base di installazione di sistemi operativi mobili rappresenta uno dei principali fattori di interesse per gli attaccanti, attirati dalla possibilità di diffondere i propri malware su milioni di dispositivi.
  • Incremento delle prestazioni. La potenza di calcolo degli smartphone è aumentata. Basti pensare, infatti, che le ultime generazioni di dispositivi possiedono processori quad core e elevati quantitativi di memoria RAM. Questa condizione permette di concepire malware potenti e devastanti quanto quelli esistenti su sistemi non mobili.
  • Aumento della velocità di rete. Anche le reti dati hanno subito un incremento di prestazioni ragguardevole. Le ultime generazioni di collegamenti, infatti, possono raggiungere la velocità di un Gigabit per secondo. Le reti telefoniche, in accoppiata a quelle wireless, rappresentano un ambiente ideale per la diffusione e la realizzazione di botnet.
  • Sistemi operativi. Le ultime generazioni di dispositivi mobili dispongono di sistemi operativi complessi ed avanzati come per PC, dove qualsiasi sviluppatore può creare liberamente applicazioni e, quindi, concepire codici virali senza alcuna restrizione.
  • Presenza di nuovi sensori. Le ultime generazioni di smartphone e tablet possiedono sensori inesistenti su PC, come GPS, microfono o fotocamera, utili per ottenere preziose informazioni circa l’utente. La prerogativa dei dispositivi mobili, quindi, è quella di avere sempre a portata di mano le informazioni e i contatti personali dell’utente, accessibili da qualsiasi luogo appoggiandosi a reti audio e dati senza fili. Gli smartphone e, recentemente, i tablet, contengono dati non solo personali ma anche di terzi, come quelli di amici e colleghi (i loro contatti, messaggi, appuntamenti, appunti condivisi e posizioni). Per questo motivo, gli obiettivi dei malware per dispositivi mobili sono mutati rispetto alla controparte per PC. Infatti, mentre i codici virali tradizionali miravano a realizzare una gamma molto variegata di attacchi, come denial of service, distributed denial of service, controllo del sistema da remoto oppure cancellazione o furto di dati sensibili, le applicazioni malevole per dispositivi mobili si sono focalizzate sull’ultima tipologia di attacchi.

Il mercato dei dispositivi mobili è attualmente dominato da due sistemi operativi: “Google Android” e “Apple iOS”. Nonostante siano molto diversi tra loro, essi usano politiche di sicurezza simili:

  1. protezione contro accessi fisici non autorizzati – l’utente può inserire meccanismi di protezione basati su codici PIN o segreti più complessi, che impediscono ad un utente malevolo di avere accesso al dispositivo
    senza l’autorizzazione del proprietario;
  2. sandbox – ogni applicazione viene eseguita in una macchina virtuale dedicata (detta anche “sandbox”),che impedisce ad un codice malevolo di interagire con altri programmi in esecuzione o con lo stesso sistema operativo;
  3. cifratura dei contenuti – vengono usati algoritmi per proteggere i contenuti personali dell’utente rendendoli illeggibili in caso di furto del dispositivo;
  4. firma delle applicazioni – ogni applicazione è accompagnata da una firma digitale, per impedire che un malware possa inserirsi al suo interno. Nonostante queste misure di sicurezza siano simili, la quasi totalità dei malware viene sviluppata per Android, interessando solo in minima parte iOS. Secondo le statistiche, il sistema operativo di Google raccoglie più dell’80% delle nuove minacce, mentre solo l’1% delle nuove famiglie di malware interessa iOS.

Le motivazioni di questa tendenza sono da ricercare nelle diverse filosofie adottate da Google e Apple: Android, infatti, è un sistema operativo open-source in cui il proprietario del dispositivo ne ha un completo controllo, mentre iOS è una piattaforma chiusa che lascia molte meno possibilità di personalizzazione all’utente.

Il diverso livello di apertura di un sistema operativo non si traduce solo in una diversa possibilità di personalizzazione, ma anche in un diverso modello di sicurezza. Apple, infatti, controlla meticolosamente ogni sorta di applicazione presente nel proprio canale di diffusione ufficiale, l’App Store, verificando l’identità degli sviluppatori e accertando la legittimità del codice da essi realizzato.

Google, invece, effettua controlli più laschi sugli sviluppatori e sulle applicazioni disponibili sul proprio canale Google Play. Inoltre su qualsiasi dispositivo Android è possibile installare programmi esterni a Google Play e
perciò un utente poco istruito circa le tematiche di sicurezza è esposto a tutti i pericoli provenienti dal malware.
Queste motivazioni hanno portato allo sviluppo di numerosi codici virali per questa piattaforma, con un trend che, a partire dal 2010, ha subito una incremento continuo: ogni anno si assiste ad un crescita del malware per Android vicina al 100%.

I codici virali esistenti per Android possiedono un ciclo di vita del tutto identico a quelli presenti su PC, anche se la fase che ha subito maggiori cambiamenti è l’infezione. Anche in questo caso, quindi, la prima fase rappresenta un passaggio delicato per il malware, che deve adottare tecniche atte a non farsi trovare dall’utente, nel caso non ne sia richiesta l’interazione, o a convincerlo della propria legittimità, nel caso sia indispensabile che la vittima autorizzi l’installazione dell’applicazione.

Modalità diffusione Malware

Nel passaggio da PC a mobile, i codici virali hanno però mutato i propri comportamenti e le proprie tattiche e, nel caso dell’inserimento iniziale nel dispositivo, questo cambiamento si è tradotto nella perdita di alcuni canali tradizionali, come il trasferimento fisico e la posta elettronica, a favore del web o dei “negozi” di applicazioni (detti anche comunemente “store”).

Queste due tipologie di canali trasmissivi ben classificano le tattiche disponibili per i malware per dispositivi mobili: lo sfruttamento di vulnerabilità o l’inclusione di un codice virale in un’applicazione.

La prima possibilità prevede lo sfruttamento di una o più vulnerabilità per l’introduzione del malware e l’acquisizione dei privilegi a lui necessari. Solitamente vengono usate almeno due debolezze, una presente nel software di navigazione, per realizzare un attacco drive-by download e introdurre il programma malevolo, ed una seconda, presente direttamente nel sistema operativo, per acquisire i privilegi di amministratore e permettere al malware di installarsi silentemente senza richiedere l’autorizzazione della vittima. L’uso di vulnerabilità permette di realizzare codici virali efficaci e invasivi ma, di contro, poco compatibili.

Infatti, le applicazioni malevoli di questo tipo riescono ad installarsi solo sulla ristretta gamma di dispositivi mobili che ancora soffrono delle debolezze scelte e che, quindi, non possiedono software del tutto aggiornato. La politica di rilascio degli aggiornamenti, inoltre, rappresenta un serio problema per Google: più del 45% dei dispositivi Android nel mondo possiede una versione obsoleta del sistema operativo ed ha quindi
falle di sicurezza.

Le radici di questo problema sono da ricercarsi nell’elevata frequenza di rilascio di nuove versioni del sistema operativo e nella politica di aggiornamenti dei produttori di dispositivi. Ogni anno, infatti, viene rilasciata almeno una nuova versione di Android, ma essa non è subito installabile su qualsiasi dispositivo. Il sistema operativo di Google, infatti, è open-source ed è usabile da qualsiasi produttore che, però, solitamente la
adatta al proprio prodotto. Questo processo di personalizzazione, oltre ad essere lento, diventa progressivamente costoso e, quindi spesso smartphone o tablet relativamente recenti non vengono più aggiornati dal produttore, rimanendo fermi ad una versione vecchia di Android.

Questa frammentazione permette di sfruttare vulnerabilità già largamente corrette da aggiornamenti che, in realtà, non vengono installati sulla maggior parte dei dispositivi. Inoltre, per aumentare la compatibilità delle
proprie applicazioni, gli utenti malevoli integrano codice per sfruttare diverse debolezze. Un esempio è rappresentato da “DroidDream” e “DroidKungFu”, due celebri codici virali che sfruttano due diverse
vulnerabilità per acquisire i privilegi di sistema in due diverse versioni di Android.

La debolezza in questione, conosciuta come “Exploit” coinvolge il gestore di dispositivi per il kernel Linux. Fino alla versione 2.2 di Android, questo componente non controllava l’attendibilità della fonte dei messaggi di
cambiamento di stato di una qualsiasi interfaccia fisica. In questo modo, se un’applicazione inviava un falso messaggio di connessione, il sistema operativo non controllava se esso provenisse dallo spazio kernel o utente, assegnando automaticamente i privilegi di root al programma che ha inviato il messaggio.

Una seconda strategia di attacco è quella in cui l’utente malevolo tenta di realizzare un’applicazione che deve apparire il più possibile legittima,
per convincere la vittima ad installarla e a dare inizio all’infezione.
Questa tattica, quindi, non si basa sull’uso di debolezze software, ma sfrutta la relativa disinformazione degli utenti circa le tematiche di sicurezza. Le tecniche usate in questo caso sono molteplici ma si differenziano a seconda che si scelga di diffondere il malware attraverso Google Play o canali di diffusione alternativi.

Questi ultimi rappresentano l’ambiente ideale per diffondere malware sotto forma di programmi piratati, ovvero versioni normalmente a pagamento diffuse, però, gratuitamente. Gli esempi di questo tipo di applicazione malevola sono numerosi e coinvolgono spesso giochi particolarmente celebri e desiderati, come “Angry Birds” o “Angry Birds Star Wars”.

La tecnica più usata per realizzare un malware di questo tipo è il repackaging: tramite strumenti reperibili in rete (tra cui il celebre “apktool”) un utente malevolo può facilmente modificare e personalizzare l’applicazione originale inserendovi codice virale.

Una volta che l’inclusione della componente malevola è completata, è possibile ricompilare i file ed ottenere una nuova applicazione identica all’originale, che però non possiede alcuna firma digitale, perché quella originale è stata compromessa durante il processo di decompilazione.
Esistono però strumenti che permettono di firmare la nuova applicazione con un certificato “auto firmato” (noto anche come certificato selfsigned), realizzabile da qualsiasi utente e che non necessita di alcuna validazione da parte di autorità di certificazione, cosa invece indispensabile per i certificati delle applicazioni ufficiali per Android.

Infatti per la diffusione su Google Play è necessario che lo sviluppatore effettui una registrazione in cui deve inserire i propri dati personali e, a seguito della quale, viene rilasciato un certificato da Google stessa. Se
invece un utente desidera diffondere la propria applicazione attraverso canali non ufficiali, può usare un certificato auto firmato.

In quest’ultimo caso, però, l’applicazione può solo distribuita fuori dallo store ufficiale, e quindi da una fonte sconosciuta: le impostazioni predefinite del sistema operativo non permettono l’installazione di questi
contenuti ma, attraverso una semplice modifica, l’utente può consentirla. Completato il processo di firma, è possibile diffondere l’applicazione riconfezionata su qualsiasi canale di diffusione non ufficiale. Secondo
statistiche redatte dall’azienda di sicurezza Lookout, questo tipo di tecnica coinvolge circa l’11% delle applicazioni presenti sui market alternativi.

Tecniche di Malware Detection

Malware Detection: Euristica statica

I metodi statici prevedono la rilevazione dei malware ricercando codice malevolo all’interno di file presenti su unità di memoria o flussi dati trasmessi in rete. L’idea è di attribuire ad ogni file una “firma” (basata su
algoritmi di hash) che lo identifica univocamente e perde validità qualora il file venga modificato. La rilevazione di uno specifico malware si basa sulla rilevazione di sequenze univocamente associate al codice virale, anch’esse codificate con algoritmi di hash e note come virus signature.

Il software di sicurezza scandisce il file e ricerca eventuali corrispondenze tra i dati e le sequenze dei codici virali noto. L’uso di questa tecnica implica la conoscenza e l’analisi di tutti i malware. Essa è quindi efficace contro gli attacchi noti ma è inutile contro i malware zero-day: nei giorni successivi alla creazione di un nuovo codice virale, esso non sarà ancora presente nel database degli anti-virus e sarà quindi in grado di superare i controlli di sicurezza. I produttori di anti-virus affrontano questo problema rilasciando periodicamente degli aggiornamenti del database per riconoscere i nuovi codici malevoli.

Per proteggere il sistema dal giorno del rilascio del malware fino all’aggiornamento del database vengono usate tecniche euristiche statiche, che permettono di riconoscere un codice malevolo con un alto livello di
accuratezza senza, però, avvalersi delle signature.

Questo tipo di tecnica prevede una prima fase di raccolta dati, durante la quale viene usato un certo numero di euristiche per esaminare il file in questione. Ogni singola euristica fa riferimento ad una particolare caratteristica virale, come la presenza di codice spazzatura o cifrato, l’uso di librerie insolite o la presenza di istruzioni non generate solitamente dai compilatori o che modificano il vettore degli interrupt.

Dopo aver raccolto questi dati, essi vengono analizzati, associando ad ogni euristica un grado di pericolosità e stilando un report che raccoglie le statistiche riguardanti il file scansionato. A seconda dei valori raggiunti
dai parametri del report, il contenuto viene classificato come pulito, sospetto o infetto.

Per nascondersi dai controlli statici degli anti-virus, gli utenti malevoli adottano diverse tecniche di “offuscamento” del codice, per renderlo illeggibile o mutevole nel tempo. L’idea di base prevede che il corpo
del malware (cioè la sequenza di istruzioni binarie che lo costituiscono) venga cifrato in modo che il codice virale non possa essere identificato mediante il rilevamento delle signature predefinite. La parte cifrata non
può tuttavia essere eseguita se prima non viene decifrata; pertanto devono essere presenti anche istruzioni binarie e non cifrate eseguite all’avvio del malware.

L’operazione di cifratura prevede l’uso di un’apposita chiave, nota come “stub”, per cifrare e decifrare il contenuto malevolo. Esistono diverse tecniche di cifratura ma quella più usata e semplice sfrutta una chiave
segreta secondo i principi della crittografia simmetrica. Ovviamente tale chiave non è statica, ma viene modificata di volta in volta per rendere il codice malevolo cifrato sempre diverso. Ad esempio, assumendo come chiave il contenuto di un’apposita area di memoria, è possibile mutare ad ogni infezione la chiave e, insieme ad essa, il corpo del codice virale. Oltre alla cifratura, viene spesso usato un algoritmo di compressione per ridurre la dimensione del codice malevolo.

Quest’operazione è spesso necessaria per evitare che la vittima venga insospettita da un’occupazione anomala di memoria. Questa tecnica, nota come “pacchettizzazione”, permette di comprimere e cifrare il codice malevolo inserendogli in testa una sequenza di istruzioni per lo spacchettamento.
Quest’approccio è ampiamente usato nei codici virali più recenti: secondo statistiche Symantec, oltre l’80% dei malware la usa.

Il pregio di questa tecnica rappresenta però anche la sua principale debolezza: infatti, il codice binario che svolge le operazioni di cifratura e compressione (e viceversa) rimane identico ad ogni infezione e può perciò
essere facilmente rilevato dagli anti-virus. Per risolvere questo problema, i malware più sofisticati e innovativi integrano al loro interno algoritmi in grado di variare le routine di cifratura e compressione. Ad esempio, per
mutare una sequenza di istruzioni possono essere inserite istruzioni che non alterano il funzionamento del programma.

A seconda delle tecniche usate per la mutazione dei componenti di cifratura e compressione, si parla di malware “oligomorfi” (varie routine di cifratura ma in numero limitato), “polimorfi” (infinite varianti di cifratura) e “metamorfi” (infinite varianti del codice malevolo ma senza fare uso della cifratura). Collettivamente si parla di malware di tipo “stealth” (invisibile) per tutte queste tecniche di offuscamento

Malware Detection: Euristica dinamica

Gli anti-virus usano anche tecniche di malware detection dinamiche per rilevare il malware eseguendone il codice o controllandone il comportamento. Il monitoraggio del comportamento (conosciuto anche come “behaviour blocker”) è un componente dell’anti virus, solitamente residente in RAM, che controlla in tempo reale i programmi in esecuzione cercando comportamenti sospetti. In pratica, questi programmi analizzano tutte le operazioni svolte nel sistema, come quelle di lettura e scrittura su disco o gli accessi ad aree di memoria particolari.

Sulla base di questi sintomi, il software di sicurezza riesce a rilevare programmi che eseguono azioni sospette e che, pertanto, sono potenzialmente dei malware. Se viene rilevata una azione allarmante, il software può bloccare l’operazione corrente, terminare il programma sospetto o chiedere all’utente di scegliere quale azione intraprendere.

Il pregio del monitor rappresenta però anche un suo punto debole, perché richiede l’esecuzione di un codice potenzialmente dannoso sul sistema reale. Per evitare questo problema, alcuni anti-virus emulano un ambiente apposito per controllare il comportamento di un malware senza danneggiare il sistema reale: ad esempio, si analizza un codice cifrato eseguendolo su una macchina virtuale dedicata.

Anche in questo caso gli scrittori di malware hanno messo in atto contromisure. Esistono infatti diversi strumenti, tra cui uno dei più famosi è “red-pill”, che rilevano se il programma è eseguito su una CPU reale o
emulata.

Integrando nel malware questi strumenti, è possibile eseguire il codice malevolo solo in presenza di un ambiente reale, evitando comportamenti illeciti in presenza di emulazione e superando i controlli imposti dal
software di sicurezza. I virus più recenti hanno iniziato a sfruttare anch’essi la virtualizzazione, eseguendosi ad un livello inferiore rispetto ai software di sicurezza. Questi programmi malevoli s’inseriscono all’interno del PC e convertono di nascosto un sistema fisico in uno virtuale, pienamente controllato dal malware che risulta così invisibile ai software di sicurezza che operano ad un livello superiore.

Oltre a nascondere il malware, durante questa fase il supervisor regola l’avvio delle azioni malevole e delle routine di replicazione e propagazione. Le fasi successive sono regolate da un componente aggiuntivo, il
“trigger”, che le attiva al raggiungimento di una particolare condizione impostata dal realizzatore del malware.
Gli eventi che scatenano il trigger possono essere molteplici, come ad esempio una data (ad esempio il virus “Jerusalem” si attivava ogni venerdì 13) o una particolare operazione eseguita dalla vittima.

Oltre ai malware elencati fino a questo punto, che operavano ad un livello strettamente locale, infettando un solo sistema per volta, esiste una particolare categoria di codice virale, conosciuta come “malware
distribuito”, in cui ogni sistema infetto entra a far parte di una “botnet”, una rete formata da dispositivi collegati a Internet e controllati da un’unica entità, il “botmaster”. Una botnet può essere formata da milioni di sistemi infetti (una delle più grandi, chiamata “Bredolab”, era composta da oltre 30 milioni di PC), che vengono chiamati “bot” o “zombie”.

I malware distribuiti possiedono un kernel che, oltre ad eseguire le normali operazioni, è in grado di contattare uno o più server remoti per scambiare informazioni. Per svolgere questa operazione, sfruttano i servizi di chat, connettendosi a un determinato canale protetto da una password. Per controllare e impartire ordini ai sistemi infetti vengono, inoltre, usati gli stessi canali di chat o reti peer-to-peer appositamente realizzate.

Le botnet vengono usate per compiere attacchi “distributed denial of service” (DDoS) o campagne di spam: i DDoS mirano a compromettere il funzionamento di un sistema informatico inviando numerosi messaggi fino a esaurirne le risorse; le campagne di spam, invece, puntano a reclamizzare un determinato prodotto, inviando molte mail pubblicitarie.

Tecniche di malware detection statiche e dinamiche a confronto

Forse il più importante elemento contestuale di qualsiasi discussione sulle tecniche di malware detection avanzate è la distinzione tra analisi dinamica e analisi statica. L’analisi dinamica cerca di identificare i file eseguibili dannosi caricandoli in un ambiente di runtime sicuro, generalmente virtualizzato, e osservandone il comportamento per un intervallo di tempo prestabilito.

Per contrastare adeguatamente questa tattica con l’analisi statica è necessario innanzi tutto risolvere una discrepanza comune nell’uso di tale termine. L’analisi statica effettiva (definita a volte analisi statica del
codice) prevede il probabile comportamento di un eseguibile in base a una valutazione dettagliata del relativo codice. Il termine “analisi statica” viene spesso applicato erroneamente a tecniche più semplici e meno rivelatrici (a volte definite analisi statica dei file) che possono esaminare solo una porzione dell’intestazione di un file o accedere soltanto al contenuto di un file non occultato.

La relativa utilità volta a identificare il malware avanzato è limitata e qualsiasi impiego dell’analisi statica in questo documento fa riferimento a
tecniche in grado di estrarre, esaminare e analizzare il codice completo di un file. Tanto le tecniche dinamiche quanto le tecniche statiche effettive hanno pro e contro.

L’analisi dinamica è in grado di identificare il malware con un livello di fiducia estremamente elevato in base all’osservazione diretta del relativo comportamento. È il metodo più affidabile per identificare accuratamente minacce nascoste in eseguibili complessi, ma può essere facilmente ostacolato con vari stratagemmi. Un file può semplicemente attendere oltre il periodo di osservazione, ritardando l’inizio del comportamento rivelatore per un intervallo di tempo prestabilito che può essere più lungo rispetto a un’ispezione sandbox economicamente fattibile.

È anche possibile programmare un file affinché riconosca un ambiente sicuro dall’assenza (o dalla presenza) di determinate risorse e perché esegua soltanto un insieme limitato di operazioni apparentemente innocue.
L’ispezione statica individua il codice nocivo con un minore livello di fiducia rispetto all’analisi dinamica perché si affida alla deduzione anziché all’osservazione, e tuttavia assicura una finestra sulla natura del codice latente (non eseguibile) che risulta totalmente invisibile all’analisi dinamica.

Ad esempio, l’analisi del codice statico identifica analogie strutturali tra il codice latente ed esemplari di malware conosciuti. Quantifica la percentuale di codice che esegue durante una valutazione sandbox ed esegue anche il mapping dei percorsi logici di esecuzione di un file complesso senza doverne di fatto eseguire il codice.

Ciò che sorprende è il grado di complementarietà dei punti di forza e dei punti deboli dell’analisi statica e dinamica. Mentre le tecniche comunemente associate al sandbox malware sono dinamiche, è improbabile che si possa ottenere un rilevamento affidabile e accurato a meno che entrambe le analisi del codice dinamica e statica effettiva vengano applicate nell’ambito di un processo ben integrato. Una sandbox efficace deve essere al contempo dinamica e statica.

Malware Detection - Tecniche statiche e dinamiche
Malware Detection – Tecniche statiche e dinamiche

Tecnica di malware detection su analisi traffico rete.

Questa tecnica prevede un’analisi dettagliata del tutti i pacchetti di traffico di rete provenienti da richieste http/https.
L’analisi di tali pacchetti indica la natura dei dati di un’applicazione o dispositivo che esegue invio o ricezione da un server isolato di dati come indirizzo, foto, IMEI e IMSI, posizione e indirizzo mac per URL dannoso.

E’ possibile monitorare il traffico di rete mediante l’utilizzo di software come WireShark. Il software può catturare, salvare, importare ed esportare i pacchetti di rete; include un sistema di filtraggio completo e colori diversificati in base al tipo di pacchetto catturato.
Una volta in possesso del pacchetto è possibile utilizzare tecniche di filtraggio per l’analisi del contenuto.

Conclusione

Nell’articolo si è evidenziato come il malware sia una minaccia quanto mai attuale per qualsiasi utente che possieda un dispositivo con accesso a Internet. La diffusione sempre più capillare dei dispositivi mobili ha
fatto sì che sempre più utenti poco istruiti circa le tematiche di sicurezza compiano operazioni rischiose senza essere consapevoli dei pericoli.
Prestando più attenzione nel compiere determinate azioni, infatti, sarebbe possibile diminuire notevolmente le possibilità di contrarre un malware.

Nonostante che negli ultimi anni si siano fatti decisi passi avanti in tema
di cultura della sicurezza informatica, questo campo risulta ancora poco noto.
Recenti ricerche evidenziano che quasi la metà degli utenti non effettua gli aggiornamenti software o addirittura non conosce l’esistenza di software di sicurezza appositi per dispositivi mobili.
Risulta quindi indispensabile sensibilizzare gli utenti circa la sicurezza informatica, anche perché negli usi normali, soprattutto con smartphone e tablet, comportamenti adeguati sono più efficaci di molti software di sicurezza.

Analisi di tecniche di malware detection svolto nel corso di Sistemi di Sicurezza Software – Unimol (Università degli Studi del Molise).

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003