Está en la página 1de 2

A9 Using Components with Known Vulnerabilities.

/ Uso de componentes con


vulnerabilidades conocidas

Las aplicaciones modernas contienen mucho código de terceros.


Es difícil mantenerlo todo actualizado. Los atacantes pueden enumerar las bibliotecas
que usted utiliza y desarrollar exploits.
Los componentes, como las bibliotecas, los frameworks y otros módulos de software, se
ejecutan con los mismos privilegios que la aplicación. Si se explota un componente
vulnerable, un ataque de este tipo puede facilitar una grave pérdida de datos o la toma
de posesión del servidor. Las aplicaciones y API que utilizan componentes con
vulnerabilidades conocidas pueden debilitar las defensas de la aplicación y permitir
diversos ataques e impactos.
Agentes de amenazas/Vectores de ataque
Aunque es fácil encontrar exploits ya escritos para muchas vulnerabilidades conocidas,
otras vulnerabilidades requieren un esfuerzo concentrado para desarrollar un exploit
personalizado.
Debilidad de seguridad
La prevalencia de este problema está muy extendida. Los patrones de desarrollo con
muchos componentes pueden llevar a los equipos de desarrollo a no entender siquiera
qué componentes utilizan en su aplicación o API, y mucho menos a mantenerlos
actualizados.
Algunos escáneres como retire.js ayudan en la detección, pero determinar la
explotabilidad requiere un esfuerzo adicional.
retire.js: Es una librería de JavaScripts que tiene como objetivo ayudar a detectar el uso
de versiones con vulnerabilidades conocidas
Impacto
Mientras que algunas vulnerabilidades conocidas sólo provocan impactos menores,
algunas de las mayores violaciones hasta la fecha se han basado en la explotación de
vulnerabilidades conocidas en los componentes. Dependiendo de los activos que esté
protegiendo, tal vez este riesgo debería ser el primero de la lista.
Como Prevenir
Debe haber un proceso de gestión de parches para:
- Eliminar las dependencias no utilizadas, las características innecesarias componentes,
archivos y documentación innecesarios.
- Inventariar continuamente las versiones de los componentes del lado del cliente y del
componente del lado del cliente y del lado del servidor (por ejemplo, frameworks,
bibliotecas) y sus dependencias utilizando herramientas como versions,
DependencyCheck, retire.js, etc. Supervisar continuamente fuentes como CVE y NVD
para detectar vulnerabilidades en los componentes. Utilizar herramientas de análisis de
de software para automatizar el proceso. Suscríbase a las alertas de vulnerabilidades de
seguridad relacionadas con los componentes que utiliza.
- Obtenga los componentes sólo de fuentes oficiales a través de enlaces seguros.
Prefiera los paquetes firmados para reducir la posibilidad de incluir un componente
modificado y malicioso.
- Vigile las bibliotecas y componentes que no reciben mantenimiento o que no crean
parches de seguridad para las versiones más antiguas. Si no es posible aplicar parches,
considere la posibilidad de desplegar un parche virtual para supervisar, detectar o
proteger contra el problema descubierto. Toda organización debe asegurarse de que
existe un plan continuo para para supervisar, clasificar y aplicar actualizaciones o
cambios de configuración durante toda la vida útil de la aplicación o cartera.

También podría gustarte