El &#39abuso de propiedad oculta&#39 permite ataques en Node.js …


Un equipo de investigadores de Ga Tech encuentra una nueva técnica de ataque que apunta a propiedades en Node.js y planea lanzar públicamente una herramienta que ya ha identificado 13 nuevas vulnerabilidades.

Un equipo compuesto por investigadores de seguridad del Instituto de Tecnología de Georgia ha encontrado una manera de explotar las aplicaciones de Node.js manipulando las propiedades ocultas utilizadas para rastrear los estados internos del programa, el grupo planea anunciar en la conferencia virtual de seguridad de Black Hat United states of america la próxima semana. .

La novedosa técnica de ataque, denominada Abuso de propiedades ocultas, permite a un atacante remoto inyectar nuevos valores en los programas de Node.js a través de objetos que pasan y que el marco, en las circunstancias correctas, tratará como datos internos. Usando una herramienta para analizar una muestra de 60 componentes principales de Node.js, los investigadores encontraron 13 vulnerabilidades, que van desde la inyección SQL hasta la capacidad de evitar la validación de entrada.

La herramienta, denominada Lynx, se lanzará durante la conferencia digital de seguridad de Black Hat United states, dice Feng Xiao, el investigador principal y estudiante de doctorado en la Facultad de Informática de Ga Tech.

«Nuestros ataques se centran en ciertos estados o propiedades del programa definidos por los desarrolladores, como el ID de usuario u otras características del programa», dice. «Descubrimos que este patrón de ataque es bastante común, pero puede ser complejo de encontrar, por lo que creamos la herramienta para ayudar a otros».

Abuso de propiedad oculta aprovecha la suposición de los desarrolladores de que un atacante externo no puede acceder a los estados internos del programa. La causa raíz del problema es que «(a) después de que los datos de entrada se conviertan en objetos, Node.js los trata como objetos legítimos como cualquier otro interno», afirman los investigadores en un documento aún por publicar sobre El tema.

La técnica de ataque es related a la Contaminación de prototipos de JavaScript, en la que un atacante modifica un objeto prototipo que luego se fusiona, cambiando el prototipo base de un objeto, cambios que luego se propagan a otros objetos JavaScript basados ​​en ese prototipo. Sin embargo, en el caso del abuso de propiedades ocultas, el prototipo no cambia, pero las propiedades heredadas de un prototipo pueden sobrescribirse, dicen los investigadores.

«Estos parámetros a veces se asocian con algunos estados críticos del programa, pero nadie conoce su existencia hasta que un atacante los explota, por eso los llamamos propiedades ocultas», dice Feng. El equipo de investigación consta de seis estudiantes y Wenke Lee, profesor de informática en Ga Tech.

Node.js es una plataforma extremadamente preferred para ejecutar código JavaScript en un entorno de servidor para aplicaciones habilitadas para la nube, con más del 51% de los desarrolladores que afirman usar Node.js de forma frequent, según Encuesta para desarrolladores de StackOverflow 2020. Alrededor del 70% de los desarrolladores han designado a Node.js como su plataforma de aplicación principal, según la encuesta de tecnologías de código abierto de la firma de seguridad Snyk. Empresas de Netflix a Trello a LinkedIn de Microsoft use, o haya usado, Node.js como marco para una parte de sus servicios.

Para empeorar el impacto, Node.js depende en gran medida de las dependencias. Un solo componente puede importar docenas de otros componentes, y si uno de esos paquetes es vulnerable, el componente unique también lo será. En un informe reciente, la firma de seguridad de software program Veracode descubrió que el programa JavaScript promedio importaba 377 bibliotecas.

«(D) debido al gran fenómeno de reutilización en el ecosistema Node.js, una gran cantidad de aplicaciones Node.js pueden verse afectadas si se encuentra que un módulo ampliamente utilizado es susceptible», señala el informe.

La técnica de ataque de los investigadores de Ga Tech aprovecha el hecho de que las comunicaciones entre el lado del servidor y el cliente de una aplicación Node.js generalmente se realizan con objetos JavaScript, debido a las características integradas que facilitan dichas comunicaciones y permiten datos más complejos estructuras a pasar entre componentes.

Sin embargo, si un atacante puede enviar objetos con propiedades adicionales, puede enumerar las posibilidades ocultas que luego podrían manipularse para atacar la aplicación. Los investigadores dicen que las propiedades ocultas a menudo representan el estado interno del programa y cambiarlas puede tener un impacto en la seguridad del programa.

«En nuestro análisis, encontramos que la propiedad reemplazada puede ser cualquier dato, como una función crítica o un estado clave del programa», indica el informe. «Por lo tanto, el atacante puede abusar del proceso de propagación … de una propiedad oculta para manipular poderosamente la lógica crítica del programa asociada con la propiedad comprometida».

Para ayudar a los desarrolladores a identificar posibles vectores de ataque en su propia aplicación Node.js, el equipo de investigación ha creado una herramienta, denominada Lynx, que se lanzará durante los Black Hat Safety Briefings a principios de agosto. La herramienta identifica posibles propiedades vulnerables mediante la propagación de parámetros falsos para enumerar y rastrear el uso de propiedades en el código.

«Lynx combina las ventajas del análisis estático y dinámico para rastrear la propagación de propiedades, identificar propiedades ocultas y generar las vulnerabilidades concretas correspondientes», señala el documento.

Las 13 vulnerabilidades reveladas por el equipo fueron descubiertas usando la herramienta para evaluar 60 programas populares de Node.js. Usando Lynx, el grupo encontró 318 candidatos para propiedades ocultas, con más de dos tercios de los programas que contienen tales propiedades. Luego, mediante el análisis dinámico, los investigadores pudieron identificar propiedades probablemente vulnerables.

«Para Lynx, rastreamos los flujos de datos del usuario y analizamos estáticamente la propagación para encontrar posibles dependencias de datos que el atacante podría crear», dice Feng. «Dos grupos de personas deberían usar las herramientas: los desarrolladores que desarrollan API pueden usar nuestras herramientas para atacar su propio programa y arreglar el programa construyendo o eliminando estas propiedades ocultas, y los investigadores de seguridad – piratas informáticos – pueden usar las herramientas para encontrar problemas potenciales en los programas de código abierto «.

Contenido relacionado:

Regístrese ahora para el Black Hat Usa totalmente digital de este año, programado para el 1 y 6 de agosto, y obtenga más información sobre el evento en el sitio internet de Black Hat. Haga clic para obtener detalles sobre información de la conferencia y para registrarse.

Periodista de tecnología veterano de más de 20 años. Ex ingeniero de investigación. Escrito para más de dos docenas de publicaciones, incluidas CNET Information.com, Dim Examining, MIT&#39s Engineering Evaluation, Common Science y Wired Information. Cinco premios para periodismo, incluyendo Mejor fecha límite … Ver biografía completa

Lectura recomendada:

Más suggestions





Enlace a la noticia unique