domingo, 20 de marzo de 2016

Ricardo J. Rodríguez: "Soy un enamorado del ensamblador"

Ricardo J. Rodríguez. Doctor y profesor de Lenguajes y Sistemas Informáticos en la Universidad de Zaragoza.


Ricardo J. Rodríguez es una mente privilegiada de la seguridad informática desde su atalaya en la Universidad de Zaragoza, donde es investigador, profesor y doctor gracias a una tesis llamada, agárrense: "Performance Analysis and Resource Optimisation of Critical Systems Modelled by Petri Nets". Tiene 30 años, novia y dos perras "que son un amor" y se deja ver en las CONs, dando charlas cuyo común denominador es la ingeniería inversa. Pero... mejor que siga él:

"Soy un apasionado del cine, la lectura de novela negra o ciencia ficción y la montaña. También de la investigación, lo que me lleva a más de una (o N) discusiones en casa. Demasiado perfeccionista, talibán de la RAE y tozudo como buen maño. Amante de las matemáticas y de la informática teórica, obsesionado con el problema P vs NP. Me gusta pasar el tiempo libre en tranquilidad. Amante de los animales y un poco hosco a veces con determinados humanos. No me gusta dormir más de lo necesario (6 ó 7 horas me van bien), me gusta aprovechar el tiempo lo máximo posible".


- A un crack como tú se lo rifaría la empresa privada. ¿Por qué te quedas en la universidad?

- ¡Gracias por lo de crack! Esta pregunta me la suelen hacer amigos de la profesión y yo mismo cuando hablan de sus cifras, comparadas con las del entorno docente universitario. Básicamente, me gusta el entorno académico, en relación al tipo de trabajo que se realiza. Me gusta enseñar, y me gusta (más) investigar. Y sobre todo, me gusta saber que con mi trabajo logro contribuir a la ciencia, saber que estoy dejando mi pequeño granito de arena en el conocimiento humano. Me gusta la forma de trabajar en investigación, el carácter independiente, creativo, e innovador.

Me conformo con pensar que dentro de varios años alguien empezará a investigar en cierto tema, y quizás llegue a algún artículo mío y lo encuentre interesante para continuar esa línea de investigación. O incluso le sirva de inspiración para una nueva y radical idea. O al contrario, le sirva de base para ir por decantarse por otro camino. O simplemente diga que mi visión era incorrecta y proponga una mejor; o contradiga un teorema y lo demuestre con un contraejemplo. Que simplemente le sirva para poder avanzar y llegar aún más lejos.

De cualquier modo, me gustaría aprovechar esta ventana que me das para decirles a aquellas empresas privadas que podrían estar interesadas en mí que estoy abierto a colaboraciones. Por mi parte estaría más que encantado en conseguir cerrar algún proyecto a medio/largo plazo con alguna empresa para ayudarles con algún problema particular que quieran solventar. En vez de pagarme X al año, ¿por qué no cerrar un proyecto de uno, dos, o tres
años por la misma cifra o algo más para poder becar a una persona que colabore conmigo, y poder luego llevarse a esta persona a la empresa? Algo parecido al modelo de investigación universidad-empresas de US.

-Supongo que desde la universidad ese loco loco mundo de la inseguridad informática debe verse más en perspectiva, con más calma...

-Desde luego, no hay la misma presión/locura que se puede sufrir en un departamento de IT / administración de sistemas. Se ve todo desde otro prisma, como bien dices, lo que permite tomárselo con calma... básicamente, esto se traduce en que la mayoría de la gente de este entorno universitario muchas veces desconoce (generalmente) el mundo de la (in)seguridad informática; al igual que yo puedo desconocer las particularidades de la física de partículas. En la Universidad, al final, cada uno es "experto" y conoce su campo particular, desconociendo la mayoría del resto.

-¿Cuándo y cómo te sedujo la seguridad informática?

-Pues... corría el año 1999, y me interesaban los temas de hacking/phreaking. Aprovechaba las horas de cursos de informática en una academia (mis primeros pinitos con QBasic) para descargarme todo el material que podía, que luego leía en casa. Sin embargo, como no disponía de Internet en casa, muchas de las cosas no era capaz de probarlas, así que
empecé a interesarme por la parte vírica que podía desarrollarse más offline. Recuerdo meter línea a línea en ensamblador el código de cierto virus, ensamblándolo y creando el binario de una manera tan rudimentaria que un fallo me "provocaba" volver a empezar. Eso sí, cuando lo conseguí hacer me sentí como un niño con un juguete nuevo :).

Mi siguiente paso fue dejar de ser script-kiddie y aprender ensamblador x86, para entender las instrucciones del bicho. Un amigo se había comprado el Alien vs. Predator para PC, que acababa de salir. Conseguí que me lo prestara, y me hice una copia del CD. Pero claro, el
cabrito del juego detectaba que era una copia. Siempre me había descargado los cracks, y nunca había indagado qué había detrás de ellos. Como no encontraba la versión que yo necesitaba del binario, empecé a mirar un poco más este tema. Descubrí que se llamaba "reverse code engineering", y seguí mirando... Y así me hice mi propio parche para este juego en particular. Fue fácil, ya que había estudiado el código ensamblador previamente. Me metí luego en un grupo de reversers hispanos, CracksLatinos http://hackstory.net/Crackslatinos (a quienes mando un fuerte abrazo!). Empecé a mirar otros juegos, otros binarios, aprendiendo del tema packers, del tema ofuscación, y así...

