Archive for the ‘Sicurezza’ Category

Malware firmato

Saturday, September 4th, 2010

Quest’estate un post ha particolarmente attirato la mia attenzione. Sottolinea come sia possibile trovare del malware firmato digitalmente in un modo assolutamente legittimo. L’articolo è uscito quando si stava parlando anche dell’inizio dell’effettivo deployment di DNSSEC, che è basato principalmente sulla firma dei record DNS, di PEC e di non ricordo quale altra iniziativa anch’essa riconducibile alla firma elettronica. Vale soprattutto la pena di leggere la presentazione a cui il post si ispira. È da notare che la presentazione identifica alcune strade per firmare il malware che per quanto percorribili, non sembra siano ancora state sfruttate. Un esempio è il furto di chiavi Authenticode, cosa che non risulta ancora ai ricercatori, ma che le cattive pratiche di aziende che utilizzano queste chiavi sembrano rendere possibili.

L’idea che del malware possa avere una firma valida sembra mettere in discussione il senso stesso della firma del software, e forse di altro. È vero solo in parte, ed è bene quindi inquadrare correttamente il problema, per evitare generalizzazioni eccessive.

I problemi sono essenzialmente:

  1. Chi certifica le chiavi opera in un mercato con una concorrenza basata sostanzialmente solo sul costo: non ci sono certificati migliori o peggiori, ci sono solo certificati; a chi li utilizza i certificati interessano poco (vedi punto 2) e una maggiore sicurezza vuole dire procedure più complesse, ovvero una garanzia di perdere clienti, mentre le responsabilità davvero minime che ha in pratica un certificatore non sono una motivazione sufficiente per preoccuparsi della sicurezza;
  2. Chi utilizza delle chiavi di certificazione del codice, come confermato anche dalla presentazione di cui sopra, le considera sostanzialmente una “seccatura” necessaria, una sorta di tassa, e quindi se da una parte è interessato soprattutto a pagarle poco, dall’altra ne cura poco la sicurezza; anche qui, non mi è ben chiaro quali siano le responsabilità in carico al titolare delle chiavi in caso di uso fraudolento delle chiavi da parte di terzi, ma sospetto che siano molto poche;
  3. parlando di responsabilità, alla fine ce ne sono molto poche, e nei confronti dei soggetti sbagliati; è una caratteristica generale dell’uso dei certificati: chi effettivamente se ne deve fidare, cioè l’utente finale, è l’unico che non ha nessun rapporto contrattuale al quale rifarsi in caso di problemi, mentre gli altri soggetti per la maggior parte hanno interesse a che non si faccia mai troppo rumore; ad esempio, se viene emesso un certificato per una società inesistente, utilizzato per diffondere malware, chi ha titolo per chiedere un risarcimento dei danni?
  4. se è discutibile che in alcune configurazioni un oggetto/programma firmato venga installato silenziosamente solo per il fatto di avere una firma valida, anche l’idea di far scegliere all’utente, in base a messaggi che sono criptici anche per molti informatici, è poco realistica;
  5. più sono le aziende che hanno bisogno di chiavi per firmare il proprio codice, meno sarà utile la firma per distinguere quelle che producono programmi puliti da quelle che producono malware.

E in realtà i punti critici sono proprio gli ultimi: cosa garantisce effettivamente una firma Authenticode?  Permette al produttore del codice di inserire informazioni, e all’utente di verificare l’integrità del codice, prendendo, secondo questa pagina, “decisioni più informate”. Tuttavia, la faq dice chiaramente:

Should I trust and download a piece of software just because it’s been signed?

Again, this decision relies on the end user’s own judgment; however, the certificate provides end users with the data they need to make a more informed decision about this piece of software. If the end user has a great deal of trust in a particular software publisher, then the end user may decide to automatically download any software from this publisher through the settings provided in the Authenticode Security Technology dialog box.

Anzi, qui si dice chiaramente:”Likewise, an invalid signature does not prove that the software is dangerous, but just alerts the user to potential problems. ” Tutto giusto, naturalmente, ma dimostra ancora una volta come noi informatici pensiamo e scriviamo come se dovessimo avere a che fare con degli informatici, anche quando sappiamo benissimo che quello che produciamo andrà in mano ad utenti finali. Tutta questa faccenda dello “user’s own judgement” è molto pilatesca.
Diciamocelo chiaramente: l’unico caso in cui la decisione dell’utente è (o dovrebbe essere)  ovvia, è se trova del software di aziende note tipo Micrsosoft o Adobe; negli altri casi, il meccanismo aiuta poco o niente. Il problema è aggravato dal fatto che il “nome” a cui è associato il certificato può non essere così chiaro: la presentazione di cui sopra dice chiaramente che produttori di malware sono riusciti ad ottenere certificati per nomi molto simili a quelli di grosse aziende, abbastanza simili da ingannare certamente la maggior parte degli utenti. La situazione sembra decisamente peggiore di quella dei certificati per i siti web, dove almeno in condizioni normali l’associazione fra un qualsiasi sito e il suo certificato sarebbe verificabile (il nome è decisamente più univoco di quello di una società). In conclusione: la firma del codice è utile quando c’è un canale fidato (da Microsoft, da una distribuzione Linux, e possibilmente con un certificato verificato, non tramite CA) per verificare che il software arrivi in modo integro da quel canale, senza nessuna ulteriore garanzia. Dare un valore particolare al software firmato in quanto tale è sbagliato dal punto di vista teorico e pratico.

Per fortuna oggi tutti, compresa Microsoft, stanno sviluppando soluzioni a tutti i livelli (browser, s.o., macchine virtuali) che basano la sicurezza del codice scaricato da fonti incerte sulla segregazione e non sulla firma. Ma l’idea che quello che è firmato sia più sicuro anche quando non se ne conosce l’origine, resiste…

Rieccomi: SCADA, PMI e Worm

Thursday, August 19th, 2010

L’occasione della diffusione di questo worm mi sembrava troppo adatta per non approfittarne per ricominciare a scrivere sul blog. Il worm Stuxnet  ha come bersaglio le reti SCADA, allo scopo di raccogliere informazioni dai relativi database. Questo vuole dire che può raccogliere informazioni su processi industriali, che per molte aziende rappresentano l’informazione più riservata ed importante.

Negli ultimi anni la sicurezza delle reti SCADA è un tema piuttosto di moda: si è discusso molto di come i sistemi SCADA siano stati man mano connessi alle reti locali delle aziende e di qui ad Internet, e di come i sistemi di controllo siano sostanzialmente i soliti Windows, spesso non aggiornati e con applicativi fortemente insicuri (il worm utilizza una password che è “hard-coded” nel codice dell’applicazione e che è nota da anni). La sicurezza di questi sistemi è stata spesso basata sull’isolamento fisico, e questo isolamento se n’è andato senza che la sicurezza venisse adeguata.

Il punto che mi interessa però è la raccolta di informazioni: abbiamo un worm che non ha lo scopo di raccogliere password da utilizzare in modo semplice e immediato: il worm raccoglie informazioni che vanno poi vendute a clienti interessati. Se qualche anno fa abbiamo avuto l’evidenza dell’incontro fra il mondo dell’”hacking” (in senso negativo) e quello delle frodi, adesso abbiamo l’evidenza dell’incontro con quello dello spionaggio industriale, e ci possiamo aspettare un’evoluzione altrettanto rapida e decisa di questo rapporto.

È utile allora vedere la cosa dal punto di vista dell’Europa, e dell’Italia in particolare. Da noi, le PMI sono una componente importante dell’economia, e com’è noto hanno “grosse difficoltà” con la sicurezza informatica, anche perché spesso non ne sentono la necessità. Se però lasciamo la prospettiva della singola PMI, e guardiamo il settore nel suo complesso, abbiamo un settore importante per la nostra economia, in cui risiede una parte importante del know-how con cui dovremmo competere nel mercato globale, che è particolarmente vulnerabile allo spionaggio industriale. Potremmo magari credere che quando una PMI abbia qualcosa di valore curi di più la propria sicurezza, ma per quanto ho visto, le cose non stanno così: primo, una PMI può non riconoscere il valore che le informazioni nei propri sistemi possono avere, o la presenza stessa delle informazioni (ad esempio nei sistemi SCADA). Secondo, sempre che si renda conto della presenza e vulnerabilità di quelle informazioni, è probabile che affronti il problema chiedendo semplicemente qualche protezione in più a chi si occupa della manutenzione ordinaria dei sistemi. Le competenze di queste figure sono le più varie, non hanno una relazione con il valore delle informazioni trattate in azienda, e l’imprenditore del resto non è in grado di valutarle. Terzo, se anche provano a cercare un supporto specialistico, avranno difficoltà a trovare un’offerta adeguata, sia per i costi, sia perché le piccole aziende sono un numero enorme rispetto all’offerta di specialisti, sia perché per questi ultimi può non essere facile affrontare le particolarità di aziende fuori dai contesti in cui operano abitualmente.

Il risultato è che rischiamo seriamente di portarci dietro uno svantaggio competitivo dato dalla maggiore facilità con cui, statisticamente,  i paesi nostri concorrenti (ok, diciamo le loro aziende) potranno accedere al know-how delle nostre aziende. In questa prospettiva, è chiaro che non basta aspettare che le singole PMI si accorgano delle proprie esigenze di sicurezza e le affrontino, ma è necessario alzare il livello medio di sicurezza e soprattutto di consapevolezza dei rischi che, nei prossimi anni, saranno sempre più reali.

Infine, l’ultimo passaggio, quello più preoccupante: da un worm che permette di leggere una rete SCADA a un worm che permette di controllarla o manipolarla il passaggio è breve. Non dimentichiamo che le reti SCADA sono quelle che controllano non solo le fabbriche, ma anche le dighe, gli inceneritori, i semafori, i binari…

Macchine virtuali e FUD

Tuesday, January 12th, 2010

Da molto tempo vedo nelle macchine virtuali nel complesso più vantaggi per la sicurezza che svantaggi. Quando si parla di macchine virtuali e sicurezza invece, sento parlare quasi solo dei rischi. In questo specifico caso però, secondo me siamo arrivati al FUD puro e semplice. Questo post descrive un’operazione decisamente banale, ovvero copiare una macchina virtuale. È chiaro che chi amministra una macchina virtuale può, in generale, copiarla. Ma prima di tutto, è un amministratore della macchina virtuale, e quindi senza virtualizzazione probabilmente sarebbe l’amministrarore della corrispondente macchina fisica, e quindi potrebbe comunque copiarla… forse potremmo fare un post su come rubare i dati di un disco quando si hanno i permessi per farne un backup ;) E senza lasciare tracce!

Invece, credo che la cosa si possa vedere da un punto di vista diverso: se servono meno amministratori per gestire dei server virtuali, rispetto ai corrispondenti server fisici, allora sono meno le persone di cui è necessario fidarsi, e diminuisce quindi la probabilità che, magari per mancanza di scelte migliori, uno di questi sia propenso a copiarsi i dati .