Come Diven Come Diventare Un Ha tare Un Ha

Transcript

Come Diven Come Diventare Un Ha tare Un Ha
Come Diventare Un Hacker
di Eric S. Raymond <[email protected]>
traduzione di Andrea Ferraresso <[email protected]>
Note introduttive:
La versione originale di questo documento (il cui titolo originale è ‘How To Become A Hacker’) si trova
qui:
http://www.tuxedo.org/~esr/faqs/hacker-howto.html
ed è stata scritta da Eric S. Raymond.
Il testo è stato tradotto da Andrea Ferraresso <[email protected]>.
Le note NdT che si trovano nel testo sono le Note del Traduttore.
Questo testo è stato tradotto nel mese di dicembre 2001. Versione italiana 1.1
Fine delle note.
* Perché questo documento *
Come curatore di Jargon File (http://www.tuxedo.org/jargon) e autore di pochi altri (ma ben conosciuti)
documenti simili, mi capita spesso di ricevere email da parte di principianti entusiasti che mi chiedono
‘come posso diventare un mago dell’hacking?’. Ecco, allora, il mio pensiero a riguardo. Esposto in maniera
abbastanza singolare da non assomigliare ad una qualsiasi altra FAQ o ad altro documento web che affronti questa vitale questione.
(NdT: FAQ = Frequently Asked Questions = Domande Poste più di Frequente)
Se stai leggendo questo documento offline, o se stai leggendo una traduzione, la versione corrente si trova
a questo indirizzo: http://www.tuxedo.org/~esr/faqs/hacker-howto.html. Sempre allo stesso indirizzo sono
disponibili i link verso le numerose traduzioni disponibili.
Nota: c’è una lista di Frequently Asked Questions alla fine di questo documento. Per favore leggila un paio
di volte prima di mandarmi un’email con richieste riguardo all’argomento che sto affrontando ora.
* Cos’è Un Hacker? *
Il Jargon File (http://www.tuxedo.org/jargon) contiene una quantità di significati del termine ‘hacker’,
molti dei quali hanno a che fare con l’attitudine tecnica e il piacere di risolvere problemi e superare limiti.
Se vuoi sapere come diventare un hacker, comunque, solo due definizioni solo realmente rilevanti.
Esiste una comunità, una cultura condivisa, di programmatori esperti e maghi della rete per trovare le
origini della quale dobbiamo andare indietro nei decenni, fino ai tempi dei primi minicomputer funzionanti in time-sharing o dei primi esperimenti con ARPAnet. I membri originari di questa ‘civiltà’ generarono il termine ‘hacker’. Gli hacker costruirono Internet. Gli hacker costruirono il sistema operativo Unix
così come lo conosciamo oggi. Sempre grazie agli hacker abbiamo avuto Usenet e il World Wide Web. Se
tu sei parte di questa cultura, se hai dato il tuo contributo e altre persone che ne fanno parte ti conoscono
e ti chiamano hacker, tu sei un hacker.
La predisposizione mentale dell’hacker non è confinata alla cultura dell’hacking del software. Ci sono
personaggi che hanno applicato la propria attitudine hacker ad altre cose, come ad esempio all’elettronica
2 _ Come Diventare Un Hacker
o alla musica - puoi veramente trovarla ai più alti livelli di qualsiasi scienza o arte. Gli hacker del software
riconoscono
queste anime affini e le possono anche definire ‘hacker’ - e qualcuno sostiene che la natura
'
hacker sia realmente indipendente dal medium con il quale l’hacker si esprime. Ma nel resto del documento noi focalizzeremo l’attenzione sulle capacità e sugli atteggiamenti degli hacker del software, e sulle
tradizioni di quella cultura che originò il termine ‘hacker’.
C’è un altro gruppo di persone le quali ad alta voce si definiscono hacker, ma non lo sono. Queste sono
persone (principalmente adolescenti maschi) che provano piacere a penetrare nei computer e a compiere
azioni di phreaking al sistema telefonico. I veri hacker chiamano questi personaggi ‘cracker’ e non vogliono avere nulla a che fare con loro. I veri hacker, per lo più, pensano che i cracker siano pigri, irresponsabili
e non troppo svegli, e obiettano che imparare a compiere atti di pirateria informatica non ti fa hacker più
di quanto imparare a scassinare macchine ti faccia diventare ingegnere meccanico. Sfortunatamente, molti
giornalisti e scrittori utilizzato stupidamente il termine ‘hacker’ per descrivere i cracker, e questo irrita
infinitamente i veri hacker.
La differenza di base è questa: gli hacker costruiscono cose, i cracker le rompono.
Se tu vuoi diventare un hacker, continua a leggere. Se vuoi diventare un cracker, vai a leggere il newsgroup
alt.2600 (news:alt.2600). E questo è tutto quello che avevo intenzione di dire circa i cracker.
* L’atteggiamento dell’hacker *
Gli hackers risolvono problemi e costruiscono cose, e credono nella libertà e nell’aiuto reciproco. Per
essere accettato come hacker, devi comportarti come se anche tu avessi questo tipo di atteggiamento. E per
comportarti come se avessi questo atteggiamento, devi crederci con convinzione.
Ma se pensi che coltivare l’atteggiamento da hacker sia solo un modo per accrescere l’accettazione nella
comunità, stai sbagliando. Diventare il tipo di persona che crede in queste cose è importante soprattutto
per te stesso - per aiutarti a imparare e per mantenerti motivato. Come per tutte le arti creative, il modo
più efficace di diventare un maestro è imitare l’atteggiamento mentale dei maestri -non solo dal punto di
vista intellettualmente ma anche da quello affettivo.
Ora, il seguente poema Zen (moderno) dice:
Per seguire il percorso:
cerca il Maestro,
segui il Maestro,
cammina con il Maestro,
guarda attraverso il Maestro,
diventa il Maestro.
Così, se tu vuoi diventare un hacker, ripeti le seguenti cose fino a che non credi in loro:
1. Il mondo è pieno di affascinanti problemi che aspettano di essere risolti
Diventare un hacker è molto divertente, ma è un tipo di divertimento che necessita di un sacco di fatica.
La fatica necessita di motivazione. Gli atleti di successo traggono la loro motivazione dalla possibilità di
effettuare delle performance che li spingono a superare i propri limiti fisici. In maniera simile, per essere
un hacker devi provare una forte eccitazione dal risolvere problemi, affinando le tue abilità ed esercitando
la tua intelligenza.
Se sei un tipo di persona non che sente queste cose naturalmente, dovrai diventare così prima di tentare di
raggiungere le vette dell’hacking. Altrimenti scoprirai che la tua energia hacker è fiaccata da distrazioni
come il sesso, il denaro e il desiderio di approvazione sociale.
(Dovresti anche sviluppare una fede speciale nelle tue capacità di apprendimento - un credo secondo cui
anche se non sei in grado di sapere tutto ciò che sarebbe necessario per risolvere un problema, se ne
affronti solo un pezzetto e ce la fai, ha imparato abbastanza da passare al pezzetto successivo - e così via
Come Diventare Un Hacker _ 3
finché non ce l’avrai fatta del tutto.)
2. Nessun problema dovrebbe essere risolto due volte
Le menti creative sono una risorsa limitata e di valore. Essi non dovrebbero sprecarsi a re-inventare la ruota
quando ci sono molti nuovi affascinanti problemi che aspettano lì fuori.
Per comportarsi come un hacker, devi convincerti che il tempo speso dagli altri hacker a pensare è prezioso
- così tanto che è quasi un dovere morale condividere le informazioni, risolvere problemi e successivamente diffondere le soluzioni, in modo che gli altri hacker possano risolvere nuovi problemi al posto di doverne ri-risolvere di vecchi.
(Non devi pensare di essere obbligato a regalare tutto il tuo prodotto creativo, sebbene gli hacker che lo
fanno siano quello che attirano più rispetto dagli altri hacker. È coerente con i valori dell’hacker venderne
abbastanza di esso per ottenere cibo, affitto e computer. È bello usare le tue abilità di hacker per sostenere
una famiglia e se diventi ricco, non dimenticare la lealtà verso la tua arte e i tuoi compagni hacker.)
3. La noia e i lavori stupidi sono il male
Gli hacker (e le persone creative in generale) non dovrebbero mai essere annoiati o doversi affaticare con
un lavoro stupido e ripetitivo, poiché quando questo accade significa che non stanno facendo l’unica cosa
che dovrebbero fare: risolvere nuovi problemi. Questo processo di spreco è dannoso per tutti quanti.
Quindi la noia e la ripetitività non sono solo spiacevoli, sono realmente il male.
Per comportarti come un hacker, devi credere in questo abbastanza da voler automaticamente allontanare
il più possibile tutto ciò che è noioso, non solo per te stesso ma per tutti gli altri (specialmente gli altri
hacker).
(Esiste un’unica apparente eccezione a questa regola. Gli hacker, a volte, fanno delle cose che possono
sembrare ripetitive o noiose ad un osservatore, come esercizi per ripulire la mente o allo scopo di acquisire
capacità o provare qualche tipo di esperienza. Ma questa è una scelta - nessun pensatore dovrebbe essere
forzato a operare in una situazione tediosa.)
4. La libertà è buona
Gli hacker sono degli anti-autoritari per natura. Chiunque possa darti degli ordini, può fermati dal risolvere problemi dai quali tu sei affascinato - e, visto il modo con cui le menti autoritarie funzionano, tali
ordini generalmente saranno motivati da ragioni orribilmente cretine. Così, l’atteggiamento autoritario
deve essere combattuto ovunque si trovi, affinché non soffochi te e gli altri hacker.
(Ciò non è la stessa cosa che combattere tutte le forme di autorità. I bambini hanno bisogno di essere
guidati e i criminali devono essere fermati. Un hacker potrebbe essere d’accordo nell’accettare qualche tipo
di autorità allo scopo di ottenere qualcosa alla quale tiene di più che al tempo speso a eseguire ordini. Ma
questo è un caso limitato, un patto del tipo dare-avere; il tipo di resa personale che gli autoritari vorrebbero non è in discussione.)
Gli autoritari prosperano sulla censura e sulla segretezza. E distruggono la cooperazione volontaria e lo
scambio di informazioni - l’unica ‘cooperazione’ che piace a loro è quella sotto il loro controllo. Così, per
agire come un hacker, devi sviluppare un’istintiva avversione verso la censura, la segretezza e l’uso della
forza o dell’inganno utilizzati nei confronti delle persone adulte. E devi essere disposto a mettere in atto
questo credo.
5. L’atteggiamento non è un’alternativa alla competenza
Per essere un hacker, devi sviluppare questi atteggiamenti. Ma l’atteggiamento da solo non basta a fare di
te un hacker, non più di quanto ti faccia diventare un atleta di successo o una star del rock. Per diventare
un hacker c’è bisogno di intelligenza, pratica, dedizione e lavoro duro.
Prima di tutto, devi imparare a diffidare degli atteggiamenti e a rispettare le competenze di ogni genere.
4 _ Come Diventare Un Hacker
Gli hacker non perdono tempo con i poser (NdT: un ‘poser’ è qualcuno che ama farsi notare, al di là delle
proprie
capacità reali; nel mondo dello skateboard è qualcuno che ama le esibizioni che fanno scena, ma
'
tecnicamente piuttosto semplici), ma adorano la competenza - specialmente la competenza nell’hacking,
ma la competenza è buona in genere. In particolar modo è ottima una competenza in alcune capacità che
pochi hanno, ancora meglio se sono capacità quali una mente brillante, astuzia e concentrazione.
Se veneri la competenza, ti divertirai a svilupparla in te stesso - il duro lavoro e la dedizione diventeranno
una sorto di gioco intenso invece che una sfacchinata. E ciò è vitale per diventare un hacker.
* Capacità basilari dell’hacker *
L’attitudine hacker è vitale, ma le capacità lo sono ancora di più. L’attitudine non è la sostituta della
competenza, e c’è un insieme di capacità di base che tu devi avere prima che qualsiasi hcker si sogni di
chiamarti così.
Questo bagaglio di conoscenze cambia lentamente nel tempo, quando la tecnologia crea nuove abilità e ne
rende obsolete altre. Per esempio, il bagaglio di conoscenze standard, di solito include la programmazione
in linguaggio macchina e solo di recente include l’HTML. Ma in questo momento il bagaglio di conoscenze ‘obbligatorie’ prevede questo:
1. Impara a programmare
Questa, ovviamente, è la capacità fondamentale per l’hacker. Se non conosci alcun linguaggio di programmazione, ti raccomando di partire con Python. È progettato in maniera chiara, ben documentato e abbastanza adatto ai principianti. Malgrado sia un buon linguaggio con il quale cominciare, non è proprio un
giocattolo; è molto potente e flessibile e adatto anche a grandi progetti. Ho scritto una più dettagliata
recensione su Python (la trovi qui: http://noframes.linuxjournal.com/lj-issues/issue73/3882.html). Dei
buoni tutorials (http://www.python.org/doc/Intros.html) sono disponibili sul sito web di Python (http:/
/www.python.org/).
Anche Java è un buon linguaggio con il quale imparare a programmare. È più difficile di Python, ma
produce del codice più veloce rispetto a Python. Lo ritengo un eccellente secondo linguaggio.
Ma sii conscio che non raggiungerai i livelli di abilità di un hacker o più semplicemente di un programmatore se conosci solamente uno o due linguaggi - devi necessariamente imparare a pensare ai problemi legati
alla programmazione in maniera più generale, indipendentemente dal linguaggio. Per essere un vero hacker,
hai bisogno di arrivare al punto in cui sarai in grado di apprendere un nuovo linguaggio in pochi giorni
dando un’occhiata al manuale. Questo significa che dovrai imparare parecchi linguaggi differenti tra loro.
Se vuoi programmare seriamente, devi imparare il C, il linguaggio cardine di Unix. Il C++ è molto vicino
al C; se tu già conosci uno di questi due, non dovrebbe essere un problema imparare l’altro. Nessuno di
questi due linguaggi, comunque, è un buon linguaggio con il quale iniziare.
Altri linguaggi particolarmente importanti per gli hacker sono Perl (http://www.perl.com/) e LISP (http:/
/snaefell.tamu.edu/~colin/lp/). Perl è degno di essere appreso per ragioni pratiche; è largamente utilizzato
per costruire pagine web dinamiche e per l’amministrazione di sistema; così, anche anche se non dovrai
mai scrivere in Perl, dovresti imparare almeno a leggerlo. LISP è da imparare per la profonda e illuminante
esperienza che proverai quando finalmente riuscirai a farlo tuo; questa esperienza ti renderà un programmatore migliore per il resto dei tuoi giorni, anche se non lo utilizzerai poi molto.
È meglio, addirittura, imparare tutti questi cinque linguaggi (Python, Java, C/C++, Perl, e LISP). Oltre
che essere i linguaggi più importanti per l’hacking, rappresentano approcci molto differenti alla programmazione, e ognuno ti educherà in maniera preziosa.
Non posso fornire qui delle istruzioni complete su come imparare un linguaggio - è un compito complesso. Ma posso dirti ciò che libri e corsi vari non ti fanno sapere (molti, forse la maggior parte dei migliori
hacker è autodidatta). Puoi imparare le caratteristiche dei linguaggi - pezzi di conoscenza - dai libri, ma
Come Diventare Un Hacker _ 5
l’approccio mentale che trasforma la conoscenza in reali capacità puòo essere appreso solo grazie alla
pratica e all’apprendistato. Ciò che devi fare è (a) leggere codice e (b) scrivere codice.
Imparare a programmare è come imparare a scrivere bene nel linguaggio nativo. Il miglior modo per farlo
è leggere del materiale scritto dai maestri della forma, scrivere qualcosa per conto proprio, leggere molto di
più, scrivere qualcosa in più, leggere molto di più, scrivere qualcosa in più... e ripetere il tutto finché
comincia a svilupparsi la forza e l’economia che vedi nei tuoi modelli.
Una volta, trovare del buon codice da leggere era un’impresa ardua, poiché esistevano ben pochi programmi che fossero disponibili anche sotto forma di codice sorgente, a disposizione degli hacker per maneggiarci sopra. Tutto ciò è cambiato; software open-source, strumenti per la programmazione, e sistemi
operativi (tutti costruiti da hacker) sono oggi largamente disponibili. Questo mi porta al prossimo argomento...
2. Procurati uno Unix open-source e impara ad utilizzarlo
Sto dando per scontato che tu abbia un personal computer o che tu possa avere accesso ad un computer
(questi giovani d’oggi hanno tutto facile :-)). L’unico passo importante che un principiante possa compiere per acquisire delle capacità da hacker è procurarsi una copia di Linux o di uno degli Unix *BSD,
installarlo sulla propria macchina ed eseguirlo.
Sì, ci sarebbero altri sistemi operativi al mondo oltre a Unix. Ma sono distribuiti solo sotto forma di file
binari - non puoi leggerne il codice sorgente e non puoi neppure modificarlo. Imparare a hackerare sotto
macchine DOS o Windows o MacOS è come provare a ballare mentre si è ingessati.
Unix, inoltre, è Il Sistema Operativo di Internet. Anche se puoi imparare ad utilizzare Internet senza
conoscere Unix, non puoi essere un hacker di Internet senza conoscere Unix. Per questa ragione, la cultura
hacker oggi è fortemente legata a Unix. (Questo non è stato sempre vero, e qualche vecchio hacker non ne
è troppo contento, ma la simbiosi tra Unix e Internet è diventata forte abbastanza che neanche i muscoli
della Microsoft sembrano essere in grado di rappresentare una seria minaccia.)
Allora, procurati uno Unix Unix - Io amo Linux, ma ci sono altre vie (e... sì, puoi anche far girare Dos/
Windows e Linux sulla stessa macchina). Impara ad usarlo. Fallo girare. Armeggiaci sopra. Usalo per
connetterti a Internet. Leggine il codice sorgente. Modifica il codice sorgente. Avrai a disposizione i migliori strumenti di programmazione (tra i quali C, LISP, Python e Perl) che qualsiasi sistema operativo
della Microsoft possa sognarsi, ti divertirai, assorbirai più conoscenza di quanto saprai rendertene conto,
finché diventerai un maestro hacker.
Per altre informazioni sull’apprendimento di Unix, vedi ‘Loginataka’ (http://www.tuxedo.org/~esr/faqs/
loginataka.html).
Per mettere le mani su Linux, vedi ‘Where can I get Linux’ (http://linuxresources.com/apps/ftp.html).
Esistono anche aiuti e risorse su Unix *BSD (http://www.bsd.org/).
Personalmente ho scritto una specie di sillabario sulle basi di Unix e Internet (http://www.linuxdoc.org/
HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html).
(Nota: Non ti consiglio di installare Linux o *BSD da solo, se sei un principiante. Per Linux, trova un
LUG, gruppo locale di utenti e chiedi aiuto a loro; oppure contatta l’Open Projects Network (http://
www.linpeople.org/). LISC mantiene dei canali IRC (http://openprojects.nu/services/irc.html) dove puoi
trovare aiuto.)
3. Impara a usare il World Wide Web e scrivere in HTML
Molte delle cose che la cultura hacker ha costruito operano in posti assolutamente non in vista, aiutando
a far funzionare aziende e uffici e università senza alcun evidente impatto sulla vita dei non-hacker. Il Web
è l’unica, enorme eccezione, il gigantesco e splendido giocattolo hacker che, anche i politici lo ammettono, sta cambiando il mondo. Solo per questa ragione (ma ce ne sarebbero molte altre di altrettanto buone), hai bisogno di imparare come funziona il Web.
6 _ Come Diventare Un Hacker
Questo non significa solamente imparare ad utilizzare un browser (chiunque può farlo), ma imparare a
scrivere
in HTML, il linguaggio ‘a marcatori’ del Web. Se ancora non sai programmare, scrivendo in
'
HTML acquisirai delle abitudini mentali che ti aiuteranno a imparare. Costruisci una home page. (Esistono alcuni buoni tutorial per principianti su Web; eccone uno: http://www.teleport.com/~danal/Pages/
making.html)
Ma avere solamente una home page non è abbastanza per poterti definire ‘hacker’. Il Web è pieno di home
page. Molte sono inutili, della fanghiglia senza contenuti, fanghiglia bella da vedere, certo, ma sempre
fanghiglia. (Per un approfondimento su questo argomento vedi ‘The HTML Hell Page’, http://
www.tuxedo.org/~esr/html-hell.html)
Per essere meritevole, la tua home page deve avere contenuti - dovrebbe essere interessante e/o utile agli
altri hacker. E questo ci porta al prossimo argomento...
* La posizione sociale nella cultura hacker
Come molte culture che non hanno un’economia basata sulla moneta, l’universo hacker vive sulla reputazione. Tu stai tentando di risolvere interessanti problemi, ma per quanto interessanti siano, e benché le tue
soluzioni siano veramente il massimo, è qualcosa che solo le persone con la tua stessa preparazione (o
superiore) sono in grado di apprezzare.
In accordo con questo concetto, quando giochi a fare l’hacker, impari a fare attenzione principalmente di
cosa gli altri hacker pensano delle tue capacità (questo perché tu non sei veramente un hacker finché altri
hacker non ti chiamano così). Questo fatto è oscurato dall’immagine dell’hacking come un lavoro solitario; anche da alcuni tabù della cultura hacker (che stanno gradualmente scemando ma sono ancora consistenti) contro il voler ammettere che l’ego o l’essere ben considerati dagli altri contribuiscano ad alimentare le proprie motivazioni.
Entrando nel dettaglio si può dire che l’universo hacker è ciò che gli antropologi chiamano ‘gift culture’
(Ndt: ‘cultura del talento’). Tu guadagni posizione sociale e reputazione non dominando altre persone o
grazie alla tua bellezza o possedendo beni che gli altri vorrebbero, ma piuttosto donando cose. Donando il
tuo tempo, la tua creatività e i risultati delle tue capacità.
Ci sono, principalmete, cinque tipi di cose che tu puoi fare per essere rispettato dagli altri hacker:
1. Scrivi software open-source
La prima cosa (la cosa più importante, anche dal punto di vista della tradizione) è scrivere programmi che
gli altri hacker possano considerare utili e divertenti, e rilasciarne il codice sorgente all’intera comunità
hacker.
(Di solito chiamiamo questi programmi col termine ‘free software’, ma questo finisce col confondere
troppo persone che non sono sicure su cosa si intenda con il termine ‘free’. Molti di noi, allora, preferiscono usare l’espressione ‘open-source’ (http://www.opensource.org/) per indicare questo tipo di software).
I più riveriti semi-dei dell’universo hacker sono persone che hanno scritto dei gran bei programmi che
andavano incontro ad un bisogno molto diffuso. Questi programmi sono stati distribuiti liberamente e
sono diventati di uso comune.
2. Aiuta a testare e a fare il debug di software open-source
Ci vuole anche ci prova ed esegue il debug di software open-source. In questo mondo imperfetto, spendiamo molto del nostro tempo a disposizione per sviluppare software, nella fase di debugging (Ndt: correzione degli errori). Per questo motivo tutti gli autori di software open-source ti diranno che un buon beta
tester (un utilizzatore, cioè, che sa descrivere i sintomi in maniera chiara, localizzare i problemi con precisione, tollerare i bachi nelle versioni instabili e che è in grado di applicare qualche ruotine diagnostica) vale
tanto oro quanto pesa. Uno di questi personaggi può fare la differenza tra una fase di debugging tipo
Come Diventare Un Hacker _ 7
‘incubo’ e una in stile ‘semplice e salutare scocciatura’.
Se tu sei un principiante, prova a trovare un programma che è ancora in fase di sviluppo e che ti interessi,
e diventa un buon beta-tester. Esiste una progressione naturale dall’aiutare a testare i programmi fino ad
arrivare a modificarli in prima persona. Imparerai molto in questa maniera e creerai un buon karma con
delle persone che in futuro potranno aiutarti.
3. Pubblica informazioni utili
Altra buona cosa è raggruppare e selezionare informazioni utili e/o interessanti in pagine web o documenti
in stile Frequently Asked Questions (FAQ), e rendere il tutto disponibile in rete.
I manutentori delle FAQs più tecniche godono di ampio rispetto da parte degli autori di software opensource.
4. Aiuta a tenere in piedi l’infrastruttura lavorativa
La cultura hacker (è lo sviluppo della struttura di Internet, se è per quello) è portata avanti da volontari. Ci
sono un sacco di lavori necessari, ma poco affascinanti che avrebbero bisogno di essere seguiti - amministrare mailing list, moderare newsgroup, mantenere ampi siti web con archivi di software, sviluppare RFC
(Request For Comment) e altri standard tecnici.
Le persone che fanno questo genere di cose ottengono molto rispetto, perché tutti sanno che queste
attività sono avide di tempo e non altrettanto divertenti che giocare con il codice sorgente. Fare questi
lavori vuol dire esprimere dedizione.
5. Servi la cultura hacker
Infine, tu puoi servire e propagandare la cultura hacker stessa (scrivendo, ad esempio un accurato testoguida su come diventare un hacher :-)). Ciò non è qualcosa che sarai obbligato a fare finché non diventerai
ben conosciuto per uno dei precedenti quatto punti.
La cultura hacker non deve avere leader, piuttosto deve avere eroi e anziani del villaggio e storici e portavoci.
Quando sarai rimasto in trincea abbastanza a lungo, potresti divenire una figura come quelle appena
elencate. Gli hacker diffidano degli ego chiassosi nei loro capi tribù, così la visibilità raggiunto a causa di
questo tipo di fama è pericolosa. Piuttosto che batterti per questa, devi piuttosto essere umile.
* Il rapporto tra hacker e nerd *
Contrariamente alle leggende popolari, non devi essere per forza un nerd per essere un hacker. Può aiutare,
comunque, e molti hacker sono effettivamente dei nerd. Diventare un emarginato sociale aiuta a rimanere
concentrato sulle cose importanti, come pensare e hackerare.
Per questa ragione, molti hacker hanno adottato l’etichetta ‘nerd’ e utilizzano anche il termine ‘geek’ con
orgoglio - è una maniera di dichiarare la propria indipendenza dalle normale aspettative sociali. Vai alla
The Geek Page (http://samsara.circus.com/~omni/geek.html) per una discussione più ampia.
Se tu puoi organizzarti abbastanza per hackerare bene e avere anche una vita normale, ciò è cosa buona.
Questo è più facile oggi di quando io ero un hacker negli anni ’70; la cultura ‘ufficiale’ è molto più
amichevole con i techno-nerd al giorno d’oggi. C’è anche un numero crescente di persone che ritiene che
gli hacker siano spesso degli ottimi amanti e ‘da sposare’.
Se sei attratto dall’hacking perché non hai una vita sociale, è comunque OK - almeno non avrai problemi
di concentrazione. Forse avrai una vita sociale più avanti.
* Appunti di stile *
Ancora, per essere un hacker, devi avere la forma mentis degli hacker. Ci sono alcune cose utili che tu poi
fare quando quando non sei davanti al computer. Non sono sostituti all’hacking (niente lo è), ma molti
8 _ Come Diventare Un Hacker
hacker le fanno, e sentono che esiste un legame tra queste cose e l’essenza dell’hacking.
-' Impara a scrivere bene nella tua lingua. Benché esista lo stereotipo del programmatore che non sa scrivere, un sorprendente numero di hacker (inclusi i migliori che io conosca) sono abili scrittori.
- Leggi riviste scientifiche. Partecipa a convegni scientifici (un buon modo per incontrare hacker e protohacker).
- Studia lo Zen, e/o le arti marziali. (La disciplina mentale è utile in molti casi.)
- Sviluppa un orecchio analitico per la musica. Impara ad apprezzare diversi tipi di musica. Impara a
suonare bene qualche strumento, o a cantare.
- Sviluppa il tuo apprezzamento per i giochi di parole e gli anagrammi.
Maggiori sono le cose tra queste che già fai, maggiore è la predisposizione naturale che hai per fare l’hacker.
Perché queste cose in particolare non è molto chiaro, tuttavia esse sono connesse con un mix di capacità
della parte destra - e sinistra - del cervello che sembrano essere importanti (gli hackers hanno bisogno di
essere capaci sia a ragionare in maniera logica, sia, all’occorrenza, a tenersi distanti dalla logica apparente di
un problema).
Infine, un po’ di cose da non fare:
- Non usare soprannomi grandiosi e stupidi.
- Non entrare nelle flame-war su usenet (i newsgroup), o da qualsiasi altra parte.
- Non ti chiamare ‘cyberpunk’ e non perdere tempo con chiunque lo faccia.
- Non spedire lettere o e-mail piene di errori di battitura e/o scadenti dal punto di vista grammaticale..
L’unica reputazione che ti guadagnerai nel fare una qualsiasi di queste cose è quella del cretino. Gli hackers
hanno una memoria di ferro - dunque ci potrebbero volere vari anni per essere riaccettati.
La questione dei nomi finti o dei soprannomi, necessità di un approfondimento.
Nascondere la tua identità dietro ad un soprannome è una stupida e bambinesca caratteristica di crackers,
warez d00dz e altre forme di vita inferiori.
Gli hacker non fanno questo. Loro sono orgogliosi di ciò che fanno e vogliono che venga associato al loro
vero nome.
Quindi, se hai un un soprannome, eliminalo. La cultura hacker ti marchierebbe come un perdente.
* Altre risorse *
Peter Seebach mantiene un eccellente Hacker FAQ (http://www.plethora.net/~seebs/faqs/hacker.html)
per managers che non capiscono come trattare con gli hacker. Se questo sito non dovesse risultare attivo,
la seguente ricerca con Excite dovrebbe fartene trovare una copia:
http://search.excite.com/search.gw?search=%22HACKER+FAQ%22+%2Bseebach%26tsug=1%26c+sug=10
Io ho scritto A Brief History Of Hackerdom (http://www.tuxedo.org/~esr/writings/hacker-history/hackerhistory.html).
Ho scritto inoltre, The Cathedral and the Bazaar (http://www.tuxedo.org/~esr/writings/cathedral-bazaar/
index.html), che spiega molto di come funzionano le culture Linux e open-source. Ho affrontato questo
argomento ancora più direttamente nel suo seguito Homesteading the Noosphere (http://www.tuxedo.org/
~esr/writings/homesteading/).
Rick Moen ha scritto un eccellente documento su come far funzionare un Linux user group (http://
linuxmafia.com/~rick/essays/newlug.html).
Io e Rick abbiamo collaborato ad un altro documento chiamato How To Ask Smart Questions (http://
www.tuxedo.org/~esr/faqs/smart-questions.html). Questo ti aiuterà a cercare assistenza in un modo più
piacevole di quello che stai utilizzando.
Come Diventare Un Hacker _ 9
* Frequently Asked Questions *
D: Mi insegni a fare dell’hacking?
R: Dalla prima pubblicazione di questo documento, ho ricevuto parecchie richieste del tipo ‘insegnami
tutti sull’hacking’. Sfortunatamento non ho il tempo e l’energia per farlo; i miei progetti personali di
hacker e i viaggi in veste di sostenitore dell’open-source, mi portano via il 110% del mio tempo.
Comunque, anche se volessi, l’hacking è un’attidudine e un’abilità che tu devi apprendere da solo. Imparerai che, mentre i veri hacker vogliono aiutarti, non avranno rispetto se chiederai di essere imboccato da
loro.
Impara un po’ di cose, prima. Mostra che ci stai provando, che sei in grado di apprendere. Poi, rivolgiti agli
hacker con questioni precise.
Se scrivi un’email ad un hacher per chiedere aiuto, ricordati bene queste due cose.
Primo, abbiamo capito che la gente che è pigra e negligente nello scrivere, è anche prigra e negligente
nell’intenzione di diventare un buon hacker - così fai attenzione a scrivere correttamente e usa una buona
grammatica e punteggiatura, altrimenti verrai probabilmente ignorato.
Secondo, non provare a chiedere che la risposta ti venga inviata ad un ISP account diverso da quello dal
quale hai spedito l’email; le persone che fanno ciò stanno generalmente usando account rubati, e non
abbiamo ovviamente intenzione di dar loro alcun aiuto.
D: Come posso partire, allora?
R: La maniera migliore per iniziare potrebbe essere quella di andare ad un raduno di un LUG (Linux user
group). Puoi trovare maggiori informazioni nella LDP General Linux Information Page (http://
www.linuxdoc.org/intro.html) (NdT: per gli aspiranti hacker italiani, gli indirizzi dei LUG presenti in
Italia si trovano al seguente indirizzo http://www.linux.it/); probabilmente ce ne sarà uno dalle tue parti,
possibilmente associato ad una università. I membri del LUG ti daranno una copia di Linux, se glielo
chiedi e certamente ti aiuteranno anche nell’installazione e nella partenza.
D: Quando iniziare? È troppo tardi per imparare?
R: Qualsiasi età alla quale tu sviluppi la motivazione per partire è una buona età. Sembra che molte
persone comincino ad interessarsi all’hacking tra i 15 e i 20 anni, ma conosco eccezioni in entrambe le
direzioni.
D: Quanto ci impiegherò ad imparare ad ‘hackerare’?
R: Questo dipende da quanto talento hai e da quanto duramente lavori. Molti riescono ad acquisire
capacità del tutto rispettabili in 18/24 mesi, se si impegnano. Non pensare che sia finita lì, comunque. Se
sei un vero hacker, passerai il resta della tua vita ad imparare e a perfezionarti.
D: Visual Basic o Delphi sono buoni linguaggi con i quali cominciare?
R: No, poiché non sono portabili. Non ci sono versioni open-source di questi linguaggi e questo ti vincolerebbe ad utilizzare solo le piattaforme che i produttori decidono di supportare. Accettare questo tipo di
monopoli non è un modo di agire da hacker.
Visual Basic è, in particolar modo, terribile. Il fatto che sia un linguaggio di proprietà della Microsoft è già
abbastanza per squalificarlo e così come altri Basic è un linguaggio progettato in maniera misera che ti
insegna cattive abitudini di programmazione.
Una di queste cattive abitudini è diventare dipendenti da un unico fornitore di librerie, widgets, e tool di
sviluppo. In genere, qualsiasi linguaggio che non sia supportato almeno sotto Linux o uno Unix BSD, e/
o da almeno tre diversi fornitori di sistemi operativi, è una cosa misera con cui imparare a hackerare.
D: Mi aiuteresti a crackare un sistema, o mi insegneresti come fare ciò?
R: No. Colui che ancora mi pone una domanda come questa anche dopo aver letto queste FAQ è troppo
10 _ Come Diventare Un Hacker
stupido per essere educato anche se io avessi del tempo da dedicare all’insegnamento. Tutte quelle richieste
via
' email di questo tipo che io riceverò, saranno ignorate o genereranno delle risposte estremamente dure.
D: Come posso ottenere la password di un account appartenente ad un’altra persona?
R: Questo è cracking. Corri via, idiota.
D: Come posso leggere e/o utilizzare l’email di qualcun altro?
R: Questo è cracking. Corri via, deficiente.
D: Come posso rubare canali o privilegi su IRC?
R: Questo è cracking. Corri via, cretino.
D: Sono stato crackato. Mi aiuteresti a difendermi dagli attacchi futuri?
R: No. Ogni volta che mi è stata posta questa domanda, proveniva sempre da qualche povero sfigato che
stava facendo girare Microsoft Windows. Non è possibile rendere i sistemi Windows realmente sicuri
contro gli attacchi informatici; il codice e l’architettura hanno troppo difetti, che rendono l’opera di
rendere sicuro Windows simile a svuotare una nave piena d’acqua con un secchio bucato. L’unica soluzione affidabile consiste nel migrare verso Linux o altro sistemo operativo che sia progettato per essere sicuro.
D: Sto avendo problemi con il software di Windows. Mi aiuti?
R: Sì, entra nel prompt del DOS e scrivi: ‘format c:’. Qualsiasi sia il tuo problema, sarà eliminato in pochi
minuti.
D: Dove posso trovare dei veri hacker e parlare con loro?
R: La maniera migliore è trovare un gruppo locale di utenti Unix o Linux e andare ai loro incontri (link e
parecchi elenchi possono di gruppi di utenti possono essere reperiti al sito LDP http://www.linuxdoc.org/
presso il Metalab).
(Di solito a questo punto dicevo che non puoi trovare dei veri hacker su IRC, ma qualcosa sta cambiando.
Qualche comunità di hacker che contribuisce allo sviluppo di progetti come GIMP e Perl, ha canali IRC,
adesso.)
D: Puoi consigliarmi libri utili sul hacking?
A: Io mantengo il Linux Reading List HOWTO (http://www.linuxdoc.org/HOWTO/Reading-ListHOWTO/index.html) che tu potresti trovare utile. Anche Loginataka (http://www.tuxedo.org/~esr/faqs/
loginataka.html) potrebbe risultare interessante.
Per una introduzione al linguaggio Python, dai un’occhiata al materiale introduttivo (http://
www.python.org/doc/Intros.html) sul sito di Python.
D: Devo necessariamente essere bravo in matematica per diventare un hacker?
R: No. Mentre devi diventare a pensare in maniera logica e a seguire il processo del ragionamento esatto,
l’hacking usa molto poco la matematica o l’artimetica.
In particolare, tu non avrai bisogno di calcoli e analisi (lasciamo questa roba agli ingegneri elettronici :-)).
Qualche base di matematica finita potrebbe essere di aiuto.
D: Che linguaggio devo imparare per primo?
R: HTML, se non lo conosci già. Ci sono un sacco di enormi, lucenti e pessimi libri sull’HTML in giro,
e, dolorosamente, pochi sono quelli buoni. Quello che io preferisco è HTML: The Definitive Guide
(http://www.oreilly.com/catalog/html3/).
Ma HTML non è un linguaggio di programmazione completo. Quando sarai pronto a programmare, ti
raccomando di iniziare con Python (http://www.python.org/). Sentirai molte persone che ti raccomandano Perl, e Perl è, per ora, più popolare di Python, ma è più difficile da imparare e (a mio parere) progettato
meno bene.
Il linguaggio C è veramente importante, ma è anche molto più difficile sia di Python che di Perl. Non
Come Diventare Un Hacker _ 11
provare ad iniziare con questo.
Utenti di Windows, non optate per Visual Basic. Vi insegnerà delle abitudini sbagliate, e non è portabile
al di fuori di Windows. Da evitare.
D: Di che tipo di hardware ho bisogno?
R: Ero sempre stato convinto che i computer fossero sotto-dimensionati e poveri di memoria, tanto da
imporre dei limiti artificiali ai progressi degli hacker. Questo è diventato falso da qualche tempo. Qualsiasi
elaboratore dall’Intel 486DX50 in su è potente abbastanza per sviluppare software farci girare X e connettersi a Internet, e dischi più piccoli che tu puoi comprare oggi hanno spazio a sufficienza.
La cosa importante è scegliere una macchina il cui harware sia Linux-compatibile (o BSD-compatibile, se
hai scelto di seguire questa strada). Ancora, ciò dovrebbe essere vero per le macchine moderne; l’unico neo
è rappresentato da modem e stampanti, alcune di queste periferiche sono create appositamente per Windows
e non vogliono saperne di lavorare con Linux.
C’è un FAQ sulla compatibilità hardware, l’ultima versione è in http://users.bart.nl/~patrickr/hardwarehowto/Hardware-HOWTO.html.
D: Devo necessariamente odiare e combattere Microsoft?
R: No, non è obbligatorio. Non che Microsoft non sia detestabile, ma esisteva una cultura hacker molto
prima di Microsoft e ne esisterà una anche dopo che Microsoft sarà consegnata alla storia. L’energia che tu
spendi per odiare Microsoft potrebbe essere utilizzate in maniera migliore amando il tuo mestiere di
hacker. Scrivi del buon codice - questo darà fastidio a sufficienza a Microsoft senza inquinare il tuo karma.
D: Ma il software open-source software non impedisce ai programmatori di guadagnare
abbastanza per poter vivere?
R: Ciò sembra improbabile - finora l’industria del software open-source sembra creare posti di lavoro
piuttosto che farne perdere. Se scrivere un programma da più profitti che non scriverlo, un programmatore sarà pagato sia che il programma diventi o non diventi open-source, una volta realizzato. E non importa
quanto software ‘free’ venga scritto, sembra ci sia sempre più richiesta per applicazioni nuove e personalizzate.
Ho scritto di più a riguardo sulle pagine Open Source (http://www.opensource.org/).
D: Come posso partire? Dove posso ottenere uno Unix ‘free’?
R: Da qualche parte in questa pagina ho inserito i link verso quei siti dove puoi trovare le versioni free di
Unix più utilizzate. Per diventare un hacker, hai bisogno di motivazione, iniziativa e capacità di autoeducazione. Inizia ora...
***