
Uso de componentes con vulnerabilidades conocidas
La mayoría de las aplicaciones utilizan grandes cantidades de componentes de terceros. Estos componentes proporcionan todo tipo de funciones, desde el registro, la creación de plantillas, el acceso a las bases de datos y mucho más.
Esto facilita mucho el desarrollo de software y ahorra mucho tiempo; sin embargo, estos componentes también los fabrican personas y algunos inevitablemente contendrán vulnerabilidades. Esto significa que, sin saberlo, podría estar expuesto a vulnerabilidades que podrían explotarse.
Mantener los componentes actualizados
Como regla general, se recomienda encarecidamente mantener los marcos, las bibliotecas y otros componentes actualizados de forma regular. Esto se puede hacer de varias maneras:
- Una gran cantidad de software de control de código fuente puede analizar tus repositorios y avisarte cuando se encuentra una vulnerabilidad en una dependencia.
- Muchos administradores de paquetes pueden analizar su aplicación e identificar cualquier dependencia vulnerable que pueda tener.
- Existen numerosas soluciones de análisis de composición de software (SCA) que pueden identificar cualquier dependencia vulnerable.
Mitigar el riesgo de deuda técnica
Un problema bastante insidioso con la actualización de las bibliotecas es que pueden tener cambios que descifran el código. Si bien suelen estar documentados, también puede haber cambios no documentados que pueden no aparecer hasta que el código se esté ejecutando en producción.
Si la aplicación ejecuta muchas versiones con respecto a la más reciente, es posible que se necesite una cantidad considerable de trabajo para actualizar a la versión más reciente. En el caso de que se descubra una vulnerabilidad urgente, es fundamental que estés relativamente actualizado con los componentes de terceros para evitar una situación en la que la actualización tarde días en completarse.
Tampoco se recomienda actualizar los 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 la aplicación.
¿La actualización podría hacerte sentir más inseguro?
Aunque no es habitual, ha habido casos en los que una vulnerabilidad puede:
- No existe en versiones anteriores.
- Introdúzcase al corregir una vulnerabilidad
Estos casos pueden llevar a creer que la actualización regular de los paquetes no es realmente deseable. Por supuesto, esta forma de pensar debe evitarse siempre que sea posible, ya que conduce a la acumulación de deuda técnica.
Dada la relativa rareza que representa este escenario, los beneficios de actualizar los paquetes con frecuencia superan con creces la posibilidad de que se presente una vulnerabilidad recientemente introducida, que de todos modos debería mitigarse fácilmente si te mantienes actualizado de forma regular.
También supone que los proveedores no corrigen las vulnerabilidades de forma silenciosa sin ninguna divulgación, lo que lamentablemente sigue siendo muy común.
Ejemplos notables
A continuación se enumeran algunos ejemplos notables de los que probablemente haya oído hablar en los últimos tiempos. Puede ver cómo y por qué es importante revisar sus bibliotecas y asegurarse de mantenerse actualizado.