Desde entonces, soy un enamorado del ensamblador y de todo lo que se puede hacer cuando comprendes qué realiza el ordenador al interpretar una determinada ristra de bytes. Ya con una fuerte base teórica de ingeniería inversa y ensamblador, he podido moverme a otros campos de aplicación como análisis de malware, o exploiting.

-¿Y ahora, en concreto, qué te está seduciendo, dentro de la seguridad?

-En temas más de bajo nivel ahora mismo estoy centrado en POS malware y técnicas de análisis con grafos. Como mi tesis la desarrollé en temas de modelos formales (Redes de Petri) y especificación de seguridad, siempre intento aplicar este conocimiento teórico a otro dominio de aplicación -- análisis de malware en este caso.

En temas más de modelos, entre otras, actualmente estoy trabajando en modelar cómo es un APT y cómo interactúa con las máquinas de una organización, con el objetivo de analizar hasta qué punto diferentes políticas de seguridad pueden ayudar a mitigar el problema.

-Tienes un CV impresionante, donde destaca la ingeniería inversa pero también temas muy diversos.

- Es porque al final, soy (somos) un "mercenario investigador". Durante la tesis, uno investiga lo que le dice su director. Cuando acaba la tesis, investiga lo que le dice quien paga su investigación. Uno nunca investiga en lo que realmente quiere si no consigue financiación expresa para ello :(. Esta dispersión de temas también se debe a que soy curioso. Me gusta mirar un tema, explotarlo en su totalidad, y cuando se acaba, pues a por otra cosa. Por eso verás que he tocado (y toco) muchos palos. Como me dice mi novia, tengo que aprender a decir que "no" si quiero llegar a los 50 sin problemas de salud: el problema es que siempre digo "¿y por qué no?" :).

Me gustaría destacar que mi actividad principal de investigación es en ciencia básica, no aplicada. Y en este mundo de la seguridad informática, se busca mucho más la aplicabilidad que la cienca base.

-Has estado un par de veces en la MalCON, que se celebra en Mallorca. ¿Puedes contarnos algo de esta Con, posiblemente la más "pública pero secreta"?

-Bueno, algo puedo contar... pero poco :). Una gran conferencia para gente interesada en análisis de malware, donde se habla de bichos y casos muy interesantes y donde, por desgracia, nunca he podido disfrutar de un momento para ir a la playa... porque siempre llueve o hace frío! :(

-¿Qué rama del mundo del malware te fascina más? 

-Los bootkits (pude disfrutar como un niño pequeño en la última charla de Skuater en la Rooted, gracias Abel!!). Más que una rama de malware, lo que más me fascina es el tema de los packers, concretamente esos complicados algoritmos personalizados de compresión/descompresión bajo petición y multi-capa.

-Cuando empecé a usar ordenador, hace 30 años, ya había virus. Hoy sigue habiendo virus. ¿Jamás nos vamos a librar de ellos?

-Te respondo con otra pregunta. Cuando nací, hace 30 años, ya había niños que sufrían porque los adultos querían jugar a la guerra, que perdían a su familia, que eran desplazados de sus hogares, que eran abusados por mal nacidos. ¿Jamás nos vamos a librar de esta lacra de nuestra sociedad?

La maldad es una condición humana. El ordenador no es más que otro arma para hacer mal, pero de otro manera. Así que mientras siga habiendo gente que se beneficia (económicamente o simplemente por ser felices jodiendo a los demás), habrá malware.

-¿Veo en tu web que ahora te interesan las infraestructuras críticas?


-Estoy empezando a mirar cositas. He visto que prácticamente la totalidad de los protocolos que se diseñaron para comunicación entre estos sistemas, que inicialmente estaban en redes
aisladas, no pensaban en la seguridad y por tanto son vulnerables a multitud de ataques (spoofing, DoS, etc.). Existen propuestas de protocolos securizados para estos entornos, así que muy mal no está el tema... aunque seguro que queda por ahí alguna infraestructura sin arreglar y cuyo mal funcionamiento puede ser bastante peliagudo, y nos sorprenderá en los próximos años llevándonos las manos a la cabeza.

-Schneier dio hace poco un speech en la RSA Conference bastante apocalíptico, sobre la nula seguridad de la red a la que ahora se unen los sistemas SCADA y la Internet de las Cosas. Parece haber mucho por hacer.... ¿por dónde empezarías tú?

-Bufff... empezaría por (a mi juicio) lo más crítico, los sistemas SCADA. A partir de ahí, empezaría a mirar otras cosas. El IoT, como nos mostró Raúl Siles en la última Rooted, va a dar mucho juego.

-¿Trabajarías para el ejército?

-Siempre y cuando mi conocimiento se aplicara para defensa y no para ataque, sí, no tendría inconveniente.


Texto: Mercè Molist


0 comentarios:

Publicar un comentario