Security by 'open source'
Una delle affermazioni più ricorrenti nei commenti di questo blog, soprattutto quando 'sparo cazzate' sulla sicurezza è:
Linux è open source e quindi più sicuro.
Da cui deduco che chi lo scrive intende che l'open source sia più sicuro. Ma è davvero così?
Circa un anno fa un esperto di sicurezza - tale Luca Ercoli - ha trovato una backdoor in un CMS open source. Già l'idea di una backdoor mi fa venire i brividi... in un prodotto open source mi fa leggermente balzare dalla sedia. Un brano significativo dell'intervista:
Punto Informatico: Cosa ti ha portato a scoprire questa falla in Etomite?
Luca Ercoli: Stavo effettuando alcune operazioni sui server di SEEWEB e con i colleghi avevamo notato che c'era un notevole aumento dei tentativi di scalata dei privilegi. Così siamo andati ad analizzare i log effettuati dagli strumenti di registrazione, ma è stato solo analizzando con più precisione i log del server web, che abbiamo capito che i tentativi di intrusione venivano effettuati sfruttando una vulnerabilità del CMS Etomite.
La vulnerabilità non è stata scoperta leggendo il codice (sono dell'opinione che sono davvero pochissimi gli esseri umani in grado di farlo, tra cui includo Michael Howard), ma guardando i log. Poi, codice alla mano, si è arrivati alla root cause. Mmm. Lo stesso Luca però (a mio parere contraddicendosi) trae conclusioni diverse da quelle che trarrei io:
[...] programmi per Windows che vengono distribuiti in codice binario già pronto per essere utilizzato e la cui correttezza purtroppo non è verificabile come per i programmi distribuiti con licenza GPL
Apro una parentesi ed espongo la mia opinione (non so i fatti ma utilizzo il rasoio di Occam). Secondo me la backdoor è stata introdotta direttamente nel codice (la backdoor era codificata in Base64) in quanto è sopravissuta un paio di versioni: trovo alquanto singolare che non sia stato possibile risalire all'autore della backdoor. Le fonti ufficiali sono state molto vaghe a riguardo e mi pare di aver letto un paio di versioni discordanti in giro (hackeraggio del sito di dowload e sostituzione dei file; hackeraggio del CVS e checkin diretto della backdoor).
Luca dice che il codice binario non è [facilmente] verificabile (giusto); ma il fatto che il codice aperto sia verificabile non garantisce che sia verificato (come nel caso di Etomite). Lui stesso ha trovato la falla guardando i log e non il codice sorgente.
Secondo me - anzi - in alcuni casi l'open source viene usato per instillare un falso senso di sicurezza. Un altro esempio: questo articolo. L'autore dice:
So despite the conventional wisdom, the fact that many eyeballs are looking at a piece of software is not likely to make it more secure. It is likely, however, to make people believe that it is secure. The result is an open source community that is probably far too trusting when it comes to security.
[...]
The many eyeballs approach clearly failed for Mailman. And as open source programs are increasingly packaged and sold as products, users -- particularly those who are not familiar with the open source world -- may well assume that the vendor they are buying the product from has done some sort of security check on it.
Ma chi è l'autore? Un windows fanboy? Uno che scrive sw packettizzato closed source? No:
John Viega is a research associate at Reliable Software Technologies, in Sterling, Va. He holds an M.S. in Computer Science from the University of Virginia. He developed and maintains Mailman, the Gnu mailing list manager. His research interests include software assurance, programming languages, and object-oriented systems.
Nientepopodimenoche l'autore di mailman.
Nella trappola dell'open source è più sicuro ci sono cascato anche io quando - prima del SP2 di XP - stanco dei vari attacchi al browser (che poi ho scoperto molto spesso basati su componenti di terze parti tra cui in larga parte la JVM di Sun) ho installato anche sul mio PC firefox perché "più sicuro" (era la prima parte del loro motto: safer, faster, better(*)). Poi ho letto questo e mi è venuto seriamente da piangere: questa vulnerabilità è secondo me la peggiore di tutto il software umanamente scritto dopo Slammer e CodeRed (ma solamente perché per essere sfruttata bisogna cliccare un link). Peccato che ai quei tempi - se ben ricordo - in Firefox non c'era neanche l'autoupdate.
Tralascio poi il discorso dei cacciatori di zero-day vulnerabilities: col codice alla mano dovrebbero fare più in fretta.
Infine non ho dati su quale sia il processo di sviluppo di un sw opensource come Linux o Firefox; essendo su base volontaria non so quanto si possa cercare di forzare un processo di qualità come quello di Vista (tratto da qui):
In sintesi: l'opensource è dal punto di vista strettamente teorico più sicuro, a patto che chi lo _usa_ si guardi _tutto_ il codice per davvero. Io non ho ne il tempo, ne la voglia di guardare nel mio tempo libero il codice degli altri (soprattutto quando - come nel caso di Etomite - non servirebbe a niente perché la vulnerabilità è nascosta anche ad una lettura più approfondita). Voi?
-quack
(*) in realtà Firefox non è ne safer (Fonte), ne faster (Opera is the fastest Graphical Web Browser in Windows. - Fonte; Internet Explorer 7 is clearly faster than Firefox 2.x in 4 out of 7 measures of performance, stessa fonte). Per induzione 'induco' neanche better.