El lado oscuro de las aplicaciones JavaScript

Carlos Ávila    20 febrero, 2020
El lado oscuro de las aplicaciones JavaScript

Las aplicaciones creadas hoy en día para interoperabilidad en diferentes sistemas operativos, incluyendo Skype, Spotify, Signal, Slack, navegadores como Brave, editores de código como Visual Studio Code y muchos programas más, son usadas a diario por cada uno de nosotros y se basan en uno de los lenguajes más usados en la actualidad como es JavaScript. Además, se suman sus diferentes componentes a este stack, para su desarrollo y ejecución tanto en frontend como backend.

Como decíamos el año pasado, este popular lenguaje cuenta con un sinnúmero de oportunidades para poder desplegar paquetes y aplicaciones para el un desarrollo de software web, pero no sólo eso, a esto también se suma que se han vuelto muy populares para el desarrollo de programas de escritorio independientemente del sistema operativo. Existen varios frameworks populares para el desarrollo de este tipo de aplicaciones, entre los cuales se destaca ElectronJS (como número uno y más usado), pero tenemos otros como NWJS, AppJS, Meteor y más.

 Arquitectura de Aplicación ElectronJS
Arquitectura de Aplicación ElectronJS

Al crear estas aplicaciones, como cualquier otra tecnología, los atacantes buscan formas de aprovecharse de estas “nuevas” implementaciones, que en muchos de los casos extienden fallos de diseño de los propios lenguajes o, al ser integradas con otros componentes, amplían los vectores de ataque, que en la actualidad pueden llegar a representar un riesgo para los datos de los usuarios.

A través de la modificación de este tipo de aplicaciones y sin emitir ninguna alerta al usuario sobre dicho comportamiento, investigadores de seguridad han encontrado la forma de poder explotar debilidades que permitan introducir código arbitrario malicioso backdoor que ejecute acciones maliciosas en el equipo de la víctima (por ejemplo, capturar pulsaciones del teclado keylogger o habilitar la cámara del usuario, entre otras). De la misma manera, un consultor de seguridad puede hacer uso de estos mismos vectores de ataque dentro de una auditoría para revelar datos o hacer movimientos laterales en una red. De hecho, existen hoy en día varias herramientas de ataque, como por ejemplo beemka, que permiten sacar provecho de manera rápida de estas vulnerabilidades.

Cómo proteger tus aplicaciones

Aquí algunas de las referencias que podrían ayudar a asegurar este tipo de aplicaciones:

  • Mantener tu aplicación sincronizada con la última versión del framework y componentes usados en tu desarrollo.
  • Evaluar las dependencias usadas por tu aplicación.
  • Analizar y conocer completamente el framework usado, esto incluye sus debilidades.
  • Implementar prácticas de desarrollo seguro en tu proyecto.

Esto sólo es un breve recordatorio para no descuidar las cosas básicas durante el desarrollo y despliegue de nuestras aplicaciones. En definitiva, los vectores a nuevas tecnologías o lenguajes migran, se actualizan, se mejoran y se diversifican, pero los riesgos siempre están presentes en todo el ciclo de vida del software, con lo cual siempre debes preguntarte ¿cuántas de las aplicaciones que uso podrían están poniendo en riesgo mis datos privados o están arriesgando la reputación de mis proyectos de desarrollo?

Deja un comentario

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