I programmi open source sono più sicuri

4 settembre, 2008

Quando si parla di sicurezza, alla fine esce sempre questa balla :i programmi Open Source sono più sicuri di quelli closed perchè chiunque ne può vedere il codice.

Ma questo vale solo per gli algoritmi di criptazione ! I normali programmi sono scritti male (quelli open e quelli closed), pieni di bug, spesso da gente inaffidabile o inesperta, programmatori che non hanno certo volgia di controllare il codice se non da prolemi.

C’è una certa caccia al baco grosso per poter dire l‘ho scoperto io, ma nessuno fa di questa caccia un mestiere.

Nella realtà i programmi open source sono molto più facilmente craccabili di quelli closed.

Però, tutte le volte che si parla di questi argomenti esce fuori qualcuno che comincia a dire che Windows ha i virus e Linux no e quindi l’open è sicuro. Ma il fatto che windows sia progettato male non dimostra niente, windows non è il campione del closed, come linux non è il campione dell’open.

Allora proviamo ad immaginare di craccare un sito di prenotazioni alberghiere che gira su RedHat, e usando solo la Sql injection

In pratica si tratta di scrivere codice SQL nel campo login e password, è una tecnica semplice, conosciuta e poco efficace, per questo penso di poterne scriverne liberamente.

1° Scenario, il software del sito è closed source :

La prima cosa che faccio è identificare il prodotto e cercare in rete : troverò il sito del costruttore, scoprirò il linguaggio, il database e probabilmente l’elenco delle patch. Non troverò però molte informazioni sulle vulnerabilità aperte perchè la società farà di tutto (comprese azioni legali) per evitarne la diffusione.

C’è la lista dei clienti, ma non quella delle loro richieste di assistenza, non c’è la lista dei bug aperti, c’è una demo ma è una versione light diversa da quella di produzione.

Non ci sono molti altri appigli, farmi assumere sarebbe complesso, e la società fornitrice risulta essere un muro impermeaile.

Quindi, non avendo altre informazioni su quale istruzione SQL è efficace: dovrò tornare sul sito e provarle tutte, in tutte le pagine, sperando che fuzioni. Così facendo però farò scattare tutti i meccanismi di difesa presenti nel sistema ed il webmaster verrà avvertito dei miei tentativi. Ma non ho scelta, non posso fare altro.

 

2° Scenario, un sito open source :

Anche in questo caso identifico qual’è il prodotto ma andrò sul sito di  una community, qui troverò : i sorgenti, il forum dell’assistenza, la lista dei bug aperti ed un link per contribuire al progetto.

Con i sorgenti potrò cercare un errore, un caso non previsto, magari nelle ultime funzionalità aggiunte. Il prodotto sarà un libro aperto per me, conoscerò trappole e sistemi di allarme, architettua e parti accessorie, password di default, nomi delle tabelle e dei campi.  In questi progetti il codice è scritto a molte mani, da programmatori volontarii. Certo non ci sarà un errore nella login, ma in qualche plugin o in qualche pagina meno usata scritta con i piedi ho buone probabilità di trovarne.

Con il forum dell’assistenza potrei avere fortuna e trovare le domande che ha fatto proprio il webmaster del sito da craccare, potrebbero contenere informazioni utili.

Scorrendo la lista dei bug aperti, che solitamente in questi progetti è pubblica, posso cercarne uno non corretto che mi aiuti. 

Nell’incredibile caso che non abbia trovato neppure una falla nel codice scritto, mi rimane sempre un’ultima ratio : contribuire al progetto.

I progetti open sono aperti, accoglienti, accettano contributi o quanto meno plugin. Spesso non c’è nessuno che controlla approfonditamente il codice o delle procedure rigorose di qualità o dei software che vigilano sul codice.

Posso contribuire ed inserire io stesso un campo non protetto, che magari correggerò subito dopo averlo sfruttato per entrare nel mio obbiettivo.

Con il progetto open andrò a colpo sicuro, userò una SQL injection funzionante, aggirando gli eventuali sistemi di sicurezza, che conosco perfettamente.

 

L’esempio è pensato come se esistesse solo la SQL injection, è rozzo e forse un po’ impeciso, ma efficace nel chiarire che il sorgente aperto è uno strumento in più di attacco, non una sicurezza. E che il modello community è per sua natura una porta aperta ai malintenzionati.

Il problema è che i sostenitori dell’open, specie quelli interessati, usano argomenti come le differenze tra windows e linux come dimostrazione delle loro tesi con persone non del settore, che non hanno elementi per  contestarle.

Ma cos’è più sicuro, l’open source linux o il closed source AIX di IBM usato in tutte le banche ? L’open source MySql o il closed source Oracle ?

Riferimenti 

How Closely is Open-Source Code Examined?

Security through obscurity

Mozilla Firefox serve codice infetto

Annunci

8 Responses to “I programmi open source sono più sicuri”

  1. Abbio Says:

    Bene vediamo come smontare l’ennesimo castello di carta che ti sei costruito, considerando che non sono un crackatore di db (cracker mi faceva venire fame).

    Dunque per quanto riguarda le modalità closed source non ho molto da dire, se non che i db closed più usati non sono 10000, ma al 95% dei casi ti troverai davanti a Oracle o Sql Server e quindi basterà provare con le sintassi SQL dei due DBMS citati.

    Per quanto riguarda i db open, beh considera che non verranno utilizzati DBMS pseudo sconosciuti sviluppati da una coppia di amici che vuole creare da 0 un db per catalogare le proprie carte Magic, ma anche qui si utilizzeranno le soluzioni più complete e diffuse e in ambito open ciò corrisponde a MySQL e PostgreSQL.

    Ora se tu vai sulle rispettive community e mi trovi nella lista dei bug aperti, dei bug che siano vulnerabilità talmente gravi da permettere una SQL Injection o una qualche forma di attacco comune, beh ti faccio i miei vivi complimenti.
    Infatti dietro questi 2 DBMS ci sono decine e decine di persone che ci lavorano tutto il giorno e quando viene trovata una vulnerabilità grave può accadere:
    -la trova il team di sviluppo: viene inserita l’informazione di tale vulnerabilità solo una volta che questa è stata chiusa;
    -la trova qualcun altro: viene risolta in pochi minuti dai programmatori.

    In entrambi i casi sta comunque al gestore del DB aggiornare il sistema ogni qualvolta esce una patch di sicurezza, ma tale colpa non si può addurre al software open source.

    Ah e comunque è impossibile inserire del codice malevolo in software così critici e diffusi credimi, in quanto i controlli (che tu non ci crederai ma nel mondo open sono presenti in quanto fondamentali a differenza del mondo closed) sono inevitabili e spesso incrociati.

  2. closedclub Says:

    Ah ma io non mi sogno neppure di crakkare mySql o un altro DB.

    Io ipotizzavo di rompere il Joomla con l’Hotel Booking di turno.

    O un altro qualunque prodotto di prenotazione alberghiera. La Sql injection è una tecnica per bucare lo stato superiore non il DB.

    Avrei potuto portare come esempio i mille portali basati su cms sviluppati in php.

  3. sync Says:

    Certo, il tuo ragionamento non farebbe una piega. Se il tempo di rilascio di patch e fix fosse lo stesso, il modello open sarebbe in grande svantaggio rispetto a quello closed. Peccato che la peculiarità del modello open è un tempestivo rilascio di bug e fix che un software closed si sogna. E questo piccolo particolare falsa il ragionamento.

  4. Di_ME Says:

    Guada che scovare BUG da sfruttare e’ altrattanto difficile sia per chi li cerca per coreggerli che per chi li cerca per sfruttarli, considerando che tu sei solo mentre la comunita’ che lavora per buona causa e’ formata da tantissime persone, quindi la possibilita’ che tu possa trovare un bug sfruttabile prima di qualcun’altro che lo corregge subito dopo e’ molto remota. I BUG critici vengono corretti solitamente subito, quindi nelle bug list troverai solo cacchiatine funzionali o estetiche, o errori ma non falle critiche lasciate aperte per mesi… Quando ne hanno trovate in joomla nel giro di 1/2 giorni al massimo e’ stata rilasciata la fix-release, e ti faccio notare che il pannello amministrativo di joomla segnala sempre all’admin che e’ uscita una nuova release. Se poi gliu admin dei vari siti non aggiornano sono fatti loro, in ogni caso ti ho dimostrato che il tuo discorso non ha senso.

  5. Ziribaldo Says:

    Proprio come nei sistemi closed sicurissimi come windows, dove diverse falle criticissime delle librerie dcom95 sono state sfruttate per anni dai virus writer senza che Microsoft se ne interessasse minimamente… e si fa notare che dcom95 e’ nata con IE su windows95 ma e’ stata mantenuta e strascicata avanti con tanto di BUG fino a windows 2000 o forse fino alle prime release di XP prima che si decidessero di aggiornarla, probabilmente 5/6 anni di BUG non corretti avevano fruttato abbastanza alle case antivirus perche’ Microsoft decidesse che il costo pagato da esse per non far correggere il BUG era ammortizzato, ora si va avanti con altri BUG.

    W la sicurezza dei software closed.

  6. Red Says:

    Ciao, intervengo.
    Forse appena fuori argomento, ma parliamo di sviluppo e non di cracking. Sviluppare con prodoti closed è da morire. Se c’è un bug (vedi software MS per esempio) prima di trovare l’errore, se ci riesci, passano i secoli. Prova con prodotti opensource: debug, ricompilazione e tutto è a posto.
    Salutami i closed source. Il problema è, come hai detto all’inizio, che il software dovrebbe essere scritto bene, ma preferisco avere tutto sotto mano per gestirne eventuali errori.
    Chiudi chiudi il tuo bel softwarino ;-))

  7. W32-TrojanHorse.Ti.Spak.IL.PC.ogni.Di Says:

    Az, che peccato, l’altro giorno il sito era inacessibile, dava errore, speravo tanto che questo vomito dun sito all’insegna dell’ignoranza galoppante, amministrato da un nazifascistalobbista fosse stato chiuso finalmente

  8. virgola Says:

    Che articolo esilarante.
    Chissà come mai non l’aveva pensata ancora nessuno questa strategia fulminante.


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: