Principali minacce per la sicurezza: il quadro attuale ed il panorama futuro

Il tema "sicurezza informatica" è di sempre maggior attualità. La complessità che hanno raggiunto i software così come le applicazioni web fruibili "online" semplicemente servendosi di un browser web ha portato gli svilupp...

Il tema “sicurezza informatica” è di sempre maggior attualità. La complessità che hanno raggiunto i software così come le applicazioni web fruibili “online” semplicemente servendosi di un browser web ha portato gli sviluppatori a doversi quotidianamente misurare con minacce delle più svariate tipologie. Sempre più breve, inoltre, è il lasso di tempo che intercorre tra la scoperta di una nuova vulnerabilità, precedentemente sconosciuta, e la comparsa in Rete dei primi codici “exploit” in grado di sfruttare la stessa falla di sicurezza.
Le cosiddette vulnerabilità “0-day” sono sempre più frequenti: si tratta di attacchi che hanno inizio “nel giorno zero” ossia poco tempo dopo l’individuazione di un problema di sicurezza. Aggressioni del genere possono “mietere molte vittime” dal momento che il produttore non ha ancora rilasciato una patch per la correzione della vulnerabilità presa di mira.
Tutti i principali “vendor” usano comunque pubblicare dei bollettini di sicurezza che contengono importanti indicazioni per ridurre i rischi di infezione nell’attesa che venga rilasciato un aggiornamento ufficiale. Su IlSoftware.it diamo notizia di tutte quelle lacune di sicurezza che per pericolosità e “target” di utenza rappresentano un imminente pericolo offrendo contemporaneamente le soluzioni temporanee che possono essere messe in campo per evitare problemi.

Per fare il punto sul presente e sul futuro delle minacce informatiche abbiamo avuto l’occasione di intervistare Marco Giuliani, uno dei massimi esperti italiani in materia oltre che “malware technlogy specialist” per la società inglese Prevx.
Buona lettura.

Michele Nasi, IlSoftware.it. Il web è un ambiente ostile. Gli aggressori usano mettere a punto pagine web nocive contenenti codici exploit e meccanismi in grado di sfruttare vulnerabilità del browser, dei plugin installati e del sistema operativo. Di quali strumenti dovrebbero dotarsi i produttori di browser web e quali prodotti sono oggi “in prima linea”?

Marco Giuliani. Navigare in Internet è diventata sempre più una giungla piena di pericoli. Come già fatto notare, c’è il rischio sempre più frequente di imbattersi in pagine web non desiderate, o contenenti codici maligni capaci di sfruttare le vulnerabilità del sistema operativo, del browser o di qualche plugin installato nel sistema. Spesso la prima causa di tutto ciò è l’utente stesso che non si preoccupa di tenere aggiornato il proprio sistema, a partire dagli aggiornamenti del sistema operativo fino agli aggiornamenti dei singoli programmi installati.
Non è tuttavia da sottovalutare il rischio causato da falle scoperte dai pirati informatici e sconosciute agli sviluppatori – i cosiddetti exploit “0-day” – che sono sempre più frequenti. Se, nel primo caso, basterebbe avere del buonsenso e tenere il proprio sistema aggiornato, purtroppo si può benissimo ricadere nel secondo caso, in cui nessuno purtroppo può sapere dell’esistenza delle possibili falle.

I produttori di browser web, tuttavia, proprio per ovviare a tali problematiche, stanno sviluppando nuove tecnologie per la prevenzione di attacchi causati da falle conosciute o sconosciute a livello di sistema operativo, browser o dei vari plugin eventualmente installati. Alla base di questo approccio c’è la semplice idea di racchiudere in una zona protetta tutto ciò che accade nel browser: si parla di una “sandbox” isolata dal resto del sistema.

Ogni sviluppatore deve sapere che un codice mediamente complesso potrà avere delle falle, ed un browser è un software molto complesso, con decine di migliaia di righe di codice. Prendendo coscienza di ciò, alcuni produttori di browser web hanno giustamente deciso di scegliere la via della “sandbox” pensando che, anche se una falla dovesse venire scoperta, non potrà comunque fare danni perché il codice nocivo viene eseguito all’interno di un’area sorvegliata e dai confini ben definiti.

Google Chrome ed Internet Explorer sono i due browser più all’avanguardia sotto questo punto di vista. Google e Microsoft hanno infatti deciso di dotare i rispettivi browser di una “sandbox”, capace di rendere la navigazione più sicura, senza preoccuparsi di incappare in pagine web nocive. Entrambi i browser hanno potuto dimostrare che la “sandbox” funziona perfettamente, arginando possibili codici exploit dall’ottenere il controllo del sistema.

Purtuttavia, mentre Internet Explorer – nelle versioni 7 e 8 – sfrutta per la propria “sandbox” le nuove tecnologie implementate in Windows Vista e Windows 7, Google Chrome implementa una propria sandbox basandosi su funzionalità più generiche di Windows. Ciò significa che Internet Explorer 7 e 8 funzioneranno in modalità protetta solo nei sistemi operativi Windows Vista e Windows 7, mentre Google Chrome è capace di sfruttare la propria “sandbox” anche sui sistemi operativi precedenti a Windows Vista (ad esempio, in Windows XP).

