La giornata di oggi e l’annuncio del fixing della casa di Redmond di cinque falle di sicurezza, alcune delle quali già conosciute da Febbraio di quest’anno ha acceso nella mailing list di AIP un acceso dibattito sulla intrinseca insicurezza dei sistemi ClosedSource.

In questo scenario ho pensato di riassumere in due parole la mia posizione in materia, che tendo a sottolineare ogni qual volta il problema si pone.
Onde evitare di essere accusato di oscurità e di tecnicismi ho pensato di scrivere un piccolo Post che mostri la situazione in una ottica agevole da leggere e comprendere, così da poter dare l’opportunità anche a persone non addentro alle problematiche di sicurezza di comprendere il mio punto di vista…
Scusate la banalità di alcuni passaggi, servono più che altro a me per costruire il sillogismo ;)

Credo che il punto di base da sottolineare è il seguente: se possiedi software OpenSource possiedi (da definizione) i codici sorgenti.

Se qualche problema di sicurezza viene riscontrato nell’applicazione o nel sistema operativo che possiedi hai puoi seguire tre vie per ovviare all’inconveniente:

  1. Aspettare che il maintainer del pacchetto elabori e ti fornisca un FIX.
  2. Fixare tu stesso in modo eccellente il problema ed inviare il tuo codice al mainteiner perchè sia incluso nella prossima versione e fruibile da tutti gli utenti con un semplice Update.
  3. Provvedere a creare tu stesso una “patch”, un fix provvisorio che risolva il problema temporaneamente in attesa della perfetta patch del maintainer.

In ciascuno dei casi la risposta ad alcune problematiche è praticamente immediata poichè se è vero che forse non si è personalmente in grado di seguire la strada 2), moltissimi altri delle migliaia di utilizzatori dello stesso pacchetto saranno in grado di farlo, di fatto “tamponando” alle problematiche in modo corale e pressochè immediato.

Inoltre c’è una buona probabilità, se si è abbastanza in gamba, che si possa autonomamente affrontare per lo meno lo scenario 3 e provvedere alla sicurezza del nostro ambiente almeno temporaneamente.

In un contesto di sistema operativo proprietario e “monolitico” (come di fatto è Windows), al contrario, si è sempre e comunuque obbligati ad attendere che l’”autority” in questione prenda atto del problema, studi una soluzione, la faccia realizzare e la diffonda.
In nessun modo è possibile per l’utente fixare autonomamente il problema oppure rivolgersi alla community (peraltro altrettanto estesa che quella Open) di sviluppatori: nessuno infatti può fare nulla non avendo la fisica possibilità di mettere le mani sul codice e correggere il problema.

Scusatemi l’esempio stupido, ma supponiamo che l’oggetto delle nostre speculazioni non siano software ma automobili.
In questo caso, allora, lo scenario del software Closed equivarrebbe allo scenario in cui per qualunque guasto si è obbligati ad andare in casa madre. Non solamente questo: non saremmo autorizzati ad andare da un QUALUNQUE meccanico competente o certificato (ad es. un competente MCSD!), ma ci troveremmo a dover passare per forza dalla sede centrale della casa automobilistica.

Arrivati lì normalmente dopo aver percorso 2500 km, viste che esiste una sola sede centrale per il mondo, ovviamente troveremmo innumerevoli colli di bottigia e così per sostituire le pastiglie del freno (ed ovviare ad un problema di sicurezza) ci troveremmo di fronte altre 8.000 persone con problemi di altra natura ma giunti prima di noi. In questo modo attenderemmo, ovviamente e giustamente, circa 8 mesi per risolvere un inconveniente che altrimenti un meccanico preparato (anche volendo certificato) avrebbe risolto in 10 minuti.
Questo perchè il meccanico in questione, in un contesto OpenSource, AVREBBE AVUTO la possibilità non solamente di osservare e diagnosticare il problema, ma anche di fixarlo

