El experimento conducido por la Universidad de Minnesota no ha llegado a buen puerto.
¿Una investigación mal conducida? Este parece ser el caso de la Universidad de Minnesota que ha sido expulsada del desarrollo de código abierto de Linux por contribuir con parches de código malicioso a sabiendas. ¿Cómo ha pasado esto?
Primero, debemos saber que el desarrollo del kernel de Linux es uno de los proyectos más importantes del mundo. Tiene más de 11 mil desarrolladores en su repositorio de GitHub y más de 1 millón de contribuciones o commits.
¿Cómo se contribuye a un proyecto en GitHub? Primero se accede al repositorio del código en GitHub, que tiene carpetas con la rama master, donde se incorporan los desarrollos aportados y aprobados. Para contribuir, esta rama master se toma como referencia y se crea un fork (copia editable) donde se trabaja. Una vez terminado el trabajo, se solicita incorporar la contribución al master, por medio de un pull request, que debe ser revisado por un mantenedor (maintainer) que lo valida y agrega al código oficial.

Las modificaciones hipócritas
La Universidad de Minnesota envió modificaciones que arreglaban errores pequeños, efectivamente, pero que también, paralelamente, introducían código malicioso. Esto se llama “hypocrite commits” o “aportaciones hipócritas”. Y lo hacía como parte de una investigación acerca de cómo determinados programas informáticos- en este caso Linux- podían controlar o detectar estos ataques disimulados. Además, querían determinar si merecía la pena añadir otras medidas de seguridad.
Esto se conoció por la correspondencia que mantuvieron el maintainer y los investigadores de Minnesota, que es pública. Por ejemplo, en una comunicación del 6 de abril, el mantenedor, Greg Kroah- Hartman, pide por favor que dejen de mandar parches claramente inválidos. <<Tu profesor está jugando a un juego al que no queremos jugar nosotros, bizarro y extraño, y eso no está bien,. Nos estáis haciendo perder el tiempo y que vamos a reportar, una vez más, a vuestra Universidad>>.
El 21 de abril, en otro correo, el profesor de Minnesota dice que <<por favor, deje de actuar así, obviamente no estamos llevando a cabo una actividad bizarra, ni nada de eso. Estas acusaciones no tienen fundamentos y no vamos a mandar más parches. Pare con esta actitud e intimidando a los novatos>>.
Kroah- Hartman responde a este mail diciendo que <<están claramente metiendo bugs, esto no es correcto. Lo que quiere la gente de la comunidad es que se aporte y mejore Linux y no testearlo ni nada por el estilo, ni hacerlos perder el tiempo>>.
¿Hacking ético?
En realidad, es habitual que se utilicen estas técnicas para poner a prueba sistemas de seguridad que son los llamados “test de penetración”. Se utilizan tanto en auditoría para código privativo como para código abierto.
El problema es que para considerarlo como hacking ético tendrían que haber contado con el consentimiento de la organización auditada. Porque pone en jaque a un sistema y puede tener consecuencias para las que no hay contingencias previstas. Al ser un proyecto de código abierto lo correcto habría sido informar a los mantenedores de más alto rango, obviamente. Pero no se informó a nadie.
Además, hay que tener en cuenta que la Universidad de Minnesota pues no es cualquiera: tiene autoridad. Obviamente, sus contribuciones no van a ser revisadas a detalle como cualquier otra que venga de un tercero. Es decir que no son extrapolables las conclusiones, puesto que si esta Universidad cuela un fallo de seguridad no significa que cualquiera pueda hacerlo.
Lo que debió hacer la Universidad de Minnesota
En su defensa, la Universidad de Minnesota, en primer lugar ha suspendendido esta investigación y va a revisar los métodos que está aplicando.
También es importante considerar que en el paper del proyecto de investigación se habla de correos de Gmail. Parece ser que esa era la idea original. Pues, para probar el concepto no tiene sentido que se haga de una cuenta con mucha autoridad. Pero en la práctica hemos visto que ha sido así porque la correspondencia ha sido con una cuenta de la Universidad.
El paper establece un protocolo para evitar que el código malicioso llegase finalmente a la versión master de Linux. Así, cuando la Universidad recibe la notificación de que su código malicioso había sido validado, debía informar de inmediato del verdadero contenido del código.
Si la pusieron en práctica o no, ya se verá cuando Linux acabe la revisión y si finalmente se encuentra un código malicioso. Pero, hay que destacar la importancia en la gestión de las aportaciones en los sistemas de código abierto.