Sia Mozilla Firefox che Opera sono rimasti indietro sotto questo punto di vista. Se è vero che il codice dei due browser si è dimostrato spesso più robusto di Internet Explorer, ciò non esclude che si possa scoprire in futuro una eventuale falla in entrambi. E, in caso di una nuova falla, i due browser non dispongono di default – almeno per il momento – di alcun sistema per arginare eventuali codici nocivi.

L’aggiornamento dei plugin, del browser web, l’applicazione delle patch per il sistema operativo e tutte le altre applicazioni installate è un procedimento spesso sottovalutato dagli utenti finali ed è talvolta mal gestito in ambiente aziendale. Quali soluzioni ci sono sul mercato, sia per l’ambiente consumer che per gli utenti business per far fronte al problema?

Per quanto riguarda il sistema operativo, in ambito Microsoft ovviamente, per gli utenti consumer l’unica via sicura è il controllo attraverso Windows Update, o l’attivazione degli aggiornamenti automatici di Windows dal Pannello di controllo del sistema.
Per gli utenti business, ovviamente, si dovrebbe far riferimento al Microsoft Windows Server Update Services (WSUS).

Se non si volesse – o non si fosse in grado – di effettuare dei controlli costanti sullo stato degli aggiornamenti dei software installati nel sistema, invece, per gli utenti consumer ci sono due utility che vengono in aiuto. Una è Secunia Personal Software Inspector (PSI) e l’altra è FileHippo.com Update Checker. Entrambi analizzano i software installati nel sistema e suggeriscono all’utente eventuali aggiornamenti da effettuare. In ambito business si può ricorrere al fratello maggiore del software di Secunia, Secunia Corporate Software Inspector (CSI).

Quali soluzioni ritieni debbano essere adottate dai produttori per facilitare l’applicazione di patch ed aggiornamenti? Vedi possibile la realizzazione, da parte di Microsoft, di una sorta di “packet manager” Linux in ambiente Windows?

Sicuramente l’idea di un repository, come da tempo utilizzato nei sistemi operativi Linux, sarebbe la via più semplice e sicura per distribuire sia software sicuro che eventuali aggiornamenti di tali software. Un utente inesperto scaricherebbe da lì software e aggiornamenti senza dover ricorrere alla navigazione web in siti web che poi potrebbero risultare nocivi o semplici truffe. D’altronde, negli ultimi giorni, si sono diffusi dei rumor riguardo Windows 8 e l’idea di creare un Windows Store, simile all’App Store. Potrebbe essere questa la strada che si vuole seguire anche in casa Microsoft.

Puoi parlarci delle nuove tipologie di attacco che stanno emergendo?

Sul fronte minacce si segue lo stesso passo dell’evoluzione del web. Anni fa c’era il problema delle e-mail con allegati nocivi divenuto oggi abbastanza marginale. Poi si è passato al Web 2.0, con il successo inarrestabile dei social network, ed anche qui i pirati informatici hanno trovato terreno fertile per poter diffondere i propri codici nocivi. Poi, come detto in precedenza, pagine web fittizie che – grazie all’impiego tecniche SEO – riescono ad essere indicizzate nei motori di ricerca prima di altre ed utilizzano “exploit” vari per poter inserire del malware sui sistemi dei “malcapitati”.
I malware non vengono inseriti, però, solamente su pagine web “nocive” appositamente preparate. Siti web ritenuti dagli utenti affidabili e sicuri vengono talvolta compromessi inserendo nel loro codice sorgente degli script nocivi.

Per quanto riguarda le tipologie di malware, i rootkit negli ultimi anni hanno avuto un incremento di sviluppo vertiginoso, diventando sempre più ben progettati ed efficaci. Tecnologie rootkit “kernel mode” e rootkit “user mode” sono sempre più presenti all’interno degli ultimi malware.
Microsoft ha tentato una terapia d’urto contro i rootkit inseriti nel kernel, grazie alla tecnologia Kernel Patch Protection (meglio conosciuta come PatchGuard), inserita nei propri sistemi operativi a 64 bit. Ciò non esclude tuttavia la presenza di rootkit “user mode”, che sono comunque altrettanto efficaci e compatibili tra i vari sistemi operativi.
Se è vero che un rootkit “user mode” sarà sempre più facile da intercettare e rimuovere rispetto ad un rootkit “kernel mode”, è altresì vero che i software di sicurezza si sono sempre dimostrati in difficoltà contro queste minacce, spesso non sufficientemente preparati per rilevarle e rimuoverle.
Come se ciò non bastasse a rendere la vita più difficile ai software di sicurezza, i “malware writer” ricorrono ad “engine” specifici capaci di cambiare il codice dei propri malware continuamente, ricodificandoli lato server. Un esempio fu il worm “Storm“, che veniva ricodificato dai server di diffusione ogni cinque minuti, cambiando quindi continuamente la propria forma. Si tratta di una soluzione indubbiamente efficace per riuscire a infrangere le difese di un semplice antivirus basato su firme virali. Lo stesso vale per molti trojan attuali, quali SpyEye, ZeuS o per i “dropper” (modulo dannoso sviluppato con lo scopo di installare ulteriore malware od aprire una “backdoor” sul sistema infettato, n.d.r.) del rootkit TDL3.
Spesso è sufficiente che gli autori di malware mettano in campo espedienti simili per far venire a galla tutti i problemi di un approccio standard, da parte di alcuni software antivirus, basato esclusivamente sull’uso di database delle firme virali.