Lasciatemi aggiungere, inoltre, una piccola postilla: il meccanico OpenSource avrebbe anche potuto occasionalmente notare che alcune viti del radiatore erano allentate e avvisare la casa che esisteva un potensiale problema su quel tipo di vettura. In questo modo con 1.000.000 di meccanici al mondo che regolarmente squadrano un motore da capo a piedi per vedere cosa non funziona, il meccanismo di rilevazione di “vulnerabilità” e di segnalazione delle medesime (oltre che di patch) sarebbe sicuramente ordini di magnitudo più efficiente e razionale.
Cosa succede agli utenti di autovetture ClosedSource, invece? Beh, le anomalie non vengono segnalate e probabilmente vengono fixate al primo service-tagliando-pack. E finchè qualcuno non si fa del male per una anomalia molto spesso la stessa non viene nemmeno divulgata se non a posteriori.

Quando si parla di intrinseca insicurezza dei sistemi closed, e quindi anche del sistema operativo di casa Redmond, se non si è degli “oltranzisti” (cosa che peraltro non sono) ci si rivolge proprio a problematiche di questo tipo.
Un fix di qualunque tipo impiega di norma pochi giorni per applicazioni Open e pochi mesi per applicazione Closed. E spesso questo non è dato dalla intrinseca incapacità del vendor, ma per contingenti necessità organizzative e di priorità.

Ecco perchè, nell’ambiente, si parla di maggior “sicurezza” dei sistemi OpenSource: principalmente per il tempo di risposta e per la POSSIBILITA’ di non essere in balia di un vendor ma di essere, invece, in potenza autonomi di congeniare una soluzione anche solamente “tampone” (è chiaro che il vendor studierà una soluzione migliore!) a qualunque tipo di falla e di problematica.

Si parla di poterci sostituire l’acqua del lavavetri, le lampadine dei fanali e le pastiglie dei freni.
O anche, più semplicemente, di poterlo fare fare a 1.000.000 di persone invece che ad una unica entità di vendor…


Post Simili
Tags:

