In questo post riporterò molti fatti, di conseguenza non sono da commentare più di tanto. Non voglio dire di conseguenza quali saranno i programmi più sicuri, perchè non esiste una regola generale. Questo elenco tiene conto soltanto del fatto che il codice sorgente è disponibile di alcune immediate conseguenze, molti altri fattori non sono tenuti in considerazione, vedremo che infatti non basta essere un programma libero per essereautoamticamente più sicuro.
Programma aperto, vantaggi:
- tutti possono vedere il codice sorgente, tutti possono contribuire a renderlo più sicuro
- bug vengono corretti più veloccemente, patch rilasciate con altrettanta velocità
- comunità scientifiche sono partecipi all’evoluzione di programmi aperti, alla sua creazione partecipano quindi esperti nel settore e vi si possano trovare moolte idee innovative
- nuovi programmatori/studenti imparano dai sorgenti di programmi aperti, portando sempre idee nuove e fresche alla creazione dei programmi
- l’esclusione di backdoors diminuisce i problemi legati alla sicurezza
- l’esclusione di servizi e impostazioni nascoste diminuiscono il rischio di ottenere configurazione poco adatte
- molti programmatori sono professionisti, spesso anche pagati.
- è possibile “convertire” gli attaccanti, sia Mozilla, sia Google,se non ricordo male anche Canonical, hanno messo in palio dei premi in soldi per chi trova dei bug di sicurezza nei propri programmi, per poterli correggere e trovare più velocemente
- ci si può sentire parte di una comunità, se non si è in grado divedere il codice sorgente, è comunque possibile dare una mano, semplicemente proponendo idee iscrivendosi ai forum dedicati, oppure aiutando a risolvere dei bug scoprendo degli effetti indesiderati di un programma. (insomma, facendo da tester)
- avendo la possiblità di vedere l’intero codice (e non solo alcune parti) è più facile capire in quali parti si possono celare delle falle di sicurezza capendo come funziona l’intero programma e come poterli risolvere nel migliore dei modi.
- Una riscrittura completa del codice è più semplice per eliminare problemi legati alla struttura del programma.
Programma aperto, svantaggi
- È vero che se il numero di programmatori è alto è allora più probabile che i bug vengano trovati più velocemente, ma non è vero che la probabilità che i bug vengano scoperto si cresca in modo linera.
Se p (numero compreso tra 0 e 1) è la probabilità che un programmatore scopra un bug, allora la probabilità che un programmatore non scopra un bug è di 1-p, e che d programmatori non scoprano un bug è di (1-p)^p. Se vogliamo quindi sapere le probabilità che ci sono che un programmatore scopra un bug, allora esse sono 1-(1-p)^d. Di conseguenza all’inizio se cresce il numero di programmatori allora molto velocemente vengono corretti e trovati molti bug, cosa che poi si assesta da un certo numero di programmatori in poi. La differenza tra 10 e 20 programmatori è molta, ma tra 500 e 600 probabilmente non più di tanta. (guardate il grafico per capire di cosa parlo….esso rappresenta la probabilità di trovare un bug al crescere del numero di programmatori)
- Abbiamo detto che tutti possono aiutare, ma è anche vero che molti utenti non guardano il codice sorgente, anche perchè non hanno le competenze adatte, di conseguenza potrebbero non esserci in fondo così tanti aiutanti volenterosi a correggere i bug
Programma chiuso, vantaggi
- un bug esiste soltanto quando viene scoperto da cracker, prima no
- il codice sorgente non è disponibile per gli attaccanti
- gli attaccanti non possono avvalersi dei bug report per tentare di aggirare le protezioni del programma
- i programmatori sono normalmente professionisti pagati
Programma chiuso, svantaggi
- si può aiutare soltanto in modo limitato (attraverso i bug report, ma come potete ad esempio suggerire soluzioni?)
- potrebbero esserci impostazioni non accessibili all’utente finale che limitano la sicurezza
- anche i programmatori interni potrebbero non conoscere l’intero codice, avranno quindi accesso soltanto ad un area limitata del codice.
- ci si deve fidare ciecamente di chi produce il programma
Tutti gli svantaggi e vantaggi che ho elencati andrebbero pesati con misure diverse in ogni caso, inoltre nessun programma è uguale ad un altro (anche due browser sono “diversi”, nel senso che fanno lo stesso lavoro, ma non per forza nello stesso modo), l’elenco serve solo ad avere una vaga idea di cosa tenere conto quando si vuole tentare di capire cosa succede quando i programmatori e gli attaccanti lavorano per trovare falle di sicurezza.
Il più grande svantaggio dei programmi liberi è quello che i cracker hanno a disposizione tutti gli strumenti di chi scrive il programma, mentre dai programmi proprietari hanno meno strumenti a disposizione. D’altra parte se scegliamo di usare un programma chiuso dobbiamo fidarci di chi scrive il programma, cosa che è sempre meglio evitare di fare, sopratutto in ambito informatico.
(A mio parere se devo scegliere tra un programma libero e un programma chiuso in base a questi svantaggi/vantaggi sceglierei un programma libero, ma posso (credo) capire che non tutti possano essere della stessa opinione.)
Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica




Il Bloggatore
LinuxFeed
Pupugnao
Smilla Magazine
Tuxfeed