Oltre all’aggiornamento del sistema ed all’installazione delle patch di sicurezza, quali altri strumenti di difesa è bene vengano adottati in ambito consumer?

Sicuramente l'”adeguamento” del sistema operativo con le ultime patch di sicurezza e l’aggiornamento costante di tutti i software installati sono due azioni che, da sole, consentono di difendersi già in modo piuttosto adeguato in ambito consumer.
Il passaggio ai più recenti sistemi operativi di casa Microsoft sarebbe altrettanto raccomandabile, dal momento che sia Windows Vista che Windows 7 offrono numerose tecnologie di sicurezza aggiuntive rispetto all’ormai anziano Windows XP.

Se si utilizza un sistema operativo Windows XP, sarebbe raccomandabile anche l’utilizzo di un account limitato, per quanto possibile. Capisco che gli utenti sono spesso abituati ad utilizzare un account amministratore e non aver mai problemi nell’installazione di qualsiasi programma, ma facendo così si lascia anche un enorme corridoio aperto a qualsiasi malware che dovesse malauguratamente riuscire a guadagnare l’accesso al sistema in uso.

Se si utilizza Windows Vista o Windows 7, sarebbe raccomandabile non disattivare la tecnologia UAC (User Account Control, un modulo di protezione nato con Vista che blocca i tentativi di modifica sulle aree più delicate del sistema operativo chiedendo, di default, conferma all’utente prima di provvedere alla loro effettiva applicazione, n.d.r.) perché, seppur qualcuno possa trovare questa funzionalità piuttosto noiosa, è un sistema molto utile per separare i privilegi di amministratore dai privilegi dell’utente, non permettendo ad un malware di poter ottenere automaticamente l’autorizzazione per l’accesso totale al sistema. A tutto questo va aggiunto l’utilizzo di un software antivirus, che è fondamentale per poter intercettare possibili infezioni al sistema.

Sento spesso dire che basta un account limitato per poter essere al sicuro dai malware. Un mito, questo, tutto da sfatare. Un malware può infatti riuscire a rubare ugualmente informazioni personali anche da account limitato, può egualmente causare danni ai dati dell’utente e può sopravvivere anche in tale contesto.
Utilizzando un account utente dotato di privilegi limitati, il malware è sicuramente più facile da intercettare e rimuovere, ma l’utente come si accorge della sua presenza se non c’è un software antivirus che potenzialmente segnala questa presenza non desiderata? L’utilizzo di un firewall software, in aggiunta al software antivirus, sarebbe altrettanto raccomandabile, sebbene i firewall software siano diventati con il tempo molto più che semplici firewall, ma veri e propri sistemi di analisi comportamentale che, se da un lato aiutano e contribuiscono molto alla sicurezza del sistema, dall’altro rendono la vita alquanto difficile a qualsiasi utente che non abbia le conoscenze adeguate per rispondere alle domande di allerta.

Software antivirus: le nuove modalità per la rilevazione delle minacce

Quali soluzioni è invece bene abbracciare in ambito business? A tal proposito, suggerisci l’impiego di particolari appliance che integrino protezione antivirus, antimalware, firewall e filtraggio dei contenuti web?

In ambito business si “invade” il campo degli amministratori di rete e di sistema, visto che ognuno ha una propria politica di gestione della sicurezza. In generale a mio avviso è importante prima di tutto cercare di limitare quanto più possibile i permessi e i privilegi disponibili su tutti i terminali di lavoro. Configurare account limitati e Software Restricion Policies è importantissimo per prevenire possibili infezioni e Windows, in questo settore, permette di spaziare veramente molto.
Sembra banale, ma molte delle infezioni che entrano nelle reti aziendali provengono da dispositivi USB rimovibili infetti che attaccano il sistema grazie alla vecchia tecnica della gestione dell’autorun in Windows. Se il sistema permette l’autorun da dispositivi USB removibili, inserendo il dispositivo infetto automaticamente il malware verrà eseguito. Per questo è molto importante ricordarsi di disattivare questa funzionalità.

Seguite queste politiche di hardening del sistema, è sicuramente consigliabile poi affidarsi ad appliance specifiche che permettano di gestire in maniera centralizzata la sicurezza dei vari client. Ma ricordandosi sempre che un software antivirus può fallire, e di conseguenza è veramente fondamentale prima di tutto rendere il sistema quanto più ostile ad un malware.
Ultimo consiglio, che vorrei non dover dare ma che purtroppo – a quanto sembra e da quanto è stato dimostrato dal worm Conficker – è necessario utilizzare password complesse, composte almeno da caratteri maiuscoli, minuscoli e numeri. Una password semplice e facilmente individuabile è ancora una delle prime cause di intrusione nei sistemi informatici.

Parliamo di software antivirus. Quali caratteristiche dovrebbe avere un prodotto del genere al giorno d’oggi considerate le tipologia di minacce che arrivano dalla Rete? Una volta ci si affidava solamente a software per la sicurezza che si affidavano esclusivamente ai propri database di firme virali. Un approccio del genere può essere ancora sufficiente?

Come già detto precedentemente, mettere in evidenza tutti i limiti di un approccio standard basato esclusivamente su firme virali è un gioco da ragazzi. E infatti tutti i software antivirus si stanno aggiornando modificando le proprie tecnologie.
Ad oggi vengono individuati ogni giorno migliaia di nuovi software nocivi, completamente “inediti” oppure varianti di malware già conosciuti: un numero impressionante, impossibile da affrontare scrivendo per ognuno di questi malware una specifica firma virale.

L’idea è perciò quella di individuare un malware non soltanto per mezzo delle firme virali ma ricorrendo ad un’analisi delle caratteristiche del file.
Molti software antivirus stanno implementando tecnologie euristiche avanzate, basate su analisi comportamentali o su firme virali generiche. Fino a pochi anni fa il procedimento era il seguente: un malware si diffondeva online, le software house di antivirus ricevevano un esemplare di tale malware, lo analizzavano ed infine rilasciavano gli aggiornamenti.
Quando un malware necessitava di giorni per potersi diffondere, questa procedura era efficace. Oggi, tuttavia, dal momento in cui una società rilascia un aggiornamento, il malware è già mutato e con molta probabilità quell’aggiornamento sarà inefficace.

Si tenta quindi un nuovo approccio per poter affrontare il problema basandosi sempre più su tecnologie euristiche statiche, dinamiche ed analisi comportamentale. Un nuovo approccio al problema, che si sta diffondendo lentamente a tutte le società antivirus e di cui Prevx è pionere – è l’utilizzo di tecnologie in-the-cloud.

Parlaci di analisi comportamentale, intelligenza collettiva e scansioni “in the cloud”. Cosa si profila di nuovo all’orizzonte?

Ho parlato prima di euristica basata su analisi comportamentale e tecnologia “in-the-cloud“. Un approccio fondato sull’analisi comportamentale sta a significare che un software di sicurezza non va a poggiare esclusivamente su una scansione per mezzo di firme virali, ma analizza il comportamento che un file sospetto può avere sul sistema ponendo particolare attenzione ai suoi possibili comportamenti nocivi. In questa maniera si può tentare di riconoscere un malware senza l’ausilio di una firma virale specifica bensì affrontando il problema in maniera generica.

L’utilizzo della tecnologia in-the-cloud è un approccio innovativo al problema malware. Questo approccio funziona in maniera differente all’approccio standard. Ogni utente Prevx fa parte della comunità Prevx. Ogni software eseguito viene analizzato dal client Prevx, utilizzando tecnologie locali e tramite server della società. Se il programma viene riconosciuto come malware, il server centrale viene immediatamente allertato e il programma viene identificato come nocivo. Da quel momento – questione di secondi, al più di minuti – ogni utente facente parte della comunità Prevx è protetto da quel malware. Un approccio efficace, che a poco a poco stanno seguendo le varie società di sicurezza, tra le quali Panda, Symantec, McAfee, TrendMicro, BitDefender.

A coloro che, per questioni di privacy, non amano le soluzioni “in the cloud” cosa consigli?

Penso che con la questione privacy si sia creato una sorta di circolo vizioso. Molte persone si lamentano della propria privacy, salvo poi vedere le stesse persone pubblicare di tutto su Facebook o altri social network simili. Un altro esempio: molte persone si lamentano delle telecamere pubbliche di sicurezza, salvo poi richiedere le registrazioni se la propria bicicletta è stata rubata sotto una di queste telecamere. A tutte le persone che mi chiedono del problema privacy, rispondo sempre con una domanda: “quanto si è disposti a sacrificare parte della propria privacy in favore della propria sicurezza?”.

Nel caso di soluzioni in-the-cloud, nessun dato personale – almeno per quanto riguarda Prevx – viene registrato nei server della società. Gli unici dati registrati sono informazioni di natura prettamente tecnica derivate dall’analisi dei software eseguibili. Nessun documento personale viene caricato nei server della società, nessun IP viene registrato ed associato ad alcun programma. Le uniche informazioni registrate, come detto precedentemente, sono informazioni di natura tecnica riguardanti il file eseguito.

Quali suggerimenti per riconoscere un buon antivirus?

Non esiste un buon antivirus, esiste l’antivirus che più si adatta alle esigenze dell’utente specifico. Ci sono utenti che vogliono un antivirus capace di intercettare e bloccare il maggior numero di infezioni, ci sono utenti che invece vogliono un software antivirus che sia il più leggero e meno invasivo possibile, ci sono utenti che invece sono più sensibili all’aspetto assistenza. Ci sono delle comparative internazionali indipendenti che possono dare un’idea sulla qualità dei software antivirus, ad esempio le comparative svolte da AV-Comparatives. La scelta finale è poi nelle mani dell’utente.

In caso di infezione, quali minacce reputi più difficoltose da eliminare? Quali i consigli per sbarazzarsi dei malware più aggressivi?

