Cómo convertirse en "hacker"
Algunas veces he recibido este calificativo pero como arma
arrojadiza o expresión ofensiva. Para los que prefieren documentarse, aquí
cito literalmente un artículo encontrado en la Internet. Los
derechos intelectuales son de su autor. (Algunos links están rotos y ruego
paciencia para rehacerlos en algún momento libre de mi apretada agenda
de vida).
Copyright © 2001 Eric S. Raymond
Traducción: Miquel Vidal <miquel@sindominio.net>,
a partir de una versión previa realizada por C. Ballardi.
Como editor del Jargon File (el "Archivo de la jerga
hacker") y autor de algunos documentos bien conocidos del mismo tipo, a menudo
recibo emails de entusiastas novatos de la Red preguntando: "¿Cómo puedo
aprender a ser un hacker mágico?" Triste es decir que no parece haber ninguna
FAQ ni documento web que aborde este tema vital, así que aquí va el mío.
Si estás leyendo este documento sin
conexión, la version original en línea la puedes encontrar en http://www.tuxedo.org/~esr/faqs/hacker-howto.html.
Nota: hay una lista de Preguntas Frecuentes al final de este
documento. Por favor léelo —2 veces— antes de mandarme un email con preguntas
acerca de este documento.
Hay disponibles numerosas traducciones
de este documento: búlgaro, catalán, chino
(simplificado), chino (tradicional), danés, neerlandés, francés, alemán, hebreo,
húngaro, indonesio,
italiano japonés, coreano, portugués
(brasileño), portugués (europeo), ruso, y sueco. Ten en cuenta que, como el contenido de este documento
cambia ocasionalmente, dichas traducciones pueden estar desactualizadas en grado
diverso.
El Jargon File contiene un montón de
definiciones del termino "hacker", la mayoría basadas en la afición a lo técnico
y en el placer de resolver problemas sobrepasando los límites. Si deseas saber
cómo convertirte en un hacker, bien,
solo 2 puntos son realmente relevantes.
Existe una comunidad, una cultura
compartida, de programadores expertos y magos de las redes, cuya historia se
remonta décadas atrás a los tiempos de los primeros miniordenadores de tiempo
compartido y los tempranos experimentos con ARPAnet. Los miembros de esta
cultura crearon el término "hacker". Los hackers construyeron Internet. Los
hackers hicieron de Unix el sistema operativo que es hoy día. Los hackers hacen
andar Usenet. Los hackers hacen funcionar la WWW. Si eres parte de esta cultura,
si has contribuido a ella y otras personas saben quién eres y te llaman hacker,
entonces eres un hacker.
Los mentalidad hacker no está confinada
a esta cultura del software. Hay gente que aplica la actitud de hacker a otras
cosas, como la electrónica o la música —de hecho, puedes encontrarla en los más
altos niveles de cualquier ciencia o arte. Los hackers de software reconocen
estos espíritus emparentados en otras partes y pueden llamarlos "hackers"
también— y algunos sostienen que la naturaleza hacker es en realidad
independiente del medio particular en el cual el hacker trabaja. Sin embargo, en
el resto de este documento nos centraremos en las habilidades y actitudes de los
hackers de software, y en las tradiciones de la cultura compartida que originó
el término "hacker".
Existe otro grupo de personas que se
llaman a sí mismos hackers, pero que no lo son. Son personas (generalmente
varones adolescentes) que se divierten irrumpiendo ilegalmente en ordenadores y
haciendo "phreaking" en el sistema teléfonico. Los auténticos hackers tienen un
nombre para esas personas: "crackers", y no quieren saber nada de ellos. Los
auténticos hackers opinan que la mayoría de los crackers son perezosos,
irresponsables y no muy brillantes, y fundamentan su crítica en que ser capaz de
romper la seguridad no le hace a uno un hacker, de la misma manera que ser capaz
de arrancar un coche con un puente en la llave no le convierte en ingeniero de
automotores. Desafortunadamente, muchos periodistas y escritores utilizan
erróneamente la palabra "hacker" para describir a los crackers; esto causa
enorme irritación a los auténticos hackers.
La diferiencia básica es esta: los
hackers construyen cosas; los crackers las destruyen.
Si quieres ser un hacker, continúa
leyendo. Si lo que quieres es ser un cracker, ve directo a leer el alt.2600 y prepárate para soportar la
dura realidad cuando descubras que no eres tan listo como crees. Y eso es todo
lo que voy a decir de los crackers.
La actitud hacker es vital, pero más aún lo
son las habilidades. La actitud no es sustituto para la competencia, y existe un
cierto conjunto de herramientas básicas que debes dominar antes que cualquier
hacker sueñe con llamarse así.
Este conjunto de herramientas cambia
lentamente a lo largo del tiempo a medida que la tecnología crea nuevas
habilidades y descarta otras por obsoletas. Por ejemplo, se incluía la
programación en lenguaje máquina, y no se hablaba de HTML hasta hace poco. Pero
hacia finales de 1996, está claro que se debe incluir lo siguiente:
Esta es, por supuesto, la habilidad
fundamental del hacker. Si no conoces ningún lenguaje de programacion,
recomiendo empezar con Python. Es limpio, bien documentado, y relativamente
fácil para novatos. A pesar de ser un buen primer lenguaje, no es un juguete; es
muy poderoso, flexible y se adapta bien a grandes proyectos. He escrito un
detallado análisis de Python. Hay disponibles
buenos tutoriales en el sitio web de Python.
Java es tambien un buen lenguaje para
iniciarse en la programación. Es más difícil que Python, pero produce código más
rápido que Python. Creo que es un buen segundo lenguaje para aprender.
Pero no creas que podrás ser un hacker,
siquiera un programador, si solo conoces un único lenguaje —debes aprender cómo
pensar en los problemas de programación de una manera general, independiente de
cualquier lenguaje. Para ser un hacker de verdad, precisas llegar al punto en el
cual aprendas un lenguaje nuevo en días, relacionando lo que está en el manual
con lo que ya sabe de antes. Esto significa que debes aprender varios lenguajes
muy diferentes entre sí.
Si deseas meterte seriamente en
programación, tendrás que aprender C, la base de Unix. C++ es muy parecido a C;
si conoces uno, aprender el otro no te resultará difícil. Sin embargo, ninguno
de ellos es bueno para aprender a programar. Y hoy día, cuanto más puedas evitar
programar en C, mas productivo serás.
C es muy eficiente, y trabaja bien con
los recursos de las maquinas. Desafortunadamente, C obtiene su eficiencia a base
de mucho manejo a bajo nivel de los recursos (como la memoria) a mano. Todo esa
programación a bajo nivel es muy compleja y propensa a errores, y tendrás que
dedicar gran cantidad de tiempo a la depuración de los programas. Con las
máquinas de hoy, tan poderosas, esto ya no es tan necesario —es más inteligente
usar un lenguaje que use el tiempo de máquina menos eficientemente, pero en
cambio use tu tiempo más eficientemente. O sea,
Python.
Otros lenguajes de particular
importancia para los hackers son Perl y LISP. Perl vale la pena
aprenderlo por razones prácticas: es amplísimamente usado por páginas web
dinámicas y por sistemas de administración, así que incluso si nunca has escrito
en Perl, deberías aprender a leerlo. Mucha gente usa Perl en la forma que yo
sugiero usar Python, para evitar la programacion en C en trabajos que no
requieran la eficiencia de C. Necesitarás ser capaz de entenderlo.
Vale la pena aprender LISP por una razón
diferente — La profunda e iluminadora experiencia que obtendrás cuando
finalmente lo logres te hará ser mejor programador el resto de tus días, incluso
si no usas LISP mucho. (Puedes obtener fácilmente algo de primera experiencia
con LISP escribiendo y modificando los modos de edición del editor Emacs.)
Lo mejor hoy día es aprender estos cinco
(Python, Java, C/C++, Perl y LISP). Además de ser estos lenguajes los mas
importantes en el hacking, representan muy diversas formas de aproximarse a la
programación, y cada uno te educará de diferentes maneras.
No puedo dar instrucciones completas en
este documento de cómo puedes aprender a programar —es una habilidad compleja.
Pero puedo adelantarte que los libros y los cursos no servirán (muchos, tal vez
la mayoría de los mejores
hackers, son autodidactas). Puedes aprender las características de los lenguajes
—partes de conocimiento— de libros, pero el verdadero conocimiento lo adquieres
en la vida real aplicando lo que ya sabes. Lo que sí servirá es a) leer código y b) escribir código.
El aprendizaje de la programación es
como aprender a escribir bien en lenguaje natural. La mejor manera de aprender
es leer algo de las cosas escritas por los maestros del estilo, luego escribir
algunas cosas tú mismo, leer mucho más, escribir un poco más... y repetir esto
hasta que lo que escribes empieza a mostrar la clase de fuerza y economía que
aprecias en tus modelos.
Antes era difícil encontrar código de
buena calidad para leer, porque había pocos programas de cierta magnitud
disponibles en código fuente de tal manera que los hackers noveles pudieran
meterles mano. Esta situación ha cambiado drásticamente: software de fuente
abierta, herramientas de programación libres y sistemas operativos libres (todo
ello hecho por hackers) están ampliamente disponibles en la actualidad. Lo que
me lleva elegantemente a nuestro siguiente tema...
Asumo que tienes un ordenador personal o
puedes acceder a uno (a estos muchachos de hoy día les resulta tan sencillo
obtenerlo... :-)). El paso con mucho más importante que cualquier novato puede
dar en el camino de adquirir las habilidades de un hacker es obtener una copia
de Linux o alguno de los otros Unices tipo BSD libres, instalarlo en una máquina
personal y hacerlo funcionar.
Sí, es cierto que existen otros sistemas
operativos en el mundo además de Unix. Pero sólo pueden encontrarse en formato
binario —no puedes ni leer el código ni modificarlo—. Si intentas aprender a
hackear en una máquina DOS, Windows o en un MacOS te sentirás como si tratas de
aprender a bailar con el cuerpo escayolado.
Bajo OS/X es posible, pero solo una parte
del del sistema es código de fuente abierta —Es como si estuvieras golpeando un
muro de varias capas de cemento, y aparte tienes que ser cuidadoso para no
desarrollar el mal hábito de depender del código propietario de Apple. Si te
concentras en Unix bajo el capó, puedes aprender cosas mas útiles.
Unix es el sistema operativo de Internet.
Si bien puedes aprender a usar Internet sin saber Unix, nunca podrás ser un
hacker en Internet sin conocerlo. Por este motivo, la cultura hacker actual está
muy centrada en Unix. (Esto no fue siempre así, e incluso la situación le
desagrada a algunos de los hackers más veteranos, pero la simbiosis entre Unix e
Internet es tan fuerte que hasta la energía de Microsoft parece incapaz de
hacerle mella.)
Así que consigue un Unix —personalmente me
gusta Linux, pero hay otros (y sí, puedes hacer funcionar Linux y
DOS/Windows en la misma máquina). Apréndelo. Hazlo funcionar. Métele mano,
anímate. Comunícate en Internet mediante él. Lee el código. Modifícalo. En ese
sistema se incluyen las mejores herramientas de programación (que incluyen C,
Lisp y Perl) de lo que cualquier sistema operativo de Microsoft ni siquiera
podría soñar, además te divertirás y te sumergirás en un caudal de conocimientos
de tal magnitud que nunca hubieras imaginado, hasta que en cierto momento,
mirando hacia atrás, te darás cuenta que ya eres un maestro hacker
consumado.
Si quieres saber más acerca del aprendizaje
de Unix, ve a The Loginataka.
Si quieres meter tus manos en Linux,
echa un ojo en Dónde puedo obtener Linux.
Puedes encontrar ayuda y recursos de BSD
Unix en http://www.bsd.org/.
He escrito sobre los fundamentos básicos de Unix
y de Internet.
(Nota: No recomiendo instalar ni Linux
ni BSD a solas si eres novato. Para Linux, encuentra un grupo de usuarios local
de Linux y pide ayuda; o contáctalo mediante Open Projects Network. LISC
mantiene canales IRC donde puedes obtener
ayuda.)
La mayoría de las cosas que ha construido
la cultura hacker funcionan fuera de la vista del gran público, ayudando en el
funcionamiento de fábricas, oficinas y universidades, y carecen de un impacto
obvio en la vida de quienes no son hackers. La Web es la única gran excepción, y
es tan enorme y brillante este juguete de hackers que incluso los políticos admiten que está
cambiando el mundo. Sólo por esta razón (y hay un montón de otras igualmente
buenas), debes aprender a trabajar en la Web.
No me estoy refiriendo a aprender a manejar
un navegador (cualquiera puede hacer eso), sino que debes aprender a escribir
HTML, el lenguaje de marcas de la Web. Si aún no sabes cómo programar, el
aprendizaje que implica la escritura de HTML te enseñará algunos de los hábitos
mentales que te ayudarán luego con la programación. Así que hazte una página
personal. Prueba con XHTML, que es más claro que el clasico HTML. (Existen
buenos tutoriales para principiantes en la Web; aquí hay uno.)
Pero no vayas a creer que por tener una
página personal estás más cerca de ser un hacker. La Web está llena de páginas
personales. La mayoría de ellas son banales, basura sin contenido —basura muy
vistosa, pero basura al fin (si deseas saber más sobre este tema, mira en The HTML Hell Page).
Para que valga la pena, tu página debe
tener contenido —debe ser interesante
y/o útil para los otros hackers. Y esto nos lleva al próximo tema...
De manera similar a muchas otras culturas
sin economía monetaria, el hackerismo se basa en la reputación. Estás intentando
resolver problemas interesantes, pero cuan interesantes y buenas son las
soluciones que encuentres es algo que sólo tus iguales o superiores técnicamente
hablando serán capaces de juzgar.
De acuerdo a esto, cuando juegas el juego
del hacker, aprendes a puntuarte principalmente en función de lo que los otros
hackers piensan acerca de tus habilidades (este es el motivo por el cual no
puedes ser un hacker de verdad hasta que otros hackers te denominen así de
manera consistente). Este hecho está empañado por la imagen del hacking como
trabajo solitario; también por un tabú cultural hacker (que ahora está
decayendo, pero aún es fuerte) que impide que se admita el ego o la validación
externa como elementos involucrados en la propia motivación.
Específicamente, el hackerismo es lo que
los antropólogos denominan una cultura del don. Adquieres
estatus y reputación no mediante la dominación de las otras personas, ni por ser
hermoso/a, ni por tener cosas que las otras personas desean, sino por donar
cosas. Específicamente, al donar tu tiempo, tu creatividad, y el resultado de tu
destreza.
Existen básicamente cinco clases de cosas
que puedes hacer para obtener el respeto de los hackers:
Lo primero (lo más central y más
tradicional) es escribir programas que los otros hackers opinen que son
divertidos o útiles, y donar los fuentes del programa a la cultura hacker para
que sean utilizados.
(Solíamos llamarlo free software
pero esto confundía a demasiada gente, que no estaban seguros de qué se suponía
que significaba free [en inglés, el término
free es polisémico y puede significar "libre" o "gratis". En castellano
no se da tal ambigüedad por lo que la expresión "software libre" resulta
perfectamente adecuada — N. del T.]. La mayoría de nosotros, al menos un ratio
2:1 de acuerdo con los análisis del contenido de la web, ahora preferimos el
término software "open source" [En castellano, sin
embargo, se sigue usando habitualmente "software libre", aunque en esta versión
hemos respetado, como es natural, el cambio en la terminología de Eric, que ha
sustituido " free software" por open source en todos sus documentos, y lo
hemos traducido por "código de fuente abierta" — N. del T.]).
Los más reverenciados semidioses del
hackerismo son las personas que han escrito programas de gran magnitud, con
grandes capacidades que satisfacen necesidades de largo alcance, y los donan, de
tal manera que cualquiera pueda utilizarlos.
También son reconocidas aquellas personas
que depuran los errores del software de fuente abierta. En este mundo
imperfecto, inevitablemente pasaremos la mayoría de nuestro tiempo de desarrollo
en la fase de depuración. Este es el motivo por el cual los desarrolladores de
software de fuente abierta piensan que un buen "beta-tester" (probador de
versiones beta, alguien que sabe cómo describir claramente los síntomas, que
puede localizar correctamente los problemas, que tolera los errores en una
entrega apurada, y que está dispuesto a aplicar unas cuantas rutinas sencillas
de diagnóstico) vale su peso en oro. Aun contando con un solo probador de estos,
puede hacerse que el proceso de depuración pase de ser una prolongada pesadilla
que lo deja a uno exhausto a ser sólo una saludable molestia.
Si eres novato, trata de encontrar un
programa en desarrollo en el cual estés interesado, y conviértete en un buen
probador beta. Hay una progresión natural desde ayudar a probar programas, luego
ayudar a depurarlos y más adelante ayudar a modificarlos. Aprenderás un montón
de esa manera, y la gente te ayudará en el futuro.
Contrariamente al mito popular, no tienes
que ser un nerd [literalmente "empollón", pero en la jerga hacker
se ha asumido de forma irónica, perdiendo el matiz originalmente despectivo, y
ha acabado usándose como sinónimo de alguien que se preocupa por las cosas
importantes y no se entretiene en trivialidades. — N. del T.] para ser hacker.
Ayuda, sin embargo, y muchos hackers son nerds. Al ser un marginado social, el
nerd puede mantenerse concentrado en las cosas realmente importantes, como
pensar y hackear.
Por esta razón, muchos hackers han adoptado
la etiqueta "nerd" e incluso utilizan el desagradable término geek como
insignia de orgullo —es su forma de declarar su propia independencia de las
expectativas sociales normales. Si deseas ver una discusión más extensa,
dirígete a The Geek Page.
Si puedes concentrarte lo suficiente en
el hacking para ser bueno en ello, y encima disfrutar de vida personal, está
bien. Es muchísimo más fácil ahora que cuando yo era un novato en los años
setenta; la cultura dominante ve con mejores ojos a los tecno-nerds en la
actualidad. Hay además un número creciente de personas que se dan cuenta de que
con frecuencia los hackers son un material de alta calidad para
novio/novia/marido/esposa.
Si te siente atraído por la actividad
hacker porque no tienes vida propia, está bien también —al menos no tendrá
problemas de concentración—. A lo mejor más adelante puedes conseguir una vida
propia como el resto de la gente.
De nuevo, para ser un hacker, debes
desarrollar la mentalidad del hacker. Existen algunas cosas que puedes hacer
cuando estás sin ordenador, que pueden ayudarte. Estas cosas no son sustituto
para la actividad propia de hackear (nada lo es) pero muchos hackers las
realizan, y sienten que de alguna manera primitiva se conectan con la esencia de
la actividad de hackear.
Cuantas más cosas de estas hayas hecho, es
más probable que poseas material natural para hacker. Por qué estas cosas en
particular y no otras es algo que no está completamente claro, pero todas están
conectadas con un mezcla de tu parte izquierda y derecha de las habilidades de
tu cerebro, lo que parece ser una cosa importante; los hackers ser capaces tanto
de razonamiento lógico como de dar pasos al margen de lógica aparente de un
problema en un momento dado.
Trabaja tan intensamente como juegas y
juega tan intensamente como trabajas. Para los verdaderos hackers, la
diferiencia entre "juego", "trabajo", "ciencia" y "arte" tienden a desaparecer,
o mezclarse en un alto nivel de creatividad. Además, no te des por satisfecho
con tener un estrecho rango de habilidades. Aunque la mayoría de los hackers se
autodescriben como programadores, suelen ser más que competentes en actividades
diversas —administración de sistemas, diseño web y arreglar problemas de
hardware son algo común—. Un hacker que, por un lado, es administrador de
sistemas, por el otro es también habilidoso en programación de scripts y diseño
de webs. Los hackers no hacen las cosas a medias; si se meten de lleno en un
tema, tienden a ser muy buenos en él.
Finalmente, unas cuantas cosas que no debes hacer:
La única reputación que te ganarás con esas
costumbres es la de tonto. Los hackers tienen una gran memoria —puede costar
años hasta que te acepten de nuevo después de estas cosas.
El problema con los apodos virtuales merece
alguna explicación. Ocultar tu identidad detrás de un apodo es un comportamiento
infantil y tonto que es característico de los crackers, warez d00dz, y otras
formas inferiores de vida. Los hackers no hacen eso; ellos están orgullosos de
lo que que hacen y lo quieren asociado con sus nombres reales . Así que si tienes un
nombre de estos, abandónalo. En la cultura hacker solo servirán para marcarte
como un perdedor.
| P: |
¿Me enseñarás a hackear? |
| R: |
Desde la primera publicación de
esta página, me llegan varias peticiones por semana (a menudo varios por
día) de gente que quiere que le "enseñe todo sobre hackeo".
Desafortunadamente, no tengo ni el tiempo ni la energía para hacer eso;
mis propios proyectos de hackeo consumen el 110% de mi tiempo.
Aun si pudiera hacerlo, el hackeo
es una actitud y habilidad que debes aprender por ti mismo. Te darás
cuenta de que los hackers de verdad quieren ayudarte, pero no te
respetarán si comienzas a rogarles que te alimenten en la boca con todo lo
que saben.
Aprende unas cuantas cosas
primero. Muéstrales que lo estás intentando, que eres capaz de aprender
por tu cuenta. Entonces dirígete a los hackers que conozcas pero ya con
preguntas específicas.
Si escribes un email a un hacker
pidiéndole consejo, hay 2 cosas que debes saber antes. Primero, hemos
encontrado que la gente que es perezosa o descuidada en sus escritos
suelen ser demasiado perezosos o descuidados para pensar en ser buenos
hackers —Así que ten cuidado en deletrear correctamente, y usar buena
gramática y puntuación. En caso contrario, probablemente serás ignorado.
En segundo lugar, no te atrevas a pedir una
respuesta con una cuenta de ISP diferente a la cuenta desde la que estás
enviando; nos encontramos gente que lo hacen que suelen ser timadores
usando cuentas robadas, y no tenemos interes en ayudar o apoyar el
robo. |
| P: |
¿Cómo puedo iniciarme
entonces? |
| R: |
La mejor manera para empezar
probablemente es pasarte por un LUG ("Linux User Group", un grupo de
usuarios de Linux local). Puedes encontrar grupos por ejemplo en la LDP General Linux Information
Page; probablemente haya uno cerca de tu localidad, asociado con un
colegio o universidad. Los miembros de los LUG probablemente te darán un
Linux si lo pides, y ciertamente te ayudarán a instalarlo e
iniciarte. |
| P: |
¿Cuándo conviene empezar? ¿Es
demasiado tarde para aprender? |
| R: |
Cualquier edad en la cual estés
motivado para iniciarte es buena edad. La mayoría de la gente parece
interesarse entre los 15 y 20 años, pero conozco excepciones en ambas
direcciones. |
| P: |
¿Cuánto tiempo me costará aprender
a hackear? |
| R: |
Esto depende de tu talento y lo
duro que trabajes. La mayoría de la gente puede adquirir un nivel de
habilidad respetable a los dieciocho meses o dos años, si se concentran.
Sin embargo, no creas que has finalizado ahí; si eres un hacker de verdad,
te pasarás el resto de tu vida aprendiendo y perfecionando tu
material. |
| P: |
¿Son Visual Basic o C# buenos
lenguajes para empezar? |
| R: |
No, porque no son portables. No
hay ninguna implementación libre de esos lenguajes, así que estarías
cerrándote solo a las plataformas a las que el fabricante decide dar
soporte. Aceptar esta situacion de monopolio no es el camino del hacker.
Visual Basic es especialmente
tremendo. El hecho de que sea un lenguaje propiedad de Microsoft es
suficiente para descalificarlo, y como otras versiones de Basic tiene un
diseño pobre y te enseñará malos hábitos de programacion.
Uno de esos malos hábitos es
hacerte dependiente de las bibliotecas, módulos y herramientas de
desarrollo procedentes de un solo fabricante. En general, cualquier
lenguaje que no esté soportado bajo Linux o un de los BSDs, y/o cuando
menos pueda ser ejecutado en 3 diferentes sistemas operativos, es un
lenguaje deficiente para aprender a hackear. |
| P: |
¿Me ayudarías a crackear un
sistema, o me enseñarías cómo hacerlo? |
| R: |
No. Alguien que pregunta esto
después de leer este documento es demasiado estúpido para poder ser
instruido, incluso aunque tuviese tiempo para ello. Cualquier correo con
este tipo de preguntas lo ignoraré o responderé con extrema
rudeza. |
| P: |
¿Cómo puedo obtener la contraseña
de la cuenta de otra persona? |
| R: |
Eso es cracking. Desaparece,
idiota. |
| P: |
¿Cómo puedo
acceder/leer/monitorizar el correo de otra persona? |
| A: |
Eso es cracking. Piérdete,
imbécil. |
| P: |
¿Cómo puedo robar privilegios de
operador de canal en el IRC? |
| A: |
Eso es cracking. Fuera de aquí,
cretino. |
| P: |
He sido crackeado. ¿Me ayudarás a
defenderme de futuros ataques? |
| R: |
No. Todo el tiempo me han estado
preguntando eso, se debe a la deficiente programación de Microsoft
Windows. No es posible proteger a Windows de forma efectiva contra ataques
de crackers; sencillamente, su código y su arquitectura tienen demasiados
defectos. La unica prevención realizable consiste en cambiar a Linux o a
algún otro sistema operativo que por lo menos esté diseñado para poder ser
protegido. |
| P: |
Estoy teniendo problemas con mi
Windows, ¿me ayudarás? |
| R: |
Sí. Ve a una línea de comandos de
DOS y teclea: 'format c:'. Cualquier problema que estés
experimentando, desaparecerá en pocos minutos. |
| P: |
¿Dónde puedo encontrar hackers de
verdad para charlar con ellos? |
| R: |
La mejor manera es encontrar un
grupo de usuarios local de Unix or Linux e ir a sus reuniones (puedes
encontrar links a varias listas de grupos de usuarios en el sitio de LDP en Metalab).
(Antes solía decir que no
encontrarías hackers reales en el IRC, pero estoy dándome cuenta que eso
está cambiando. Al parecer algunas comunidades de hackers reales,
vinculadas a cosas como GIMP y Perl, tienen canales de IRC
ahora.) |
| P: |
¿Me puedes recomendar libros
útiles sobre hacking y temas relacionados? |
| R: |
Mantengo un Linux Reading List
HOWTO que puedes encontrarlo útil. El Loginataka podría ser también
interesante.
Para una introducción a Python,
echa un vistazo a los materiales
introductorios en el sitio web de Python. |
| P: |
¿Necesito ser bueno en matemáticas
para llegar a ser un hacker? |
| R: |
No. Aunque necesitas ser capaz de
pensar en términos lógicos y seguir cadenas de razonamiento exacto, el
hacking usa muy poca matemática formal o aritmética.
En particular, no necesitarás
trigonometría, cálculo o análisis (eso se lo dejamos a los ingenieros
electricos :-)). Algo de matemáticas finitas (incluyendo álgebra booleana,
teoría de conjuntos finitos, combinatoria y teoría de grafos) puede ser
útil. |
| P: |
¿Qué lenguaje debería aprender
primero? |
| R: |
XHTML (el dialecto más reciente de
HTML) si todavía no lo sabes. Existe muchos muy malos libros de HTML
afuera, y desafortunadamente solo algunos buenos. El que a mí me parece el
mejor es HTML: The Definitive
Guide.
Pero HTML no es un lenguaje de
programación completo. Cuando estés listo para empezar a programar,
recomendaría empezar con Python. Escucharás a mucha gente
que te recomiende Perl, y Perl es aún más popular que Python, pero es mas
difícil de aprender y (en mi opinión) peor diseñado.
C es realmente importante, pero es
tambien mucho mas difícil que Python y Perl. No intentes aprenderlo
primero.
Usuarios de Windows: no os conforméis con
Visual Basic. Os enseñará malos hábitos, y no es portable fuera de
Windows. Evitadlo. |
| P: |
¿Qué clase de hardware
necesito? |
| R: |
Solía pasar que los ordenadores
personales tenían pocas prestaciones y poca memoria, lo cual impuso
límites artificiales en el proceso de aprendizaje de un hacker. Esto dejó
de ser cierto hace algún tiempo; cualquier máquina de Intel 486DX50 o
superior es lo suficientemente poderosa para el el trabajo de desarrollo,
X y conexión a Internet, y los disquetes más pequeños que puedes comprar
hoy son suficientes.
Lo importante al escoger una
máquina para aprender es si su hardware es compatible con Linux (o
compatible con BSD). Esto vale también para las máquinas más modernas. La
única cuestión complicada son los modems: algunas máquinas tiene hardware
específico para Windows que no funciona con Linux. [Hay un sitio web
llamado linmodems.org donde podrás
determinar si, pese a ser un "winmodem", puedes conseguir que tu
dispositivo funcione bajo GNU/Linux — N. del T.]
Hay una FAQ acerca de la
compatibilidad de hardware; la última versión está aquí. |
| P:. |
Deseo contribuir. ¿Puedes ayudarme
a escoger un tema en el que trabajar? |
| R:. |
No, porque desconozco cuáles son
tus talentos o intereses. Debes estar automotivado o no te dedicarás
seriamente a ello, por eso casi nunca funciona que otras personas elijan
por ti.
Prueba esto. Mira los anuncios de
Freshmeat durante algunos
días. Cuando veas uno que te haga pensar: "¡Guay, me gustaría trabajar en
eso!", únete. |
| P: |
¿Necesito odiar y golpear a
Microsoft? |
| R: |
No, no hace falta. Y no porque
Microsoft no sea asqueroso, sino porque la cultura hacker existía mucho
antes que Microsoft y seguirá existiendo aún largo tiempo después de que
Microsoft sea historia. Cualquier energía que gastes odiando a Microsoft
sería mejor empleada entusiasmándote con tus habilidades. Escribe buen
código —esto será un golpe más duro para Microsoft y no requiere que
ensucies tu karma. |
| P: |
¿Pero no imposibilitará el
software de fuenta abierta ganarse la vida a los programadores? |
| R: |
Esto parece improbable —hasta
ahora la industria de software de fuente abierta parece estar creando
empleos más que quitándolos. Si tener un programa escrito en una economía
de red gana sobre no tenerlo escrito, un programador será remunerado
independientemente de si el programa va a ser código abierto después de
realizado. Y no importa cuánto software "gratis" tienes escrito, parece
que siempre habrá más demanda para aplicaciones nuevas y especializadas.
He escrito más sobre esto en las páginas de Open Source. |
| P: |
P: ¿Cómo puedo iniciarme? ¿Dónde
puedo obtener un Unix libre? |
| R: |
En otro lugar de esta página
incluyo punteros a lugares donde puedes obtener el Unix libre más usado.
Para ser un hacker necesitas motivación y la iniciativa y la habilidad
para educarte por ti mismo. Empieza
ahora... |
***
|