
Las 10 mejores API de la serie OWASP de Coders Conquer Security: falta el control de acceso a nivel de función
Esta serie de blogs se centrará en algunas de las peores vulnerabilidades relacionadas con las interfaces de programación de aplicaciones (API). Estas son tan malas que crearon el Open Web Application Security Project (AVISPA) lista de las principales vulnerabilidades de la API. Dada la importancia de las API para las infraestructuras informáticas modernas, se trata de problemas críticos que debe mantener fuera de sus aplicaciones y programas a toda costa.
El falta el control de acceso a nivel de función La vulnerabilidad permite a los usuarios realizar funciones que deberían restringirse o les permite acceder a recursos que deben protegerse. Normalmente, las funciones y los recursos se protegen directamente en el código o mediante los ajustes de configuración, pero no siempre es fácil hacerlo correctamente. Implementar las comprobaciones adecuadas puede resultar difícil porque las aplicaciones modernas suelen contener muchos tipos de roles y grupos, además de una compleja jerarquía de usuarios.
Pero primero, ¿por qué no te lanzas y juegas a nuestro desafío gamificado para ver cómo te encuentras a la hora de sortear esta complicada clase de bichos?
Echemos un vistazo más a fondo:
Las API son especialmente vulnerables a este defecto porque están muy estructuradas. Los atacantes que entienden el código pueden hacer conjeturas fundamentadas sobre cómo implementar comandos que deberían estar restringidos a ellos. Esa es una de las principales razones por las que la vulnerabilidad del control de acceso a nivel de función o recurso se ubicó entre las diez mejores del OWASP.
¿Cómo pueden los atacantes aprovechar la vulnerabilidad del control de acceso a nivel de función?
Los atacantes que sospechen que las funciones o los recursos no están protegidos adecuadamente deben obtener primero acceso al sistema que desean atacar. Para aprovechar esta vulnerabilidad, deben tener permiso para enviar llamadas de API legítimas al punto final. Quizás haya una función de acceso de invitados de bajo nivel o alguna forma de unirse de forma anónima como parte de la función de la aplicación. Una vez que se haya establecido ese acceso, pueden empezar a cambiar los comandos en sus llamadas a la API legítimas. Por ejemplo, pueden cambiar GET por PUT o cambiar la cadena USERS de la URL a ADMINS. Una vez más, dado que las API están estructuradas, es fácil adivinar qué comandos podrían estar permitidos y dónde colocarlos en la cadena.
OWASP ofrece un ejemplo de esta vulnerabilidad de un proceso de registro configurado para permitir a los nuevos usuarios unirse a un sitio web. Probablemente utilizaría una llamada GET a la API, como esta:
OBTENGA /api/invites/ {invite_guid}
El usuario malintencionado recuperaría un JSON con detalles sobre la invitación, incluidos el rol y el correo electrónico del usuario. A continuación, podrían cambiar GET por POST y también elevar la invitación de un usuario a la de administrador mediante la siguiente llamada a la API:
PUBLICAR /api/invites/new
{"correo electrónico»:» shadyguy@targetedsystem.com «, "rol» :"admin "}
Solo los administradores deberían poder enviar comandos POST, pero si no están debidamente protegidos, la API los aceptará como legítimos y ejecutará lo que el atacante quiera. En este caso, se invitaría al usuario malintencionado a unirse al sistema como nuevo administrador. Después de eso, podrían ver y hacer cualquier cosa que pudiera hacer un administrador legítimo, lo que no sería bueno.
Eliminar la vulnerabilidad de control de acceso a nivel de función
Prevenir esta vulnerabilidad de API es especialmente importante porque no es difícil para un atacante encontrar funciones que no estén protegidas en una API estructurada. Siempre que puedan obtener cierto nivel de acceso a una API, pueden empezar a mapear la estructura del código y crear llamadas que, en última instancia, serán seguidas.
Por lo tanto, todas las funciones de nivel empresarial deben protegerse mediante un método de autorización basado en roles. La mayoría de los marcos ofrecen rutinas centralizadas para que eso suceda. Si el marco elegido no lo hace, o si la rutina que tiene es difícil de implementar, hay muchos módulos externos que están diseñados específicamente para facilitar su uso. Sea cual sea el método que elija en última instancia, asegúrese de implementar la autorización en el servidor. Nunca intente proteger las funciones desde el lado del cliente.
Cuando trabajes para crear permisos a nivel de funciones y recursos, ten en cuenta que los usuarios solo deben tener permisos para hacer lo que necesitan y nada más. Como siempre ocurre al codificar las API o cualquier otra cosa, practica la metodología de privilegios mínimos. Protegerá su entorno y evitará muchos problemas relacionados con la ciberseguridad en el futuro.
Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


La vulnerabilidad de control de acceso a nivel de función que falta permite a los usuarios realizar funciones que deberían restringirse o les permite acceder a recursos que deben protegerse.
Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
预约演示Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。
马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。


Esta serie de blogs se centrará en algunas de las peores vulnerabilidades relacionadas con las interfaces de programación de aplicaciones (API). Estas son tan malas que crearon el Open Web Application Security Project (AVISPA) lista de las principales vulnerabilidades de la API. Dada la importancia de las API para las infraestructuras informáticas modernas, se trata de problemas críticos que debe mantener fuera de sus aplicaciones y programas a toda costa.
El falta el control de acceso a nivel de función La vulnerabilidad permite a los usuarios realizar funciones que deberían restringirse o les permite acceder a recursos que deben protegerse. Normalmente, las funciones y los recursos se protegen directamente en el código o mediante los ajustes de configuración, pero no siempre es fácil hacerlo correctamente. Implementar las comprobaciones adecuadas puede resultar difícil porque las aplicaciones modernas suelen contener muchos tipos de roles y grupos, además de una compleja jerarquía de usuarios.
Pero primero, ¿por qué no te lanzas y juegas a nuestro desafío gamificado para ver cómo te encuentras a la hora de sortear esta complicada clase de bichos?
Echemos un vistazo más a fondo:
Las API son especialmente vulnerables a este defecto porque están muy estructuradas. Los atacantes que entienden el código pueden hacer conjeturas fundamentadas sobre cómo implementar comandos que deberían estar restringidos a ellos. Esa es una de las principales razones por las que la vulnerabilidad del control de acceso a nivel de función o recurso se ubicó entre las diez mejores del OWASP.
¿Cómo pueden los atacantes aprovechar la vulnerabilidad del control de acceso a nivel de función?
Los atacantes que sospechen que las funciones o los recursos no están protegidos adecuadamente deben obtener primero acceso al sistema que desean atacar. Para aprovechar esta vulnerabilidad, deben tener permiso para enviar llamadas de API legítimas al punto final. Quizás haya una función de acceso de invitados de bajo nivel o alguna forma de unirse de forma anónima como parte de la función de la aplicación. Una vez que se haya establecido ese acceso, pueden empezar a cambiar los comandos en sus llamadas a la API legítimas. Por ejemplo, pueden cambiar GET por PUT o cambiar la cadena USERS de la URL a ADMINS. Una vez más, dado que las API están estructuradas, es fácil adivinar qué comandos podrían estar permitidos y dónde colocarlos en la cadena.
OWASP ofrece un ejemplo de esta vulnerabilidad de un proceso de registro configurado para permitir a los nuevos usuarios unirse a un sitio web. Probablemente utilizaría una llamada GET a la API, como esta:
OBTENGA /api/invites/ {invite_guid}
El usuario malintencionado recuperaría un JSON con detalles sobre la invitación, incluidos el rol y el correo electrónico del usuario. A continuación, podrían cambiar GET por POST y también elevar la invitación de un usuario a la de administrador mediante la siguiente llamada a la API:
PUBLICAR /api/invites/new
{"correo electrónico»:» shadyguy@targetedsystem.com «, "rol» :"admin "}
Solo los administradores deberían poder enviar comandos POST, pero si no están debidamente protegidos, la API los aceptará como legítimos y ejecutará lo que el atacante quiera. En este caso, se invitaría al usuario malintencionado a unirse al sistema como nuevo administrador. Después de eso, podrían ver y hacer cualquier cosa que pudiera hacer un administrador legítimo, lo que no sería bueno.
Eliminar la vulnerabilidad de control de acceso a nivel de función
Prevenir esta vulnerabilidad de API es especialmente importante porque no es difícil para un atacante encontrar funciones que no estén protegidas en una API estructurada. Siempre que puedan obtener cierto nivel de acceso a una API, pueden empezar a mapear la estructura del código y crear llamadas que, en última instancia, serán seguidas.
Por lo tanto, todas las funciones de nivel empresarial deben protegerse mediante un método de autorización basado en roles. La mayoría de los marcos ofrecen rutinas centralizadas para que eso suceda. Si el marco elegido no lo hace, o si la rutina que tiene es difícil de implementar, hay muchos módulos externos que están diseñados específicamente para facilitar su uso. Sea cual sea el método que elija en última instancia, asegúrese de implementar la autorización en el servidor. Nunca intente proteger las funciones desde el lado del cliente.
Cuando trabajes para crear permisos a nivel de funciones y recursos, ten en cuenta que los usuarios solo deben tener permisos para hacer lo que necesitan y nada más. Como siempre ocurre al codificar las API o cualquier otra cosa, practica la metodología de privilegios mínimos. Protegerá su entorno y evitará muchos problemas relacionados con la ciberseguridad en el futuro.
Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

Esta serie de blogs se centrará en algunas de las peores vulnerabilidades relacionadas con las interfaces de programación de aplicaciones (API). Estas son tan malas que crearon el Open Web Application Security Project (AVISPA) lista de las principales vulnerabilidades de la API. Dada la importancia de las API para las infraestructuras informáticas modernas, se trata de problemas críticos que debe mantener fuera de sus aplicaciones y programas a toda costa.
El falta el control de acceso a nivel de función La vulnerabilidad permite a los usuarios realizar funciones que deberían restringirse o les permite acceder a recursos que deben protegerse. Normalmente, las funciones y los recursos se protegen directamente en el código o mediante los ajustes de configuración, pero no siempre es fácil hacerlo correctamente. Implementar las comprobaciones adecuadas puede resultar difícil porque las aplicaciones modernas suelen contener muchos tipos de roles y grupos, además de una compleja jerarquía de usuarios.
Pero primero, ¿por qué no te lanzas y juegas a nuestro desafío gamificado para ver cómo te encuentras a la hora de sortear esta complicada clase de bichos?
Echemos un vistazo más a fondo:
Las API son especialmente vulnerables a este defecto porque están muy estructuradas. Los atacantes que entienden el código pueden hacer conjeturas fundamentadas sobre cómo implementar comandos que deberían estar restringidos a ellos. Esa es una de las principales razones por las que la vulnerabilidad del control de acceso a nivel de función o recurso se ubicó entre las diez mejores del OWASP.
¿Cómo pueden los atacantes aprovechar la vulnerabilidad del control de acceso a nivel de función?
Los atacantes que sospechen que las funciones o los recursos no están protegidos adecuadamente deben obtener primero acceso al sistema que desean atacar. Para aprovechar esta vulnerabilidad, deben tener permiso para enviar llamadas de API legítimas al punto final. Quizás haya una función de acceso de invitados de bajo nivel o alguna forma de unirse de forma anónima como parte de la función de la aplicación. Una vez que se haya establecido ese acceso, pueden empezar a cambiar los comandos en sus llamadas a la API legítimas. Por ejemplo, pueden cambiar GET por PUT o cambiar la cadena USERS de la URL a ADMINS. Una vez más, dado que las API están estructuradas, es fácil adivinar qué comandos podrían estar permitidos y dónde colocarlos en la cadena.
OWASP ofrece un ejemplo de esta vulnerabilidad de un proceso de registro configurado para permitir a los nuevos usuarios unirse a un sitio web. Probablemente utilizaría una llamada GET a la API, como esta:
OBTENGA /api/invites/ {invite_guid}
El usuario malintencionado recuperaría un JSON con detalles sobre la invitación, incluidos el rol y el correo electrónico del usuario. A continuación, podrían cambiar GET por POST y también elevar la invitación de un usuario a la de administrador mediante la siguiente llamada a la API:
PUBLICAR /api/invites/new
{"correo electrónico»:» shadyguy@targetedsystem.com «, "rol» :"admin "}
Solo los administradores deberían poder enviar comandos POST, pero si no están debidamente protegidos, la API los aceptará como legítimos y ejecutará lo que el atacante quiera. En este caso, se invitaría al usuario malintencionado a unirse al sistema como nuevo administrador. Después de eso, podrían ver y hacer cualquier cosa que pudiera hacer un administrador legítimo, lo que no sería bueno.
Eliminar la vulnerabilidad de control de acceso a nivel de función
Prevenir esta vulnerabilidad de API es especialmente importante porque no es difícil para un atacante encontrar funciones que no estén protegidas en una API estructurada. Siempre que puedan obtener cierto nivel de acceso a una API, pueden empezar a mapear la estructura del código y crear llamadas que, en última instancia, serán seguidas.
Por lo tanto, todas las funciones de nivel empresarial deben protegerse mediante un método de autorización basado en roles. La mayoría de los marcos ofrecen rutinas centralizadas para que eso suceda. Si el marco elegido no lo hace, o si la rutina que tiene es difícil de implementar, hay muchos módulos externos que están diseñados específicamente para facilitar su uso. Sea cual sea el método que elija en última instancia, asegúrese de implementar la autorización en el servidor. Nunca intente proteger las funciones desde el lado del cliente.
Cuando trabajes para crear permisos a nivel de funciones y recursos, ten en cuenta que los usuarios solo deben tener permisos para hacer lo que necesitan y nada más. Como siempre ocurre al codificar las API o cualquier otra cosa, practica la metodología de privilegios mínimos. Protegerá su entorno y evitará muchos problemas relacionados con la ciberseguridad en el futuro.
Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

点击下方链接,下载此资源的PDF文件。
Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
查看报告预约演示Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。
马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。
Esta serie de blogs se centrará en algunas de las peores vulnerabilidades relacionadas con las interfaces de programación de aplicaciones (API). Estas son tan malas que crearon el Open Web Application Security Project (AVISPA) lista de las principales vulnerabilidades de la API. Dada la importancia de las API para las infraestructuras informáticas modernas, se trata de problemas críticos que debe mantener fuera de sus aplicaciones y programas a toda costa.
El falta el control de acceso a nivel de función La vulnerabilidad permite a los usuarios realizar funciones que deberían restringirse o les permite acceder a recursos que deben protegerse. Normalmente, las funciones y los recursos se protegen directamente en el código o mediante los ajustes de configuración, pero no siempre es fácil hacerlo correctamente. Implementar las comprobaciones adecuadas puede resultar difícil porque las aplicaciones modernas suelen contener muchos tipos de roles y grupos, además de una compleja jerarquía de usuarios.
Pero primero, ¿por qué no te lanzas y juegas a nuestro desafío gamificado para ver cómo te encuentras a la hora de sortear esta complicada clase de bichos?
Echemos un vistazo más a fondo:
Las API son especialmente vulnerables a este defecto porque están muy estructuradas. Los atacantes que entienden el código pueden hacer conjeturas fundamentadas sobre cómo implementar comandos que deberían estar restringidos a ellos. Esa es una de las principales razones por las que la vulnerabilidad del control de acceso a nivel de función o recurso se ubicó entre las diez mejores del OWASP.
¿Cómo pueden los atacantes aprovechar la vulnerabilidad del control de acceso a nivel de función?
Los atacantes que sospechen que las funciones o los recursos no están protegidos adecuadamente deben obtener primero acceso al sistema que desean atacar. Para aprovechar esta vulnerabilidad, deben tener permiso para enviar llamadas de API legítimas al punto final. Quizás haya una función de acceso de invitados de bajo nivel o alguna forma de unirse de forma anónima como parte de la función de la aplicación. Una vez que se haya establecido ese acceso, pueden empezar a cambiar los comandos en sus llamadas a la API legítimas. Por ejemplo, pueden cambiar GET por PUT o cambiar la cadena USERS de la URL a ADMINS. Una vez más, dado que las API están estructuradas, es fácil adivinar qué comandos podrían estar permitidos y dónde colocarlos en la cadena.
OWASP ofrece un ejemplo de esta vulnerabilidad de un proceso de registro configurado para permitir a los nuevos usuarios unirse a un sitio web. Probablemente utilizaría una llamada GET a la API, como esta:
OBTENGA /api/invites/ {invite_guid}
El usuario malintencionado recuperaría un JSON con detalles sobre la invitación, incluidos el rol y el correo electrónico del usuario. A continuación, podrían cambiar GET por POST y también elevar la invitación de un usuario a la de administrador mediante la siguiente llamada a la API:
PUBLICAR /api/invites/new
{"correo electrónico»:» shadyguy@targetedsystem.com «, "rol» :"admin "}
Solo los administradores deberían poder enviar comandos POST, pero si no están debidamente protegidos, la API los aceptará como legítimos y ejecutará lo que el atacante quiera. En este caso, se invitaría al usuario malintencionado a unirse al sistema como nuevo administrador. Después de eso, podrían ver y hacer cualquier cosa que pudiera hacer un administrador legítimo, lo que no sería bueno.
Eliminar la vulnerabilidad de control de acceso a nivel de función
Prevenir esta vulnerabilidad de API es especialmente importante porque no es difícil para un atacante encontrar funciones que no estén protegidas en una API estructurada. Siempre que puedan obtener cierto nivel de acceso a una API, pueden empezar a mapear la estructura del código y crear llamadas que, en última instancia, serán seguidas.
Por lo tanto, todas las funciones de nivel empresarial deben protegerse mediante un método de autorización basado en roles. La mayoría de los marcos ofrecen rutinas centralizadas para que eso suceda. Si el marco elegido no lo hace, o si la rutina que tiene es difícil de implementar, hay muchos módulos externos que están diseñados específicamente para facilitar su uso. Sea cual sea el método que elija en última instancia, asegúrese de implementar la autorización en el servidor. Nunca intente proteger las funciones desde el lado del cliente.
Cuando trabajes para crear permisos a nivel de funciones y recursos, ten en cuenta que los usuarios solo deben tener permisos para hacer lo que necesitan y nada más. Como siempre ocurre al codificar las API o cualquier otra cosa, practica la metodología de privilegios mínimos. Protegerá su entorno y evitará muchos problemas relacionados con la ciberseguridad en el futuro.
Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
目录
Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
预约演示下载



%20(1).avif)
.avif)