Sicuramente le infezioni più difficili da rimuovere sono le infezioni causate da rootkit “kernel mode” ossia quelle che vanno ad alterare il funzionamento del sistema operativo in modo tale da prenderne il controllo. Quando si tratta di affrontare tali minacce, spesso la soluzione più rapida è quella di effettuare una scansione del sistema con un “live CD”, alcuni di questi messi a disposizione gratuitamente da società di antivirus. Se si ha già una licenza di un software antivirus, è altresì possibile contattare il supporto tecnico che guiderà l’utente alla rimozione dell’infezione. Si può procedere anche manualmente da soli, utilizzando software avanzati di analisi del computer, quali software antirootkit specifici. Tuttavia, un’operazione del genere andrebbe affrontata solo se si hanno le dovute conoscenze, altrimenti si rischia di causare più danni al sistema. Proprio per aiutare gli utenti più inesperti, sono nate community di supporto, dove utenti più esperti danno una mano e le indicazioni necessarie per poter tentare una rimozione dell’ospite indesiderato dal sistema.

Puoi spiegarci i motivi tecnici per i quali la rimozione dei rootkit è spesso problematica? Cosa fare in questi casi?

I rootkit che vanno ad alterare il funzionamento del sistema operativo a livello di kernel sono particolarmente difficili da rimuovere perché agiscono ad un livello di privilegi che è il massimo livello all’interno dei sistemi operativi Windows. Operano cioè con gli stessi privilegi con cui agiscono i software antivirus. Di conseguenza, minano alla base lo stesso terreno sul quale si poggiano i software di sicurezza. Diventa quindi una questione di “chi arriva primo”, una sorta di race condition. Se il software antivirus utilizza una specifica funzione del kernel per leggere il disco rigido e il rootkit è riuscito ad avere accesso al kernel e a modificare questa funzione, il software antivirus non avrà più strumenti per poter leggere il disco. Ecco che dunque, come detto precedentemente, l’unico modo veloce ed efficace è quello di effettuare una scansione al di fuori del sistema. Anche in questo caso, per affrontare questa problematica le vie consigliate sono quelle precedentemente illustrate.

A chi sostiene che malware e rootkit sono “prerogativa” dei soli sistemi Windows che cosa rispondi? Come vedi lo scenario sulle piattaforme Mac OS X e Linux?

Purtroppo non è così, o meglio è un’affermazione che corrisponde al vero solamente in parte. Fermo restando che i rootkit sono nati originariamente in ambiente UNIX, il punto è comunque un altro. Secondo statistiche riportate da W3Counter, a Giugno 2010 il numero di utenti di Windows è stimato attorno all’83,97%, il numero di utenti Mac OS X intorno al 6,25%, il numero di utenti Linux all’1,71%. La differenza è abissale: Windows è un potenziale bacino di vittime spaventosamente ampio che comprende un numero enorme di persone che spesso non sono neanche sensibilizzate alla questione sicurezza. Un problema di cui purtroppo si può ritenere colpevole anche Microsoft stessa che per anni – pur sviluppando sistemi operativi che hanno delle ottime funzionalità di sicurezza – ha preferito incoraggiare gli utenti ad un utilizzo del sistema più semplice a scapito della maggiore sicurezza.
Con l’avvento di Windows Vista e Windows 7, Microsoft ha deciso di cambiare rotta puntando in modo deciso sull’aspetto della sicurezza.
Apple sta lentamente aumentando le proprie vendite, ampliando a poco a poco il proprio bacino di utenza, tanto da iniziare ad entrare, con i suoi sistemi operativi, nel “mirino” dei malware writer. Quello della sicurezza è sicuramente un problema meno d’attualità, al momento, rispetto a Windows, ma si tratta comunque di un tema sentito dalla società di Cupertino, tanto che in Mac OS X 10.6 “Snow Leopard” è stato implementato anche uno scanner antivirus vero e proprio.
Come ha già detto un famoso ricercatore internazionale, Mac OS X è un sistema più al sicuro, non più sicuro. Tecnicamente parlando Windows Vista e Windows 7 non hanno nulla da invidiare in termini di sicurezza al sistema operativo Snow Leopard, anzi sono tecnologicamente superiori grazie ad un’implementazione migliore dell’ASLR – tecnologia importante, insieme al DEP, per la prevenzione di exploit.

Un discorso a parte va fatto per Linux, che risulta essere un terreno molto più difficile da attaccare. Anche qui non perché ci sia una tecnologia di sicurezza superiore, ma principalmente per due motivi: la diffusione minima in ambito consumer e l’inesistenza di un terreno comune. Di distribuzioni Linux ne esistono centinaia, che vengono continuamente aggiornate, patchate, secondo le logiche di ogni sviluppatore. È un sistema operativo aperto, dove chiunque può potenzialmente metterci mano, è un mondo sicuramente fantastico e ricco di opportunità che non facilita “il lavoro sporco” dei malware writer proprio perché un programma sviluppato per una determinata distribuzione rischia spesso di non funzionare in altre distribuzioni a causa ad esempio di dipendenze non risolte. Oppure, ancora, perché in un’altra distribuzione c’è una versione aggiornata – o non ancora aggiornata – di un componente e quindi le funzionalità necessarie non sono presenti. Ogni distribuzione segue le proprie linee guida, non c’è un piano di sviluppo unico e coerente. Questo rende lo sviluppo di un malware particolarmente difficile – e spesso non semplifica neanche la vita agli sviluppatori onesti. Quello che fa la forza di Linux, spesso è anche la debolezza di Linux.

