Tuesday, January 25, 2011

Hacking

L'idea di hacking può riunire assieme preconcetti come vandalismo elettronico, spionaggio, capelli tinti e piercing. La maggior parte della gente associa l'hacking all'infrazione della legge, etichettando quindi tutti coloro che si dedicano all'hacking come criminali. Sicuramente in giro c'è gente che utilizza tecniche di hacking per infrangere la legge, ma tutto questo non c'entra nulla con l'hacking in sé.

L'essenza dell'hacking è quella di trovare usi delle leggi o delle proprietà di una data situazione che non erano previsti oppure venivano tenuti segreti, al fine di riapplicarli con modalità nuove e con inventiva per risolvere un problema. Il problema in questione può essere la mancanza di accesso ad un computer, oppure cercare di trovare il modo per utilizzare vecchi apparecchi telefonici per gestire un modello di controllo ferroviario. Di solito, le soluzioni hackerate risolvono questi problemi in modo unico ed inimmaginabile da coloro che sono confinati nella metodologia convenzionale.


Verso la fine degli anni '50, il dipartimento di modellazione ferroviario del MIT ricevette una donazione di componenti, la maggior parte dei quali era costituita da vecchi apparati telefonici. I membri del dipartimento utilizzarono questi apparati telefonici per tirare su un sistema complesso che permettesse a più di un operatore di controllare differenti parti delle rotaie, semplicemente componendo il numero esatto. Questo nuovo ed originale uso delle apparecchiature fu chiamato "hacking", e molti considerano questo gruppo di persone come i primi ed originali hacker. Dopo un po' si dedicarono alla programmazione con schede perforate e nastri magnetici sui primi computer come l'IBM 704 e il TX-0. Mentre molti si accontentavano semplicemente di scrivere programmi che risolvessero i problemi, i primi hacker erano ossessionati dallo scrivere programmi che risolvessero i problemi bene. Un programma che fosse in grado di raggiungere lo stesso risultato utilizzando meno schede perforate era considerato migliore, anche se faceva la stessa cosa. La differenza sostanziale stava nel come il programma raggiungesse il suo obiettivo: eleganza.

Essere in grado di ridurre il numero di schede perforate necessarie per un programma mostrava una maestria artistica, che veniva ammirata ed apprezzata da coloro che la capivano. Per fare un paragone: un blocco di legno potrebbe risolvere il problema di sostenere un vaso di fiori, ma un tavolo finemente lavorato realizzato utilizzando tecniche raffinate appare sicuramente più bello. I primi hacker stavano trasformando la scrittura di programmi da un compito puramente ingegneristico in una forma d'arte che, come molte altre arti, poteva essere apprezzata soltanto da coloro che la capivano.

Questo approccio alla programmazione creò una subcultura informale, separando coloro che apprezzavano la bellezza dell'hacking da quelli che la evitavano. Questa subcultura si concentrò profondamente sull'imparare sempre di più ed acquisire livelli di maestria più alti. Credevano che l'informazione dovesse essere libera, e tutto quello che si frapponeva sulla via verso questa libertà doveva essere aggirato. Ostruzioni di questo tipo erano le autorità, la burocrazia delle scuole e la discriminazione. In un mare di studenti orientati al diploma, questo gruppo non ufficiale di hacker tralasciava l'obiettivo convenzionale di prendere buoni voti, inseguendo la conoscenza stessa. Questo fatto portò all'apprendimento continuo e all'esplorazione, travalicando i confini comuni dettati dalla discriminazione, ciò che si rese evidente quando il gruppo accettò il dodicenne Peter Deutsch, dopo che dimostrò la sua conoscenza del TX-0 ed il suo desiderio di imparare. Età, razza, sesso, aspetto, diplomi universitari e stato sociale non erano più i criteri principali per giudicare il valore di qualcun altro. Questo non avveniva per un desiderio di equità, quanto piuttosto per il desiderio di un avanzamento nell'arte dell'hacking.

