← Últimos artículos
💻 computer science

Unsafe and Unused? A History of Utility Code in Mature Open Source Projects

Mediante un estudio longitudinal de minería de siete proyectos maduros de código abierto, este trabajo revela que los archivos denominados con "util" tienen una probabilidad significativamente mayor de estar involucrados en vulnerabilidades y a menudo permanecen sin uso, lo que destaca la necesidad de que los desarrolladores reconsideren la seguridad y el mantenimiento de dicho código de utilidad a lo largo del tiempo.

Autores originales: Brandon Keller, Kaitlin Yandik, Angela Ngo, Andy Meneely

Publicado 2026-05-01
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Brandon Keller, Kaitlin Yandik, Angela Ngo, Andy Meneely

Artículo original dedicado al dominio público bajo CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina una ciudad masiva y bulliciosa donde miles de arquitectos y constructores están constantemente construyendo y renovando un rascacielos gigante y compartido. Este rascacielos es un proyecto de software de código abierto. En esta ciudad, hay una regla especial: cada vez que un constructor crea una herramienta o una función que podría ser útil para todos—como una llave inglesa universal o una llave maestra—se les alienta a colocarla en una habitación específica y claramente etiquetada llamada "Util" (abreviatura de "Utilidad").

La idea es excelente: en lugar de que cada constructor fabrique su propia llave inglesa, todos toman una de la habitación "Util". Esto ahorra tiempo y mantiene las cosas organizadas.

Pero un equipo de investigadores del Instituto de Tecnología de Rochester se hizo una pregunta sencilla: ¿Qué sucede realmente con estas habitaciones "Util" con el paso del tiempo? ¿Permanecen seguras y útiles, o se vuelven peligrosas, desordenadas y abandonadas?

Para averiguarlo, estudiaron siete "rascacielos" famosos (proyectos de software como el Kernel de Linux, Django y Apache Tomcat) durante un período de 147 años de desarrollo combinado. Examinaron la historia de cada archivo, cada cambio de nombre y cada corrección de seguridad. Esto es lo que descubrieron, explicado de forma sencilla:

1. Las Habitaciones "Util" Están En Todas Partes (Pero No Siempre Se Usan)

Los investigadores encontraron que las habitaciones "Util" son muy comunes. En algunos proyectos, casi el 20% de todas las habitaciones del edificio están etiquetadas como "Util".

  • La Buena Noticia: Estas habitaciones se utilizan intensamente. En algunos proyectos, las herramientas dentro de la habitación "Util" se toman y usan 7 veces más a menudo que las herramientas en habitaciones regulares.
  • El Problema: Solo porque una habitación está etiquetada como "Util" no significa que se esté utilizando de manera eficiente. A veces, los constructores crean una nueva habitación "Util", solo para cambiarle el nombre más tarde porque en realidad no era útil, o la abandonan por completo.

2. Las Habitaciones "Util" Son Más Desordenadas (Más Complejas)

Si una habitación regular es un armario simple, una habitación "Util" suele ser un taller caótico lleno de cables enredados y maquinaria compleja.

  • El estudio encontró que en 6 de cada 7 proyectos, los archivos "Util" eran significativamente más complejos que los archivos regulares.
  • ¿Por qué? Porque todos depositan sus herramientas "comunes" allí. Con el tiempo, estos archivos se inflan con demasiadas funciones, lo que los hace más difíciles de entender y más difíciles de mantener seguros.

3. Las Habitaciones "Util" Son Esfuerzo de Equipo (Pero Caótico)

Podrías pensar que si un archivo es "Util", todos saben cómo usarlo. El estudio examinó quién trabajaba en estos archivos.

  • Encontraron que a menudo, la persona que construyó una herramienta en la habitación "Util" no es la misma persona que la usa.
  • De hecho, en los datos más recientes, más del 57% de las personas que trabajaban con estos archivos solo los construían o solo los usaban, pero rara vez hacían ambas cosas. Es como una fábrica donde las personas que construyen las máquinas nunca las operan realmente, y las personas que las operan nunca las reparan. Esta desconexión puede llevar a la confusión.

4. Las Habitaciones "Util" Son Zonas de Peligro (Riesgos de Seguridad)

Este es el hallazgo más crítico. Los investigadores trataron las "vulnerabilidades" (agujeros de seguridad) como grietas en los cimientos del edificio.

  • El Gran Pico: En los primeros días de un proyecto, cuando hay muy pocos archivos, un archivo "Util" tiene hasta 10 veces más probabilidades de tener una grieta de seguridad que un archivo regular.
  • A Largo Plazo: Incluso a medida que los proyectos maduran, los archivos "Util" siguen siendo más riesgosos. El estudio encontró que los archivos "Util" tienen 2.75 veces más probabilidades de estar involucrados en una corrección de seguridad que los archivos no "Util".
  • El Problema del "Reincidente": Cuando se repara un agujero de seguridad en un archivo "Util", es muy probable que vuelva a ocurrir. Es como parchar una fuga en una tubería, solo para que la misma tubería estalle de nuevo unos meses después. Esto sugiere que el equipo no está aprendiendo del error, quizás porque el archivo es demasiado complejo para repararlo adecuadamente.

5. El Kernel de Linux es El Excepción

Los investigadores notaron que el Kernel de Linux (un proyecto muy estable y masivo) se comportaba de manera diferente a los demás.

  • No seguía las tendencias habituales. Sus archivos "Util" no eran necesariamente más peligrosos, y no se cambiaban de nombre tan a menudo.
  • Los investigadores sospechan que esto se debe a que el Kernel de Linux es tan antiguo y estable que ya había consolidado sus hábitos "Util" antes de que comenzaran los datos que estudiaron. Es como un edificio antiguo que ha sido renovado tantas veces que los planos originales han desaparecido hace mucho, pero la estructura es sólida.

La Conclusión

El documento concluye que, aunque la idea de una habitación "Util" es buena (para evitar que la gente reinvente la rueda), en la práctica, estas habitaciones a menudo se vuelven inseguras y con poco mantenimiento.

  • Se vuelven demasiado complejas.
  • Tienen demasiados agujeros de seguridad.
  • Las personas que las construyen y las personas que las usan a menudo no hablan entre sí.

El Consejo para los Constructores:
No simplemente pegues una etiqueta "Util" en un archivo y esperes lo mejor. Si eres un gestor de proyectos, necesitas:

  1. Documentar qué significa realmente "Util" para tu equipo.
  2. Vigilar que estos archivos no se vuelvan demasiado complejos.
  3. Tener especial cuidado con las verificaciones de seguridad en estos archivos, porque la historia muestra que son los más propensos a fallar.

En resumen: Nombrar un archivo "Util" no lo convierte en una solución mágica; a veces, simplemente lo convierte en un objetivo de alto riesgo.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →