El programa de Microsoft para mostrar el código de Windows a gobiernos
En Microsoft siempre han sido muy reacios a mostrar su código fuente. Además de razones de empresa (ventaja sobre la competencia) esgrimen que publicar el código es malo para la seguridad. Recientemente(2), ante la corte del juicio antimonopolio, el alto ejecutivo de Microsoft Jim Allchin apelaba a la seguridad nacional (con mención añadida a las tropas en Agfanistán) para que no se sentenciara que Microsoft debía mostrar el código a sus competidores.La afirmación de Microsoft de que publicar el código es malo para la seguridad contradice el criterio de los expertos (3). También contrastan con las estadísticas de incidencias de seguridad, que evidencian que los hackers no necesitan el código fuente para encontrar vulnerabilidades. Por ejemplo hay más reportes sobre fallos de seguridad en Internet Explorer, por más que su código es secreto, que sobre su competidor Mozilla, de código público. Mientras el código fuente no es necesario para encontrar fallos de seguridad, sí lo es para auditar un programa y afirmar que no incluye puertas traseras y se programó teniendo en cuenta la seguridad. Un caso práctico es la base de datos Interbase: durante seis años ocultó una puerta trasera que no se descubrió hasta unos meses después de liberarse el código fuente(4).
Y es que ante el anuncio de Microsoft cabe hacerse las siguientes preguntas:
¿Está disponible todo el código fuente?
Aunque Microsoft no especifique si mostrará todo el código, cabe suponer que no. Que habrá partes que permanezcan secretas y aducirá que muestra todas las partes relacionadas con la seguridad. Uno de los motivos es que hay partes del código que Microsoft no puede decidir mostrar unilateralmente: necesita el permiso de todas las empresas con las que han firmado un NDA (acuerdo de no divulgación), por ejemplo fabricantes de hardware para obtener información para hacer drivers, o empresas a las que han licenciado tecnología como Citrix.
¿Pero no basta con mostrar el código sensible a la seguridad, como el criptográfico?
Todo el código es sensible a la seguridad, desde un driver para un ratón hasta un servidor o un programa que use el administrador. De hecho muy rara vez las incidencias de seguridad aparecen en el código criptográfico ni en el subsistema de seguridad de Windows, sino en programas normales (6). Las puertas traseras no tienen porqué estar en los módulos del sistema más relacionados con la seguridad. Un driver por ejemplo tiene pleno acceso a la memoria y puede sustituir la rutina que hace las comprobaciones de seguridad por otra. En Internet (7) hay numerosas muestra de código maligno que altera la seguridad de un sistema de forma muy difícil de detectar.
¿Se puede comprobar que el código fuente que enseña Microsoft es el que genera el producto que se vende y no otro al que presuntamente se han retirado las puertas traseras?
Para ello debe proporcionarse el código completo, así como el de las herramientas necesarias para obtener los ejecutables, por ejemplo los compiladores (dado que estos también pueden introducir la puerta trasera en el proceso de generación del código). El auditor ha de poder juntar todo el código, compilarlo él mismo y comprobar que coincide el resultado con el que se vende.
¿Es esta medida efectiva para que se pueda auditar el código fuente? ¿O una cuestión de imagen?
El código de Windows y sus utilidades consta de millones de líneas. Un equipo numeroso de expertos en seguridad y Windows tardarían años en auditar todo ese código. No parece serio esperar que el ministro de Interior y sus colaboradores, que son los que aspiran a ver el código, tengan la capacidad de verificar que el código no encierra puertas traseras ni está escrito de forma descuidada. Esta medida, como el invitarles a visitar la sede de Microsoft y permanecer en ella unos días, parece más un gesto que pretende ser tranquilizador hacia los políticos que una medida realmente útil.
Aún si no estuviera tan limitado quién puede ver el código fuente de Windows, aún cuando se diera acceso total y no parcial, quedaría la cuestión de por qué un experto se molestaría en escudriñar el código. Para obtener permiso para leer código de Microsoft debe firmar un NDA (acuerdo de no divulgación) que además de obligarle a guardar silencio total sobre lo que ha visto y a no utilizarlo en sus trabajos, clases o publicaciones puede suponerle problemas en su futuro profesional si opta por trabajar para un competidor de Microsoft. No se obtiene ningún beneficio por examinar el código: pues no se puede utilizar ese código ni lo que se ha visto en ningún otro proyecto.
-¿Se harán públicos los países que solicitan el acceso al código fuente de Windows o se mantendrán secretos si así lo piden como se comenta en algún medio (8)? ¿Por qué habría un gobierno de ocultar a sus ciudadanos que está colaborando con Microsoft para mejorar la seguridad de un sistema operativo? ¿Microsoft se opondría a que se utilice su información para crear 'spyware' por parte de los gobiernos, o que introduzca puertas traseras para usarse por los servicios de inteligencia?
Una búsqueda en Google que combine NSA (la agencia de seguridad nacional de Estados Unidos) y Microsoft, da como resultado páginas especulando sobre la connivencia de Microsoft con esta agencia para introducir puertas traseras. Una búsqueda de NSA y Linux da como resultado en cambio un proyecto financiado por la NSA para mejorar la seguridad de Linux mediante unas extensiones, que están fuera de sospecha porque al proporcionarse las fuentes no hay lugar para puertas traseras(9)
-¿Sigue considerando Microsoft que el acceso a su código fuente es una amenaza contra la seguridad y por eso limita el máximo su acceso? ¿Hay alguna razón por la que es peligroso que acceda un representante de la administración pública de una comunidad autónoma, o un periodista español, mientras no lo es un representante del gobierno chino o de otra dictadura?
El programa de Microsoft no da acceso a los responsables de los gobiernos autonómicos.
-----
(1) http://www.microsoft.com/presspass/features/2003/Jan03/01-14gspmundie.asp(2) http://www.eweek.com/article2/0,3959,5264,00.asp(3) Son muy numerosos los testimonios, pero nos quedamos con el de Bruce Scheneir, uno de los mejores criptografías del mundo, autor del libro más vendido en la materia, consultor al que han recurrido empresas como Visa o la propia Microsoft: 'The only way to find security flaws in a piece of code is to evaluate it... And the best way to facilitate that is to publish the source code.' (Secret and Lies John Wiley & Sons, 2000, p 344)
En castellano también hay artículos interesantes sobre las ventajas del software libre en la seguridad, destacamos: http://www.kriptopolis.com/more.php?id=10_0_1_0_M3
Kriptopolis posee el portal más visitado sobre seguridad en España. Sus gestores promovieron una campaña para que se use software libre en la administración por motivos de seguridad.
En lo referente a documentos oficiales de gobiernos, en http://linux.kbst.bund.de/02-2000/brief2-2000-en.pdf hay un documento recomendando el uso del software libre (open source en el documento) en la administración federal alemana, con un apartado dedicado a la seguridad.
(4) http://slashdot.org/articles/01/01/11/1318207.shtml(5) http://news.com.com/2100-1001-982305.html(6) Hay varias webs y listas de correo para informar de las incidencias de seguridad. Una de las más conocidas es: http://www.kb.cert.org/. En cada vulnerabilidad se indica quién la descubrió: observesé que la mayoría de las vulnerabilidades no las encuentra el fabricante del software en una auditoría sino terceros.(7) http://www.rootkit.com(8) http://www.microsoft.com/presspass/features/2003/Jan03/01-14gspmundie.asp(9) http://www.nsa.gov/selinux/