Le difese messe in campo in Windows. Gli attacchi ai server web.

Ci parli delle misure di sicurezza introdotte nelle ultime versioni di Windows? Quando sono efficaci nella prevenzione delle infezioni?

Dalla prospettiva di un utente di Windows XP, sia Windows Vista che, successivamente, Windows 7 hanno stravolto il modo di concepire la sicurezza. La novità più importante introdotta è stata lo User Account Control (UAC), una tecnologia che permette di separare, durante l’impiego di un account di tipo amministrativo, i privilegi di amministratore da quelli di un utente standard.
Mentre in Windows XP il sistema veniva automaticamente configurato per l’utilizzo con un account amministratore, in Windows Vista e Windows 7 l’account amministratore che viene creato di default è un account protetto da UAC. Questo significa che, pur essendo amministratore, l’utente non ha a disposizione automaticamente tutti i privilegi amministrativi. Egli si trova in uno stato denominato “Admin Approval Mode“: l’utente è a tutti gli effetti un utente standard, con privilegi limitati ma che potenzialmente può diventare un amministratore. Quando l’utente deve eseguire qualche operazione che richiede privilegi amministrativi, oppure esegue un software che richiede maggiori privilegi, il sistema chiede il permesso all’utente, il quale deve confermare cliccando su un pulsante.
Anche se l’UAC non è stato studiato come un sistema di sicurezza, ha un effetto più che positivo contro i malware, visto che nessun malware dispone ora, in modo predefinito, di privilegi amministrativi, a meno che non sia l’utente a dare il suo esplicito consenso.

Un’altra tecnologia implementata è stata il “Mandatory Integrity Control“, o MIC: ogni processo creato dallo stesso account utente gode degli stessi privilegi che ha l’account utente in questione. Ciò significa che ogni processo eseguito dallo stesso account utente può accedere a tutti gli altri processi creati dallo stesso account, senza limitazioni di sorta. Tuttavia di default non può accedere agli altri processi creati da altri account utente (o dal sistema).
Con il MIC, Microsoft ha voluto delineare un’ulteriore suddivisione creando altri livelli di permessi all’interno dello stesso account utente. Tutti i processi eseguiti nel sistema possono avere uno specifico livello di integrità, che può essere basso, medio, alto e “sistema”. Di default tutti i processi sono eseguiti con un livello di integrità medio, ma – ad esempio – i processi di Internet Explorer 8 vengono eseguiti con un livello di integrità basso. Tutti i processi con un livello di integrità basso, seppur eseguiti dallo stesso account utente, non possono accedere ai processi con un livello di integrità superiore e, inoltre, hanno limitato accesso alle risorse del sistema. Quindi, anche qui, un eventuale exploit in Internet Explorer 8 potrebbe far sì eseguire il malware, ma quest’ultimo verrebbe eseguito ad un livello di integrità basso, rendendolo per gran parte inoffensivo.

Altre due protezioni sono state incluse a protezione diretta del kernel di Windows, e sono le tecnologie denominate KPP e Code Integrity. La tecnologia Kernel Patch Protection (KPP) è meglio conosciuta in modo informale come PatchGuard e si occupa di aggiungere un layer di protezione al kernel di Windows, proteggendolo da eventuali modifiche indesiderate. I rootkit kernel mode, per poter funzionare, necessitano di essere in grado di alterare il kernel di Windows prendendone il controllo e modificandone il funzionamento al fine di nascondere le proprie tracce nel sistema.
La tecnologia KPP prevede un monitoring continuo del kernel di Windows, al fine di intercettare eventuali modifiche. Nel caso in cui dovessero essere effettuate alcune alterazioni al codice del kernel, il sistema viene immediatamente bloccato ed esposta una schermata blu.

Code Integrity è invece una tecnologia che non permette al sistema operativo di caricare nella zona del kernel di Windows alcun driver senza che sia digitalmente firmato.

Sia KPP che Code Integrity sono totalmente implementati e funzionanti nei sistemi a 64 bit, mentre nei sistemi a 32 bit KPP non è implementato mentre Code Integrity è implementato solo parzialmente (mostra cioè solo un avviso di assenza della firma digitale ma l’installazione poi prosegue).
Ultimi, ma non meno importanti, l’implementazione completa delle tecnologie DEP e ASLR per la prevenzione di exploit.

Nelle più recenti versioni di Windows si è insomma voluto integrare una serie di contromisure atte a prevenire i problemi di sicurezza a più livelli, per poter fornire una protezione quanto più a largo spettro. Non è una sola di queste tecnologie che fa la differenza, non sono le tecnologie implementate e prese singolarmente che possono rendere il sistema sicuro. Implementate assieme, esse riescono a fornire un livello di protezione e di prevenzione dai malware sicuramente notevole, permettendo a Microsoft di tornare a competere – almeno in termini di sicurezza specifica del sistema operativo – con i sistemi operativi concorrenti.

