domingo, 26 de diciembre de 2010

Las auditorias en el código de OpenBSD no arrojan indicios de puertas traseras ...?

Ya saben de que va esto, el original lo encuentran aquí. Sigue la saga ......

Hasta ahora, los análisis del framework de cifrado de OpenBSD y del código de IPSec no han aportado ningún indicio de que el sistema contenga puertas traseras para escuchar conexiones VPN cifradas. Los desarrolladores de OpenBSD iniciaron una auditoría del código para investigar las denuncias hechas por Gregory Perry, el antiguo director de tecnología de la compañía de cifrado NetSec. En un correo electrónico al fundador de OpenBSD Theo de Raadt, Perry había acusado al desarrollador Jason Wright y otros de haber empotrado puertas traseras en la pila de IPsec. De Raadt hizo público el correo electrónico y presentó los alegatos de Perry para su debate.

En otro mail, De Raadt ahora escribe que, si bien cree que NetSec fue contratada efectivamente para escribir puertas traseras para el FBI, las cuales fueron distribuidas como código "donado", no cree que dicho código haya llegado a OpenBSD. El mail de De Raadt también trata de aclarar el papel jugado por los desarrolladores acusados, Jason Wright y Keromytis Angelos. Ambos desarrolladores en realidad si trabajaron para NetSec, pero según de Raadt no eran conscientes de que la compañía estaba trabajando para el FBI.
Sin embargo, el sistema de control de versiones permite a los auditores verificar que desarrolladores han participado en el desarrollo de determinado segmento de código. Según De Raadt, Wright participó principalmente en la programación de controladores y no tiene nada que ver con el framework de cifrado de OpenBSD (OCF). Sin embargo, aparentemente si trabajó en partes de la pila IPsec. En un mail, Jason Wright negó las acusaciones acerca de que insertó puertas traseras en el código de OpenBSD. Sin embargo, De Raadt ha criticado que Wright no ha aclarado la naturaleza de su trabajo en NetSec.
El foco de la investigación parece estar cambiando de Wright a Angelos Keromytis que, según De Raadt, fue el arquitecto y desarrollador principal de la pila IPSec de OpenBSD. Sin embargo, Keromytis al parecer comenzó a trabajar para NetSec en una fecha posterior. De Raadt dijo que durante este tiempo, el concepto de la inicialización insegura de vectores encontró su camino en el código de OpenBSD, pero fué retirado en fechas posteriores. Mientras que el problema del "relleno de Oracle" (padding en el original, vean la referencia) que permitía que los datos cifrados fueran descifrados sin una clave se dio a conocer poco después, esta vulnerabilidad fue resuelta según los informes, al menos en la capa de cifrado, en ese momento.

Según De Raadt, los desarrolladores ya han encontrado dos errores en las auditorías en curso. Por ejemplo, la vulnerabilidad del (CBC) "relleno de Oracle" en relación con los vectores de inicialización al parecer no se corrigió en los controladores de red, pero se cree que fué causado por un descuido. La otra falla está relacionada con una instrucción en un controlador de hardware. De Raadt también menciona un problema en el subsistema de generación de números aleatorios, pero no entra en detalles al respecto.
Aunque el mail de De Raadt debería dar a los usuarios de OpenBSD y proyectos relacionados razones para relajarse, no significa que todo haya sido aclarado. Todavía hay demasiadas inconsistencias. El hecho de que se pueda detectar en pocos días de revisiones de código una puerta trasera introducida hábilmente es también cuestionable. Una puerta trasera como la que recientemente se descubrió en el código fuente de ProFTPD, que contenía la sospechosa contraseña "AYUDA ACIDBITCHEZ" (¡sic!), es poco probable que sea utilizada en la una manipulación controlada por el FBI.

Qué tan bien puede ocultarse el código malicioso se demostró acertadamente en el Underhanded C Contest en el 2008: Para este concurso, se les pidió a los desarrolladores que manipularan un archivo de imagen de manera que fuera indetectable incluso sometiendo el código fuente a un escrutinio detallado. El código ganador presentado por un tal señor Meacham estaba tan bien escondido que ni siquiera los organizadores del evento fueron capaces de describir cómo funciona - el desarrollador tuvo que dar la explicación más adelante en su blog .
Incluso si al final resulta que OpenBSD está libre de llaves duplicadas y de puertas traseras, el incidente ha dejado un mal sabor de boca: ¿en que número de proyectos de código abierto y código cerrado las agencias gubernamentales en realidad han tenido éxito con sus manipulaciones?