Uso de componentes con vulnerabilidades conocidas
La mayoría de las aplicaciones hacen uso de grandes cantidades de componentes de terceros. Estos componentes proporcionan de todo, desde registro, plantillas, acceso a bases de datos y mucho más.
Esto facilita enormemente el desarrollo de software, ahorrando mucho tiempo. Sin embargo, estos componentes también están hechos por personas y algunos contendrán inevitablemente vulnerabilidades. Esto significa que podrías estar expuesto sin saberlo a vulnerabilidades que podrían ser explotadas.
Mantener los componentes actualizados
Como regla general, se recomienda encarecidamente mantener los frameworks, librerías y otros componentes actualizados de forma regular. Esto puede hacerse de varias maneras:
- Muchos programas de control de código fuente pueden analizar sus repositorios y alertarle cuando se detecta una vulnerabilidad en una dependencia.
- Muchos gestores de paquetes pueden analizar su aplicación e identificar las dependencias vulnerables que pueda tener
- Existen numerosas soluciones de análisis de la composición del software (SCA) que pueden identificar las dependencias vulnerables.
Mitigar el riesgo de deuda técnica
Un problema bastante insidioso de la actualización de librerías es que pueden tener cambios que rompan el código. Aunque suelen estar documentados, también puede haber cambios no documentados que no aparezcan hasta que el código esté en producción.
Si su aplicación se ejecuta muchas versiones por detrás de la más actual, puede haber una cantidad significativa de trabajo necesario para actualizar a la última versión. En el caso de que se revele una vulnerabilidad sensible al tiempo, es fundamental que estés relativamente al día con los componentes de terceros para evitar una situación en la que la actualización tarde días en realizarse.
Tampoco se recomienda actualizar paquetes a ciegas sin leer al menos las notas de la versión, ya que pueden contener información importante sobre cambios que no son obvios pero que podrían cambiar el funcionamiento de su aplicación.
¿La actualización podría hacerte más inseguro?
Aunque no es frecuente, ha habido casos en los que una vulnerabilidad puede:
- No existe en versiones anteriores
- Introducirse al solucionar una vulnerabilidad
Estos casos pueden llevar a pensar que actualizar los paquetes con regularidad no es realmente deseable. Por supuesto, este pensamiento debe evitarse en la medida de lo posible, ya que conduce a la acumulación de deuda técnica.
Dada la relativa rareza que representa este escenario, los beneficios de actualizar con frecuencia los paquetes superan con creces la posibilidad de una vulnerabilidad recién introducida, que de todos modos debería mitigarse fácilmente si se mantiene al día con regularidad.
También parte del supuesto de que los vendedores no corrigen vulnerabilidades silenciosamente sin revelarlas, lo que desgraciadamente sigue siendo muy habitual.
Ejemplos notables
A continuación se enumeran algunos ejemplos notables de los que probablemente habrá oído hablar en los últimos tiempos. Puede ver cómo y por qué es importante revisar sus bibliotecas y asegurarse de que está al día.