In quest’ultimo biennio sta “esplodendo” l’utilizzo dei dispositivi mobili, spesso impiegati per connettersi ad Internet. Riferendoti ai vari prodotti in commercio (basati su sistemi operativi molto diversi), quali minacce si stanno presentando all’orizzonte?

L’utilizzo degli smartphone e dei netbook come dispositivi per poter trasmettere informazioni personali e per poter navigare in Internet è in una fase di continua espansione. Portarsi dietro un netbook o uno smartphone significa correre gli stessi rischi di navigare con un PC a casa propria. Anzi, in alcuni casi il rischio è superiore poiché è sottovalutato. I dispositivi attuali, basti pensare a smartphone basati su Windows Mobile, o su SymbianOS, o ancora derivanti da OS X, soffrono degli stessi identici rischi dei fratelli maggiori. E di malware ne vengono isolati di nuovi con sempre più frequenza.

Spesso i malware writer fanno leva sull’ingenuità degli utenti, e, purtroppo, a questo attacco non c’è difesa che possa essere realmente efficace. La diffusione di software per dispositivi mobile e relativi crack, la possibilità per gli utenti di scaricare autonomamente pacchetti di installazione prelevati da peer to peer o siti warez sono le vie più diffuse per rimanere infetti.
Si ritorna alla questione di mettere a disposizione degli utenti dei repository, dei canali ufficiali per la diffusione di software e aggiornamenti quale modo per poter evitare la diffusione di codici nocivi. Un esempio è l’Apple iPhone, che utilizza come unico mezzo di installazione di software il proprio AppStore. Tutti i pacchetti a disposizione nello store vengono controllati da Apple, per avere sempre la situazione sotto controllo. Va osservato, purtuttavia, come molti utenti effettuino il cosiddetto “jailbreak“, procedura che permette di “sbloccare” il dispositivo della società di Steve Jobs per potervi installare software senza vincoli, caricando programmi spesso provenienti da fonti sconosciute. Ecco quali sono state le fonti dei malware isolati per i dispositivi della mela. Lo stesso si può dire degli smartphone basati su SymbianOS.
La disponibilità di pacchetti scaricabili ovunque in Internet, indipendentemente dalla fonte, ha permesso la diffusione di malware anche per questi dispositivi.

Firewall. Ritieni sufficiente l’utilizzo del firewall integrato nelle più recenti versioni di Windows (Vista e Windows 7) oppure è sempre bene orientarsi su un “personal firewall” più completo in grado di porre al vaglio anche i tentativi di connessione in uscita? In caso affermativo, quali prodotti consiglieresti ed a quali categorie di utenza?

Il modulo firewall integrato in Windows Vista e Windows 7 è sicuramente un ottimo firewall, migliorato notevolmente dal suo vecchio parente in Windows XP. Permette numerosi controlli avanzati, funzionalità sicuramente utili per essere ovviamente un firewall standard.
Il problema è che, ad oggi, i firewall intesi nel senso stretto del termine, sono solo in parte utili. Questo perché un firewall può controllare connessioni in entrata e in uscita, può controllare quali software stanno cercando di connettersi all’esterno o di ricevere connessioni dall’estero, ma non può verificare ad esempio se un software abilitato alla connessione verso l’esterno non sia stato preventivamente alterato e vi sia stato iniettato del codice nocivo all’interno di esso.
In questa maniera le barriere di un firewall verrebbero superate. Nascono così firewall software sempre più avanzati, che includono non solo un modulo firewall standard ma anche controlli comportamentali, capaci di intercettare e bloccare azioni nocive nel sistema. Il problema è che più ruoli svolgono questi firewall, più domande pongono all’utente, più l’utente si sente annoiato e disorientato, spesso sbagliando le risposte ai messaggi di allarme del firewall causando o un blocco completo delle connessioni, oppure permettendo qualsiasi cosa.

I firewall sono molto importanti in un sistema casalingo, ma ritengo che prima del firewall gli utenti si debbano preoccupare di altri fattori, quali gli aggiornamenti continui del sistema operativo e dei software installati nel sistema, l’utilizzo di un software antivirus costantemente aggiornato e di un browser web sicuro. Volendo ci si può affidare a soluzioni all-in-one, che – unendo engine antivirus e firewall – sono spesso ottimizzati per non inondare l’utente di domande difficili e – spesso – incomprensibili.

Le truffe online (“phishing”) sono un fenomeno che continua ad essere, purtroppo, molto diffuso. Cosa suggerisci ai nostri lettori per non cadere in trappola. Alcuni sedicenti esperti continuano a consigliare di controllare la presenza del famoso “lucchetto” nella barra degli indirizzi del browser o nella barra di stato. Vogliamo spiegare perché si tratta di una verifica che può divenire addirittura controproducente?

