Report Fortify su sicurezza del software Open Source e relative critiche

In merito all'indagine di Fortify sulla sicurezza del software Open Source e dell'articolo di Alessandro Bottoni su PI vorrei fare qualche breve considerazione in merito:
- l'analisi di sicurezza del codice prevede la disponibilità del codice sorgente, è quindi del tutto evidente che Fortify può farla solo sul software Open Source e non sul closed! Chiaramente non si può additare la ricerca come di parte solo per questo motivo.
- nel report si parla di bug o flaw rilevanti per la sicurezza e non in generale di errori del codice. Bisognerebbe capire che cosa è uno SCA (Source Code Analysis) per la sicurezza del software e non fare considerazioni generiche sul fatto che ogni software contiene degli (e molti) errori: questa è vero a prescindere. Ma non significa che tutti gli errori daranno vita a vulnerabilità di sicurezza!
- che il software open sia più sicuro perché, essendo open, può essere ispezionato ed eventualmente corretto è una "pia illusione": per mettere in sicurezza un software ci vogliono competenze e un'organizzazione che definisca il processo e lo imponga in tutti i passi del ciclo di vita. Cose non sempre presenti nelle community open. In quelle closed l'unica speranza è nella buona ingegnerizzazione del prodotto L'unica speranza dell'OSS è nelle review di sicurezza con qualche "disclosure". Sareste in grado di ispezionare software come JBoss? Ne siete sicuri? Ed in quanto tempo? Ed in che modo? E chi vi garantisce che il vostro modo sia quello giusto? E quanta esperienza ha chi effettua questa operazione? E quanto sareste disposti a spendere del vostro tempo senza guadagnare un quattrino? Tutti aspetti non necessariamente uguali in una società privata che tende a fare un minimo di selezione del personale e lo paga anche!
- nessuno garantisce che il software Closed Source abbia caratteristiche diverse, ma almeno se è closed vuol dire che qualcuno ha deciso di farci del business e che quindi ci mette la faccia vendendovi la licenza d'uso. La community è un'entità rarefatta che alle aziende piace poco quando debbono trovare il responsabile di turno. Non si può far finta che non esista il problema dell'assegnazione delle responsabilità. Secondo voi un'azienda si affida alla "community" oppure decide di utilizzare Open Source affidandosi a grossi player quali IBM, RedHat e compagnia bella? E allora? Che vantaggio c'è? Ho comprato un prodotto che solo teoricamente posso governare ma al momento di "scaricare" la responsabilità posso solo in parte dire "E' colpa di IBM"....il software non è suo, lei offre solo servizi.....e vi ritroverete con una bella medaglia con scritto OSS e tutti gli svantaggi del closed: SVEGLIA!
- l'analisi di Fortify mi sembra comunque interessante perché sfata il mito "Open = sicuro": attenzione non ho detto "più" sicuro, ma solo sicuro. Il software open source, come tutti i software, soffre di problemi di sicurezza che purtroppo non possono essere gestiti unicamente con delle review sporadiche di qualche buontempone pseudo-esperto. Devono esservi processi strutturati che hanno come punto focale la sicurezza. Mai sentito parlare di "ciclo di vita del software sicuro"?
- Chi conosce Fortify, sa che questa azienda non è schierata ideologicamente e che i loro studi, libri e strumenti non sono soltanto all'avanguardia ma sono anche il motore della software security che va tanto di moda oggi. Andatevi a leggere i post di Gary McGraw contro il "Treath Modeling" di Microsoft e Howard. Personalmente, come potrete leggere dai vari post, mi sento molto più vicino all'idea di Software Security di McGraw rispetto alla linea Microsoft.
- Alessandro Bottoni parla di vulnerabilità di Windows e di come la Microsoft sia poco orientata alla sicurezza. E' vero: Microsoft ha per molto tempo trascurato la sicurezza a favore dell'usabilità dei loro sistemi operativi. E adesso che tenta di porvi rimedio, la gente si lamenta dell'UAC.....ma insomma mettetevi d'accordo!
- Ma com'è che ora escono anche molte vulnerabilità di Mac OS X? oppure di Firefox? Non sarà che questi sistemi, sempre più diffusi, sono appetibili anche per gli hacker proprio perché maggiormente diffusi? Prima di eleggere un sistema più sicuro di un altro, cerchiamo di capire che il sistema che verrà attaccato sarà molto probabilmente sempre quello maggiormente diffuso, unicamente perché si avranno più possibilità di trovare macchine in giro con qualche vulnerabilità non patchata.
- Quale impatto avrebbe avuto la vulnerabilità OpenSSL nelle distro DEBIAN-based se sulle nostre macchine client invece di Windows vi fosse stato Linux? Ci avete pensato? Un disastro...
- L'open source ha un valore inestimabile perché costituisce una alternativa valida al closed source e permette di abbassare i costi di alcune soluzioni, specie per le start-up. Ma si deve capire che non basta essere open per essere sicuri, efficienti, efficaci. Servono anche persone preparate, processi organizzati, governance. Poi che questi appartengano ad un brand o ad una community poco importa.
- Per la software security c'è OWASP, community interamente OPEN e dedicata alla sicurezza delle applicazioni Web. Una partnership con SoC dedicate alla review di grandi applicazioni open-source sarebbe auspicabile come la stessa Fortify indica nel suo report.
E adesso qualche contestazione puntuale alle conclusioni nell'articolo di Bottoni su PI:
"Ma, soprattutto, perché mai una azienda dovrebbe sottoporre il codice Open Source che utilizza (Apache, Tomcat, Jboss o simili), e solo quello, ad una code review così estesa, approfondita, costosa e impegnativa? Il codice Closed Source è comunque molto meno sicuro e, soprattutto, non potrebbe mai essere sottoposto ad una analisi di questo tipo."
Forse perché ad un'azienda interessa la sicurezza indipendentemente dal fatto che un sistema sia Open o No. Nel primo caso può fare una review, nel secondo no (e affidarsi solo allo scarico di responsabilità e avvocati).
Quindi, seguendo il pensiero di Bottoni, visto che un'azienda ha deciso di avere Windows e visto che Windows è intrinsecamente insicuro, allora non serve fare l'analisi di sicurezza di tutto il resto, giusto?
Ammiro anche la sua intrinseca "sicurezza" nell'affermare che "qualsiasi" codice closed sia insicuro per il solo fatto di essere closed.
Che posizione ideologica!
"Una code review come quella ipotizzata da Fortify ha senso solo in alcune, rarissime applicazioni e, comunque, è possibile solo su software Open Source. Invocarla in questo contesto serve solo a rendere evidente quanto sia faziosa l'analisi di Fortify."
Le code review di sicurezza oggi sono considerate un must a prescindere dal tipo di software e dalla sua ampiezza in LOC. Fortify non è faziosa, al massimo fa del (buon) marketing per il loro prodotto (che vende a caro prezzo e che il Sig. Bottoni evidentemente non ha nemmeno idea di cosa sia e di cosa faccia)
"Come abbiamo detto, solo una esigua percentuale degli errori di programmazione si traduce veramente in vulnerabilità. Rovistare in mezzo a centinaia di migliaia di righe di codice in cerca di queste vulnerabilità è un'impresa che costerebbe milioni di euro. Se le righe di codice sono milioni, è semplicemente impossibile fare un'analisi di questo tipo. In ogni caso, non ne varrebbe la pena: servirebbe solo a garantire una sicurezza che è possibile garantire con altri mezzi (firewall, sistemi di rilevamento delle intrusioni e antivirus)."
"Rovistare".....sono sempre più convinto che chi ha scritto questo articolo non solo non sappia cos'è la Software Security ma nemmeno conosca minimamente cosa e come agisce un software di code review di sicurezza.
I Firewall, gli IDS garantiscono oramai solo un livello minimo di sicurezza (chi guarda i log? chi li correla? quanto sono affidabili gli engine di correlazione). Solo gli antivirus hanno un livello sufficiente di sicurezza, ma contro le intrusioni di hacker le Web Application e il protocollo HTTP oramai sono una connessione tra l'esterno e l'interno del perimetro di sicurezza che sposta l'attenzione al livello application. Ripeto: OWASP!
Adesso sono sicuro che qualcuno mi additerà come pro-Microsoft e contro il mondo Open Source. Chi mi conosce sa che non è così. Ma posizione ideologiche che alla fine servono solo per ricavarsi una nicchia di mercato in cui sguazzare non mi piacciono.
--------------- UPDATE il 02/08/2008 ------------------------
Mi sembrano interessanti questi post:
Feliciano Intini: Microsoft, Open Source e Sicurezza: parliamone in modo costruttivo
Gary McGraw: The Never Ending Open Source Security Debate Drags On
Roger Thornton (Fortify): The Empty Debate over Open Source Security
Commenti
Posta un commento