Site icon Sophos News

El código fuente de Windows XP ha sido supuestamente filtrado

Nos encontramos con el siguiente tuit:

Si es verdad, alguien acaba de filtrar un mega-torrent (juego de palabras: supuestamente algunos de los archivos también se han subido al servicio de intercambio de archivos Mega) con el código fuente de Microsoft que se remonta a MS-DOS 6.

Al analizar la imagen en el tuit anterior vemos algunos datos interesantes:

   SO del nombre de archivo   Tamaño de origen supuesto (bytes)
      ---------------------   ---------------------------
      MS-DOS 6                         10,600,000
      NT 3.5                          101,700,000
      NT 4                            106,200,000     
      Windows 2000                    122,300,000
      NT 5                          2,360,000,000

Toma estos datos con precaución: no solo porque son archivos robados, sino que ni siquiera  podemos decir si están completos o incluso si tienen algo que ver con lo que dicen ser.

NT 5, por ejemplo, cubre una amplia gama de diferentes versiones de Windows, enumeradas oficialmente por Microsoft como se muestra a continuación, por lo que parece probable que el archivo de NT 5 incluya todo lo que ya está en el archivo de Windows 2000 que se muestra arriba, y más:

      Nombre del SO                 Número de versión
      ---------------------------   --------------
      Windows 2000                  5.0
      Windows XP                    5.1
      Windows XP 64-Bit Edition     5.2
      Windows Server 2003           5.2
      Windows Server 2003 R2        5.2

En caso de que te lo estés preguntando, Vista era 6.0, y Microsoft se quedó con 6.x para Server 2008, Server 2012 e incluso, extrañamente, para las versiones conocidas numéricamente como Windows 7 y 8.

Por supuesto, no existe Windows 9, aunque nunca estuvimos completamente seguros de por qué, y para Windows 10, el número de versión dio un salto lógico a 10.0 para coincidir con el nombre del producto. (Server 2016 y Server 2019 también se consideran versiones 10.0).

Curiosamente, Microsoft ha publicado oficialmente código fuente de versiones anteriores, como MS-DOS 1.25 (1982) y Word 1.1a (1984) que se hicieron públicas hace unos años.

Y en los últimos años, la empresa ha adoptado de manera oficial y entusiasta el código abierto para algunos de sus proyectos, donde no solo muestra su código, sino que también permite usarlo libremente.

Pero un volcado completo y de acceso público del código fuente de Windows XP nunca, que sepamos, había ocurrido antes.

¿Qué significa esto?

La rumorología sugiere que gran parte de este código, si no la mayor parte, ha estado circulando silenciosamente en foros clandestinos durante años.

Ciertamente, parece poco probable que un único ciberdelincuente haya adquirido repentinamente todos estos archivos a la vez.

Pero, por lo que sabemos, este es el primer código fuente de Windows XP que supuestamente ha aparecido como un mega-volcado todo-en-uno.

(Hemos visto rumores de que si intenta compilar la versión de 64 bits de XP, terminará con errores causados ​​porque faltan algunos archivos, por lo que es posible que el archivo no esté completo).

Entonces, ¿esta filtración es un desastre de seguridad que inevitablemente conducirá a una serie de nuevas vulnerabilidades que utilizan errores en XP, que todavía están presentes en las versiones actuales de Windows?

¿O es solo una oportunidad, básicamente inofensiva, aunque ilegal, de hacer un viaje por la memoria, asumiendo que se tiene el tiempo, la inclinación y el ancho de banda para descargar gigabytes de cosas robadas?

Sospechamos que es más de lo último.

En igualdad de condiciones, las vulnerabilidades de seguridad graves son más fáciles de encontrar si tienes el código fuente comentado, así como los binarios compilados.

Eso es porque tienes más para continuar si estás buscando fallas como desbordamientos de búfer, punteros colgantes (donde se libera memoria pero luego se continúa usándola de todos modos incluso después de que se la haya entregado a otra persona), errores aritméticos enteros o errores criptográficos.

A veces, los comentarios por sí solos pueden ayudarte a acercarte al código problemático, especialmente si se encuentra con fragmentos en los que un programador ha dejado recordatorios como / * FIX ME !!! * / o // Se le pregunté al autor original pero no pueden recordar si alguna vez funcionó correctamente.

Sin embargo, los cazadores de errores experimentados pueden encontrar vulnerabilidades y exploits sin necesidad del código fuente, como la cantidad de errores parcheados cada mes en productos como Windows y las partes de código cerrado de macOS, iOS y Android nos lo recuerdan muy bien.

Además, aunque los errores latentes en XP a veces resultan haberse trasladado hasta las versiones actuales de Windows, es cada vez menos probable que esos errores sean explotables gracias a los enormes cambios de seguridad en el núcleo de Windows.

Por ejemplo, antes de Windows XP Service Pack 3, prácticamente cualquier vulnerabilidad de desbordamiento del búfer que pudieras encontrar en cualquier aplicación de Windows era suficiente para producir una vulnerabilidad.

No había prevención de ejecución de datos, ni asignación al azar del diseño del espacio de direcciones y casi no había otras mitigaciones implementadas que pudieran suavizar el golpe de un desbordamiento de búfer.

Si pudieras sobrescribir la dirección de retorno de la función actual, no solo tendrías una forma de bloquear el programa en ejecución; podrías garantizar convertir el error en un exploit de ejecución de código remoto que funcionase.

¿Qué hacer?

Si está interesado en la programación, la ciberseguridad o la historia de la tecnología, o simplemente tienes curiosidad por saber qué tipo de comentarios los programadores de Microsoft solían escribir a principios del siglo XXI es tentador echar un vistazo.

Pero a menos que realmente necesites mirar, te sugerimos que simplemente lo dejes pasar, especialmente si tu interés es simplemente casual.

Después de todo, no puedes dejar de ver el código después de haberlo examinado.

Y si alguna vez te encuentras en una posición en la que necesitas demostrar que no podrías haber copiado el código propietario de otra persona, incluso si quisieras, lo encontrarás más difícil de hacer si la otra parte puede demostrar que definitivamente lo miraste en algún momento.

Ah, y si eres un programador, incluso si solo trabajas con código propietario que esperas que siga siendo un secreto comercial para siempre, recuerda que tu código es un poco como un currículum profesional:

En primer lugar, escribirás un mejor código si sigues estas reglas.

En segundo lugar, esos comentarios que parecían tan irónicos y divertidos en su día podrían no envejecer tan bien como pensabas.

Escribe tu código como si tu madre fuera a verlo y pruébalo como si fuera a depender de él.

Porque, es muy posible que acabe sucediendo ambas cosas.

Exit mobile version