La imposibilidad de realizar las actualizaciones necesarias al código de software puede tener consecuencias nefastas, como la importante violación de datos en Equifax. Un estudio reciente encuentra que las herramientas de reparación automática son formas efectivas de hacer que los programadores realicen las actualizaciones relevantes, si los programadores optan porusalos, usalos a ellos.
"La mayoría de los programas de software dependen, en parte, del código en 'bibliotecas' externas para realizar algunas de sus funciones", dice Chris Parnin, profesor asistente de informática en la Universidad Estatal de Carolina del Norte y autor principal de un artículo sobre el trabajo"Si esas bibliotecas externas se modifican para corregir fallas, los programadores necesitan actualizar su código interno para dar cuenta de los cambios. Esto se llama 'actualizar una dependencia desactualizada'. Sin embargo, por varias razones, muchos programadores posterganfuera de las actualizaciones necesarias.
"Esto es lo que sucedió en Equifax", dice Parnin. "Una biblioteca externa en la que confiaron hizo público que contenía una falla de seguridad. Y aunque la biblioteca externa fue parchada, Equifax nunca llegó a actualizar su código interno. Entoncesmeses después de que se identificara el problema, Equifax seguía siendo vulnerable y fue pirateado.
"Nuestro objetivo con este proyecto era evaluar las herramientas diseñadas para que más programadores actualicen sus dependencias desactualizadas. ¿Podrían ayudar a prevenir otro Equifax?"
Para este estudio, los investigadores analizaron miles de proyectos de código abierto en GitHub, una comunidad de programación en línea que fomenta la colaboración en proyectos de software de código abierto. Específicamente, los investigadores analizaron diferentes medios utilizados para incentivar o facilitar actualizaciones y siesos incentivos hicieron alguna diferencia.
Un grupo consistió en 2,578 proyectos que utilizaron solicitudes de extracción automatizadas, que notificaron a los propietarios del proyecto sobre las actualizaciones necesarias para dependencias desactualizadas, propusieron cambios potenciales en el código y realizaron una pequeña batería de pruebas para determinar si el código de reemplazo era viable.Estos propietarios de proyectos aún tenían que aprobar los cambios o modificar el código actualizado si fallaba las pruebas de viabilidad iniciales.
Un segundo grupo consistió en 1,273 proyectos que no utilizaron incentivos para actualizar dependencias desactualizadas.
Los investigadores encontraron que los proyectos con solicitudes de extracción automatizadas realizaron un 60 por ciento más de las actualizaciones necesarias que los proyectos que no utilizaron incentivos.
"También encontramos que la mayoría de los proyectos de solicitud de extracción automatizada estaban utilizando las versiones más actualizadas de software dependiente, mientras que los proyectos no incentivados estaban en todo el mapa", dice Parnin. "El mensaje para llevar a casa aquí esque tenemos herramientas automatizadas que pueden ayudar a los programadores a mantenerse al día con las actualizaciones. Estas herramientas no pueden reemplazar a los buenos programadores, pero pueden marcar una diferencia significativa. Sin embargo, aún depende de los programadores poner estas herramientas en su lugar y utilizarlas."
El documento, "¿Pueden las solicitudes de extracción automatizadas alentar a los desarrolladores de software a actualizar las dependencias desactualizadas?", Se presentará en la Conferencia internacional IEEE / ACM sobre ingeniería de software automatizada, del 30 de octubre al 3 de noviembre en la Universidad deIllinois en Urbana-Champaign, Ill. El autor principal del artículo es Samim Mirhosseini, un estudiante de pregrado en el estado de Carolina del Norte. El trabajo de Mirhosseini en el proyecto fue apoyado por una beca de Research Experience for Undergraduates de la National Science Foundation.
Fuente de la historia :
Materiales proporcionado por Universidad Estatal de Carolina del Norte . Nota: El contenido puede ser editado por estilo y longitud.
Cite esta página :