Gli hacker trovarono eleganza e splendore in scienze "convenzionalmente aride" come la matematica e l'elettronica. Consideravano la programmazione come una forma di espressione artistica, ed i computer erano lo strumento della loro arte. Il loro desiderio di dissezionare e capire era uno strumento per elevare la conoscenza. Questi valori orientati alla conoscenza furono poi chiamati Etica Hacker: l'apprezzamento della logica come una forma d'arte e la promozione dell'informazione libera, scavalcando i confini e le restrizioni convenzionali, per il semplice obiettivo di capire meglio il mondo. Non è una cosa nuova: i Pitagorici, nell'antica Grecia, avevano una subcultura ed un'etica molto simili, nonostante la mancanza dei computer. Trovavano la bellezza nella matematica e scoprirono molti concetti centrali della geometria. Questa sete per la conoscenza ed i suoi prodotti collaterali sarebbero continuati lungo la storia, dai Pitagorici ad Ada Lovelance, ad Alan Turing, fino agli hacker del dipartimento di modellazione ferroviaria del MIT. Il progresso della scienza computazionale continuò anche dopo, attraverso Richard Stallman e Steve Wozniak. Questi hacker ci hanno donato i moderni Sistemi Operativi, linguaggi di programmazione, personal computer e molti altri avanzamenti tecnologici che vengono utilizzati ogni giorno.

Perciò, come si distingue tra gli hacker buoni e quelli cattivi, tra quelli che ci portano le meraviglie dell'avanzamento tecnologico e quelli che rubano il numero della nostra carta di credito? Un giorno venne coniato il termine cracker per riferirsi agli "hacker cattivi" e distinguerli da quelli buoni. Si disse ai giornalisti che i cracker erano cattivi e gli hacker buoni: gli ultimi, infatti, seguivano l'Etica Hacker, mentre i primi erano interessati ad infrangere la legge. I cracker erano considerati avere molto meno talento rispetto all'élite degli Hacker, poiché si limitavano ad utilizzare qualche strumento o script scritto dagli Hacker senza capire come funzionassero. "Cracker" era l'etichetta appiccicata a tutti quelli che facevano cose con i computer senza avere scrupoli, creando copie pirata dei software, cambiando faccia ai siti Internet, e (peggio ancora) senza capire cosa stessero facendo. Ma pochissime persone usano oggi questa parola.

La mancanza di popolarità del termine può essere causata da una collisione nella definizione: il termine "cracker" venne inizialmente usato per descrivere tutti coloro che infrangevano copyright sui software ed utilizzavano tecniche di reverse engineering su schemi di protezione dalle copie. Oppure può essere dovuta alla sua nuova definizione, che riguarda sia persone che si dedicano ad attività illegali, sia a persone con scarse capacità tecniche. Sono pochi i giornalisti che si sentono spinti a scrivere di gruppi di persone con scarse capacità utilizzando un termine (cracker, appunto) con il quale la maggior parte della gente ha poca familiarità. La decisione, per un giornalista, se utilizzare il termine hacker o cracker è semplice. Allo stesso modo, il termine script kiddie, che però in italiano è assai poco comune, viene riferita qualche volta ai cracker, ma non ha lo stesso "fascino giornalistico" di hacker. Ci sono alcuni che continuano ad affermare che c'è una netta linea di divisione tra gli hacker ed i cracker, ma io credo che tutti quelli che hanno lo spirito di un hacker è un hacker, senza tener conto quali leggi potranno infrangere.

Questa distinzione poco chiara viene appannata ulteriormente dalle nuove leggi che limitano la crittografia e la ricerca crittografica. Nel 2001, il prof. Edward Felten ed il suo gruppo di ricerca dell'Università di Princeton stava per pubblicare i risultati della loro ricerca, un articolo che trattava la debolezza di vari sistemi di watermarking digitale. Questo articolo giungeva come risposta ad una sfida lanciata dalla SDMI (Secure Digital Music Initiative) che incoraggiava il pubblico a tentare di infrangere questi sistemi di watermarking. Prima di pubblicare l'articolo, però, vennero minacciati sia dalla SDMI che dalla RIAA (Reconding Industry Association of America). Apparentemente, la legge sul Copyright Digitale (DMCA) del 1998 rende illegale discutere o fornire tecnologie che possano essere utilizzate per bypassare controlli dell'industria sui consumatori. Questa stessa legge venne utilizzata contro Dimitry Sklyarov, un programmatore ed hacker russo che scrisse un software per aggirare un sistema di crittazione più che semplicistico presente nel software dell'Adobe e che presentò le sue scoperte ad una conferenza di hacker negli Stati Uniti. L'FBI irruppe e lo arrestò, costringendolo ad una lunga battaglia legale. Per la legge, non è di interesse quanto sia complicato il sistema di controllo applicato agli utenti: ad esempio, sarebbe persino illegale cercare di fare reverse engineering (o persino parlarne!) dell'"alfabeto farfallino", se questo fosse utilizzato come sistema di controllo. Pertanto, oggi, chi sono gli hacker e chi sono i cracker?! Quando la legge sembra intromettersi nella libertà di parola, i buoni che danno voce alle loro idee diventano improvvisamente cattivi? Credo che lo spirito degli hacker trascenda dalle leggi governative, in opposizione all'essere determinato da esse. E come avviene in qualsiasi gruppo di persone, ci saranno sempre persone cattive che utilizzano la conoscenza per compiere azioni cattive.

