|
|
|
|
Copyright © 2001 Eric S. Raymond
Come curatore dello Jargon File
e autore di pochi altri (ma ben conosciuti) documenti di questo genere, spesso
ricevo delle richieste via email da parte di entusiasti principianti della
rete che mi chiedono (praticamente) "come posso diventare un mago dell'hacking?".
Poiché, singolarmente, non sembra esserci alcun'altra FAQ o documento web
che affronti questa vitale questione, ecco qua il mio. Se stai leggendo questo documento offline, o una sua traduzione, la versione corrente si trova all'indirizzo:
http://www.tuxedo.org/~esr/faqs/hacker-howto.html (it seems no more active. Another resource can be: http://wiht.link/being-a-hacker. Nota: c'è una lista di Frequently Asked
Questions alla fine di questo documento. Per favore leggila due volte prima di mandarmi qualsiasi richiesta relativa a questo documento. Sono anche disponibili numerose traduzioni di questo documento:
Bulgarian,
Catalan,
Chinese (Simplified),
Chinese (Traditional),
Danish,
Dutch,
French,
German,
Hebrew,
Hungarian,
Indonesian,
Italian,
Japanese,
Korean,
Portuguese
(Brazilian),
Portuguese
(European),
Russian,
e Swedish.
Considera che poiché questo documento viene talvolta modificato, esse potrebbero essere anche abbastanza superate.
Lo Jargon
File
contiene una quantità di definizioni del termine 'hacker', molte delle quali
hanno a che fare con l'attitudine tecnica e il piacere di risolvere problemi
e superare limiti. Se vuoi sapere comediventare un hacker, comunque, solo due definizioni solo realmente rilevanti. Esiste
una comunità, una cultura condivisa, di programmatori esperti e maghi della
rete per rintracciare le origini della quale dobbiamo andare indietro di
decenni, fino ai tempi dei primi minicomputer funzionanti in time-sharing
o degli iniziali esperimenti con ARPAnet. I membri originari di questa comunità
crearono il termine 'hacker'. Gli hacker hanno costruito Internet. Gli hacker
hanno portato il sistema operativo Unix a quello che esso oggi è diventato.
Gli hacker hanno dato l'avvio a Usenet e al lavoro per il World Wide Web.
Se fai parte di questa cultura, se hai contribuito ad essa e altre persone
che ne fanno parte ti conoscono e ti chiamano hacker, allora sei un hacker. La
predisposizione mentale di un hacker non è confinata a quest'unico ambito.
Ci sono persone che applicano la propria attitudine hacker ad altre cose,
come l'elettronica o la musica - e puoi trovarle ai più alti livelli di qualsiasi
scienza o arte. Gli hacker del software riconoscono ovunque queste anime
affini e le possono anche definire 'hacker' - e qualcuno sostiene che la
natura hacker sia realmente indipendente dal particolare mezzo con il quale
l'hacker si esprime. Tuttavia, nel resto di questo documento, noi focalizzeremo
l'attenzione sulle capacità e sugli atteggiamenti degli hacker del software,
e sulle tradizioni di quella cultura condivisa che ha originato il termine
'hacker'. C'è un altro gruppo di persone che ad alta voce si proclamano
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 li chiamano '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
essere capaci di violare la sicurezza informatica non ti fa hacker più di
quanto essere in grado di scassinare macchine ti faccia diventare ingegnere
meccanico. Sfortunatamente, molti giornalisti e scrittori sono stati fuorviati
nell'usare il termine 'hacker' per descrivere i cracker, e questo irrita
infinitamente i veri hacker. La differenza fondamentale è questa: gli hacker costruiscono le cose, i cracker le rompono. Se vuoi diventare un hacker, continua a leggere. Se vuoi diventare un cracker, vai a leggere il newsgroup alt.2600
e sii pronto a passare da cinque a dieci anni in prigione dopo aver scoperto
che non sei così intelligente quanto pensi di essere. E questo è tutto quello
che avevo intenzione di dire riguardo ai cracker. 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 semplicemente un modo
per ottenere l'accettazione nella comunità, non hai colto il punto fondamentale.
Diventare il tipo di persona che crede in queste cose è importante soprattutto
perte stesso - per aiutarti a imparare
e per mantenerti motivato. Come per tutte le arti creative, la maniera più
efficace per diventare un maestro è adottare l'atteggiamento mentale dei
maestri - non solo dal punto di vista intellettuale ma anche da quello emozionale. Come dice il seguente poema Zen moderno, Pertanto, se vuoi essere un hacker, ripeti le seguenti cose finché non credi in loro: Per
essere un hacker, devi sviluppare alcuni di 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 rockstar. Diventare un hacker richiede intelligenza,
pratica, dedizione e duro lavoro. Innanzitutto,
devi imparare a diffidare delle apparenze e a rispettare le competenze di
ogni genere. Gli hacker non perdono tempo con chi si atteggia, ma adorano
la competenza - specialmente quella nell'hacking, ma va bene anche la competenza
in ogni altro campo. Particolarmente apprezzata è la competenza in alcune
attività che solo pochi sanno gestire, e la competenza che richiede una mente
brillante, astuzia e concentrazione è la migliore. Se
veneri la competenza, ti divertirai a svilupparla in te stesso - il duro
lavoro e la dedizione diventeranno una sorta di intenso gioco invece che
una fatica. E ciò è vitale per diventare un hacker. L'attitudine
hacker è vitale, ma le capacità lo sono ancora di più. L'attitudine non è
un sostituto della competenza, e c'è un insieme di capacità di base che devi
avere prima che qualsiasi hacker si sogni di chiamarti tale. Questo
bagaglio di conoscenze cambia lentamente nel tempo, man mano che la tecnologia
crea nuove abilità e ne rende obsolete altre. Per esempio, esso in genere
include la programmazione in linguaggio macchina e solo di recente richiede
l'HTML. Al momento attuale il bagaglio di conoscenze di base prevede quanto
segue: Questa,
ovviamente, è la capacità fondamentale dell'hacker. Se non conosci alcun
linguaggio di programmazione, ti suggerisco di iniziare 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. Dei buoni
manuali sono disponibili sul sito web di Python. Anche
Java è un buon linguaggio per imparare a programmare. È più difficile di
Python, ma produce un codice più veloce rispetto a Python. Lo ritengo un
eccellente secondo linguaggio. Ma devi essere conscio che non raggiungerai
i livelli di abilità di un hacker o più semplicemente di un programmatore
se conosci solamente uno o due linguaggi - hai bisogno di imparare a pensare
ai problemi legati alla programmazione in maniera più generale, indipendentemente
dal linguaggio specifico. Per essere un vero hacker, hai bisogno di arrivare
al punto di poter apprendere un nuovo linguaggio in pochi giorni semplicemente
confrontando il manuale con quanto già sai. Questo significa che dovrai imparare
parecchi linguaggi differenti tra loro. Se vuoi dedicarti seriamente
alla programmazione, dovrai imparare il C, il linguaggio cardine di Unix.
Il C++ è molto vicino al C; se già ne conosci uno, non ti sarà difficile
imparare l'altro. Nessuno di questi due linguaggi, comunque, è adatto per
iniziare ad imparare. E, al momento, quanto più riesci a evitare di programmare
in C tanto più sarai produttivo. Il C è veramente efficiente, e utilizza
al meglio le risorse della macchina. Sfortunatamente, C fornisce questa efficienza
in cambio di una notevole mole di lavoro manuale per la gestione delle risorse
(quali la memoria) ad un basso livello. Tutta la programmazione di basso
livello è complessa e soggetta a bug, e ti richiederà un'enorme quantità
di tempo per il debugging. Con le odierne macchine, così potenti, questo
in genere rappresenta un cattivo compromesso - è più conveniente utilizzare
un linguaggio che impiega in maniera meno efficiente il tempo della macchina
ma che impiega più efficacemente il tuo tempo. Ad esempio, Python. Altri linguaggi di particolare importanza per gli hacker sono
Perl e LISP.
Perl è degno di essere appreso per ragioni pratiche; è largamente utilizzato
per costruire pagine web dinamiche e per l'amministrazione di sistema; così,
anche se non dovrai mai scrivere in Perl, dovresti imparare almeno a leggerlo.
Molte persone usano Perl nella maniera in cui io suggerisco di usare Python,
per evitare di programmare in C quei lavori che non richiedono l'efficienza
della macchina che C fornisce. Avrai bisogno di essere in grado di capire
il loro codice. LISP è da imparare per un altro motivo: 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. (Puoi procurarti
qualche esperienza iniziale con LISP in maniera abbastanza semplice realizzando
e modificando le modalità di editing per l'editor di testo Emacs.) È
meglio, addirittura, imparare tutti questi cinque linguaggi (Python, Java,
C/C++, Perl e LISP). Oltre che essere i linguaggi più importanti per l'hacking,
essi rappresentano approcci molto differenti alla programmazione, e ognuno
ti educherà in maniera preziosa. Non posso fornire qui delle istruzioni
complete su come imparare a programmare - è un compito complesso. Ma posso
dirti che libri e corsi vari non te lo insegnano (molti, forse la maggior parte
dei migliori hacker è autodidatta). Puoi imparare le caratteristiche dei
linguaggi - frammenti di conoscenza - dai libri, ma l'approccio mentale che
trasforma quella conoscenza in reali capacità può essere appreso solo mediante
la pratica e l'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é la tua
scrittura inizia a sviluppare 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 disponibili anche sotto forma di codice sorgente, a disposizione
degli hacker per la lettura e la manipolazione. Tutto ciò è cambiato radicalmente;
software open-source, strumenti per la programmazione e sistemi operativi
(tutti costruiti da hacker) sono oggi largamente disponibili. Questo mi porta
al prossimo argomento... Sto
assumendo che tu abbia un personal computer o che possa averne accesso (questi
giovani d'oggi lo ottengono facilmente :-)). 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 utilizzarlo. Certo, ci sono altri sistemi operativi
al mondo oltre a Unix. Ma sono distribuiti solo in forma di file binari -
non puoi leggerne il codice sorgente e non puoi neppure modificarlo. Imparare
l'hacking su macchine DOS o Windows o MacOS è come cercare di imparare a
ballare mentre si è ingessati. In ambiente OS/X
questo è possibile, ma solo una parte del sistema è open source: sei sempre
sul punto di urtare qualche muro, e devi fare attenzione a non sviluppare
la cattiva abitudine di dipendere dal codice proprietario di Apple. Se ti
concentri su Unix senza distrarti puoi imparare alcune utili cose. Unix
è il sistema operativo di Internet. Sebbene tu possa imparare ad utilizzare
Internet senza conoscere Unix, non puoi essere un hacker di Internet senza
capire Unix. Per questa ragione, la cultura hacker oggi è fortemente centrata
su Unix. (Questo non è sempre stato vero, e alcuni hacker dei tempi andati
non ne sono molto contenti, ma la simbiosi tra Unix e Internet è diventata
forte abbastanza che neppure i muscoli della Microsoft sembrano in grado
di rappresentare una seria minaccia.) Pertanto, procurati un sistema Unix - io amo Linux, ma ci sono altre scelte (è vero, 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 e modificalo. Avrai a disposizione i migliori strumenti
di programmazione (incluso C, LISP, Python e Perl) che qualsiasi sistema
operativo della Microsoft possa mai sognarsi di ospitare, ti divertirai,
acquisirai più conoscenza di quanto saprai rendertene conto, finché non lo
guarderai con gli occhi di un maestro hacker. Per altre informazioni sull'apprendimento di Unix, vedi The
Loginataka. Per mettere le mani su Linux, vedi Where can I get
Linux. Puoi trovare aiuto e risorse relative a Unix BSD presso www.bsd.org. Ho scritto anche un'introduzione alle basi di Unix e Internet. (Nota:
se sei un principiante non ti consiglio di installare Linux o BSD da solo.
Per Linux, trova un Linux User Group nella tua zona e chiedi aiuto a loro
oppure contatta l'Open Projects Network. LISC mantiene dei canali IRC dove puoi ottenere aiuto.) La
maggior parte delle cose che la cultura hacker ha costruito operano in posti
assolutamente non in vista, contribuendo a far funzionare aziende, uffici
e università senza alcun evidente impatto sulla vita dei non-hacker. Il Web
è l'unica, grande eccezione, il gigantesco e splendido giocattolo degli hacker
che, come anche i politici ammettono,
sta cambiando il mondo. Basterebbe questa ragione (e ce ne sarebbero molte
altre, altrettanto buone), per capire che hai bisogno di imparare come funziona
il Web. Questo non significa solamente imparare
ad utilizzare un browser (chiunque può farlo), ma imparare a scrivere in
HTML, il linguaggio di marcatori del Web. Se ancora non sai programmare,
scrivere in HTML ti fornirà delle abitudini mentali che ti aiuteranno ad
imparare. Costruisci quindi una home page. Cerca di migrare ad XHTML, essendo
questo un linguaggio più pulito del classico HTML. (Esistono alcuni buoni
tutorial per principianti sul Web;
eccone uno.) Ma
avere solamente una home page non è sufficiente a fare di te un hacker. Il
Web è pieno di home page. Molte sono inutili, poltiglia senza contenuti,
bella da vedere, certo, ma sempre poltiglia (per maggiori dettagli vedi The HTML Hell
Page). 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... Come
molte culture prive di un'economia di mercato, l'universo hacker orbita attorno
alla reputazione. Tu stai tentando di risolvere interessanti problemi, ma
per quanto interessanti siano, e benché le tue soluzioni siano veramente
il massimo, è un dato di fatto che solo le persone con la tua stessa preparazione
tecnica o superiore sono in grado di apprezzarlo. Coerentemente
con questo, quando giochi il ruolo dell'hacker, impari a fare attenzione
innanzitutto a cosa gli altri hacker pensano delle tue capacità (e questo
perché non sei veramente un hacker finché gli altri hacker non ti chiamano
tale). Questo fatto è messo in ombra dall'immagine dell'hacking come un lavoro
solitario; e anche da un tabù della cultura hacker (oggi gradualmente in
declino ma ancora consistente) contro il voler ammettere che l'ego o l'essere
ben considerati dagli altri contribuiscano ad alimentare le proprie motivazioni. Nello specifico, l'universo hacker è ciò che gli antropologi chiamano cultura del talento.
In essa guadagni posizione sociale e reputazione non dominando altre persone
o grazie alla bellezza o possedendo beni che altri vorrebbero, ma piuttosto
donando cose. In particolare, donando il tuo tempo, la tua creatività e i
risultati della tua abilità. Principalmente, ci sono cinque tipi di cose che puoi fare per essere rispettato dagli altri hacker: Ancora,
per essere un hacker, devi avere la mentalità dell'hacker. Ci sono alcune
cose che puoi fare quando non sei davanti al computer che sembrano essere
utili. Non sono sostituti dell'hacking (niente lo è), ma molti hacker le
fanno e sentono che in qualche modo esiste un legame tra queste e l'essenza
dell'hacking. Quante
più di queste cose già fai, maggiore è la tua predisposizione naturale per
diventare un hacker. Il perché di queste cose in particolare non è del tutto
chiaro, esse sono tuttavia connesse in un intreccio di capacità della parte
destra - e sinistra - del cervello che sembra essere importante; gli hacker
hanno bisogno di essere in grado sia di ragionare in maniera logica, sia,
al momento opportuno, di mantenersi estranei alla logica apparente di un
problema. Lavora così intensamente come quando
ti diverti, e divertiti così intensamente come quando lavori. Per i veri
hacker, i confini tra "gioco", "lavoro", "scienza" e "arte" tendono a scomparire,
o a confondersi in un gioioso momento creativo di alto livello. Inoltre,
non ritenerti soddisfatto di un limitato campo di conoscenze. Sebbene la
maggior parte degli hacker si definiscano programmatori, probabilmente sono
più che competenti in numerose attività correlate: amministrazione di un
sistema, web design e risoluzione dei problemi hardware sono le più comuni.
Un hacker che sia anche un amministratore di sistema, d'altra parte, è indotto
ad essere particolarmente competente nella programmazione di script e nel
web design. Gli hacker non fanno le cose con superficialità; se si impegnano
a fondo in un settore, tendono a diventare molto bravi.
Infine, alcune cose da non fare. L'unica
reputazione che otterrai facendo una qualsiasi di queste cose è quella del
cretino. Gli hackers hanno una memoria di ferro, e potrebbero volerci degli
anni per essere riaccettato. La questione dei
nickname o dei soprannomi richiede un approfondimento. Nascondere la propria
identità dietro un soprannome è una stupida ed infantile caratteristica di
crackers, warez d00dz ed altre forme inferiori di vita. Gli hacker non fanno
questo. Loro sono orgogliosi di ciò che fanno e vogliono che venga associato
al loro vero nome. Pertanto, se usi un soprannome eliminalo. Nella cultura hacker esso ti identificherebbe come un perdente. - Q: Mi insegnerai a fare dell'hacking?
- Q: Come posso iniziare, allora?
- Q: Quando si dovrebbe iniziare? È troppo tardi per me?
- Q: Quanto tempo ci impiegherò ad imparare?
- Q: Visual Basic o C# sono buoni linguaggi per iniziare?
- Q: Potresti aiutarmi a violare un sistema o insegnarmi come fare?
- Q: Come posso ottenere la password per un account di qualcun altro?
- Q: Come posso introdurmi/leggere/sorvegliare la posta di qualcun altro?
- Q: Come posso rubare canali o privilegi su IRC?
- Q: Sono stato crackato. Mi aiuterai a difendermi dagli attacchi futuri?
- Q: Sto avendo problemi con il software di Windows. Mi aiuterai?
- Q: Dove posso trovare dei veri hacker con cui parlare?
- Q: Puoi consigliarmi dei validi libri su argomenti relativi all'hacking?
- Q: Ho bisogno di essere bravo in matematica per diventare un hacker?
- Q: Quale linguaggio dovrei imparare per primo?
- Q: Quale tipo di hardware mi occorre?
- Q: Voglio contribuire. Puoi aiutarmi ad ottenere un problema su cui lavorare?
- Q: Ho bisogno di odiare e combattere Microsoft?
- Q: Ma non è possibile che il software open-source renda i programmatori incapaci di crearsi una posizione?
- Q: Come posso iniziare? Dove posso ottenere uno Unix gratuito?
Q: | Mi insegnerai a fare dell'hacking? | A: | Fin
dalla prima pubblicazione di questo documento, ho ricevuto numerose richieste
ogni settimana (spesso molte al giorno) da persone che mi chiedevano "insegnami
tutto sull'hacking". Sfortunatamento non ho il tempo né l'energia per fare
questo; i miei progetti personali di hacker, e i viaggi in veste di sostenitore
dell'open-source, occupano il 110% del mio tempo. Ma anche se lo facessi,
l'hacking è un'attitudine e una capacità che, fondamentalmente, devi imparare
da solo. Ti accorgerai che nonostante i veri hacker vogliano aiutarti, non
avranno alcun rispetto per te se chiedi loro di essere imboccato di tutto
ciò che sanno. Impara prima alcune cose. Mostra che ci stai provando
e che sei in grado di imparare da solo. Infine rivolgiti agli hacker con
domande specifiche. Se invii una richiesta di aiuto ad un hacker, devi
avere presente due cose. Primo, abbiamo notato che le persone pigre o negligenti
nello scrivere di solito sono anche troppo pigre e negligenti nel pensare
per poter diventare buoni hacker: per questo, abbi cura di usare un linguaggio
appropriato, una grammatica corretta e una buona punteggiatura, in caso contrario
sarai probabilmente ignorato. Secondo, non richiedere una risposta presso
un account diverso da quello dal quale
stai scrivendo; le persone che fanno questo sono di solito dei ladri che
stanno usando account rubati, e non abbiamo alcuna intenzione di aiutarli. | Q: | Come posso iniziare, allora? | A: | La
maniera per te migliore di iniziare probabilmente sarebbe quella di andare
ad un raduno di un LUG (Linux user group). Puoi trovare molti gruppi nella
LDP General Linux
Information Page;
probabilmente ce n'è uno nella tua zona, se possibile, associato con un college
o una università. I membri del LUG probabilmente ti daranno una copia di
Linux se gliela chiedi e di sicuro ti aiuteranno ad installarlo e cominciare
ad usarlo. | Q: | Quando si dovrebbe iniziare? È troppo tardi per me? | A: | Qualsiasi
età alla quale ti senti motivato per partire è una buona età. La maggior
parte delle persone sembrano divenire interessati tra i 15 e i 20 anni, ma
conosco eccezioni in entrambe le direzioni. | Q: | Quanto tempo ci impiegherò ad imparare? | A: | Questo
dipende da quanto talento hai e quanto duramente lavori. La maggior parte
delle persone, se si impegna, è in grado di acquisire capacità del tutto
rispettabili entro 18-24 mesi. Non pensare comunque che finisca lì; se sei
un vero hacker, passerai il resto della tua vita imparando e perfezionando
quanto sai. | Q: | Visual Basic o C# sono buoni linguaggi per iniziare? | A: | No,
perché non sono portabili. Non ci sono versioni open-source di questi linguaggi,
per cui saresti vincolato a quelle sole piattaforme che i produttori decidono
di supportare. Accettare questo tipo di monopolio non è un modo di agire
da hacker. Visual Basic è, in particolar modo, terribile. Il fatto
che sia un linguaggio proprietario della Microsoft è già abbastanza per declassarlo,
e al pari degli altri Basic è un linguaggio progettato in maniera scadente
che ti insegna cattive abitudini di programmazione. Una di queste cattive
abitudini è diventare dipendenti da un unico produttore di librerie, widgets
e tool di sviluppo. In generale, qualsiasi linguaggio che non sia supportato
almeno sotto Linux o qualche Unix BSD, e/o da almeno tre diversi fornitori
di sistemi operativi, è una cosa scadente per imparare l'hacking. | Q: | Potresti aiutarmi a violare un sistema o insegnarmi come fare? | A: | No.
Chiunque possa ancora porre una domanda del genere dopo aver letto questa
FAQ è troppo stupido per essere educato anche se io avessi il tempo per l'insegnamento.
Ogni richiesta di questo tenore che mi arriverà via e-mail, sarà ignorata
o riceverà una replica di estrema durezza. | Q: | Come posso ottenere la password per un account di qualcun altro? | A: | Questo è cracking. Vai via, idiota. | Q: | Come posso introdurmi/leggere/sorvegliare la posta di qualcun altro? | A: | Questo è cracking. Sparisci, deficiente. | Q: | Come posso rubare canali o privilegi su IRC? | A: | Questo è cracking. Vai via, cretino. | Q: | Sono stato crackato. Mi aiuterai a difendermi dagli attacchi futuri? | A: | No.
Tutte le volte che mi è stata posta, questa domanda proveniva da qualche
povero sfigato che utilizzava Microsoft Windows. Non è possibile rendere
realmente sicuri i sistemi Windows contro gli attacchi informatici; semplicemente
perché il codice e l'architettura hanno troppe lacune, che rendono l'operazione
di rendere sicuro Windows simile a cercare di svuotare una nave con un secchio.
La sola prevenzione possibile consiste nel passare a Linux o a qualche altro
sistema operativo progettato quanto meno per offrire sicurezza. | Q: | Sto avendo problemi con il software di Windows. Mi aiuterai? | A: | Si. Vai al prompt del DOS e digita "format c:". Qualunque problema ti sia capitato scomparirà in pochi minuti. | Q: | Dove posso trovare dei veri hacker con cui parlare? | A: | Il
modo migliore è trovare un gruppo di utenti Unix o Linux nella tua zona e
andare ai loro incontri (puoi trovare i link a numerosi elenchi di tali gruppi
sul sito LDP presso il Metalab). (A
questo punto ero solito dire che non troverai alcun vero hacker su IRC, ma
mi sembra di capire che qualcosa stia cambiando. Alcune comunità di hacker,
legate a progetti come GIMP e Perl, ora hanno dei canali IRC.) | Q: | Puoi consigliarmi dei validi libri su argomenti relativi all'hacking? | A: | Io mantengo un
Linux Reading List HOWTO che tu potresti trovare utile. Anche
The Loginataka potrebbe essere interessante. Per un'introduzione al linguaggio Python, consulta il materiale introduttivo sul sito di Python. | Q: | Ho bisogno di essere bravo in matematica per diventare un hacker? | A: | No.
Sebbene tu debba essere capace di pensare in maniera logica e di seguire
i passaggi di un ragionamento esatto, l'hacking usa molto poco la matematica
formale o l'artimetica. In particolare, non avrai bisogno della trigonometria,
del calcolo infinitesimale o dell'analisi matematica (lasciamo questa roba
agli ingegneri elettronici :-)). Alcune basi di matematica finita (compresa
l'algebra Booleana, la teoria degli insiemi finiti, il calcolo combinatorio
e la teoria dei grafi) potrebbero essere di aiuto. | Q: | Quale linguaggio dovrei imparare per primo? | A: | XHTML (il più recente dialetto dell'HTML) se ancora non lo conosci. Ci sono un sacco di enormi, lucenti e scadenti libri sull'HTML in giro e, dolorosamente, pochi buoni libri. Quello che io preferisco è HTML: The Definitive
Guide. Ma HTML non è un linguaggio di programmazione completo. Quando sarai pronto a programmare, ti raccomanderei di iniziare con Python.
Sentirai molte persone raccomandarti Perl, e inoltre Perl è più popolare
di Python, ma è più difficile da imparare e (a mio parere) è progettato meno
bene. Il linguaggio C è davvero importante, ma è anche molto più difficile
sia di Python che di Perl. Non cercare di impararlo per primo. Utenti di Windows, non optate per Visual Basic. Vi insegnerà cattive abitudini e non è portabile all'infuori di Windows. Evitatelo. | Q: | Quale tipo di hardware mi occorre? | A: | Era
convinzione comune che i computer fossero sotto-dimensionati e poveri di
memoria, tanto da imporre dei limiti artificiali ai progressi degli hacker.
Questo ha cessato di essere vero tempo fa; qualsiasi macchina dall'Intel
486DX50 in su è potente abbastanza per lo sviluppo di software, per utilizzare
X e connettersi a Internet, e i dischi più piccoli che puoi comprare oggi
hanno spazio in abbondanza. La cosa importante nello scegliere una
macchina sulla quale imparare è verificare che il suo hardware sia Linux-compatibile
(o BSD-compatibile, se hai scelto di seguire questa strada). Attualmente,
ciò dovrebbe essere vero per la maggior parte delle macchine moderne; il
solo campo che richiede attenzione è rappresentato dai modem; alcune macchine
sono dotate di hardware specifico per Windows che non funziona con Linux. C'è una FAQ sulla compatibilità hardware; la versione più recente è
qui. | Q: | Voglio contribuire. Puoi aiutarmi ad ottenere un problema su cui lavorare? | A: | No,
poiché non conosco le tue capacità e i tuoi interessi. Hai bisogno di essere
auto-motivato altrimenti non ti applicherai, che è la ragione per la quale
quando altre persone scelgono il tuo lavoro non funziona quasi mai. Prova in questo modo. Controlla gli annunci dei progetti che si susseguono su Freshmeat per qualche giorno, quando ne vedi uno che ti fa pensare "Carino! Mi piacerebbe lavorare su questo!", allora sceglilo. | Q: | Ho bisogno di odiare e combattere Microsoft? | A: | No,
non devi. Non che Microsoft non sia detestabile, ma esisteva una cultura
hacker molto prima di Microsoft e ne esisterà ancora una molto dopo che Microsoft
diventerà un ricordo. Ogni energia che tu spendi per odiare Microsoft potrebbe
essere utilizzata in maniera migliore amando il tuo lavoro. Scrivi del buon
codice - questo darà fastidio a sufficienza a Microsoft senza inquinare il
tuo karma. | Q: | Ma non è possibile che il software open-source renda i programmatori incapaci di crearsi una posizione? | A: | Questo
appare improbabile - finora l'industria del software open-source sembra creare
posti di lavoro piuttosto che farne perdere. Se scrivere un programma produce
una rendita economica, il programmatore sarà comunque pagato sia che questo
diventi o meno open-source dopo essere stato realizzato. E non importa quanto
software "free" venga scritto, sembra che ci sia sempre maggiore richiesta
di applicazioni nuove e personalizzate. A tale proposito, ho scritto di più
nelle pagine del sito Open Source. | Q: | Come posso iniziare? Dove posso ottenere uno Unix gratuito? | A: | Da
qualche parte in questa pagina ho incluso i link verso i siti dove puoi trovare
le più utilizzate versioni free di Unix. Per diventare un hacker, hai bisogno
di motivazione, iniziativa e capacità di auto-educazione. Inizia ora ... |
| |