13 commenti presenti.

  1. Bello il paragone…
    L’Opensource sta crescendo, avanti così!!

  2. Berry
    12 Jul 06
    7:00 pm

    Riguardo al punto 3, una patch ma anche un workaround architetturale ti permetta di proteggere in ogni caso l’environment ritenuto vulnerabile.
    Spesso, prima di eseguire il patching su apparati in produzione, e’ buona cosa, soprattutto in architetture complesse, eseguire prima l’update in ambiente di test.
    Cio’ e’ giusto ma spesso richiede piu’ tempo del dovuto e quindi si giustifica il workaround temporaneo.

  3. Complimenti… bell’articolo davvero. Te lo link sul mio bloggino! :)

  4. [...] A very good article written about the security of Open Source vs. Closed Source Software. It’s in italian… I’ll ask for an english version, or the permission to translate it myself and publish! [...]

  5. Tyler
    12 Jul 06
    10:58 pm

    Ottimo articolo, spero che anche i più scettici se ne convincano.

  6. massimo
    12 Jul 06
    11:45 pm

    ottimo articolo. ben scritto. condivido in pieno.

    se posso, avrei un appuntino sui punti 2 e 3.
    Spesso diciamo che avere il codice ci permette di sistemarci da soli un eventuale problema. Credo sarebbe meglio far passare il messaggio (che in seguito dici) che puoi far sistemare il problema a un esperto - pagando s’intende :D -
    L’utente “normale” non vuole imparare a patchare il sw. le alternative “accettabili” sono pagare il sw e attendere le patch dal cielo e/o prendere copie pirata e accettarne i rischi.
    Dovremmo cercare di esplicitare l’alternativa:
    c’è una comunità paragonabile se nonnn superiore a MS.
    ne puoi far parte
    puoi prendere sw nuovo e corretto tutte le volte che vuoi. in cambio, se vuoi:
    puoi aiutare direttamente
    puoi aiutare pagando qualcuno che sistemi il sw
    puoi pagare qualcuno che lo migliori
    parlando con profani, vedo che questo modo rende più accettabile l’open

  7. evrix
    13 Jul 06
    8:28 am

    in realta’ secondo me la metafora dell’automobile e’ ancora peggiore, in quanto il fixing non e’ su richiesta: e’ come se la casa madre stabilisse una data a priori per il cambio delle pasticche (o qualsiasi altra cosa), p. es. tre anni dall’acquisto, e si dovesse aspettare per forza quella data

  8. Luigi C.
    13 Jul 06
    9:04 am

    Le persone continueranno a comprare Closed Source e ad scontente per i seguenti motivi:
    1. chi ti fa assistenza nell’open? (Ma chi ti fa assistenza nel Closed se il “costruttore” chiude?)
    2. Paura dell’ignoto. Molte persone (in questo caso chi è nella “sala bottoni”) hanno paura ad affrontare situazioni perchè causano loro stress, quindi come dire certe abitudini sono dure a morire.

  9. Marco
    13 Jul 06
    12:05 pm

    Bell’articolo e bellissima metafora, solo un piccolo appunto: se con l’auto ti schianti perché quello che te l’ha venduta ha messo dei freni che non funzionano, in teoria il venditore dovrà risarcirti i danni.
    Questo è naturale dato che con l’auto ti vendono anche la garanzia che funzioni come tale.
    Purtroppo nel simpatico sistema di casa Redmond non è così, dato che il software non viene venduto con la garanzia di funzionamento (come d’altro canto non è garantito su nessun sistema).
    Forse è fuori luogo l’appunto, perché si sta discutendo della capacità di un sistema (o di un software in generale) di “guarire” dalle sue malattie grazie al codice aperto, ma mi pare che sia effettivamente una differenza sostanziale tra i due oggetti della metafora.

  10. [...] Per leggere l’articolo completo Clicca QUI [...]

  11. Arpeda
    13 Jul 06
    6:19 pm

    mi trovi perfettamente d’accordo. Il problema è che però la situazione è come la descrive Luigi C. le persone hanno paura di cambiare!

  12. thesp0nge
    25 Aug 06
    3:36 pm

    Mmmm… circa la questione del supporto nel caso di Closed source voglio riportare la mia.

    Lavorando, ci si scontra giocoforza col software proprietario rilasciato dai grossi vendor. Software che, giocoforza, non fa quello che deve fare.

    Spesso i siti di supporto del vendor, pagati profumatamente da chi acquista le licenze, non sanno andare oltre che laconiche domande del tipo “è l’ultima versione?”, “ha installato la patch?”. Quindi spero che presto ci si renda conto, soprattutto i clienti, che il supporto nel caso del software proprietario è un mito che non giustifica la scelta rispetto a software open source :)

  13. Alb
    29 Dec 07
    11:32 am

    Lavoro per una società di consulenza. Abbiamo fornito una applicazione di un grosso sw vendor, compatibile con Mozilla.

    Al rilascio al test ci siamo resi conto che il tutto era inaccettabilmente lento su Mozilla mentre andava bene su explorer. Il fornitore contattato ci ha spiegato che alcune parti dell’implementazione del javascript usate dal prodotto su Mozilla sono largamente inefficienti.

    La “community di Mozilla” ha detto che non riteneva questa priorità nè nella versione di Mozilla nè per firefox e per il sw vendor e/o noi e/o il cliente il costo di reimplementarle e poi distribuire una versione custom di Mozilla su tutte le postazioni è proibitivo.

    In situazioni simili Microsoft si sarebbe comportate in maniera simile, ma non vedo in questo caso il vanteggio dell’Open Source

Esperto di Sicurezza sembra pretenzioso... Uffa! Diciamo allora piccolo blog di intrattenimento di Matteo G.P. Flora (aka LK) sperduto passeggero della rete, poeta, (poco) santo, e navigatore... E se proprio siete curiosi...

Lastknight.com is Digg proof thanks to caching by WP Super Cache!