¿Qué es una aplicación retroactiva?
Una aplicación retroactiva se produce cuando se toma un parche o actualización de software de una versión de software reciente y se aplica a una versión anterior del mismo software.
La aplicación retroactiva se utiliza comúnmente para abordar fallos de seguridad en software tradicional o versiones más antiguas del software que todavía cuentan con soporte del desarrollador. En muchos casos, el usuario mantiene la versión anterior del software porque la versión más reciente tiene problemas de estabilidad o puede ser incompatible con aplicaciones posteriores.
Cómo funciona la aplicación retroactiva
"Aplicación retroactiva" es un término general para cualquier actividad que aplique actualizaciones o parches de una versión más reciente de software a una versión anterior.
Este proceso puede ser tan sencillo como actualizar varias líneas de código o también puede implicar una revisión más amplia que se extienda a través de varios archivos del código.
En este último caso, una aplicación retroactiva puede resultar poco práctica en comparación con la actualización a la versión más reciente del software. Sin embargo, en casos concretos, puede ser necesario conservar una aplicación tradicional si la versión más reciente tiene problemas de estabilidad que pueden afectar a operaciones de misión crítica.
El proceso de aplicación retroactiva
La aplicación retroactiva incluye varios pasos. A continuación, describimos los pasos básicos para desarrollar e implementar una aplicación retroactiva:
- Identificar el fallo de seguridad en la versión del software que requiere un parche o actualización
- Determinar qué parches, actualizaciones o modificaciones están disponibles para solucionar este problema en versiones posteriores del mismo software
- Adaptar la modificación para que sea compatible con la versión anterior del código
- Realizar pruebas sólidas para garantizar que el código o paquete al que se realiza la aplicación retroactiva mantiene la funcionalidad completa dentro de la arquitectura de TI, así como que aborda el fallo de seguridad subyacente
- Resolver los efectos secundarios no deseados identificados en el paso anterior
- Implementar el parche con aplicación retroactiva
¿Quién es responsable de la aplicación retroactiva?
La aplicación retroactiva requiere acceso al código fuente del software. Como tal, el equipo de desarrollo principal puede desarrollar y proporcionar la aplicación retroactiva para el software de código cerrado. Esto puede hacerse como parte de una revisión oficial o de una corrección de errores. Para el software de código abierto, como Linux, un tercero puede proporcionar una aplicación retroactiva y luego enviarla al equipo de desarrollo de software.
¿Dónde encaja la aplicación retroactiva en la gestión de vulnerabilidades?
La aplicación retroactiva ofrece muchas ventajas, aunque no es en absoluto una solución sencilla para problemas de seguridad complejos. Además, confiar en la aplicación retroactiva a largo plazo puede introducir otras amenazas de seguridad, cuyo riesgo puede superar al del problema original.
Problemas y consideraciones comunes de la aplicación retroactiva
Costes de asistencia y mantenimiento a largo plazo
Las aplicaciones retroactivas pueden ser una forma eficaz de abordar los fallos de seguridad y las vulnerabilidades de las versiones antiguas de software. Sin embargo, cada aplicación retroactiva introduce un grado considerable de complejidad en la arquitectura del sistema y su mantenimiento puede resultar costoso.
Por ejemplo, Python 2.7.18 fue la versión oficial final de Python 2. Para mantenerse al día con los parches de seguridad y seguir disfrutando de todos los nuevos desarrollos que ofrece Python, las organizaciones necesitaban actualizarse a Python 3 o empezar a fijar los requisitos y asumir el compromiso de un soporte tradicional a largo plazo. El equipo de ciencia de datos de CrowdStrike se enfrentó a este mismo dilema. Este artículo explora el proceso de toma de decisiones del equipo, así como los pasos que se dieron para actualizar aproximadamente 200 000 líneas de Python en un marco moderno.
Efectos secundarios de la aplicación retroactiva
Como se comenta en nuestra entrada de blog sobre Python, la aplicación retroactiva puede dar lugar a numerosos efectos secundarios no deseados en el entorno de TI. Al igual que una aplicación de software ascendente afecta a todas las aplicaciones descendentes, también lo hace una aplicación retroactiva en el software central. Esto se aplica también en caso de aplicación retroactiva dentro del kernel.
Implicaciones y vulnerabilidades de seguridad adicionales
La aplicación retroactiva es una técnica común para solucionar un error conocido en el entorno informático. Al mismo tiempo, confiar en un código tradicional introduce otras implicaciones de seguridad potencialmente significativas para las organizaciones. Confiar en código antiguo o tradicional podría dar lugar a la introducción de debilidades o vulnerabilidades en tu entorno. Estos problemas afectan no solo a la aplicación principal, sino también a todas las bibliotecas dependientes y a las aplicaciones bifurcadas de los repositorios públicos. Es importante tener en cuenta cómo encaja cada aplicación retroactiva en la estrategia de seguridad general de la organización, así como en la arquitectura de TI. Esto se aplica tanto a las aplicaciones de software ascendentes como al propio kernel.
Confusión numérica
La aplicación retroactiva puede dar a los usuarios una falsa sensación de seguridad si no se comprende completamente el proceso de enumeración. Por ejemplo, los usuarios pueden leer informes en los medios de comunicación sobre la actualización de su software para hacer frente a problemas de seguridad. Sin embargo, lo que realmente hacen es instalar un paquete actualizado del proveedor y no la última versión ascendente de la aplicación. En este escenario, el usuario sigue ejecutando una versión anterior del software con paquetes de aplicación retroactiva. De este modo, no se ofrecen todas las funciones de seguridad ni las ventajas de utilizar la última versión del software. Los usuarios deben comprobar con detenimiento el número de actualización de software específico para asegurarse de que están actualizando a la última versión.