Al igual que un pintor o autor, los programadores tienden a tener su estilo único en el que codifican. A medida que alinean miles de líneas de código, dejan detrás una especie de "firma" personal.
Ahora los investigadores han descubierto que el aprendizaje automático se puede utilizar para identificar fragmentos de código, incluso si están escritos por programadores anónimos.


¿Como funciona?
El sistema de aprendizaje automático que han desarrollado puede "anonimizar" a los programadores mediante el análisis de los patrones en el código fuente sin formato o en los binarios compilados.
Como se le dijo a Wired, un algoritmo está entrenado para identificar el patrón de codificación de un programador y los utiliza para detectar rasgos similares en diferentes muestras de código.
La mejor parte de este sistema es que no requiere necesariamente grandes porciones de código, incluso los fragmentos cortos son suficientes para la identificación.
En una presentación en Defcon, los investigadores Rachel Greenstadt y Aylin Caliskan explicaron que esta tecnología basada en IA era relativamente precisa, si no totalmente infalible.
Probaron códigos presentados por 600 programadores con ocho muestras cada uno y el sistema pudo identificar correctamente el 83% de las veces que se ejecutó el algoritmo.


Los pros y los contras
Esta tecnología tiene sus propios pros y contras. Por un lado, puede ser útil para los investigadores, especialmente en la identificación de autores de malware. Incluso puede ayudar a resolver problemas de plagio ya que el sistema basado en el aprendizaje automático puede distinguir entre similitudes coincidentes y imitaciones.
Pero la desventaja es que puede crear dificultades para los codificadores que desean contribuir con el código de forma anónima. Hay momentos en que a los programadores les gustaría permanecer desconocidos por razones legítimas y identificarse no siempre es algo bueno.
Por lo tanto, cualquier implementación futura de esta tecnología tendrá que crear un equilibrio cuidadoso entre la necesidad de seguridad y la privacidad.