JavaScript está en todos lados… ¡Y sus debilidades también!

Carlos Ávila    13 junio, 2019

En la década de los 90, en muchos casos JavaScript nos servía poco más que para lanzar nieve en navidad o cambiar de skins en ciertas fechas a nuestras páginas web. En la actualidad esta tecnología de programación está en boca de toda la comunidad, porque es con la que se están construyendo las aplicaciones web modernas, de escritorio e incluso las aplicaciones móviles. Está ejecutándose en backends, frontends, embebido en dispositivos IoT, controlando robots… ¡en todas partes!

Estamos viendo cada vez un incremento de estabilidad y popularidad de tecnología JavaScript -llámense estas librerías o frameworks-, según los datos que podemos extraer de diversas fuentes de la comunidad de desarrollo como pueden ser stackoverflow, GitHub, googletrends o stateofjs.

JavaScript con la mayor cantidad de repositorios activos en GitHub

En base a esta información observamos cómo JavaScript viene consolidándose de manera acelerada en diversos proyectos en Internet en diferentes industrias. Pero como en toda tecnología o lenguaje de programación, los atacantes buscan dónde están fallando estas “nuevas” tecnologías que usan las infraestructuras tecnológicas de empresas, industrias y usuarios para aprovecharse de nuevas vulnerabilidades y, de esta manera, afectar la seguridad de los datos que se gestionan desde estas aplicaciones.

En un estudio realizado por la Universidad Northeastern establecieron que más del 37% de los sitios web utilizan al menos una versión de biblioteca con una vulnerabilidad conocida. Dentro de ese análisis se encuentran JQuery, Angular, Prototype o Backbone entre otros que puedes revisar a detalle aquí.

El “ecosistema de JavaScript” por su historia no tiene un marco sólido para documentar las vulnerabilidades en las bibliotecas o frameworks. En estos últimos años se ha intentado hacer algo en la comunidad para mantener una lista coherente de las vulnerabilidades conocidas. Las vulnerabilidades de JQuery aparecen en la web CVE per,o ¿qué pasa con Angular? El hecho de que no aparezca allí no significa que no tenga vulnerabilidades, sino que tiene su propio lugar en GitHub para documentar y reportar sus vulnerabilidades.

CVE hasta la fecha del Proyecto de NodeJS
https://www.cvedetails.com/product/22804/?q=Nodejs

Además de las vulnerabilidades conocidas hasta el día de hoy en NodeJS, una de las discrepancias y preocupaciones que existe en la comunidad es cómo saber que los paquetes que aportan los desarrolladores es código seguro para incluir en tu proyecto. Esto es algo similar a lo que pasa con los plugins de los manejadores de contenido como WordPress, Drupal, etc. Ya que frecuentemente se encuentran fallos de seguridad en los mismos.

Las tecnologías de programación JavaScript están en incremento en todo Internet e incorporan funcionalidades y sencillez para acelerar los procesos de desarrollo. Las industrias están incorporando este lenguaje en casi todos sus proyectos, pero como en cualquier tecnología, las debilidades y mejoras deberían ser adoptadas dentro de sus procesos de revisión de seguridad.

Por lo general, existen opciones para adaptar controles de seguridad en tu proyecto de desarrollo e intentar hacerlo de la manera más segura y funcional posible. Desde ElevenPaths intentamos aportar con nuestra innovación a la industria y a la comunidad, por ello hemos hecho cosas como código para habilitar (2FA) doble factor de autenticación en NodeJS, o desarrollar herramientas para fortalecer Wodpress entre otros.

Los procesos desarrollo de software en la actualidad son muchos más complejos ya que no solo dependen de una tecnología sino de varias que se suman para logar el éxito en funcionalidad, seguridad, rendimiento y demás. Pero no debemos olvidar los procedimientos, documentación, aplicación de controles de seguridad y monitoreo frecuente sobre las debilidades que aparecen de las tecnologías usadas en tus proyectos para ejecutar alguna acción a tiempo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *