venerdì 11 aprile 2014

Il cuore che sanguina.

Ho visto scrivere tante stronzate sul baco di OpenSSL, e onestamente le sole cose che si sarebbero dovute dire non si sono dette da nessuna parte. Innanzitutto: non perdete tempo a riscrivere la password, semmai eseguite un logout. Oddio, potete fare entrambe le cose, ma eseguire un logout e distruggere OGNI cookie di autenticazione e' piu' importante.

La ragione e' semplice: le password non sono quasi mai salvate in chiaro, e anche se venissero copiate in memoria non lo sarebbero in maniera decrittata. I siti di cui parlate eseguono una antenticazione usando digest e hash delle chiavi, hash che sono generati al momento , per sessione.

Peraltro, nei grandi social network, le machine che eseguono l'autenticazione sono diverse da quelle che vi porgono i contenuti.

Il vero pericolo di qualcosa che passa la vita a spazzolare la memoria (e sa solo dio quanta ne devono spazzolare , 64K alla volta, per un google o un facebook) sono quelli che si chiamano cookie di sessione. Quando voi tornate su facebook e il social network vi riconosce, oppure quando nel caso di autenticazione in due fasi "riconosce il browser",succede lo stesso.

Queste cose sono effettivamente salvate nella ram del frontend, ed un exploit del genere ovviamente vi espone. Qualcuno potrebbe copiare quel cookie ed usarlo per riprodurre la sessione.

La possibilita' che le chiavi siano rubate e' piccola: occorre spazzolarsi tutta la memoria, e sapere cosa , in quell'insalata, sia una chiave, che normalmente viene usata nel suo formato binario e non in armored. Distinguere una chiave crittografica da un insieme di dati casuali non e' banale. 

Quindi, e' MOLTO piu' urgente cancellare ogni traccia di sessione, ripulendo ogni cookie , facendo un logout e ripetendo daccapo l'autenticazione, piuttosto che "cambiare una password", che onestamente non sembra il pericolo maggiore, sia nel caso di autenticazione digest/kerberos/NTLM, che per via del fatto che esse non sono salvate mai in chiaro.

Sebbene sia teoricamente possibile ottenere chiavi e password (anche se dovrebbero essere scritti molto, molto , molto male come sistemi) , la cosa resa FACILE  da questo attacco e' l'attacco ALLA SESSIONE, ovvero ottenere un cookie di sessione. La ragione e' che possiamo spazzolare la memoria alla ricerca di "Cookie: " , "SESSIONID" ed  altre stringhe note tipiche del protocollo HTTP. Al contrario, password e username saranno criptati nella gran parte dei casi, e le chiavi saranno dei blocchetti binari che e' molto difficile distinguere da qualsiasi collezione casuale di bit.

La cosa molto piu' preoccupante e' invece "come si e' arrivati a questo punto", e vorrei dire a riguardo una cosa molto semplice: l' Open Source sta morendo.

Se per Open Source intendete grandi prodotti (Linux, Apache, SSL, SSH, Gnome, GTK, X11, Mozilla&Co, ed altro) , la diagnosi e' impietosa, e onestamente, la storia di OpenSSL e' solo un sintomo. 

Prima capiamo cosa si intende per "morte": non intendo che questa roba vada a sparire, ma che semlicemente diventi uno dei tanti prodotti corporate, perdendo cioe' lo spirito e semplicemente diventando una cosa che non ha nulla a che fare con la romantica idea, di "comunita' che lavora per spirito di collaborazione e mutuo altruismo".

quando dico "Morte di Linux" intendo dire che presto sara' Linux ad essere un flavour di Android, e non viceversa, insomma. Intendo che sara' Apache a diventare un effetto collaterale di DataPower e non viceversa.

Ci sono diverse cose che stanno concorrendo alla morte ideale di questi sistemi, ma specialmente ci sono atteggiamenti.

Il primo e' che dal mondo opensource tutti prendono a man bassa, ma pochissimi contribuiscono. Delle "migliaia" di contributors, ormai la maggior parte sono team aziendali che hanno interessi specifici, e pochissimi possono ancora essere detti "volontari".

La verita' e' che di gente che lotta per il software libero proponendolo nelle scuole, ordinando ai governi di adottarlo, facendo petizioni, il mondo e' pieno. Di gente che ha scritto cinque righe di codice , sempre meno, e sempre peggio.

Facebook fa 24 miliardi di dollari, e tutti i suoi server usano Openssl. I DUE programmatori che lo sviluppano attivamente  non riescono a fare fund raising abbastanza da farne un lavoro a tempo pieno. Gli altri del team sono li' occasionalmente.  Questo squilibrio non vi dice niente?

A me dice molte cose. Innanzitutto sui linguaggi di programmazione. Per scrivere un kernel occorre conoscere un linguaggio compilato che abbia una potente capacita' di accesso indifferenziato alla memoria. Se ne sono scritti anche in Ada, certo, ma il punto e' che se conoscete solo Java, Javascript, HTML, XML e Jquery,  ad un kernel non potrete lavorare. Tuttavia, oggi questi sono i linguaggi che si studiano, e il C, anche quando si studia, si studia come un noioso passaggio prima di fare cose "vere".

A questo ritmo di mancanza di programmatori in linguaggi che interagiscano con l' hardware a "basso livello", poiche' questi programmatori lavorano in settori sempre piu' di nicchia, prima o poi Torvalds Linus dovra' rassegnarsi: o il suo kernel lo fa scrivere in PHP (LOOOOL!), o diventera' un prodotto aziendale.

Lo stesso dicasi per il C++: le tragiche condizioni di Gnome, il rantolare continuo di Kde, le incertezze attorno a Qt, sono dovute ad un semplice mutamento di mercato, per il quale C++ e' un linguaggio specialistico, ridotto a pochi, e se volete prodotti "grandi", cioe' roba che possa diventare mainstream, dovete sperare che Oracle vi dia Java SDK , che Redhat continui a sponsorizzare open source, che IBM continui a contribuire , che HP continui a contribuire... in pratica, il mondo opensource e' tenuto in piedi da multinazionali, le uniche ad avere ancora budget per i programmatori che lavorano nei linguaggi giusti.

Ma che prodotti finanziano le multinazionali in questione? Quelli che fanno comodo a loro. Quando SGI doveva fare gli Altix con Linux, ha lavorato un sacco nel portare XFS al kernel. IBM per fare lo stesso ha lavorato molto su JFS. Oracle ha aggiunto BtrFs e ha consentito ZFS.  Togliete questi supporti, e rimanete con filesystems degli anni '90. 

La verita' e' che oggi, senza il contributo delle multinazionali, se dovessimo purgare una distribuzione qualsiasi dal contributo di qualche multinazionale,  di Linux rimarrebbe poco piu' di un Minix del 95.

Dove sono i volontari? Dove sono gli sviluppatori? Oh, ce ne sono tantissimi. Potete cercare queste keywords, e ne trovate moltissimi:

  • Lightweight: e' un altro nome di "incompleto", e significa "non sono capace di lavorare in un team grande, preferisco un prodotto mutilato, incompleto e bacato  con una release ogni 3 anni".  In un mondo ove un laptop ha 8GB di ram, sentiamo tutti il bisogno di un software che risparmia 128K perche' ha cinque icone in meno. Cosi' thunderbird non puo' leggere posta usando EWS, ma avete 300 client di posta elettronica Lightweight, che leggono solo POP3. Bacati. Alpha.
  • Web-Based: e' un altro nome di "non so programmare con un vero compilatore, e conosco solo quello che va di moda, il web". Cosi' anziche' avere un client di posta elettronica fate partire una JvM, che fa partire un Web Container, che fa partire una Servlet, che poi, facendo partire un Web Browser, userete per leggere la posta. Wow.
  • Python: e' un modo di dire "so scrivere software che gira sul mio PC. Se non gira sul tuo, il motivo e' vattelappesca". VAttelappesca e' bello. Vattelappesca e' indentato. Vattelappesca scrive i messaggi di errore in cinese mandarino autistico. Vattelappesca ha un albero di dipendenze che sembra un mandala.
  • Bindings: e' un modo di dire: il lavoro lo ha fatto qualcun altro. Spero. Certo, ogni linguaggio di programmazione per linux ha i "bindings" per GtK e Gnome. E Qt. Aha. E chi fa invece GTK e Gnome? Ehm..."qualcun altro". Sempre qualcun altro. Qualcun altro cui spesso bisogna anche far passare la voglia di fare, con un adeguato mobbing, polemiche gratuite, discussioni da cineforum del dopolavoro PCI,e via dicendo.

tutte queste tendenze vi fanno capire una cosa: che siccome "qualcun altro" e' alla base di tutto, e per fare l'albero ci vuole il seme, quando il seme fallisce, l'albero muore.

Ed e' quello che e' successo con OpenSSL: due persone, che non riescono a cavarci neanche i soldi per vivere, scrivevano il semino, su cui stavano dei bei quercioni grossi tipo Google, Facebook, Twitter.... i quali sono tanto ma tanto BBBBBUONI, e finanziano la foca monaca cingalese per impedirne l'estinzione. Ma se domani quei due di OpenSSL si rompono i coglioni, e dicono "Ehi, vado al mare! Sole! Fica! Sabbia! " , diventa un "problemuccio".

E qui andiamo al funding, perche' esso, col nome di crowdfunding, rappresenta l'invasione del piu' mostruoso Pile of Idiots della storia, detto anche "uomo comune", nel mondo delle decisioni dell' It.

Gia'.

Oh, su Indiegogo ci stanno i prodotti del futuro. Se fate un social network , che so io, PalShave, dove postate le fotografie dei vostri augusti coglioni rasati, con una App mobile e ovviamente tanto Apple, e tanto Social e tanto Big Data, verrete finanziati immediatamente. Centomila? Un miloione! Ma per le palle rasate , questo ed altro! Il cielo e' il solo limite di un bel paio di coglioni rasati!

Ed ecco qui il lettore-tipo  di giornali post-Wired che finanziera' senza indugio il vostro social network PalShave!


PalShave e' sicuramente la rivoluzione del social che punta alla webdemocracy attraverso
 il mobile!

E non vogliamo parlare di DildoCam, la telecamera cui non basta essere lanciata in alto e scattare fotografie a 360 gradi , cosa utile ma non indispensabile , bensi' scattera' uan foto della vostra cervice mentre... proprio in quel momento li'! Non ci credete? Lo dice iun tipo come questo, che prontamente finanzia questo fondamentale progetto:

Thanks to DildoCam, nobody needs a Vag to be a Pus!

un tipo di persona che occupa sicuramente il posto adeguato nella catena alimentare, dentro l'ecosistema del Pile of Idiots. Ci sono quegli animaletti che mangiano il caffe' e poi lo cagano, sapete? E c'e' gente che si sente furba perche' beve un infuso di merda di topo sudamericano e la paga un sacco.  Ecco, quel tipo li'  fa la stessa cosa, ma con l'insalata e le mucche. Un genio, insomma.

E vi diro' di piu': se questi prodotti vanno online, i giornali preferiti  della Pile of Idiots vi faranno anche il bell'articolo di quella ragazza che si e' salvata dal tumore perche' DildoCam ha postato una foto della sua cervice, e un ginecologo che l'ha vista per caso l'ha avvisata. Ai miei tempi si usavano i 33CL di sperma e i coccodrilli albini nelle fogne e il benvenuto nel mondo dell' Aids scritto col rossetto sullo specchio. Ma vabe', anche la   Pile of Idiots ha diritto alle sue leggende metropolitane.

Ma nessuno vi raccontera' mai dello sviluppatore della libreria usata da seicento milioni di persone che per caso si accorge di un baco. No, quello non fa abbastanza post-Wired: non e' social, non e' smartcity, non e' big data, non e' quantum computing, non e' internet of things.

Adesso provate a far finanziare qualcosa che serve, che so io: 

  • Un layer di virtualizzazione del filesystem con I-Scsi, per lavorare su scala geografica.
  • Una nuova serie di librerie di crittografia.

quanto otterrete? Non abbastanza da viverci. Perche' non e' social. Non e' post-Wired. Non e' wireless, non e' mobile. Non e' smartcity, non e' quantum computing, non e' big data. 

MA specialmente, nessuno ha idea di che cazzo sia quella roba, tranne quando, se compare un baco, tutti scoprono che si trova OVUNQUE , in ogni applicazione, in ogni maledetto social network, in ogni big data, che tiene su le smart cities, che lo usano per fare ricerca nel quantum computing, che fa girare ogni fottuto tablet e cellulare.

Tutti i nuovi meccanismi di funding si dicono ispirati dagli ideali dell' Opensource, ma se andiamo ad osservare quanti pezzi FONDAMENTALI dell'opensource , di quelli che sono lontani dall'interfaccia utente ma non per questo meno fondamentali,  ricevono adeguati finanziamenti, beh, qualcosa e' andato storto.

quello che avete visto con Heartbleed e' solo un sintomo, un sintomo di una malattia per la quale esiste una pila di software, un albero, della cui ombra tutti godono, dei cui frutti molti vivono, i cui semi sono sconosciuti, bistrattati e mal finanziati.

E per fare l'albero, ci vuole il seme.

Altrimenti, rimanete senza il tavolo, e le formiche si arrampicano sui voistri short di gessato, per andare a mordervi le depilatissime palle. 

Di cui ci fareste vedere le foto su PalShave, se solo non vi avessero ciuffato l'account.


Per cui , la vera domanda che dovreste porvi e':

  • Su che cosa si basa l'ecosistema che sto usando? Cosa sta alla base della catena alimentare? Risposta: kernel, librerie, compilatori.
  • Cosa si basa su queste cose? Social, big data, smart cities, cloud, e lalala.
  • Quanti social, big data, smart cities. cloud, lala ho voglia di finanziare? Tanti, c'e' il crowdfounding.
  • Quanti kernel, librerie, compilatori ho finanziato o contribuito a sviluppare?

se la risposta all'ultima domanda e' "niente", avete capito il problema di HeartBleed, e avete capito di cosa e' sintomo. 

Incuria. L'incuria prepotente della Pile of Idiots , dei radicalbit molto chic modello copertina post-Wired, per cui se non e' abbastanza social e smartcity non si scrive una cazzo di riga sul giornale , e se lo sviluppatore del software non e' abbastanza ggiovane e non e' vestito come un idiota e/o un guru, allora non lo si intervista.

Nei prossimi anni, perderete prima OpenBSD, NetBSD e poi FreeBSD, e farete spallucce. Poi perderete qualsiasi client di posta elettronica, e farete spallucce: ci sono le interfacce Web. Poi perderete Gnome e Kde, e farete spallucce: c'e' sempre Android.  Poi perderete Xen, e farete spallucce: c'e' sempre VMWare. Poi perderete Linux - che Torvalds non e' immortale  e ha sempre meno volontari - e direte che tanto c'e' Android.

Finche' avrete solo prodotti proprietari, e farete spallucce: non ve li potete permettere. OOPS.

Niente piu' PalShave e DildoCam.....




Discussioni & Commenti (Il Salotto Buono di KEIN PFUSCH®).

Per postare nel gruppo, semplicemente cliccate sul tasto rosso a sinistra se l'argomento e' nuovo, oppure cliccate sugli argomenti per rispondere. In caso non siate iscritti il sistema vi guidera' all'accesso. In ogni caso il vostro indirizzo email non sara' pubblicato dal forum.

So che e' seccante, ma l'aumento del traffico sul sito mi obbliga ad usare un sistema piu' adatto alle mie disponibilita' di tempo, cioe' un sistema ove la quantita' di commenti da moderare NON cresca con la quantita' di traffico. Inoltre adesso gli argomenti non sono piu' legati al post, cosi' se volete iniziare un OT non c'e' problema come prima. Inizialmente i vostri messaggi verranno moderati, poi verrete sbloccati appena sara' chiaro che non siete troll. Una volta iscritti e' possibile postare sia attraverso il web (come prima) che via email (scegliendo di ricevere i messaggi via email). Quando vi iscrivete, per favore scrivete due righe di presentazione.Altrimenti non vi iscrivo.