Me imagino la conversación.
- Si nuestro dinero te quieres llevar, tu código fuente nos debes de dar.
- Pero, así nada más? Es que…saben? Nuestro código fuente es nuestro negocio, seguro no lo van a usar para fines comerciales, cierto? ¿O peor, para “otros” fines?
- Tú tranquilo y nosotros preocupados. Somos el gobierno ruso…acaso no confías en nosotros?
- Ya pues, llévatelo.
Recientemente, Microsoft (MSFT) anunció que daría acceso al código fuente de varios de sus productos al gobierno de Rusia a través del Servicio de Seguridad Federal ruso.
Tendrán al Windows Server 2008, Office 2010 y SQL Server. Por un lado, los rusos quieren ver el código fuente para verificar que no tenga backdoors (funciones no deseadas o no esperadas) y para ponerle criptografía –de alguna manera según ellos- a algunas partes de los productos de MSFT.
Analicemos el hecho de darle el código fuente a un gobierno extranjero.
a).- Encontrar bugs se facilita. Es mentira que si no tienes el código fuente no puedes encontrar vulnerabilidades en el software (cada segundo martes, MSFT nos lo recuerda con la publicación de sus benditos parches).
Pero si tienes el código fuente, el hecho de encontrar estos bugs se facilita y tienes un mucho mejor entendimiento del funcionamiento interno de un programa directamente viendo el código fuente (y sin usar des-ensambladores).
Ya sé qué están pensando. “Pero cualquiera puede tener acceso al código fuente de Linux también, cuál es el problema en tener el de MSFT”? Ajá. Aquí va: mientras que todos tenemos acceso al código fuente de Linux, en el caso de MSFT, sólo unos cuantos tienen acceso completo a él. ¿Ven la diferencia? Eso es jugar en desventaja porque sólo algunos pueden analizar el preciado código fuente.
b).- Ejecutables (binarios) vs código fuente. Tú sospechas de mi programa; me pides el código fuente para “analizarlo”. Te lo entrego. Lo revisas. Estás tranquilo sabiendo que no esconde nada raro. Yo me río: el código fuente que te di a revisar no es el mismo que está “viviendo” y ejecutándose en tu sistema. Get it?
c).- Windows en sistemas críticos. Si yo fuera del gobierno de EUA, le ordenaría a MSFT no entregarle el código fuente a un gobierno extranjero o en todo caso, ver cuáles son los términos de entrega dentro del marco del programa Government Security Program y hacer los ajustes necesarios (espero hayan hecho esto último).
El problema de entregar esto a un estado foráneo es que muchos de los sistemas de misión crítica (infraestructura, seguridad nacional, milicia) tienen Windows (al menos en EUA). Cosa que en primera instancia está…mal. Desde hace mucho debieron ordenar poner en esos sistemas de misión crítica un sistema operativo con seguridad en mente.
OpenBSD, FreeBSD…tal vez AIX, NetBSD o hasta un Windows endurecido (hardening). Pero instalar un Windows con sus default con el típico next, next, next, finish y dar por sentado que ya podemos empezar a manejar esos sistemas que administran una presa o una planta eléctrica, pues sí que deja mucho que desear. Aclaremos, usar Windows no es el problema, sino las decisiones que hiciste al instalarlo y el endurecimiento posterior que no hiciste.
En fin, y todo por las ganancias. Entiendo que MSFT dio este código fuente para ver si el gobierno ruso se animaba a comprarles más licencias. Si los rusos de verdad obtienen el código fuente que se ejecutan en los sistemas (¿en serio le dieron el “bueno”?), entonces podrán analizarlo calmadamente, ver sus debilidades informáticas y usarlas aquí y allá en sistemas de EUA y por qué no, de otros países.
Se me olvidaba preguntar. Microsoft es una compañía de EUA. ¿Es razonable pensar que el gobierno de ese país tiene acceso a las entrañas de los productos de esa empresa desde hace años? Ups.
Quisiera seguir con el blog. No hay tiempo, debo revisar unas comunicaciones extrañas de mi Vista hacia una dirección IP en Rusia. No creo que…no, claro que no.
Nota: esto de la entrega de código fuente no es la primera vez que sucede. Ha sucedido en el pasado y sospecho que sucederá en el futuro.