
Coders Conquer Security: Serie Share & Learn - Control de acceso roto
Cuando crea una aplicación empresarial, ya sea para uso interno o externo por parte de sus clientes, es probable que no permita que todos los usuarios realicen todas las funciones. Si lo hace, puede ser vulnerable a que se interrumpa el control de acceso.
Veamos qué es un control de acceso roto, por qué es tan peligroso y cómo solucionarlo.
Comprenda el control de acceso roto
El control de acceso interrumpido se produce cuando el código de la aplicación no cuenta con los controles de seguridad o acceso adecuados. También puede ocurrir cuando una aplicación está mal configurada de alguna manera, lo que permite el acceso a funciones o páginas a las que el usuario no debería tener acceso.
Si te ocupas de las finanzas de tu empresa, es posible que puedas depositar dinero en ciertas cuentas o transferir dinero entre las cuentas de tu empresa. Sin embargo, no deberías tener acceso a retirar efectivo de esas cuentas ni a transferir dinero a otras cuentas. Si no se cuenta con los controles de acceso adecuados, es posible que tus empleados puedan realizar más funciones de las necesarias.
Estas comprobaciones se pueden realizar dentro del código o en los archivos de configuración. Por ejemplo, puede haber archivos de configuración XML que indiquen al marco de la aplicación web qué usuarios pueden acceder a qué páginas. Esto garantiza que los usuarios solo puedan acceder a las funciones que están autorizados a usar.
Por qué es peligroso romper el control de acceso
Considera este ejemplo: un atacante se ha dado cuenta de que el código de creación de tu cuenta de usuario puede manipularse, lo que le permite crear un usuario administrador con una simple solicitud de publicación. Pueden enviar una solicitud con el nombre de usuario y la contraseña y, a continuación, cambiarla para incluir el rol de administrador en la URL como parámetro o en el cuerpo de la solicitud. El atacante inicia sesión en la aplicación y obtiene instantáneamente derechos de administrador.
No siempre tiene que ser un atacante malintencionado que penetre en un sistema. Sin los controles de acceso adecuados, es posible que se divulgue información confidencial que no debería compartirse entre departamentos. Imagínese si cualquier empleado de la empresa pudiera ver los datos financieros o de nómina de RRHH. ¿Qué pasaría si algún empleado pudiera ver que se avecinan despidos debido a la mala situación financiera de la empresa? Esto podría dañar su moral y la reputación de su empresa.
También se podría perder la información confidencial de los clientes. Las empresas suelen almacenar información personal de los clientes que utilizan sus servicios. Tenga cuidado de no exponer esta información accidentalmente debido a la falta de control de acceso. Por ejemplo, si su sistema permite a los usuarios solicitar su historia clínica, ¿también tienen la posibilidad de solicitar y ver la información médica de otras personas? Si la URL contiene un número de identificación de cliente, los atacantes podrían aumentar ese número de identificación de cliente una y otra vez hasta encontrar uno que coincida con otro cliente, revelando así sus datos personales.
Derrota el control de acceso roto
El control de acceso basado en roles (RBAC) es una herramienta muy eficaz para implementar un control de acceso por sonido. Quienes utilizan Active Directory pueden estar familiarizados con la idea de creación de grupos y dar acceso a ciertos elementos del grupo, en lugar de hacerlo de forma individual. Las aplicaciones funcionan de la misma manera, ya que utilizan roles para definir quién puede ver qué.
Esto tiene dos ventajas. En primer lugar, no es necesario cambiar una función cuando alguien deja el rol de administrador. Si alguien anteriormente era administrador y ahora ya no debería serlo, basta con colocar a una nueva persona en el rol de administrador y eliminar a la persona anterior del rol. El código comprueba si el usuario tiene la función de administrador en lugar de comprobar si cada usuario individual tiene acceso a una página o función determinada.
La segunda ventaja es evitar una pesadilla de mantenimiento. Con el tiempo, será imposible gestionar un control de acceso tan detallado que permita a cada persona asociarse con cada función o página posible. Los roles facilitan mucho las cosas, ya que se pueden agregar varias personas a un rol. Un rol puede incluir a toda la empresa, mientras que otro puede tener solo cinco personas. Esto hace que la gestión de las funciones sea más eficiente, ya que habrá menos funciones que gestionar. Una empresa de 10 000 personas podría tener solo 100 funciones en lugar de tener 10 000 veces la cantidad de funciones de su aplicación. Investigue el marco de aplicación que haya elegido para ver qué opciones existen para un control de acceso sólido.
También es fundamental utilizar el control de acceso a nivel de función. Proteja el acceso a todas las funciones exigiendo a los usuarios que pasen determinadas comprobaciones de control de acceso. Utilice el principio del mínimo privilegio, denegando el acceso de forma predeterminada y abriendo el acceso únicamente cuando sea necesario. Puede resultar difícil recordar cómo implementar el control de acceso para cada función. Utilice un componente central para administrar y hacer cumplir el control de acceso.
Proteja sus funciones delicadas
La interrupción del control de acceso puede dejar sus datos y su aplicación abiertos a ataques y explotación. Los datos de los clientes que no estén protegidos adecuadamente podrían provocar una violación masiva de datos, lo que perjudicaría su reputación y sus ingresos.
La interrupción del control de acceso también podría provocar la apropiación de la cuenta si los atacantes pueden acceder a funciones a las que no deberían acceder. Usa un control de acceso adecuado a nivel funcional y mantendrás tu aplicación a salvo de atacantes malintencionados e incluso de intrusos accidentales.
¿Crees que estás harto del acceso a nivel funcional? Ahora puedes ponerte el reto de reparar un control de acceso roto: [Empieza aquí]


