Hackeando la realidad

La idea de este post viene de lejos. De tan lejos como el estreno del Episodio III de la saga de Star Wars, allá por el 2005.

Dedicado al mundo de la informática, uno de los apartados más excitantes es el dedicado a la seguridad informática y sus diferentes variantes (desde el hacking hasta el cracking, pasando por la ingeniería social). No pretendo detallar estos conceptos a los profanos, simplemente explicaré un punto muy concreto.

En un ordenador, sea cual sea, en cada momento se están ejecutando decenas, cientos, miles de tareas simultáneamente. Estas tareas se llaman "procesos", programas en ejecución haciendo lo que se les ha pedido que hagan y devolviendo la respuesta a quien los lanzó (ya sea un usuario del ordenador, u otro proceso). Estos procesos se ejecutan dentro de un contexto, en particular, de seguridad.

Es decir, si un usuario de un ordenador intenta abrir una carpeta en la que no tiene permisos, el proceso que se encarga de abrir el contenido y mostrárselo, "hereda" los permisos del usuario en cuestión. Así, el sistema operativo, garante de que los procesos hagan lo que tiene que hacer y controlar que no se salgan de su contexto, cuando el proceso intente acceder a la carpeta con los permisos del usuario limitado, le dirá: perdona majo, pero no tienes permisos para acceder a esta carpeta. Y le dará un error, y el proceso de apertura de la carpeta, se lo dará al usuario: mira una cosita, que con tus permisos me dicen que acceder ahí tararí.

¿Pero y si lo intenta un usuario que sí tiene permisos? Pues EL MISMO PROGRAMA (sí, sí, como si fuera un mayordomo al que pedirle cosas, una y otra vez) de apertura de carpetas lo intentará con los nuevos permisos, y el sistema operativo, esta vez sí, dirá que perfecto, en esta discoteca puedes acceder, que tienes pase VIP, y se mostrará el contenido al usuario.

Es decir, un proceso puede o no hacer lo que se le pide que haga en función de (entre otras cosas), quién ha lanzado dicho proceso.

Siguiendo con el símil, a la discoteca más molona de la ciudad no puedes entrar en zapatillas, salvo si eres CR7... Queda claro, ¿no?

Ok. Sigamos. Hay una excepción. Como siempre.

¿Qué pasa si aparece un tipo en la puerta de la discoteca pegando tiros con una pistola? ¿Creéis que el portero no te dejaría entrar en zapatillas aunque no seas CR7? Venga, va, pensemos que sí. Que el tipo ve que se trata de un estado excepcional, donde importa más la vida de una persona (aunque lleve zapatillas...) que la norma general que no le dejaría pasar.

Esto mismo pasa con un programa en ejecución. El sistema operativo (el portero), sabe decidir si hay casos excepcionales o no. ¿Qué casos? Aquellos en los que a pesar de los permisos, el programa genera un problema que el sistema operativo considera que "debe intervenir" por ser lo "suficientemente grave" como para hacerlo. Problemas los hay de muchas clases, mis favoritos son el NullPointerExcepction (por supuesto...), el StackOverflow (que ha dado el nombre a la famosa stackoverflow.com) y el Kernel Panic.

En todos esos casos, donde el programa comete un error, el sistema operativo toma el control. ¿Y adivináis qué permisos tiene el sistema operativo? dicho de otra manera. ¿Qué capacidad de acción tiene el portero de la discoteca si se le dice que la norma de las zapatillas ya no aplica? Toda. Exacto. Toda. El sistema operativo es todopoderoso. Hasta para destruirse a sí mismo si hace falta. El sistema operativo, como el portero en momentos de crisis, es, literalmente, dios (decide si te matan o entras con zapatillas).

- Y, ¿qué? - preguntaréis.
- No os falta razón - diré.

Una técnica habitual de hacking trata de aprovechar esta situación. Imaginad que quiero entrar a su garito con zapatillas (que no me miren mal al pasar), y para ello, me las ingenio para hacer creer al portero que estamos en una crisis, que viene alguien con una pistola pegango tiros. El portero me deja entrar: objetivo conseguido. Es decir, he generado un estado de excepción, para aprovecharme de que el portero puede hacer lo que quiera en esos momentos, instándole a tomar una decisión que me beneficia (he entrado con zapatillas!).

Con el ordenador es lo mismo. Puedo hacer un programa que prepare un estado de excepción tal, que cuando el sistema operativo tome el control para resolverlo, haga lo que yo quiera (y no puedo normalmente, entrar con zapatillas) aprovechándome de su omnipotencia.

Mola, ¿no? Imagina las posibilidades. Escríbeme un par de ceros en la próxima nómina, envíame por email ese informe clasificado de alto secreto, envía tropas al sudeste de la casa de tu ex, lanza la bomba atómica... ah! y luego bórrate entero a ti mismo, claro.

- Vale, vale, menudo rollo. Creo que lo he pillado. Y esto con Star Wars, ¿qué? - preguntaréis de nuevo.
- Gracias pequeño padawan, excelente pregunta. - diré a mi vez.

Si recordáis la película, el Episodio III es aquél en el que Anakin Skywalker da paso a Darth Vader. Probablemente sea la más oscura de todas (salvo, tal vez, el nuevo Episodio VII...) y es la favorita de Aysha (mi hija). Con todo lo que el final del proceso de conversión implica, casi pasa desapercibido un hacking en toda regla a lo ya descrito en este post con el portero de discoteca.

El senador Palpatine, una vez elevado a Canciller de la República, aprovecha un estado de excepción generado deliberadamente, la guerra, para declararse a sí mismo Emperador, y apropiarse de una serie de poderes sin control del Senado en aras de una mejor gestión de dicha crisis.

Es decir, pasándolo a limpio. A sabiendas de que un estado de excepción (viene alguien pegando tiros en la discoteca, un error de programación deliberado en un ordenador, una guerra) va a modificar las reglas del juego, en particular la del control del poder y encontrarse en una situación de omnipotencia dedicada a una situación muy concreta (solventar la crisis), se pone a sí mismo en tal situación para, una vez en ella, hacer lo que se le ponga en las pelotas.

Hacking de libro.

- Y si tenías esto en la cabeza desde hace tanto, ¿por qué lo escribes ahora? - volveréis a preguntar.
- Porque lo de Turquía se le parece mucho, mucho, mucho - diré yo - y por tanto es más necesario que nunca escribirlo.

5 años de inteligencia artificial :)

Dear Gorka,
I can't believe it. It's been an exhilarating five years. Today, Udacity turns five!
Udacity started with a phone call to Peter Norvig. I wondered if it made sense to take our Stanford class CS223 “Introduction to Artificial Intelligence” online, and make it available to all people in this world. Peter was enthusiastic, and along with my co-founders David Stavens and Mike Sokolsky, we made it happen. This wasn't the first MOOC, but it was the one that put Massive Open Online Courses on the map. In a few weeks, we gathered 160,000 students. Our course taught Artificial Intelligence to more people than all other AI professors combined at the time.
Fast forward to today. Udacity is now rapidly becoming the place to go for lifelong learning where millions are learning the latest skills that Silicon Valley has to offer. Tech giants like AT&T, Google, Facebook, Amazon, GitHub and MongoDB are using us to reach any willing learner in the world. And companies are eagerly hiring our graduates. We have educated more students that many four-year colleges. And recently, we started placing our graduates in jobs in the tech industry and beyond, based on their Nanodegree program credentials.
Our fifth anniversary is a great moment of reflection. To many, education is a numbers game. It's about tuition, graduation rates, enrollment. To me, education is all about people. Every time I receive a thank-you note from a student, a letter on how we changed a person's career, I am in tears. I have this very deep belief that if we open up high-quality education, if we truly democratize it, if we give every human being on this planet a fair chance, we will make a huge difference. Today, high-quality education is a privilege of the few. Our vision at Udacity is to make high-quality education a basic human right. If we do this, I truly believe we can double the world's GDP.
I look back at the past five years and feel we did the impossible. We created a company that allows eager learners of all geographies and all ages to engage in meaningful education, and to live their lives' dreams. To encourage even more of you to find your dream careers through Udacity, I have something special to share. In celebration of our 5-year anniversary, we will give any student who enrolls 55% off your first month!
Udacity is a story of amazing students, people just like you. Many have stayed with us through the years, assisted us in improving our offerings, and helped us spread the word. I really want to thank every single student who has been willing to trust us as a source of learning. Udacity would not exist without you, and you are the focus of our work.
Every single student who discovers their dream career through Udacity makes me believe life is worth living. Thank you for being a part of the Udacity community!
Excitedly,
Sebastian Thrun
Co-Founder & CEO of Udacity
P.S. Enroll before 7/10/16 using the link above, and the 55% discount will be applied automatically.