Spesso a chi è meno esperto e si trova a dover inserire dei dati personali online, si usa consigliare di verificare l’attendibilità del sito web attraverso la presenza del famoso lucchetto e del prefisso https:// al posto del classico http://.
In effetti la comparsa del prefisso https:// e del lucchetto indicano che su quella pagina è attivo un protocollo di crittografia che permette di inserire i propri dati personali senza preoccuparsi che chi sta nel mezzo possa riuscire a leggere le informazioni, poiché viaggiano all’interno di un canale crittografato.
Il punto è che il famoso lucchetto non ha solo funzione di attivare un protocollo di sicurezza per il trasferimento dei dati da utente a server, ma ha anche funzione di verificare l’identità del server. Gli utenti sono spesso rassicurati dalla presenza di questo lucchetto, perché agli occhi di un utente inesperto questa presenza indica che il server è affidabile e sicuro. In realtà però non sempre è così: la presenza di un lucchetto indica che sicuramente è attivo un protocollo di crittografia nella comunicazione, ma non sempre è indice che l’identità del server sia stata verificata.
Ciò avviene perché i certificati SSL – grazie ai quali è possibile far comparire l’immagine del lucchetto e l’utilizzo del prefisso https:// – possono essere acquistati senza che l’identità dell’acquirente venga effettivamente verificata. Quindi un pirata informatico può creare un sito di phishing di una banca, attivarne la crittografia SSL così da far comparire il lucchetto, e aspettare le proprie vittime. Un utente inesperto si connette al falso sito, vede la presenza del lucchetto e si rassicura che è il sito originale della propria banca.
Ecco perché la presenza del famoso “lucchetto” non indica con certezza che l’identità del sito sia stata verificata, e come tale non bisogna abbassare le difese se si vede il lucchetto nella pagina web che si sta visitando.

L’aspetto di fondamentale importanza è verificare sempre l’indirizzo web della pagina che si sta visitando, leggendolo con molta attenzione più volte. È possibile anche affidarsi a prodotti di terze parti che aiutano gli utenti ad individuare eventuali pagine di phishing. Un esempio è la toolbar per i browser sviluppata da NetCraft. Inoltre, un altro consiglio, è ovviamente quello di non cliccare mai su link che provengono via e-mail e inviati da istituti bancari, i quali vi chiedono di confermare i vostri dati di account, o di inserire online i vostri dati personali. Un istituto bancario non farà mai tali operazioni via e-mail.

Sinora abbiamo guardato al problema malware dalla prospettiva dell’utente. Quali sono gli espedienti più utilizzati da chi sviluppa componenti nocivi per infettare una pagina web e quali strategie hai notato ricorrono con maggior frequenza?

I malware writer spaziano veramente molto, dall’indovinare le password semplici all’individuare falle nei server. Infettare le pagine web è diventato, come dicevamo all’inizio, la moda del momento.
Viene spesso da chiedersi come sia possibile infettare pagine web con tale velocità e come fanno i malware writer ad ottenere l’accesso a così tanti siti web. Le modalità sono tante: spesso molti utenti utilizzano password FTP semplici che risultano piuttosto semplici per essere indovinate; a volte gli aggressori raggiungono il loro obiettivo individuando falle in qualche script presente nei server; individuando delle vulnerabilità in qualche componente non aggiornato del server oppure infettando le pagine direttamente sui sistemi di proprietà del webmaster (il malware cerca all’interno dell’hard disk file denominati, ad esempio, index.* inserendovi il proprio script nocivo. Talvolta, invece, le password per l’accesso a server FTP e server database vengono rubate direttamente sul sistema infetto ed inviate ai malintenzionati che provvedono ad accedere al server FTP e a modificare il contenuto dei file.

I modi per infettare le pagine “erogate” da parte di un server web sono veramente tanti, e non sempre è colpa del webmaster incauto. A volte, anzi, le responsabilità ricadono proprio su chi sta ospitando il sito web: la società a cui un utente si è affidato e che si dimostra inaffidabile.

OWASP ha posto in testa alla sua classifica per il 2010 (ved. questo articolo) le vulnerabilità “SQL injection” e gli attacchi XSS. Condividi?

Assolutamente sì. Il problema delle SQL injection e degli attacchi XSS è drammaticamente reale ed è sicuramente stato sottovalutato per troppo tempo.
La possibilità di inserire in un sito web del codice nocivo per mezzo di attacchi SQL injection non solo è reale, ma succede sempre più frequentemente. Fortunatamente esistono dei tool da installare lato server che possono aiutare a mitigare notevolmente il rischio di attacchi SQL injection e XSS, disponibili sia per server web Apache che IIS. Con ciò non significa che i programmatori possono dunque dormire sonni tranquilli: una progettazione solida e sicura delle proprie applicazioni è un requisito fondamentale, che va oltre qualsiasi possibile sistema di sicurezza aggiuntivo. Poi, dove non arriva l’occhio umano, i vari UrlScan e ModSecurity possono aiutare notevolmente la salute dei propri server.

A proposito di attacchi XSS, suggeriamo di approfondire l’argomento facendo riferimento a questi articoli. Per quanto riguarda gli attacchi SQL injection abbiamo invece più volte analizzato il fenomeno portando all’attenzione dei lettori alcuni esempi di attualità: è sufficiente fare riferimento a queste pagine.

Ti consigliamo anche

Link copiato negli appunti