Coders Conquer Security OWASP Top 10 API Series - Asignación masiva
La vulnerabilidad de la asignación masiva nació porque muchos frameworks modernos animan a los desarrolladores a utilizar 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 utilizar esta metodología para forzar cambios en las propiedades de los objetos que nunca deberían ser actualizados por un cliente. Normalmente, esto da lugar a problemas específicos del negocio, como que un usuario se añada privilegios de administrador a sí mismo, en lugar de hacer caer un sitio web o robar secretos corporativos. Los atacantes también deben tener alguna 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 la asignación masiva sea menos peligrosa en manos de un usuario inteligente y malicioso.
Antes de lanzarnos a la guía completa, juega a nuestro reto gamificado y comprueba cómo te va:
¿Cómo pueden los atacantes explotar la vulnerabilidad de la asignación masiva?
El escenario planteado por OWASP (y modificado ligeramente por nosotros) supone 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 los permisos que los usuarios pueden cambiar y propiedades dependientes del proceso que sólo deben ser establecidas internamente por la aplicación. Ambas utilizan la asignación masiva para vincular las propiedades a los objetos.
En este escenario, la aplicación para compartir viajes permite a los usuarios actualizar sus perfiles, como es común en muchas aplicaciones orientadas al usuario. Para ello se utiliza una llamada a la API enviada a PUT, que devuelve el siguiente objeto JSON:
{"user_name":"SneakySnake", "age":17, "is_admin":false}
Como el atacante, el Sr. SneakySnake en este caso, ha averiguado la relación entre las propiedades y los objetos, puede reenviar su petición 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ó algunos años a su perfil, sino que también se asignó privilegios de administrador.
Eliminación de la vulnerabilidad de la asignación masiva
Por muy cómodo que sea utilizar la función de asignación masiva en algunos frameworks, deberías evitar hacerlo si quieres mantener tus APIs seguras. En su lugar, analice los valores de las solicitudes en lugar de vincularlos directamente a un objeto. También puede utilizar un objeto de transferencia de datos reducido que proporcionaría casi la misma comodidad que la vinculación directa al objeto en sí, sólo que sin el riesgo asociado.
Como precaución adicional, las propiedades sensibles como los privilegios de administrador del ejemplo anterior podrían ser denegadas para que nunca sean aceptadas por el servidor en una llamada a la API. Una idea aún mejor podría ser negar todas las propiedades por defecto y luego permitir las específicas, no sensibles, que usted quiere que los usuarios puedan actualizar o cambiar. Hacer cualquiera de estas cosas puede ayudar a bloquear las APIs y eliminar la vulnerabilidad de asignación masiva de su entorno.
Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre 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 Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.


La vulnerabilidad de la asignación masiva nació como resultado de que muchos frameworks modernos alientan a los desarrolladores a utilizar funciones que vinculan automáticamente la entrada de los clientes en variables de código y objetos internos.
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.


La vulnerabilidad de la asignación masiva nació porque muchos frameworks modernos animan a los desarrolladores a utilizar 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 utilizar esta metodología para forzar cambios en las propiedades de los objetos que nunca deberían ser actualizados por un cliente. Normalmente, esto da lugar a problemas específicos del negocio, como que un usuario se añada privilegios de administrador a sí mismo, en lugar de hacer caer un sitio web o robar secretos corporativos. Los atacantes también deben tener alguna 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 la asignación masiva sea menos peligrosa en manos de un usuario inteligente y malicioso.
Antes de lanzarnos a la guía completa, juega a nuestro reto gamificado y comprueba cómo te va:
¿Cómo pueden los atacantes explotar la vulnerabilidad de la asignación masiva?
El escenario planteado por OWASP (y modificado ligeramente por nosotros) supone 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 los permisos que los usuarios pueden cambiar y propiedades dependientes del proceso que sólo deben ser establecidas internamente por la aplicación. Ambas utilizan la asignación masiva para vincular las propiedades a los objetos.
En este escenario, la aplicación para compartir viajes permite a los usuarios actualizar sus perfiles, como es común en muchas aplicaciones orientadas al usuario. Para ello se utiliza una llamada a la API enviada a PUT, que devuelve el siguiente objeto JSON:
{"user_name":"SneakySnake", "age":17, "is_admin":false}
Como el atacante, el Sr. SneakySnake en este caso, ha averiguado la relación entre las propiedades y los objetos, puede reenviar su petición 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ó algunos años a su perfil, sino que también se asignó privilegios de administrador.
Eliminación de la vulnerabilidad de la asignación masiva
Por muy cómodo que sea utilizar la función de asignación masiva en algunos frameworks, deberías evitar hacerlo si quieres mantener tus APIs seguras. En su lugar, analice los valores de las solicitudes en lugar de vincularlos directamente a un objeto. También puede utilizar un objeto de transferencia de datos reducido que proporcionaría casi la misma comodidad que la vinculación directa al objeto en sí, sólo que sin el riesgo asociado.
Como precaución adicional, las propiedades sensibles como los privilegios de administrador del ejemplo anterior podrían ser denegadas para que nunca sean aceptadas por el servidor en una llamada a la API. Una idea aún mejor podría ser negar todas las propiedades por defecto y luego permitir las específicas, no sensibles, que usted quiere que los usuarios puedan actualizar o cambiar. Hacer cualquiera de estas cosas puede ayudar a bloquear las APIs y eliminar la vulnerabilidad de asignación masiva de su entorno.
Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre 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 Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

