Fuente: Wikipedia
En una novela, o en una película, Deus ex machina es cuando el novelista o guionista tras haber puesto a los personajes en una situación de la que no tiene muy claro como sacarlos. Y como no tiene muy claro como solventar la situación, pues hace trampa. La trampa, aparentemente, puede tomar muchas formas: desde darle habilidades nuevas a los personajes (¡puedo volar!) hasta cambiar por completo la situación (¡solo era un sueño!). Estos días estaba leyendo una serie de novelas de ciencia ficción en la que el autor ha hecho del Deus ex machina su modo de solventar prácticamente todos los problemas de los personajes, que ganan o pierden habilidades con una facilidad pasmosa.
¿Porque hablamos de literatura en un blog de seguridad? En el último artículo del blog, hablábamos de los problemas de seguridad de Sony con la Playstation 3. Problemas que pueden afectar a su modelo de negocio. Y problemas que, al igual que los de los protagonistas de los libros que estaba leyendo, tienen una mala solución sin hacer trampas. Y Deus ex machina es el término que se me vino a la cabeza cuando leí un rumor en GameGuru Mania, sobre la aproximación que puede tomar Sony para solventar sus problemas con la Playstation 3:
For those who are curious about the new PS3 security, it seems Sony has implemented something in 3.56 I mentioned here a few weeks ago that is the same as Microsoft uses to detect and ban 360’s. Mathieulh just posted about it on IRC. Essentially Sony can now remotely execute code on the PS3 as soon as you connect. This can do whatever Sony wants it to do such as verifying system files or searching for homebrew. Sony can change the code and add new detection methods without any firmware updates and as the code executes remotely there is no reliable way to forge the replies. Whilst it is possible to patch or remove this code from the firmware this will likely mean the end of playing CFW online (as PSN can just check before login that this is active) or at the very least mean it will be even easier for Sony to detect and ban users. Judging from the fact that people can still connect using the proxy method it seems Sony hasn’t activated any of this yet but the functions are there in the new firmware.
Bueno, Deus ex machina fue la segunda cosa que se me vino a la mente. La primera fue que el autor del post, evidentemente, no sabe lo que es unrootkit, y porqué en cualquier caso es absurdo decir que el fabricante de un Sistema Operativo necesita un rootkit.
En cualquier caso, y volviendo al ‘Deus ex machina‘, la aproximación que describe el artículo se parece mucho a la forma de solventar los problemas de los novelistas vagos: la consola, al igual que los protagonistas de la novela, gana nuevos poderes según se vayan necesitando.
Y a primera vista parece una buena idea, y la solución para todos los problemas de seguridad del universo conocido: un sistema operativo capaz de descargar en tiempo de ejecución módulos de autocontrol. El único problema es que, irónicamente, solo se puede garantizar que la solución es efectiva si el sistema operativo donde se va a ejecutar no ha sido modificado. Es decir, si el sistema operativo no ha sido modificado, entonces podremos afirmar con certeza que el sistema operativo no ha sido modificado. En cambio, si el sistema operativo ha sido modificado, en algunos casos podremos afirmar con certeza que ha sido modificado pero no podremos afirmar con certeza que no ha sido modificado.

¿Porqué? Si imaginamos las distintas capas de software en un sistema como círculos concéntricos, siendo el círculo interno el Hardware, y los demás círculos capas de software que se apoyan en la capa más interna, entonces el único sentido en el que podemos hacer análisis fiables es el que aparece en la imagen: de dentro a fuera. Desde una capa más interna podemos evaluar alguna característica de una capa más interna, con la confianza de que el valor que obtengamos va a ser correcto. Pero eso no es cierto cuando el análisis se hace desde una capa externa a una capa interna, ni tampoco cuando el análisis se hace dentro de la misma capa.
Y el hipotético código descargable de verificación se ejecutaría, como mucho, al mismo nivel que el software que lo descarga, el sistema operativo. Por eso no puede hacer aseveraciones fiables sobre la salud del sistema operativo, porque está en la misma capa. Por ejemplo, sería posible que el sistema operativo modificado descargase el código y no lo ejecutase, limitándose a responder lo que el servidor espera. También sería posible descargar el código y ejecutarlo en un entorno controlado, donde no pudiese ‘ver’ nada extraño (por ejemplo, una máquina virtual dentro de la máquina física creada con el único propósito de obtener acceso a la red).
Desde el punto de vista de Sony podemos considerar que una consola con un sistema operativo no oficial es equivalente a un ordenador infectado por algún tipo de malware. Y si este mecanismo de identificación/limpieza funcionase de una forma efectiva para solventar infecciones a posteriori hace años que Microsoft hubiese acabado con el problema del malware en Windows. Y Sony, en este caso, tiene un problema adicional sobre Microsoft: mientras que los clientes de Microsoft, en lo que respecta a la identificación y limpieza de infecciones, son colaboradores de Microsoft, los clientes de Sony, en lo que respecta a la identificación y limpieza de ‘infecciones’ son enemigos de Sony.
Fuente:
Post extraído de la red de blogs de Telefónica I+D. Autor: Antonio Manuel Amaya Calvo