Blog

Serie OWASP Top 10 API de Coders Conquer Security: Asignación masiva

October 21, 2020
Dr. Matias Madou

La vulnerabilidad de asignación masiva surgió porque muchos marcos de trabajo modernos animan a los desarrolladores a usar funciones que vinculan automáticamente la entrada de los clientes a variables de código y objetos internos. Esto se hace para simplificar el código y acelerar las operaciones.

Los atacantes pueden usar esta metodología para forzar cambios en propiedades de objetos que nunca deberían ser actualizadas por un cliente. Normalmente, esto resulta en problemas específicos del negocio, como un usuario que se otorga privilegios de administrador, en lugar de tumbar un sitio web o robar secretos corporativos. Los atacantes también deben tener cierta idea de las relaciones entre los objetos y la lógica de negocio de la aplicación que están explotando.

Sin embargo, nada de eso hace que la vulnerabilidad de asignación masiva sea menos peligrosa en manos de un usuario inteligente y malintencionado.

Antes de comenzar con la guía completa, juega nuestro desafío gamificado y mira cómo te va:

¿Cómo pueden los atacantes explotar la vulnerabilidad de asignación masiva?

El escenario planteado por OWASP (y ligeramente modificado por nosotros) asume una aplicación de transporte compartido que incluye diferentes propiedades vinculadas a objetos en el código mediante asignación masiva. Estas incluyen propiedades relacionadas con permisos que los usuarios pueden cambiar y propiedades dependientes del proceso que solo deberían ser establecidas internamente por la aplicación. Ambas usan asignación masiva para vincular propiedades a objetos.

En este escenario, la aplicación de transporte compartido permite a los usuarios actualizar sus perfiles, como es común en muchas aplicaciones orientadas al usuario. Esto se hace mediante una llamada a la API enviada a PUT, que devuelve el siguiente objeto JSON:

{"user_name":"SneakySnake", "age":17, "is_admin":false}

Debido a que el atacante, el Sr. SneakySnake en este caso, ha descubierto la relación entre las propiedades y los objetos, puede reenviar su solicitud original para actualizar su perfil con la siguiente cadena:

{"user_name":"SneakySnake","age":24,, "is_admin":true}

Como el endpoint es vulnerable a la asignación masiva, acepta la nueva entrada como válida. Nuestro hacker no solo añadió unos años a su perfil, sino que también se asignó privilegios de administrador.

Eliminar la vulnerabilidad de asignación masiva

Por muy conveniente que sea usar la función de asignación masiva en algunos marcos de trabajo, deberías evitar hacerlo si quieres mantener tus APIs seguras. En su lugar, analiza los valores de la solicitud en lugar de vincularlos directamente a un objeto. También puedes usar un objeto de transferencia de datos reducido, que proporcionaría casi la misma comodidad que vincular directamente al objeto, pero sin el riesgo asociado.

Como precaución adicional, las propiedades sensibles como los privilegios de administrador del ejemplo anterior podrían denegarse para que nunca sean aceptadas por el servidor en una llamada a la API. Una idea aún mejor podría ser denegar todas las propiedades por defecto y luego permitir solo las específicas y no sensibles que desees que los usuarios puedan actualizar o cambiar. Hacer cualquiera de estas cosas puede ayudar a blindar las APIs y eliminar la vulnerabilidad de asignación masiva de tu entorno.

Consulte las páginas del blog de Secure Code Warrior para obtener más información sobre esta vulnerabilidad y cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación de Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.