La vulnerabilidad de la asignación masiva nació porque muchos frameworks modernos animan a los desarrolladores a utilizar 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 utilizar esta metodología para forzar cambios en las propiedades de los objetos que nunca deberían ser actualizados por un cliente. Normalmente, esto da lugar a problemas específicos del negocio, como que un usuario se añada privilegios de administrador a sí mismo, en lugar de hacer caer un sitio web o robar secretos corporativos. Los atacantes también deben tener alguna 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 la asignación masiva sea menos peligrosa en manos de un usuario inteligente y malicioso.
Antes de lanzarnos a la guía completa, juega a nuestro reto gamificado y comprueba cómo te va:
¿Cómo pueden los atacantes explotar la vulnerabilidad de la asignación masiva?
El escenario planteado por OWASP (y modificado ligeramente por nosotros) supone 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 los permisos que los usuarios pueden cambiar y propiedades dependientes del proceso que sólo deben ser establecidas internamente por la aplicación. Ambas utilizan la asignación masiva para vincular las propiedades a los objetos.
En este escenario, la aplicación para compartir viajes permite a los usuarios actualizar sus perfiles, como es común en muchas aplicaciones orientadas al usuario. Para ello se utiliza una llamada a la API enviada a PUT, que devuelve el siguiente objeto JSON:
{"user_name":"SneakySnake", "age":17, "is_admin":false}
Como el atacante, el Sr. SneakySnake en este caso, ha averiguado la relación entre las propiedades y los objetos, puede reenviar su petición 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ó algunos años a su perfil, sino que también se asignó privilegios de administrador.
Eliminación de la vulnerabilidad de la asignación masiva
Por muy cómodo que sea utilizar la función de asignación masiva en algunos frameworks, deberías evitar hacerlo si quieres mantener tus APIs seguras. En su lugar, analice los valores de las solicitudes en lugar de vincularlos directamente a un objeto. También puede utilizar un objeto de transferencia de datos reducido que proporcionaría casi la misma comodidad que la vinculación directa al objeto en sí, sólo que sin el riesgo asociado.
Como precaución adicional, las propiedades sensibles como los privilegios de administrador del ejemplo anterior podrían ser denegadas para que nunca sean aceptadas por el servidor en una llamada a la API. Una idea aún mejor podría ser negar todas las propiedades por defecto y luego permitir las específicas, no sensibles, que usted quiere que los usuarios puedan actualizar o cambiar. Hacer cualquiera de estas cosas puede ayudar a bloquear las APIs y eliminar la vulnerabilidad de asignación masiva de su entorno.
Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre 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 Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.
La vulnerabilidad de la asignación masiva nació porque muchos frameworks modernos animan a los desarrolladores a utilizar 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 utilizar esta metodología para forzar cambios en las propiedades de los objetos que nunca deberían ser actualizados por un cliente. Normalmente, esto da lugar a problemas específicos del negocio, como que un usuario se añada privilegios de administrador a sí mismo, en lugar de hacer caer un sitio web o robar secretos corporativos. Los atacantes también deben tener alguna 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 la asignación masiva sea menos peligrosa en manos de un usuario inteligente y malicioso.
Antes de lanzarnos a la guía completa, juega a nuestro reto gamificado y comprueba cómo te va:
¿Cómo pueden los atacantes explotar la vulnerabilidad de la asignación masiva?
El escenario planteado por OWASP (y modificado ligeramente por nosotros) supone 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 los permisos que los usuarios pueden cambiar y propiedades dependientes del proceso que sólo deben ser establecidas internamente por la aplicación. Ambas utilizan la asignación masiva para vincular las propiedades a los objetos.
En este escenario, la aplicación para compartir viajes permite a los usuarios actualizar sus perfiles, como es común en muchas aplicaciones orientadas al usuario. Para ello se utiliza una llamada a la API enviada a PUT, que devuelve el siguiente objeto JSON:
{"user_name":"SneakySnake", "age":17, "is_admin":false}
Como el atacante, el Sr. SneakySnake en este caso, ha averiguado la relación entre las propiedades y los objetos, puede reenviar su petición 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ó algunos años a su perfil, sino que también se asignó privilegios de administrador.
Eliminación de la vulnerabilidad de la asignación masiva
Por muy cómodo que sea utilizar la función de asignación masiva en algunos frameworks, deberías evitar hacerlo si quieres mantener tus APIs seguras. En su lugar, analice los valores de las solicitudes en lugar de vincularlos directamente a un objeto. También puede utilizar un objeto de transferencia de datos reducido que proporcionaría casi la misma comodidad que la vinculación directa al objeto en sí, sólo que sin el riesgo asociado.
Como precaución adicional, las propiedades sensibles como los privilegios de administrador del ejemplo anterior podrían ser denegadas para que nunca sean aceptadas por el servidor en una llamada a la API. Una idea aún mejor podría ser negar todas las propiedades por defecto y luego permitir las específicas, no sensibles, que usted quiere que los usuarios puedan actualizar o cambiar. Hacer cualquiera de estas cosas puede ayudar a bloquear las APIs y eliminar la vulnerabilidad de asignación masiva de su entorno.
Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre 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 Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.
Índice
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Panorama de la gestión de riesgos de los promotores
La gestión de riesgos del desarrollador es un enfoque holístico y proactivo de la seguridad de las aplicaciones, centrado en quienes contribuyen al código y no en los bits y bytes de la propia capa de la aplicación.
Seguridad desde el diseño: Definición de las mejores prácticas, capacitación de los desarrolladores y evaluación comparativa de los resultados de la seguridad preventiva
En este documento de investigación, los cofundadores Secure Code Warrior , Pieter Danhieux y el Dr. Matias Madou, Ph.D., junto con los expertos colaboradores, Chris Inglis, ex Director Nacional Cibernético de EE.UU. (ahora Asesor Estratégico de Paladin Capital Group), y Devin Lynch, Director Senior, Paladin Global Institute, revelarán los hallazgos clave de más de veinte entrevistas en profundidad con líderes de seguridad empresarial, incluyendo CISOs, un VP de Seguridad de Aplicaciones y profesionales de seguridad de software.
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
Encontrar datos significativos sobre el éxito de las iniciativas Secure-by-Design es notoriamente difícil. Los responsables de la seguridad de la información se enfrentan a menudo al reto de demostrar el rendimiento de la inversión (ROI) y el valor empresarial de las actividades de los programas de seguridad, tanto a nivel de las personas como de la empresa. Por no mencionar que a las empresas les resulta especialmente difícil obtener información sobre cómo se comparan sus organizaciones con los estándares actuales del sector. La Estrategia Nacional de Ciberseguridad del Presidente desafió a las partes interesadas a "adoptar la seguridad y la resiliencia desde el diseño". La clave para que las iniciativas de seguridad por diseño funcionen no es sólo dotar a los desarrolladores de las habilidades necesarias para garantizar un código seguro, sino también garantizar a los reguladores que esas habilidades están en su lugar. En esta presentación, compartimos una miríada de datos cualitativos y cuantitativos, derivados de múltiples fuentes primarias, incluidos puntos de datos internos recogidos de más de 250.000 desarrolladores, opiniones de clientes basadas en datos y estudios públicos. Aprovechando esta agregación de puntos de datos, pretendemos comunicar una visión del estado actual de las iniciativas Secure-by-Design en múltiples verticales. El informe detalla por qué este espacio está actualmente infrautilizado, el impacto significativo que un programa de mejora de las competencias puede tener en la mitigación de los riesgos de ciberseguridad y el potencial para eliminar categorías de vulnerabilidades de un código base.
Servicios profesionales - Acelerar con experiencia
El equipo de servicios de estrategia de programas (PSS) de Secure Code Warriorle ayuda a crear, mejorar y optimizar su programa de codificación segura. Tanto si empieza de cero como si está perfeccionando su enfoque, nuestros expertos le proporcionarán orientación personalizada.
Recursos para empezar
Revelado: Cómo define el sector cibernético la seguridad por diseño
En nuestro último libro blanco, nuestros cofundadores, Pieter Danhieux y el doctor Matias Madou, se sentaron con más de veinte líderes de seguridad empresarial, incluidos CISO, líderes de AppSec y profesionales de la seguridad, para averiguar las piezas clave de este rompecabezas y descubrir la realidad detrás del movimiento Secure by Design. Se trata de una ambición compartida por todos los equipos de seguridad, pero no de un libro de jugadas compartido.
¿Vibe Coding va a convertir tu código en una fiesta de fraternidad?
Vibe Coding es como una fiesta de fraternidad universitaria, y la IA es la pieza central de todos los festejos, el barril. Es muy divertido dar rienda suelta a la creatividad y ver adónde te lleva tu imaginación, pero después de unas cuantas borracheras, beber (o usar IA) con moderación es, sin duda, la solución más segura a largo plazo.