Cuando crea una aplicación empresarial, ya sea para uso interno o externo por parte de sus clientes, es probable que no permita que todos los usuarios realicen todas las funciones. Si lo hace, puede ser vulnerable a que se interrumpa el control de acceso.
Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

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


Cuando crea una aplicación empresarial, ya sea para uso interno o externo por parte de sus clientes, es probable que no permita que todos los usuarios realicen todas las funciones. Si lo hace, puede ser vulnerable a que se interrumpa el control de acceso.
Veamos qué es un control de acceso roto, por qué es tan peligroso y cómo solucionarlo.
Comprenda el control de acceso roto
El control de acceso interrumpido se produce cuando el código de la aplicación no cuenta con los controles de seguridad o acceso adecuados. También puede ocurrir cuando una aplicación está mal configurada de alguna manera, lo que permite el acceso a funciones o páginas a las que el usuario no debería tener acceso.
Si te ocupas de las finanzas de tu empresa, es posible que puedas depositar dinero en ciertas cuentas o transferir dinero entre las cuentas de tu empresa. Sin embargo, no deberías tener acceso a retirar efectivo de esas cuentas ni a transferir dinero a otras cuentas. Si no se cuenta con los controles de acceso adecuados, es posible que tus empleados puedan realizar más funciones de las necesarias.
Estas comprobaciones se pueden realizar dentro del código o en los archivos de configuración. Por ejemplo, puede haber archivos de configuración XML que indiquen al marco de la aplicación web qué usuarios pueden acceder a qué páginas. Esto garantiza que los usuarios solo puedan acceder a las funciones que están autorizados a usar.
Por qué es peligroso romper el control de acceso
Considera este ejemplo: un atacante se ha dado cuenta de que el código de creación de tu cuenta de usuario puede manipularse, lo que le permite crear un usuario administrador con una simple solicitud de publicación. Pueden enviar una solicitud con el nombre de usuario y la contraseña y, a continuación, cambiarla para incluir el rol de administrador en la URL como parámetro o en el cuerpo de la solicitud. El atacante inicia sesión en la aplicación y obtiene instantáneamente derechos de administrador.
No siempre tiene que ser un atacante malintencionado que penetre en un sistema. Sin los controles de acceso adecuados, es posible que se divulgue información confidencial que no debería compartirse entre departamentos. Imagínese si cualquier empleado de la empresa pudiera ver los datos financieros o de nómina de RRHH. ¿Qué pasaría si algún empleado pudiera ver que se avecinan despidos debido a la mala situación financiera de la empresa? Esto podría dañar su moral y la reputación de su empresa.
También se podría perder la información confidencial de los clientes. Las empresas suelen almacenar información personal de los clientes que utilizan sus servicios. Tenga cuidado de no exponer esta información accidentalmente debido a la falta de control de acceso. Por ejemplo, si su sistema permite a los usuarios solicitar su historia clínica, ¿también tienen la posibilidad de solicitar y ver la información médica de otras personas? Si la URL contiene un número de identificación de cliente, los atacantes podrían aumentar ese número de identificación de cliente una y otra vez hasta encontrar uno que coincida con otro cliente, revelando así sus datos personales.
Derrota el control de acceso roto
El control de acceso basado en roles (RBAC) es una herramienta muy eficaz para implementar un control de acceso por sonido. Quienes utilizan Active Directory pueden estar familiarizados con la idea de creación de grupos y dar acceso a ciertos elementos del grupo, en lugar de hacerlo de forma individual. Las aplicaciones funcionan de la misma manera, ya que utilizan roles para definir quién puede ver qué.
Esto tiene dos ventajas. En primer lugar, no es necesario cambiar una función cuando alguien deja el rol de administrador. Si alguien anteriormente era administrador y ahora ya no debería serlo, basta con colocar a una nueva persona en el rol de administrador y eliminar a la persona anterior del rol. El código comprueba si el usuario tiene la función de administrador en lugar de comprobar si cada usuario individual tiene acceso a una página o función determinada.
La segunda ventaja es evitar una pesadilla de mantenimiento. Con el tiempo, será imposible gestionar un control de acceso tan detallado que permita a cada persona asociarse con cada función o página posible. Los roles facilitan mucho las cosas, ya que se pueden agregar varias personas a un rol. Un rol puede incluir a toda la empresa, mientras que otro puede tener solo cinco personas. Esto hace que la gestión de las funciones sea más eficiente, ya que habrá menos funciones que gestionar. Una empresa de 10 000 personas podría tener solo 100 funciones en lugar de tener 10 000 veces la cantidad de funciones de su aplicación. Investigue el marco de aplicación que haya elegido para ver qué opciones existen para un control de acceso sólido.
También es fundamental utilizar el control de acceso a nivel de función. Proteja el acceso a todas las funciones exigiendo a los usuarios que pasen determinadas comprobaciones de control de acceso. Utilice el principio del mínimo privilegio, denegando el acceso de forma predeterminada y abriendo el acceso únicamente cuando sea necesario. Puede resultar difícil recordar cómo implementar el control de acceso para cada función. Utilice un componente central para administrar y hacer cumplir el control de acceso.
Proteja sus funciones delicadas
La interrupción del control de acceso puede dejar sus datos y su aplicación abiertos a ataques y explotación. Los datos de los clientes que no estén protegidos adecuadamente podrían provocar una violación masiva de datos, lo que perjudicaría su reputación y sus ingresos.
La interrupción del control de acceso también podría provocar la apropiación de la cuenta si los atacantes pueden acceder a funciones a las que no deberían acceder. Usa un control de acceso adecuado a nivel funcional y mantendrás tu aplicación a salvo de atacantes malintencionados e incluso de intrusos accidentales.
¿Crees que estás harto del acceso a nivel funcional? Ahora puedes ponerte el reto de reparar un control de acceso roto: [Empieza aquí]

Cuando crea una aplicación empresarial, ya sea para uso interno o externo por parte de sus clientes, es probable que no permita que todos los usuarios realicen todas las funciones. Si lo hace, puede ser vulnerable a que se interrumpa el control de acceso.
Veamos qué es un control de acceso roto, por qué es tan peligroso y cómo solucionarlo.
Comprenda el control de acceso roto
El control de acceso interrumpido se produce cuando el código de la aplicación no cuenta con los controles de seguridad o acceso adecuados. También puede ocurrir cuando una aplicación está mal configurada de alguna manera, lo que permite el acceso a funciones o páginas a las que el usuario no debería tener acceso.
Si te ocupas de las finanzas de tu empresa, es posible que puedas depositar dinero en ciertas cuentas o transferir dinero entre las cuentas de tu empresa. Sin embargo, no deberías tener acceso a retirar efectivo de esas cuentas ni a transferir dinero a otras cuentas. Si no se cuenta con los controles de acceso adecuados, es posible que tus empleados puedan realizar más funciones de las necesarias.
Estas comprobaciones se pueden realizar dentro del código o en los archivos de configuración. Por ejemplo, puede haber archivos de configuración XML que indiquen al marco de la aplicación web qué usuarios pueden acceder a qué páginas. Esto garantiza que los usuarios solo puedan acceder a las funciones que están autorizados a usar.
Por qué es peligroso romper el control de acceso
Considera este ejemplo: un atacante se ha dado cuenta de que el código de creación de tu cuenta de usuario puede manipularse, lo que le permite crear un usuario administrador con una simple solicitud de publicación. Pueden enviar una solicitud con el nombre de usuario y la contraseña y, a continuación, cambiarla para incluir el rol de administrador en la URL como parámetro o en el cuerpo de la solicitud. El atacante inicia sesión en la aplicación y obtiene instantáneamente derechos de administrador.
No siempre tiene que ser un atacante malintencionado que penetre en un sistema. Sin los controles de acceso adecuados, es posible que se divulgue información confidencial que no debería compartirse entre departamentos. Imagínese si cualquier empleado de la empresa pudiera ver los datos financieros o de nómina de RRHH. ¿Qué pasaría si algún empleado pudiera ver que se avecinan despidos debido a la mala situación financiera de la empresa? Esto podría dañar su moral y la reputación de su empresa.
También se podría perder la información confidencial de los clientes. Las empresas suelen almacenar información personal de los clientes que utilizan sus servicios. Tenga cuidado de no exponer esta información accidentalmente debido a la falta de control de acceso. Por ejemplo, si su sistema permite a los usuarios solicitar su historia clínica, ¿también tienen la posibilidad de solicitar y ver la información médica de otras personas? Si la URL contiene un número de identificación de cliente, los atacantes podrían aumentar ese número de identificación de cliente una y otra vez hasta encontrar uno que coincida con otro cliente, revelando así sus datos personales.
Derrota el control de acceso roto
El control de acceso basado en roles (RBAC) es una herramienta muy eficaz para implementar un control de acceso por sonido. Quienes utilizan Active Directory pueden estar familiarizados con la idea de creación de grupos y dar acceso a ciertos elementos del grupo, en lugar de hacerlo de forma individual. Las aplicaciones funcionan de la misma manera, ya que utilizan roles para definir quién puede ver qué.
Esto tiene dos ventajas. En primer lugar, no es necesario cambiar una función cuando alguien deja el rol de administrador. Si alguien anteriormente era administrador y ahora ya no debería serlo, basta con colocar a una nueva persona en el rol de administrador y eliminar a la persona anterior del rol. El código comprueba si el usuario tiene la función de administrador en lugar de comprobar si cada usuario individual tiene acceso a una página o función determinada.
La segunda ventaja es evitar una pesadilla de mantenimiento. Con el tiempo, será imposible gestionar un control de acceso tan detallado que permita a cada persona asociarse con cada función o página posible. Los roles facilitan mucho las cosas, ya que se pueden agregar varias personas a un rol. Un rol puede incluir a toda la empresa, mientras que otro puede tener solo cinco personas. Esto hace que la gestión de las funciones sea más eficiente, ya que habrá menos funciones que gestionar. Una empresa de 10 000 personas podría tener solo 100 funciones en lugar de tener 10 000 veces la cantidad de funciones de su aplicación. Investigue el marco de aplicación que haya elegido para ver qué opciones existen para un control de acceso sólido.
También es fundamental utilizar el control de acceso a nivel de función. Proteja el acceso a todas las funciones exigiendo a los usuarios que pasen determinadas comprobaciones de control de acceso. Utilice el principio del mínimo privilegio, denegando el acceso de forma predeterminada y abriendo el acceso únicamente cuando sea necesario. Puede resultar difícil recordar cómo implementar el control de acceso para cada función. Utilice un componente central para administrar y hacer cumplir el control de acceso.
Proteja sus funciones delicadas
La interrupción del control de acceso puede dejar sus datos y su aplicación abiertos a ataques y explotación. Los datos de los clientes que no estén protegidos adecuadamente podrían provocar una violación masiva de datos, lo que perjudicaría su reputación y sus ingresos.
La interrupción del control de acceso también podría provocar la apropiación de la cuenta si los atacantes pueden acceder a funciones a las que no deberían acceder. Usa un control de acceso adecuado a nivel funcional y mantendrás tu aplicación a salvo de atacantes malintencionados e incluso de intrusos accidentales.
¿Crees que estás harto del acceso a nivel funcional? Ahora puedes ponerte el reto de reparar un control de acceso roto: [Empieza aquí]
Cuando crea una aplicación empresarial, ya sea para uso interno o externo por parte de sus clientes, es probable que no permita que todos los usuarios realicen todas las funciones. Si lo hace, puede ser vulnerable a que se interrumpa el control de acceso.
Veamos qué es un control de acceso roto, por qué es tan peligroso y cómo solucionarlo.
Comprenda el control de acceso roto
El control de acceso interrumpido se produce cuando el código de la aplicación no cuenta con los controles de seguridad o acceso adecuados. También puede ocurrir cuando una aplicación está mal configurada de alguna manera, lo que permite el acceso a funciones o páginas a las que el usuario no debería tener acceso.
Si te ocupas de las finanzas de tu empresa, es posible que puedas depositar dinero en ciertas cuentas o transferir dinero entre las cuentas de tu empresa. Sin embargo, no deberías tener acceso a retirar efectivo de esas cuentas ni a transferir dinero a otras cuentas. Si no se cuenta con los controles de acceso adecuados, es posible que tus empleados puedan realizar más funciones de las necesarias.
Estas comprobaciones se pueden realizar dentro del código o en los archivos de configuración. Por ejemplo, puede haber archivos de configuración XML que indiquen al marco de la aplicación web qué usuarios pueden acceder a qué páginas. Esto garantiza que los usuarios solo puedan acceder a las funciones que están autorizados a usar.
Por qué es peligroso romper el control de acceso
Considera este ejemplo: un atacante se ha dado cuenta de que el código de creación de tu cuenta de usuario puede manipularse, lo que le permite crear un usuario administrador con una simple solicitud de publicación. Pueden enviar una solicitud con el nombre de usuario y la contraseña y, a continuación, cambiarla para incluir el rol de administrador en la URL como parámetro o en el cuerpo de la solicitud. El atacante inicia sesión en la aplicación y obtiene instantáneamente derechos de administrador.
No siempre tiene que ser un atacante malintencionado que penetre en un sistema. Sin los controles de acceso adecuados, es posible que se divulgue información confidencial que no debería compartirse entre departamentos. Imagínese si cualquier empleado de la empresa pudiera ver los datos financieros o de nómina de RRHH. ¿Qué pasaría si algún empleado pudiera ver que se avecinan despidos debido a la mala situación financiera de la empresa? Esto podría dañar su moral y la reputación de su empresa.
También se podría perder la información confidencial de los clientes. Las empresas suelen almacenar información personal de los clientes que utilizan sus servicios. Tenga cuidado de no exponer esta información accidentalmente debido a la falta de control de acceso. Por ejemplo, si su sistema permite a los usuarios solicitar su historia clínica, ¿también tienen la posibilidad de solicitar y ver la información médica de otras personas? Si la URL contiene un número de identificación de cliente, los atacantes podrían aumentar ese número de identificación de cliente una y otra vez hasta encontrar uno que coincida con otro cliente, revelando así sus datos personales.
Derrota el control de acceso roto
El control de acceso basado en roles (RBAC) es una herramienta muy eficaz para implementar un control de acceso por sonido. Quienes utilizan Active Directory pueden estar familiarizados con la idea de creación de grupos y dar acceso a ciertos elementos del grupo, en lugar de hacerlo de forma individual. Las aplicaciones funcionan de la misma manera, ya que utilizan roles para definir quién puede ver qué.
Esto tiene dos ventajas. En primer lugar, no es necesario cambiar una función cuando alguien deja el rol de administrador. Si alguien anteriormente era administrador y ahora ya no debería serlo, basta con colocar a una nueva persona en el rol de administrador y eliminar a la persona anterior del rol. El código comprueba si el usuario tiene la función de administrador en lugar de comprobar si cada usuario individual tiene acceso a una página o función determinada.
La segunda ventaja es evitar una pesadilla de mantenimiento. Con el tiempo, será imposible gestionar un control de acceso tan detallado que permita a cada persona asociarse con cada función o página posible. Los roles facilitan mucho las cosas, ya que se pueden agregar varias personas a un rol. Un rol puede incluir a toda la empresa, mientras que otro puede tener solo cinco personas. Esto hace que la gestión de las funciones sea más eficiente, ya que habrá menos funciones que gestionar. Una empresa de 10 000 personas podría tener solo 100 funciones en lugar de tener 10 000 veces la cantidad de funciones de su aplicación. Investigue el marco de aplicación que haya elegido para ver qué opciones existen para un control de acceso sólido.
También es fundamental utilizar el control de acceso a nivel de función. Proteja el acceso a todas las funciones exigiendo a los usuarios que pasen determinadas comprobaciones de control de acceso. Utilice el principio del mínimo privilegio, denegando el acceso de forma predeterminada y abriendo el acceso únicamente cuando sea necesario. Puede resultar difícil recordar cómo implementar el control de acceso para cada función. Utilice un componente central para administrar y hacer cumplir el control de acceso.
Proteja sus funciones delicadas
La interrupción del control de acceso puede dejar sus datos y su aplicación abiertos a ataques y explotación. Los datos de los clientes que no estén protegidos adecuadamente podrían provocar una violación masiva de datos, lo que perjudicaría su reputación y sus ingresos.
La interrupción del control de acceso también podría provocar la apropiación de la cuenta si los atacantes pueden acceder a funciones a las que no deberían acceder. Usa un control de acceso adecuado a nivel funcional y mantendrás tu aplicación a salvo de atacantes malintencionados e incluso de intrusos accidentales.
¿Crees que estás harto del acceso a nivel funcional? Ahora puedes ponerte el reto de reparar un control de acceso roto: [Empieza aquí]




%20(1).avif)
.avif)
