Memoria Libre: Don Luis Zambrano

sábado, junio 24, 2006

Computación "confiada"

Tomado de LinuxUser www.linuxuser.co.uk - Junio 2006.

Escrito por Jeremy Allison

Una de las noticia más perturbadoras de los últimos días fue ver al presidente Chino, Hu Jintao, reuniendose con el Sr. Bill Gates en la Mansión Gates, aún antes que con el Presidente Bush. Un sonriente Jintao mencionó como el usa el sistema operativo del Sr. Gates todos los días, mientras Bill prometió ayudarle con soporte técnico. Pero, al parecer, Bill y la gente de Redmond podría estar ayudandolo con más de simple soporte técnico, y no exactamente para ayudar al gobierno Chino.

Permítanme una pequeña desviación hacia 1982.

La más grande explosión no nuclear algunas vez registrada por un satélite ocurrió en Rusia, en 1982. Fue una explosión en un gaseoducto en Siberia. La pertubadora y poco conocidad verdad acerca de esta catástrofe, fue que fue causada directamente por la CIA, luego de haberle deliberadamente software modificado a la Unión Soviética (sólo en formato binario, desde luego). Software que estaba diseñado para destruir el acueducto.

Uds puede pensar que es otra fantasia paranoica (suena así sin duda y yo lo sé), pero esto fue documentado en el libro "At the abyss: An Insider's History of the Cold War", by Thomas C. Reed, anterior secretario de la Fuerza Aerea, quien sirviera en el Consejo de Seguridad Nacional, y también fue reportado por el Washington Post en el 2004 e, inclusive, mencionado en una artículo de la revista de la CIA "Studies in Intelligence".

Esto no fue simplemente un ataque a la unión soviética, sino que afectó también los precios del gas en Europa Occidental (ese gaseoducto estaba destinado a transportar gas a Europa), todo como efecto colateral de los intentos de los EE UU por perturbar los ingresos de divisas soviéticos.

Me pregunto si los Chinos estudiarán esta parte de la historia. A juzgar por su inclinación a usar Windows en su infraestructura, y por las recientes promesas de los hacedores de PC en China de incluir "Windows genuino" en las PC enviadas desde China, pareciera que no.

Este único incidente de un software solo en binario, causando un enorme daño económico, debería ser de estudio obligatorio para los tomadores de decisiones de cualquier nación que pudiera tener conflictos de interés con los EE UU. Eso es todo el resto del mundo, en caso de que Ud se lo pregunte. Inclusive, esta normalmente muy dócil mascota Americana, el Reino Unido, ha rechazado el software de control, sólo en binario, para el nuevo avión caza de fabricación conjunta, y han amenazado con cancelar la orden de compra si no obtienen acceso al código fuente.

Quizás es que el Reino Unido no es tan dócil como parece, puesto que los militarres británicos parece entender la necesidad de controlar el software en, al menos, algunas partes críticas de su propia infraestructura.


Así que, ¿En quien se puede confiar en computación? y ¿Por qué?.

Me encantaría decir que las compañías de código abierto son dignas de confianza, puesto que te dan el código fuente, mientras que las compañías de código privativo no son de confianza, puesto que el código fuente no está disponible. Pero no es tan simple.

Microsoft anuncia ampliamente que le dará el código fuente de Windows a la China y a cualquier país que se queje de la posibilidad de tales amenazas por la vía del código sólo binario.

¿Es Ud de los que esperan que un distribuidor de Linux le diga NO al gobierno de los EE UU si se les pidiera (amablemente, desde luego) que colocaran una puerta-trasera a las imágenes binarias de Linux que se entregan como parte de su producto?

¿Quienes de nosotros, de hecho, usan el código fuente, tan gentilmente incluido en los CD adicionales, para compilar su propia versión?.

Con Windows, desde luego, ya hay tantas puertas traseras, conocidas y desconocidas, que el gobierno de los EE UU quizás ni se molestará de pedirle nada a Microsoft. Puede que ya hayan conseguido una, lista para ser aprovechada a su antojo.
¿Qué hay de Intel o AMD y el microcódigo que viene en el propio procesador?.

Aún con acceso al código fuente de Windows, todavía no es digno de confianza, a menos que Ud lo compile Ud mismo y sólo instale las versions binarias que Ud crea en su propia máquina.

Tener un código fuente que declara ser el que corresponde con un producto de software, no prueba nada acerca de la versión binaria de ese producto que Ud está usando, a menos que Ud la haya creado Ud mismo. ¿Cuantas versiones de Windows, instaladas en computadores del Gobierno Chino fueron, de hecho, compiladas por los mismos Chinos?. Ninguna, es mi apuesta.

Lo mismo vale, por supuesto, para el Reino Unido.

Lo que esto significa es que muchos gobiernos en todo el mundo, que aceptan software binario empaquetado por compañías de software de los EE UU, están a la merced de de los servicios de inteligencia de los EE UU quienes podrían haber decidido agregarle "alguito extra" al código. Si Ud cree que me estoy poniendo paranóico, hable con los Rusos.

Por completitud, sin embargo, para el verdadero paranoico, inclusive compilar Ud mismo el código NO es suficiente para asegurar que Ud obtiene computación "confiable".

En su artículo fundamental de 1984, "Reflections on Trusting Trust", (Reflexiones acerca de confiar en la confianza) Ken Thompson, uno de los autores originales de Unix, cuenta la historia del cómo él "hackeo" el compilador C del sistema Unix, el software usado para crear el nuevo código binario a partir del código fuente, para agregar una completamente indetectable puerta trasera a Unix. Una vez montada, no habia rastro de la puerta trasera que el agregó en ninguno de los códigos fuente públicamentes disponibles de Unix. Estaba ingeniosamente escondida en los binarios y fue diseñada para reproducirse y propagarse a sí misma en cualquier nuevo binario creado en ese sistema.

Ese fue un ataque teórico. No es algo que el hiciera de hecho, sino algo que podria haber hecho. Al menos eso es lo que yo espero, pero me inclino por confiar en él.

La única manera de tener código confiable es diseñar el procesador Ud mismo (Sí, puede haber puertas traseras en el microcódigo del procesador tanto como en el código binario), escribir su propio compilador y auditar todo el código fuente abierto que crea Ud mismo para usar en sus comandos y sistemas de control. Cualqueir otra cosa es confiar en lo no confiable.


Les dejo con unas palabras del artículo de Ken Thompson que son tan ciertas hoy com en 1984. "La moraleja es obvia. Ud no puede confiar en un código que Ud no creó Ud mismo (especialmente código de compañías que emplean gente como yo). Ninguna medida de verificación del código fuente o escrutinio le protegerá de usar código no confiable. Para demostrar la posibilidad de esta clase de ataques, yo elegí el compilador C. Pude haber escogido cualquier programa que manipule otros programas, tales como un ensamblador, un cargador o incluso el hardware del micródigo. En la medida en que el nivel de los programas baje, esos gazapos serán más y más difíciles de detectar. Un gazapo instalado en el micródigo será casi imposible de detectar".

Jeremy Allison es desarrollador líder del Equipo Samba.

Traducido libremente por Jacinto Dávila.

1 Comments:

A las 4:13 PM, Blogger Jacinto Davila dijo...

El articulo de Thompson esta aqui
http://www.acm.org/classics/sep95/

 

Publicar un comentario

<< Home