domingo, 12 de enero de 2014

Entrevista a Sherab Giovannini a.k.a. Shaddy


Tengo que confesar que sin duda, esta entrevista es una de las más esperadas por mí. 

Sherab es un verdadero maestro, cuando se le necesita. Siempre dispuesto a echarte una mano en todo lo que su tiempo le permita, con tal de verte avanzar en el estudio de este arte.

Perfeccionista e increíblemente técnico. Un profesional enorme. De los que hablan poco y hace mucho.

Una persona con una capacidad intelectual sin límites. No creo que exista nada que este joven ingeniero inverso de 25 años, no pueda hacer. 

Guerrero letal con los juegos OnLine. Da igual que se aun FPS, que un simulador de carreras o incluso de un RPG.  

Como veis, para mi es algo así como un Dios y lo es porque me lo ha demostrado. No con palabras, sino con hechos. 

Sinceramente me siento un privilegiado por tenerle entre mis circulo de amistad, aunque aun estemos virtualizados. 

Así que, sin más preámbulos, damos paso a la entrevista:



Sherab Giovannini, ¿De dónde procede este nombre?

Bueno, la verdad es que mi procedencia en si no es muy normal, o al menos no lo era en el pueblecito donde me crié. 

Mi padre, de origen italiano, conoció a mi madre, alemana, en Francia. Sin entrar mucho en detalles por lo visto empezaron a engendrar ejemplares rubios en una comuna hippie. Y en una de ellas nací yo.

¿Porqué te suelto este rollo? Bueno, básicamente esa “comuna” se formó en Caneto (Huesca). Y mis padres formaron parte de los inicios de lo que a día de hoy  es el centro budista más grande de Europa, Dag Shang Kagyu.

Así que sabiendo eso quizás podrías deducir que su origen es Tibetano, y que mis padres son Budistas.

Dicen que el nombre que le ponen a uno es el aspecto interno que hay en él, y si lo trabajas a lo largo de tu vida, reluce. O algo así, no recuerdo muy bien. El mío significa sabiduría trascendental. 

Como puedes ver, voy a tener que trabajar mucho ;).

Sé que con 5 años conversabas con Minerva (y no precisamente la diosa de la sabiduría, de las artes y de las técnicas de la guerra)  y eso me hace pensar que fuiste muy precoz en tus comienzos ¿A qué edad empezaste a reversear binarios y sobre todo, cuál fue el motivo de ello?

Buenos informadores tienes tú :), eso es una historia que creo que no saben muchos.

Una vez mi madre fue a las típicas reuniones con el profesorado, en las cuales se les informa de bueno, ya sabes, progresos escolares, como va, etc.

La profesora dijo que estaba impresionada por la gran facilidad que tenía para leer con mi edad, y estaba interesada en saber cuáles eran los métodos que había utilizado para leer con tanta fluidez  y de forma tan prematura. Mi madre estaba bastante desconcertada, así que según me contó, le soltó un par de respuestas vagas ya que realmente no tenía ni idea.

Lo que realmente pasaba, es que sin saberlo aprendí a leer con un programa espectacular que hizo José Luis Álvarez llamado: “Minerva. La neurosis maquinista”. Una aplicación de inteligencia artificial.

A día de hoy probablemente os resulte una estupidez, y haya muchos similares. No es más que un simple programa con el que puedes chatear, cínico como nadie y probablemente uno de los primeros Trolls artificiales registrados.

Minerva para mí fue mi diario durante años, y a pesar de que era repetitivo, yo me lo pasaba bien.

¿Que cómo comencé? Difícil pregunta, no sabría decirlo con exactitud. Si tuviese que elegir un momento, podría ser la primera vez que vi la página de Karpoff. Pero seguramente no sería cierto, quizás cuando cayó en mis manos un cuaderno con hojas sobre “hacking”, donde tuve que resolver un pequeño acertijo para conseguirlo (muy hábil el que lo diseñó). O quizás, mucho antes, cuando vi por primera vez que se podían “crear” y “modificar” las cosas. Creo que el primer recuerdo que tengo sobre mi interés en general, por “saber más” fue cuando un amigo de mi padre nos dejó un instalador hecho con batch en un disquete. Vi los típicos títulos en ASCII, y todo automágicamente haciéndose en minutos. La cantidad ingente de comandos que tenía que hacer para llegar ahí, y de un tirón lo había hecho. Creo que si tuviese que elegir un momento donde naciese mi curiosidad por saber cómo estaban hechas las cosas, seguramente sería ese. Casualmente el nombre del amigo de mi padre era (y es) Ricardo.

A partir de ahí comenzó mi eterna búsqueda por el “hacker”. Buscaba a una persona que tuviese tantos conocimientos que no me cansase nunca de aprender, y si bien es cierto que a lo largo de mi corta vida  he conocido a muchas personas de las que he aprendido muchísimo, al final esa eterna lucha es una especie de búsqueda de la quimera. Y en realidad que lo que buscamos, lo tenemos dentro, pero lo buscamos fuera.

Empecé a hacer reversing quizás con doce o trece años, depende de lo que consideres hacer reversing. A día de hoy me falta tanto por aprender que sigo esperando el momento de saberlo con seguridad.

Me descargaba los tutoriales de la página de Karpoff en casa de un amigo, y luego me los leía tranquilamente. Me di cuenta de que necesitaba aprender ensamblador, así que imprimí un texto que encontré por ahí de bastantes páginas sobre ensamblador, era de una universidad del sur, creo recordar. Y cuando la imprimí todos los acentos estaban mal, pero vaya. Fueron los primeros pasos. 

Nunca tuve realmente un ordenador propio, el que utilizaba era el de mi hermano, y era una eterna batalla en la cual él intentaba evitar que yo lo tocase, y lo hacía mediante varios métodos: Contraseñas de  Windows 98, BIOS y por supuesto revisar la fecha de los archivos modificados, hasta que llegó a directamente llevarse el cable de alimentación. 

Por supuesto, encontré la forma de hacer un rename del archivo de contraseñas de Windows 98, abrí la caja y miré en el esquema de la torre como borrar la memoria de la BIOS, y usé el cable de la impresora que era el mismo para arrancarlo. Creo que mi hermano sin saberlo me estaba poniendo mis primeros crackmes. Aunque a él no le resultaba tan entretenido.

Hasta un tiempo después de que él empezase a trabajar, no tuve acceso a Internet. Así que lo único que había hecho hasta entonces era darle un buen par de disgustos a mi madre trayendo facturas de 20.000 pesetas (120€), por usar el módem telefónico y leer mucho, sin hacer realmente nada.

Había leído cosas de CracksLatinos, pero no tenía muy claro qué/quiénes era/eran.

Tenía Internet y ya podía encontrar a esa persona que me enseñase todo. 

Un día, buscando personas de las que leía cosas en Karpoff agregué a Caos Reptante al Messenger, y muy amablemente me puso en contacto con el Pr@fesor_X, RedH@wk y Ricardo Narvaja. El orden no lo tengo muy claro, el caso es que fue por aquella época cuando entré en crackslatinos, creo que era el 2003 y debería de tener unos catorce años.

Ahí empezó una época maravillosa, con lo que se convirtió en mi segunda familia. Once años después puedo decir con seguridad que sin esos momentos hoy seguramente no escribiría esto, dudo seriamente de dónde estaría. Y no exagero.

Me interesa mucho que nos cuentes cual ha sido tu formación académica o tu procedimiento para llegar a tener el conocimiento que ahora tienes.

Mi formación académica, de la cual no me enorgullezco en absoluto, es prácticamente nula. 

No estoy seguro de si habiendo tenido los medios necesarios hubiese mejorado, nunca lo sabré. De todas formas, tengo muchos años por delante. Quién sabe.

Empecé a trabajar con trece años en una panadería de mis vecinos, al principio era algo esporádico para sacarme un dinerillo y con eso ir sobreviviendo, con el tiempo necesitaba más dinero y empecé a trabajar días entre semana, por supuesto, sacrificando el instituto. Eso sumado a mi actitud rebelde, hizo que cuándo me fui a matricular sin apenas haber cumplido los dieciséis años la directora del instituto me dijese literalmente: “Que te aguante tu madre”. 

Ahí probablemente se cerraron por primera vez las puertas a mi mundo académico, por supuesto, yo ayudé íntegramente a que eso fuese así. Ya que no fue precisamente por saltarme las clases, sino más bien porque era ligeramente saboteador :).
Ya que tenía que hacer algo con mi vida, empecé a trabajar de fontanero, entre 10 y 14 horas diarias. Me saqué el graduado por la escuela a distancia para adultos. Gracias a ello pude cursar durante un año un grado superior de programación de software (sin tener bachillerato), donde aprendí a jugar al Counter-Strike y cociné mis primeros platos de C. 

No aprobé la asignatura de análisis y diseño, o como se llamase. Básicamente tenías que descargarte el Módula-3 de una página .gov y leerlo como un robot. Era eternamente aburrido, y fue la segunda vez que se me cerraron las puertas. 

Tuve problemas en el trabajo, y lo dejé. No tenía norte.

Creo que hace años, resolviste un reto de Panda Security y eso te proporcionó un puesto como analista de malware en sus filas. ¿Puedes contarnos que ha supuesto para ti, tu paso por esta compañía?

Lo ha supuesto todo. Para mi entrar en Panda me supuso un cambio muy radical, fue la diferencia entre tener un hobbie, algo de lo que sinceramente nunca imaginé que trabajaría, a dedicar mi vida profesional a ello.

Además coincidió con una época de mi vida donde realmente me planteé seriamente dejar el reversing, quizás fue en ese momento donde la cuerda estuvo más frágil, y realmente mi brújula no encontraba el norte. Hay personas que me ayudaron en esos momentos, y ellas lo saben.

Para mí fue la plataforma que me permitió realmente exprimir al máximo mis posibilidades, ya que pasé de dormir tres o cuatro horas al día por dedicar tiempo al reversing a dedicarle una jornada laboral, de ocho horas. Para mi ocho horas de trabajo sentado en una silla en ese momento era como ahora irme a eternamente a Bora-Bora.

No me considero una persona inteligente, pero sí que considero que alguien con muchas ganas puede hacer grandes cosas. Y yo estaba muy ilusionado.
En general el malware concentra todas las artes, ya que utilizan tanto redes, como criptografía,
vulnerabilidades, algoritmos de compresión, internals del sistema operativo, y un largo etcétera de triquiñuelas habidas y por haber. Creo que es un campo que puede aportar mucho a un reverser.

Otra de las claves es la cantidad de gente con talento que había y hay trabajando allí. Muchas veces tenemos tendencia a creer que lo mejor está fuera, cuando en realidad los verdaderos genios están dentro. Y he tenido la suerte de aprender de ellos.

Aunque si bien es cierto que no todo fue felicidad y alegría, le debo el respeto de haberme permitido entrar en el mundo laboral, y si tuve alguna experiencia mala, la guardaré para mí. Al fin y al cabo, no es el objetivo de la entrevista.

¿Puedes decirnos a que te dedicas en la actualidad?

Dentro de lo que puedo decirte, estoy profundizando mis conocimientos de bajo nivel. La verdad es que tenía un agujero bastante importante en arquitectura, y el saber que siempre me quedan cosas sobre las que profundizar me motiva a seguir aprendiendo día a día, que después de todo, es lo importante.

Quizás no hago tanto reversing en sí, ya que estoy haciendo más programación, algo en lo que también quería profundizar. Y digamos que el reversing se simplifica a corregir errores, aunque esporádicamente hago reversing de otras cosas.

¿Cuáles han sido tus mejores logros, esos que recuerdas especialmente y como lo resolviste (técnicamente hablando)?

No considero que realmente haya hecho ningún logro, ese tipo de cosas se las dejo a mi ego, un viejo amigo con el que ando luchando paulatinamente.

Siempre he tenido una cierta predilección por las cosas que se consideran “imposibles”. Así que quizás podría decir que un logro es que algunas personas vean que lo que creen que es imposible, no lo es. Por mucho que se diga. Es algo así como el “efecto” de un truco de magia. Pero si puedes mostrarlo en un colegio de magos, el efecto es maravilloso.

Como tampoco puedo contar mucho sobre las cosas que hice en Panda, simplemente contaré uno de los últimos malware que encontramos. Y lo cuento además porque curiosamente fue un amigo antes de llegarme por vía laboral el que me envió la muestra, aunque fue el mismo día. Él era una víctima.

Básicamente, hacía fuerza bruta de las claves de servidores Windows 2003 Server, una vez dentro era uno de esos que se ha unido a la moda de los últimos años de cifrar todo el contenido de la máquina y pedir una remuneración por ello.

No contento con eso, el autor hacía alusiones de que era irrompible, regodeándose con que utilizaba AES-256 y que ni el gobierno americano era capaz de romperlo. Para ello además, tenía un hilo en un foro (creo que era kernelmode.com) donde hablaban gente técnicamente muy buena admitiendo que era imposible recuperar los datos.

Si el malware está realmente bien hecho, probablemente sería casi imposible obtener los datos. El problema que suele pasar, es que siempre hay errores. Y él los cometió.

Esto para un criptógrafo probablemente será algo sencillo, lo que pasa es que hay que hacer bastante reversing para verlo. Básicamente, su debilidad era la semilla que se utilizaba para generar la clave. La clave tenía un tamaño de entre 48 y 56 caracteres alfanuméricos, que se iban generando indexando los candidatos con el valor que devolvía la función a la que le pides números aleatorios. Para almacenar la semilla, usaba funciones de Tls (Thread Local Storage), que básicamente te permite tener contextos por hilo. La semilla, se guardaba en uno de esos contextos, así que durante el cifrado de archivos, mientras guardaba la información necesaria (rutas de fichero, ficheros basura, y la clave de desbloqueo) para hacerlo más rápido paralelizaba las tareas con hilos, de tal forma que uno de los hilos siempre generaba un fichero. El nombre del fichero era aleatorio. La semilla con algo de reversing se podía reducir a un GetTickCount, que son los milisegundos desde que la máquina se inició. Y eso son 32-bits, ridículo. Así que en realidad había 2^32 claves, y no los tropecientos billones que nos querían vender. 

En resumen, como los nombres de los ficheros eran aleatorios si encontrabas la clave que generaba esos nombres de ficheros, sabrías que clave se utilizó.

Cuando este malware llegó a España llevaba en circulación algo más de un año, pasando por todas las casas de antivirus. Nosotros entregamos una herramienta al cliente que descifraba sus ficheros en menos dos días.
Todos fueron felices, y comieron perdices. 

Al redactar esta entrevista, me viene a la cabeza el nombre de AbsshA. ¿Qué nos puedes contar de ello?

En CracksLatinos conocí al que es a día de hoy un hermano para mí, de mis mejores amigos, el mejor. A lo largo de todo el tiempo que pasé en CracksLatinos, hice algunas cosas con algunas personas, curiosamente no todo el mundo es compatible para trabajar juntos. Ya que te hacen ir más lento, o van demasiado deprisa. Así que encontrar ese equilibrio en el que las cosas fluyen, no es fácil.  Con Absolom1 encontré ese equilibrio.

Desde que lo conocí me impresionó muchísimo, aprendía a un ritmo increíble. En unos pocos meses escribió
cómo parchear un Asprotect SKE haciendo un inline patching, algo que yo hasta el momento no había visto, y se le ocurrió a él. No se le dio mucha bola en su momento, creo recordar, pero sigo pensando que fue una genialidad.

Hay mucha gente que ya viene con conocimientos de programación previos, o de ordenadores, han ido a la universidad, etc. De esas personas puedes esperar que rápidamente progresen, además con un buen foco académico. Absolom1 antes de entrar en CracksLatinos creo que no sabía casi ni encender el ordenador. Y en pocos meses escribió algo que a día de hoy (no pretendo sonar pretencioso) la mayoría en la lista probablemente no sabrían deducir. 

De hacer reversing juntos, y pasar tantas horas nació  AbsshA (Absolom1 y Shaddy).

Un día un tal Dr. Crack retó a la lista, al principio dijo que había hecho un crackme que todavía nadie había conseguido resolver. Pero Dapaf le pinchó un poquito y en seguida saltó, así que se puso más soberbio. Y dijo que lo veía imposible resolver. Después de unos cuantos mensajes filosóficos sobre si un crackme  es o no como un programa real,  todos los de la época se pegaron un poco con él. Si no recuerdo mal, Solid, Dapaf, Nahuel, Marciano, Apuromafo e inclusive Absolom1. Todo hay que decirlo, cualquiera lo habría sacado dedicándole más tiempo, seguro. Absolom1 me lo comentó, y no pude evitar intentarlo, entre los dos en quince minutos estuvo resuelto.

Ahí nació Abssha, que fue el que respondió en el hilo con la solución. Y en un principio eso queríamos ser, una entidad anónima que resolviese las cosas más complejas. Pero como todo, se quedó simplemente en un nombre más que publicó todas las soluciones en un concurso, y dejó pinceladas esporádicas de algo que a día de hoy no sé muy bien qué es. 

¿A quién o quiénes admiras?

La lista de personas a las que admiro es enorme, tanto en mi vida personal, laboral como en CracksLatinos he conocido a muchísimas personas y a todas ellas las admiro. Como no me gustaría dejarme a nadie creo que nombraré a la más importante en este mundillo, que es el que ya todos conocéis, Ricardo Narvaja.

Ricardo es una de esas personas que nació padre y madre, yo creo que sus principales armas siempre han sido la perseverancia de un padre y la paciencia de una madre. Es una persona humilde de verdad, sencilla y llana, sin palabras vacías.

No juzga a la gente, y todos son sus hijos, nadie es mejor ni peor para él. Avanza despacito, pero nunca se para.

Para mi él es el Gandhi de la Ingeniería Inversa.

¿De quién o quiénes aprendes?

De todos, sin excepción. Siempre intento exprimir al máximo la gente de la que me rodeo, e intento obtener lo mejor de cada uno. Generalmente las personas tenemos puntos más fuertes y otros más débiles. Así que intento observar ambos, y mejorarlos.
Desde mis inicios fueron referencia para mí, en castellano tanto “The PoPe” como “Saccopharynx”. Y extranjeros “Deroko”.

