Copiar y pegar un código de internet es uno de los mayores secretos a voces en la programación de computadoras. Tal vez todos lo han hecho en su vida. Eso es porque hay sitios de preguntas y respuestas como StackOverflow.com, donde cualquier desarrollador puede crear una pregunta relacionada con la programación y obtener una respuesta de un compañero afín…
Cualquiera puede o no copiar un ensayo de su mejor amigo de la escuela, pero sin dejar de lado la regla no escrita de no copiar palabra por palabra o corres el riesgo de ser descubierto. Sin embargo no todos lo entendieron así.
Un desarrollador que trabaja para Nissan fue sorprendido in fraganti cuando copió al pie de la letra un código de una respuesta de Stack Overflow para su actualización más reciente de la aplicación móvil de Nissan Connect EV, que previamente había sido puesto fuera de línea debido a problemas de seguridad.
La aplicación permite a los propietarios de coches eléctricos de Nissan como el LEAF y el eNV200 “manejar su vehículo y controlar muchas de las funciones más utilizadas a distancia directamente desde su iPhone”, de acuerdo con la descripción en App Store de Apple.
Informes del código copiado comenzaron a circular la semana pasada, cuando un usuario en un foro para entusiastas de vehículos eléctricos registró un extraño mensaje que se encontraba en la configuración de la aplicación NissanConnect.
El mensaje estaba debajo de las opciones en los servicios de localización: “App Explanation: The sprit of stack overflow is coders helping coders”.
El usuario añade, “‘sprit’ no es un error de mi parte”.
Al día siguiente, el consultor de seguridad de Scott Helme registró una captura de pantalla de la página de configuración de Twitter, que incluye el mensaje:
A screenshot from the latest version of the Nissan ConnectEV app… pic.twitter.com/Tseyvwyg3R
— Scott Helme (@Scott_Helme) May 4, 2016
Helme dijo que el lunes por la mañana, el mensaje todavía estaba presente.
Para poner esto en contexto, es algo así como copiar algo de Wikipedia y ponerlo en un libro pero olvidando poner la parte que dice “cita requerida”. En realidad, como este error superó todo el camino para llegar a la App Store, es más como un artículo o libro publicado que un trabajo final.
Y lo que es peor aún, Nissan previamente tuvo que sacar de internet esta aplicación luego de que un investigador de seguridad descubrió que fácilmente podría introducirse en ella.
No es raro que los desarrolladores copien un código de Stack Overflow. La página web de preguntas y respuestas para los programadores contiene miles de millones de respuestas a preguntas hiper-específicas, muchas de los cuales incluyen fragmentos de códigos. Los fragmentos podrían tener una línea de código o 100, por lo que la cantidad de códigos copiados puede variar ampliamente.
Técnicamente, se supone que muchos fragmentos de código copiados del sitio y pegados en un proyecto deben atribuirse a la fuente, de acuerdo con Jay Hanlon, vicepresidente de la comunidad de Stack Overflow. Pero eso depende de cuánto tiempo son los fragmentos y su originalidad.
“Una gran cantidad de código en SO es probablemente corta y no lo suficientemente creativa como para no necesitar derechos con licencia para su reutilización creativa”, dijo Hanlon.
De acuerdo con Helme, quien publicó la captura de pantalla de la aplicación de Nissan, el problema no es tanto que el código fuera copiado de Stack Overflow, sino el mensaje que da al cliente sobre su garantía de calidad.
“El punto principal en realidad no es que el código fue tomado de SO, creo que la mayoría de nosotros estaríamos de acuerdo en que es un gran recurso y probablemente lo han utilizado”, escribió Helme en un correo electrónico.
“El problema es que el código evidentemente ha sido utilizado sin entender completamente lo que hizo o sin ningún tipo de revisión adecuada o QA (Quality Assurance). Algo así como que si nunca llegó a la producción, pero es un error evidente”.
Nissan no ha respondido a una solicitud de comentarios.
Así que la lección es: Nunca, nunca copiar y pegar el código de internet que no entiendas. Repito: no copiar y pegar un código de Internet que no entienda.