La fisica nucleare e la biochimica possono essere usate per uccidere, tuttavia ci forniscono avanzamenti scientifici non indifferenti nella medicina moderna. Non c'è una conoscenza buona o cattiva. La moralità sta nell'applicazione di questa conoscenza. Anche se lo volessimo, non potremmo sopprimere la conoscenza di come si converte la materia in energia, né fermare il continuo progresso della società. Allo stesso modo, lo spirito hacker non potrà mai essere fermato, né potrà venir facilmente categorizzato. Gli hacker spingeranno continuamente sui limiti, obbligandoci ad esplorare sempre di più.

Sfortunatamente in giro si trovano molti libri cosiddetti "di hacking" che in realtà non sono altro che compendi di hack fatti da altre persone. Insegnano al lettore ad utilizzare gli strumenti forniti sul CD allegato senza spiegare le teorie che ci sono dietro di essi, generando così persone abili ad utilizzare cose fatte da altri ma tuttavia incapaci di capire cosa stanno usando, o di creare nuove cose da zero. Forse il termine "cracker" e il termine "script kiddie" non sono così fuori moda.

I veri hacker sono pionieri, persone che architettano metodologie e creano gli strumenti che sono forniti sui sopraccitati CD. Mettendo un attimo da parte la legalità e parlando soltanto di logica, qualsiasi exploit di cui una persona può leggere su un libro ha una corrispettiva patch che permette di difendersi da esso. Un sistema correttamente patchato è immune a quella classe di attacchi. Gli attaccanti che utilizzano soltanto quelle tecniche senza alcun tipo di innovazione sono condannati a fare affidamento soltanto sulla debolezza e sulla stupidità. I veri hacker sono in grado di trovare prima degli altri buchi e falle nel software per creare i loro exploit. Nel caso in cui decidessero di non fornire al pubblico le descrizioni delle vulnerabilità scoperte, potrebbero tuttavia fornire le patch per creare sistemi più robusti.

Pertanto, se non sono disponibili patch, cosa si può fare per evitare che gli hacker trovino nuove falle nei sistemi e scrivano degli exploit? È per questo che esistono i team di ricerca sulla sicurezza: cercano nuove falle ed avvertono le società prima che vengano scritti degli exploit. C'è un beneficio reciproco nell'esistenza di hacker che che cercano di correggere i sistemi ed hacker che cercano di violarli. La competizione tra questi due gruppi fa sì che si ottenga una sicurezza sempre maggiore, così come tecniche di attacco sempre più complesse. L'introduzione e l'evoluzione dei Sistemi di Rivelazione delle Intrusioni (IDS, Intrusion Detection Systems) è un primo esempio di questo processo di coevoluzione. Gli hacker che difendono creano nuovi IDS da aggiungere al loro arsenale, mentre gli hacker che attaccano sviluppano tecniche per evitare gli IDS, che vengono eventualmente compensate da prodotti IDS più grandi e migliori. Il risultato netto di questa interazione è positivo, dal momento che genera persone più furbe, una migliore sicurezza, software più stabile, tecniche di problem-solving più raffinate ed un nuovo tipo di economia.

1 comment:

  1. Colgo l'occasione di questo nuovo post per chiedere scusa a tutti per la lunga assenza. Le cose da fare sono sempre tantissime, ma ho in cantiere tantissimi nuovi post a breve! :)

    ReplyDelete