Cuéntanos como ha sido, es y será tu paso por la lista de CrackSLatinoS.

He tenido épocas, la verdad es que mis aportaciones a la lista desde que entré son bastante reducidas. En comparación con gente grande de verdad, como Nahuel, Ricardo, Marciano, Solid y tantísimos que me dejo. No he escrito nada significativo. Probablemente sea que la motivación que había antes en la lista era diferente. En su día se intentaba terminar con todo. Todos los desafíos que podíamos los intentábamos solventar entre todos, como un bloque sólido.

Ahora cada uno tenemos nuestro trabajo, y al menos yo me dedico a leer, y participar esporádicamente. 

El tiempo libre es bastante limitado y, como no empujamos ningún proyecto, se va apagando. 

Ves a mucha gente entrar, pero son muy pocos los que realmente evolucionan y se mantienen. Generalmente al de dos o tres años mucha gente ha desaparecido. Y de los no se… ¿2000? ¿3000? ¿Cuántos realmente son ya no digo activos, sino que aunque sea como yo, escritores esporádicos? ¿Un 5%?

La vida evoluciona, y probablemente nunca volverán a ser las cosas como fueron. Ya que internet ha cambiado, y es más rápido de lo que podemos controlar.

Tienes fama de Troll ¿es eso cierto?

Bueno, en realidad yo personal y sinceramente no creo que sea un Troll. No busco que los demás se enfrenten entre sí, y menos por pinchar para ver cómo se pelean. 

Es cierto que soy bastante provocador, y quizás afilo un poquito de más mis palabras. Pero lo que siempre busco es un segundo de lo que yo creo que es la realidad, no me importa que me odien o ser el mártir si lo consigo.

No soy un Talibán, o al menos no pretendo serlo si no sabes algo. Sin embargo, hay cosas que con muy
poco esfuerzo se consiguen, y hay gente que con el tiempo te demuestra que en realidad no quiere aprender, ni avanzar. Antes de andar, hay que gatear. El que me conoce sabe perfectamente que si puedo aportar algo en alguna duda que tenga lo haré, no importa lo estúpida e insignificante que parezca. 

En cualquier caso, creo que para ser un Troll tienes que hacer algo así como un ritual especial que tiene denominación en una zona de Buenos Aires, llamada por lo visto los Bosques de Palermo. Nunca he estado ahí, pero he llegado a oír que tienes que contactar con una banda callejera de sexualidad no identificada. Se hace llamar algo así como “la banda del yajú”, y si dices tres veces delante de un espejo “chucky” visualizando el icono sexual de alguno de ellos, aparecen. El origen de este icono hace poco se descubrió que apareció en un Crackme. En fin, como puedes ver, hay bastantes misterios ocultos y yo no estoy muy puesto.

¿Cómo ves el futuro de la Ingeniería Inversa?

Cada día es más fácil hacer ingeniería inversa, pero al mismo tiempo las tecnologías avanzan y la información es más vasta. Las nuevas generaciones de procesadores incluyen nuevas características con las que hay que ponerse más al día, y por supuesto ocultan otras tantas que hay que descubrir. Siempre que sea posible :)

Creo que es la base de todas las artes, y sobre todo en España está muy infravalorado. En el futuro probablemente esto cambiará, y poco a poco las universidades van incorporando más pinceladas de este arte.

Cada día ganamos más adeptos, y eso es sangre fresca con más ganas de aprender. Lo cual creo es lo más importante.

¿Enuméranos cual es para ti, lectura imprescindible?

Mr. Khaki (The PoPe) escribió por allá por el 2001 un tutorial sobre PE Compact. Ha sido para mí, y siempre será, una referencia a la hora de escribir sobre una protección. Siempre ha sido mi inspiración. Actualmente de vez en cuando lo vuelvo a leer, y me sigue pareciendo una obra de arte.

Por otro lado, quizás a día de hoy parezcan obsoletos, pero todo lo que escribió Saccopharynx son también, obras de arte.

¿A quién te gustaría que le hiciéramos la siguiente entrevista?

No sé si será factible, ya que lleva un tiempo desaparecido, pero me gustaría que consiguieras una entrevista con Saccopharynx o, si no es posible, con Akira.



Lamentablemente hemos llegado al final,  pero no quiero despedirme sin antes dar las gracias a todo los que habéis colaborado en la elaboración de esta gran entrevista.

Me despido hasta la próxima entrada, con una frase del blog de Sherab:

The curiosity to understand makes us free