Gracias a Guillermo por sugerir el tema para este post, es algo que si bien yo tengo la suerte de vivir, no sé si se habrá escrito al respecto aquí en el pasado, pero de todas maneras volveré a sacarlo a la luz para poder compartir un poco con ustedes
El arte de ser hacker
Uno de los libros que más me han llamado la atención sobre este tema es sin lugar a dudas Hacking: The Art of Exploitation, de Jon Erickson. Es una joya para todo aquel que quiera sumergirse en este mundo de los verdaderos hackers. Y tal como está en el libro, me permitiré tomar la primer pregunta que explotó mi mente al momento de leerlo.
La esencia de un hacker
Usando cada uno de los siguientes números 1,3,4 y 6 exactamente una vez con cualquiera de las operaciones básicas (sumar,restar,multiplicar,dividir) conseguir un total de 24. Cada número debe ser usado solo una vez y el orden depende de ustedes. Por ejemplo:
3 * ( 4 + 6 ) + 1 = 31
Correcto en sintaxis, pero incorrecto en resultado.
Debo admitir que yo no pude resolver el problema hasta que terminé de leer el libro y vi la solución en la última página. Pero básicamente esta es la esencia de un hacker, poder ver lo que otros no ven.
Los primeros hackers
Un grupo de estudiantes del MIT (Massachusetts Institute of Technology), cerca de los años 50, recibió un donativo de equipos telefónicos, con estas piezas, ellos desarrollaron un sistema que permitía gestionar la línea de comunicación a distancia por medio de llamadas especiales. Ellos hicieron un descubrimiento usando la tecnología que ya existía, pero usándola de formas que pocos o nadie habían visto hasta entonces. Estos fueron los primeros hackers.
Una comunidad de respaldo
Hoy en día existen muchos exámenes de «certificación» para convertirse en «hacker», pero la realidad es que uno no llegará a ser un verdadero hacker hasta que un miembro de la comunidad que ya lo sea esté de acuerdo en llamarnos por ese calificativo. Uno de los caminos para esto es poder aportar algo útil a la comunidad. Muchos hackers son en última instancia programadores de bajo nivel, puesto que conocen de manera profunda cómo funcionan los equipos, a nivel de memoria y sistema operativo; bits en última instancia.
Este conocimiento les permite encontrar vulnerabilidades
Esto es como cuando aprendemos por primera vez matemáticas, cuando eramos niños, necesitabamos de alguien que nos explique y enseñe los símbolos y las formas, y esto sucede en cierta manera con los programadores también, un verdadero hacker es aquel que conoce estos símbolos y formas, y nos señala cuando ve que hemos fallado al usarlos (una vulnerabilidad). Y como el mismo Linus Torvalds (otro gran hacker, en el sentido real de la palabra) las «vulnerabilidades» son solamente bugs. Con esto refiriéndose a que no son más que errores de programación, aunque tal vez con otro tipo de consecuencias a los bugs más comunes.
Los hackers NO necesariamente son delincuentes
Esto es cierto hasta cierto punto, vamos a pensarlo por un momento. Cuando un verdadero hacker desea conocer algo, este pone a prueba hasta el más mínimo detalle del sistema, con todos sus conocimientos le es posible esquivar, o evitar controles de acceso, o modificar órdenes para realizar otras tareas, o incluso convertir el programa en otra cosa. Pero ¿de dónde nace esto?
Motivaciones de un hacker
Estas pueden ir en un gran abanico de posibilidades, algunos (la mayoría de los verdaderos hackers) descubren lo que descubren por un mero placer intelectual, disfrutan el desafío de encontrar estos ‘vacíos’. Otros lo hacen por ego, puesto que desean poder decir que son los mejores en algo. Pero es innegable que alguno o muchos de ellos también estarán ahí por el dinero, puesto que controlar cosas que son incontrolables para la mayoría de personas es ciertamente una herramienta que puede producir mucho dinero. Es este el motivo por el que podemos decir que los hackers no necesariamente son malos, pero ojo con el necesariamente.
Otro motivo importante es que los hackers reales desconfían de la tecnología que usamos todos. Esto es así porque en su conocimiento profundo de sistemas, conocen las limitaciones y vacíos o vulnerabilidades. Es este conocimiento en última instancia el que les permite «sobrepasar» sistemas para poder cumplir con alguna de sus otras motivaciones (intelectual,económica,etc).
3 tipos de hacker hoy en día
Hoy por hoy podemos encontrar 3 conocidos grupos de hackers, distinguidos de manera curiosa por el tipo de sombrero que usan: white, black y grey hat. En pocas palabras y con una analogía que ya hemos tocado con anterioridad, encontramos que los blancos son los buenos, los negros son los malos y los grises están en un punto medio en el que usan sus habilidades para ser o buenos o malos, dependiendo de la situación. Pero hay un último término, mucho más utilizado en círculos de hackers reales.
Script-kiddie
¿Qué es un script-kiddie? Como su nombre lo dice, es un «niño» a la vista de los verdaderos hackers que solo usa scripts para su beneficio. Y aquí hay que hacer una distinción muy grande,
Estar certificado en seguridad informática NO te hace necesariamente un hacker.
Y este es un punto de vista personal, así como un hacker puede no tener certificaciones y seguir siendo un gran hacker. Pero vamos a ver por qué digo esto. Muchos exámenes de certificación/cursos/etc te enseñan los pasos de un pentesting exitoso, te enseñan la teoría de tipos de vulnerabilidad, te introducen en el mundo de la seguridad informática como si fueras versado en el tema. Pero la realidad es que hasta que no hagas un aporte sustancial a la comunidad hacker, esto quiere decir, hasta que no crees una herramienta que demuestre ser útil para los hackers, no eres uno. Así de simple y sencillo.
No importa qué tan bien puedas usar nmap, o zen, o incluso metasploit, mientras no seas capaz de aportar un exploit real, o una herramienta de reconocimiento real, NO eres un hacker, solo un script-kiddie, y no importa que tengas N certificaciones en seguridad, eso no lo va a cambiar.
Los hackers hacen de este un mundo mejor
Gracias a ellos es que tenemos tecnología en continuo movimiento. El kernel es un gran ejemplo de esto, son cientos de mentes muy versadas en el tema, que crean código que sirve no solo a la comunidad hacker, sino a todo el mundo. Pero no solo esto, si no fuera por ellos, la tecnología se estancaría en puntos donde la gente no querría seguir desarrollando, esto porque al encontrar vulnerabilidades, los hackers ayudan a motivar a los desarrolladores a escribir mejor código, y a su vez, este mejor código motiva a los hackers a demostrar que son aún mejores, generando un círculo virtuoso en el medio.
Reflexión final
Bueno, ya voy a cortar, así sin más, porque he visto que me estoy extendiendo y aunque me gustaría explicar un poco sobre cómo encontrar un exploit, eso tendrá que ser para otra ocasión. Yo personalmente me considero un ‘script-kiddie’ todavía, puesto que si bien he encontrado una que otra vulnerabilidad por ahí e incluso he podido asignar CVEs a estas, todavía no he creado mi propio exploit o herramienta para poner a disposición de la comunidad, pero espero que eso cambie en poco tiempo Sin más que agregar, muchas gracias por su tiempo, saludos.
No hay duda que no eres un blogger común, sabes a profundidad lo que hablas.
Espero que llegues a ser un gran Hacker, pero no dejes de compartir estos maravillosos posts.
Muchas gracias Mart por tan amable comentario 🙂 pues esa es la idea, construir un mundo mejor y más seguro. Quiero escribir un pequeño post sobre cómo funcionan realmente los exploits, pero estoy teniendo uno que otro problemin con mi Shutter, ya pronto veré cómo arreglarlo 🙂 saludos
Un hacker no es un delincuente somos apacionados del conocimiento es alguien que disfruta y goza el ver un codigo desetreñarlo y saber como funciona yo desde que estoy en el mundo de la informatica desde que soy desarrollador siempre he sdo un curioso y gracias a internet ahora tengo mas accesso a informacion a la cual solo podia accesar cuando empece en libros exelente aporte
Muy cierto Juan José,
Yo sería maravillosamente feliz de poder dedicarme a la investigación en el futuro, es una lástima que este campo esté tan poco desarrollado en Perú, pero con un poco de suerte ya encontraré algo parecido cuando acabe mis estudios el próximo año 🙂
Saludos
Me puedes ayudar a instalar Subterfuge???
Hola Mike,
no he tenido oportunidad de probarlo, yo voy un poco más al código que a transportes, todavía no he entrado en ese campo. Pero por lo que he podido investigar ha habido unos cuantos problemas con la migración de python2 a python3, una buena forma de practicar sería leer el script de isntalación y ver qué puede estar fallando, saludos 🙂
esta información es mas que parecida igual a la que sale en cisco security-essential… ya no se quien es el real autor de este enunciado..!
Hola hack
¿podrías darme un poco más de información? No estoy seguro de a qué información 🙂 pero seguro hay una explicación más que razonable.
Saludos
Hoy en día ser hacker significa ser una celebridad con mucha fama y dinero, promocionarse y publicitarse en redes sociales, exponerse públicamente en Internet, monopolizar el conocimiento privándolo de los derechos que defienden su libertad y utilizar plataformas y sistemas que no son 100% de código libre. Si cumplen con dichas características ya pueden ser hackers, o de lo contrario son vistos como criminales por proteger y defender su privacidad.
Para mi el termino «Hacker» se convirtió en en un insoportable cliché, yo prefiero el termino de pentester o simplemente aficionado a la seguridad informática.
Sobre lo que comentas de aportar a la comunidad, me parese una cuestión mas de ego o simplemente sea el típico moralfag tratando de obtener una buena reputación, yo tengo a unos buenos amigos que nunca comparten sus vulnerabilidades ni sus herramientas que crean y puedo decir con suma certeza que son unos de los mejores «Hackers» que conozco.
Por otra parte no importa que publiques un buen toolkit para explotar cualquier vulnerabilidad, si no eres conocido lo mas probable es que se recombine y publique por un grupo mas grande, a los entendidos sobre el tema les sonara el caso de el ZZAZZ-forum y su precioso SDBS que aunque son medianamente conocidos este fue diluido entre Metasploit, Nmap y entre otros toolkits y al ser anónimo no se le otorga reconocimiento a los autores, simplemente a un alias, que hasta un lammer se puede poner en su cuenta para «hackear al Facebook».
Por mi parte yo prefiero publicar mis «hallazgos» solo en caso de que haya un bug bounty, ̶q̶u̶e̶ ̶p̶a̶g̶u̶e̶n̶ ̶d̶e̶c̶e̶n̶t̶e̶m̶e̶n̶t̶e̶ y estos ya no sean útiles de no ser así prefiero guardarmelos, respecto a mis scripts no tiene caso publicarlos porque es una horrible maraña palpitante de código mal escrito, que aunque funcione bien, como yo solo me entiendo a mi mismo, soy el único que lo hace funcionar de manera correcta.
El termino «Hacker» ya esta muy gastado.
Estoy de acuerdo. La comunidad no existe ni es tan util como se dice, o como era a principio de los 90.
Hoy en dia el software libre no lo mueve la comunidad, lo mueven las grandes empresas. Detras de cada gran proyecto de software libre estan Red Hat, estaba Novell, esta Microsoft, esta IBM, esta Oracle, o esta alguna corporacion que les sirva como redito, no porque quieran compartir sus horas de trabajo.
Ademas, el software cambio mucho, la realidad de IT cambio mucho, en esos proyectos no es posible casi que yo me siente en el sillon de mi casa, y por mas gurú de C que pueda ser, con el tamaño y complejidad de un software como CloudStack, KVM o PostgreSQL no puedo hacer mas que contemplarlo y estudiarlo, dista mucho de modificarlo de arriba a abajo y adaptarlo 100% a mi necesidad puntual.
Las epocas de que el emuje del software libre lo daba un programador en el galpon de su casa termino hace mas de 20 años, a la vista esta, cuantos años llevamos esperando que Hurd saque una version realmente estable y usable? O cuanto demoro en salir a la luz el famoso debian sin systemd, y que tan usado es realmente?
Lo unico que esta desarrollado casi a pleno por la comunidad son algunos entornos graficos, como KDE, o herramientas simples como algun comando puntual, o alguna cosa esoterica desde la terminal que desde entorno grafico se puede hacer sin problema, pero es en el 99,99% del usuario de linux profesional no le interesa. Yo soy usuario de Linux hace casi 13 años, pero hace 5 que deje de luchar con tener linux en mi terminal, afecta la productividad enormemente. Prefiero no pereder ese tiempo, usar Windows o Mac y ese tiempo perdido usarlo para mi trabajo
Con los hackers pasa lo mismo. Esa aura mistica que envuelve a los hackers se termino, y eso de que «los hackers no son malos» es mentira. La mayoria lo hace por dinero, no lo hacen por filantropia de encontrar errores y ayudar al mundo, ni tampoco lo hacen por hobby. Si les pagan por encontrar vulnerabilidad en un sistema interno, o por hacer mierda a una empresa de la competencia, lo van a hacer sin pestañar. Eso de la bondad y la nobleza tambien termino en los 90.
Hola Gonzalo, gracias por compartir
Entiendo hasta cierto punto tu malestar respecto a la comunidad, para empezar porque aquí en latino américa, es casi inexistente (comparado con otros lugares claro está). Pero me gustaría recalcar un par de temas. Primero, si bien hoy en día muchas empresas han puesto sus ojos en el open source (no software libre por favor) esto no dictamina que tengan bandeja de plata en su código ni nada por el estilo… al menos desde el punto de vista del kernel y git he podido ver cómo sin importar qué tan grande sea tu empresa, si el código que se produce no es bueno, no entra… así de simple. Y si lo pensamos un poco, cómo no van a entrar esas empresas si precisamente el código es de calidad, y ha sido forjado por comunidades con tiempo y dedicación. Y porque les gusta el tema, y se han vuelto expertos con el tiempo. Lo que nos lleva también al hecho de que las mejores empresas al mismo tiempo contratan a los mejores expertos, por lo que ellos pueden trabajar haciendo lo que les gusta.
Y cierto, la cantidad de código producido hoy en día es tan grande que dificilmente podría uno escribir todo desde cero… pero a decir verdad, ni por ser el mayor gurú de C del planeta yo me atrevería a escribir algo totalmente desde cero: primero porque no me alcanzaría la vida para igualar la calidad del otro trabajo, segundo porque tendría que tener el ego muy inflado para creerme mejor que todas esas mentes brillantes que también se dedican a generar código de calidad y revisarlo y probarlo y depurarlo. Y si quieres agregar una necesidad puntual, yo creo que no he conocido un proyecto libre u open que te niegue la iniciativa… claro, si escribes mal código o deseas imponer cambios totalmente radicales que podrían romper muchas cosas antes que agregarlas… es evidente que ese cambio no va a «proceder», pero precisamente esa calidad en las etapas iniciales es la que los ha hecho grandes en primer lugar…
Si ya has dejado de usar Linux desde hace 5 años, pues no deberías considerarte uno 🙂 así de simple. Lo que tu denominas «tiempo perdido», yo lo denominaría «usuario perdido», pero para poner un ejemplo, si yo fuera un gurú en C y me gustase GNU Linux o cualquier proyecto, en lugar de esperar que otros hagan el trabajo por mí, me pondría a agregar aquellas líneas que tanto deseo ver en mi programa para que «funcione» correctamente. Y yo conozco varias personas que trabajan su tiempo «libre» en hacer mejores estos programas, en cuidarlos e investigarlos… pero supongo que eso ya es de cada uno 🙂
Y en cuanto a que los hackers son malos, pues partimos del mismo supuesto, de que los hackers solo se dedican a encontrar vulnerabilidades… si no fuese por grandes hackers como Ken Thompson, Dennis Ritchie, Richard Stallman, Linus Torvalds, Edwin Catmull… la lista podría seguir y seguir, pero si no les suenan ninguno de esos nombres, es porque realmente no han entendido lo que es un hacker en esencia… solo se pegan al «estereotipo» que tan poco les agrada… Y si crees que la nobleza acabó en los 90, pues lamento qué te habrá golpeado tan duro en la vida, pero dejame decirte que todavía hay gente trabajando por hacer de este mundo algo un poco menos peor, en lugar de simplemente evitar el trabajo e ir por la salidad que evita «perder ese tiempo»…
saludos y gracias por comentar,
Hola Kra, gracias por compartir, entiendo tu punto de vista y solo quisiera dar un par de opiniones personales respecto a esto. Pentester y hacker son cosas totalmente distintas, y si pensamos que un hacker solamente se dedica a encontrar vulnerabilidades, pues ya desde ese momento empezamos mal… eso como primer punto, el segundo es similar, puesto que existe mucha gente muy hábil, que aunque sus nombres no estén escritos en letras de oro en las mejores revistas del mundo (eso sí sería mera cuestión de ego) dedican gran parte de su día a proyectos de este tipo. Y lo hacen porque disfrutan hacerlo, sino yo no encontraría motivo suficiente para verlos trabajar un domingo por la noche, o darse unos minutos al día tras una larga jornada laboral…
Y en última instancia, y esto también es opinión bastante personal, al final se tratará del legado que dejes al mundo con tus «hallazgos»… sí, muchas grandes mentes hacen del software lo que és, algunas reconocidas, otras no tanto, pero eso ya depende de cada uno… yo he compartido scripts y código en muchos lugares, y me he sorprendido al ver cuántos errores tenía, y cuántas oportunidades de mejorar eficiencia, tamaño, productividad, lógica, etc… y tal vez eso es algo que a mi personalmente me gusta hacer y muy mío, pero así como existen personas que lo hacen solo por ego y dinero, existimos algunos que lo hacemos porque simplemente nos gusta 🙂 sino muy fácil sería para mí cobrar por cada uno de estos post, donde seguramente no digo nada nuevo, pero he visto gente que cobra más por una cantidad de contenido aún más simple de la que yo puedo compartir en estas líneas.
Brillante!!! Te sigo siempre … no pares hasta la cima!!!
Muchas gracias Ricardo 🙂 me anima mucho a seguir compartiendo cada vez que pueda 😉 Saludos
Según la Tesis Zuse-Fredkin, «el universo es un autómata celular» es decir una Maquina Universal de Turing, ya que en él se llevan a cabo procesos equivalentes a una Maquina Universal de Turing (como maquinas digitales programables – computadoras). Es decir, grosso modo, el universo es capaz de emular cualquier maquina y eso lo convierte en una gigantesca maquina. Ahora bien. Si un científico o ingeniero crean o descubren nuevas funciones o soluciones dentro del universo, y considerando que computacionalmente hablando, este es equivalente (o más pero eso no lo sabemos) a una Maquina Universal de Turing: ¿los ingenieros, científicos, etc. son hackers?.
Hola Mark 🙂 pues el juego de la vida es un tema sumamente interesante, yo he tenido la oportunidad de leer un poco al respecto y al mismo tiempo una vez lo programé para ver cómo se expandía en un pequeño tablero de unos cuantos cientos de pixeles. Pero vamos al tema, la principal diferencia entre un automata celular y la computación general es que el automata celular cuenta con reglas definidas y prescritas, estas se presentan de manera simple en el programa, pero reflejan una realidad mucho mayor y más compleja.
Cabe mencionar que ni los científicos ni los ingenieros crean leyes naturales (los estatutos que regirían a un automata celular) puesto que estos son una mezcla de factores visibles y otros (más importantes incluso) invisibles. Descubrir (en el sentido de develar) una nueva ley en el universo es un acto loable, y que en cierta medida implica poder ver lo que otros no ven, como hemos comentado en la esencia misma del texto, pero hay que resaltar una pequeña y sutil diferencia que puede ayudar a aclarar términos. Los hackers «crean» en el sentido de poder generar nuevas reglas computacionales, basadas en principios matemáticos definidos ya conocidos. Los científicos «descubren» estos principios matemáticos/físicos/etc.
Haciendo estas ligeras salvedades podemos ver que en un sentido un poco más profundo del tema, ambos vendrían a considerarse hackers en el sentido real de la palabra 🙂 puesto que ven cosas que otros dan por obvias, y descubren cosas que escapan a la vista general.
Muy interesante tema 🙂 tal vez se pueda escribir un poco al respecto, aunque eso escapa un poco al mundo Linux para ir un poco más a la Física y Matemática teórica 🙂 Saludos y gracias por compartir
Gracias a ti por la respuesta.
(14-6)x3=24 ¿? Era así la cosa?
14 no cuenta 🙂 tienen que ser exactamente los números 1,3,4 y 6 🙂 osea 1 x 4 – 6 + 3, pero no 63/14 o algo por el estilo. Si deseas la respuesta me avisas 🙂 pero dejaré oportunidad a seguir intentando
Posible resultado
6 / (1 – 3/4) = 24
Me costó 3 días pero acá está:
6÷1-34=24
6/ (1 – 3/4)=24
Amigo el libro que recomendaste esta en ingles nada más ¿verdad?.
Hola Mambell,
Yo lo leí en inglés, pero no sabría decirte si está traducido al español en algún lugar, suerte de todas maneras con eso, Saludos
3*(6+1)+4=24
21+4 es 25 😛
Muy bueno la entrada, sino me equivoco la palabra hacker a sido deformado en el tiempo a través de los medios de comunicación que los pintan como «malos»; es decir son personas curiosos con un conocimiento profundo en temas muy específicos; de alguna manera lo relaciono como que los hacker son igual a los white hat y los cracker los black hat. 🙂
¿Es necesario aportar solo a nivel de software o puede ser también a nivel de hardware? ¿Alguien con un invento nuevo puede ser considerado hacker por la comunidad?