Blog

Coders Conquer Security: Serie Share & Learn - Control de acceso roto

May 9, 2019
Jaap Karan Singh

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í]

Share on social
Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?

Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Enabler 2: Senior Leadership Sponsorship

Explore Enabler 2: Senior Leadership Sponsorship. Learn why active buy-in from the CIO, CTO, and CISO is vital to drive developer adoption and program credibility.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI

While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo