En el mundo de la seguridad informática, el término "Broken Access Control" se refiere a situaciones donde un usuario puede realizar acciones fuera de los límites permitidos. Este riesgo es el más crítico dentro del Top 10 de riesgos de seguridad web de OWASP, identificado con el código A01.
¿Cuáles son algunos ejemplos de Broken Access Control?
Violación del principio de mínimo privilegio: Este enfoque sigue el modelo de Zero Trust, donde todo está denegado por defecto, permitiéndose únicamente lo necesario.
Modificación de URLs: Las URLs pueden ser manipuladas para acceder a recursos no autorizados. Por ejemplo, al cambiar el ID de un curso en una plataforma de aprendizaje.
Acciones no autorizadas en variables: Manipulando variables como ACTION en una URL, se pueden crear, eliminar o modificar registros de bases de datos sin permiso.
¿Qué impacto puede tener este riesgo?
Un ejemplo claro fue la vulnerabilidad explotada en Confluence Server bajo el código 2023-22515. Esta permitió a ciberdelincuentes ejecutar software que cifró información y datos sensibles, demostrando cómo un fallo de Broken Access Control puede tener graves consecuencias.
¿Cómo podemos mitigar el Broken Access Control?
Para contrarrestar este riesgo, es crucial implementar una serie de controles y buenas prácticas:
Principio de denegación por defecto: Limita el acceso solo a lo estrictamente necesario por usuario o rol.
Aplicación de políticas de control de acceso: Integra reglas de acceso desde el diseño arquitectónico de la aplicación.
Evitar directorios navegables: Previene que los usuarios vean información sensible del servidor web.
Monitoreo de actividad: Revisa constantemente las acciones de los usuarios, especialmente al crear, editar o eliminar registros.
Establecimiento de rate limits en APIs: Impone límites a las solicitudes, bloqueando excesos para evitar abusos.
Expiry en JWTs (JSON Web Tokens): Define con precisión el tiempo de expiración para mitigar ataques de suplantación.
¿Qué prácticas podemos adoptar para detectar y corregir el Broken Access Control?
Examinar aplicaciones vulnerables es una excelente forma de aprendizaje. Por ejemplo, en una aplicación de aprendizaje con dos perfiles (administrador y usuario normal), puedes observar cómo un usuario con menos privilegios intenta acceder a opciones restringidas.
Al interceptar peticiones con herramientas como Burp Suite, puedes captar y analizar credenciales, modificando valores codificados como base64 para elevar privilegios.
Veamos un ejemplo de manipulación:
// Intentamos decodificar una cadena base64 y cambiar su contenidolet cadenaCodificada ="dXNlcjpteV9yb2w=";// Representa "user:my_role"let cadenaDecodificada =atob(cadenaCodificada);console.log(cadenaDecodificada);// Salida: "user:my_role"// Ahora cambiamos el rol a "admin"cadenaDecodificada = cadenaDecodificada.replace("my_role","admin");console.log(cadenaDecodificada);// Salida: "user:admin"
Al enviar la petición nuevamente con una cookie manipulada, se puede observar que el sistema otorga acceso indebido a funciones de administrador.
Para corregir estos problemas, es esencial validar los roles a nivel de base de datos, en lugar de depender únicamente de cookies.
¡Te animamos a explorar y practicar con estas estrategias para proteger tus aplicaciones y fortalecer tus habilidades de seguridad informática!
Se brinca muchos pasos y explica muy poco, no creo que sea necesario una lección completa sobre las herramientas, basta con 3 minutos mas en el que muestre como se abre BurpSuite y donde hacer click para obtener la información. Otro cambio recomendable seria hacer el código de solución y volver a ejecutar el proyecto, no solo mostrar la solucion.
Algo que muchos profesores hacen es decir "pausa el video e intenta resolverlo" antes de dar la respuesta
mil gracias por tu aporte, cada solución tiene una rama en el repositorio. Tienes razón, suponemos algunas cosas por el nivel del curso. Pero puedo fabricar blogs al respecto sin problema.
Buenas tardes, esta fase de la ruta de ciberseguridad es introductoria, sí hubiera sido bueno profundizar en algunos conceptos y explicaciones para las herramientas, claramente uno puede buscar en internet, pero hasta para buscar se debe tener claro lo que se esta buscando.
muy mal esta leccion "suponemos algunas cosas por el nivel del curso" no creo ya que estoy haciendo desde el inicio especialista de ciberseguridad en ningun momento eplicaron el montaje de las apps etc en ocaciones anteriores , deben actualizar o estructurar el curso, si entendi la leccion pero si me gustaria que lo hicieran desde 0 con las debidas instalaciones, muchas gracias.
Creo que se omitio decir que el plugin es FoxyProxy y se tiene que agregar Burpsuite.
Correcto, suponemos algunos ítems por al nivel avanzado del curso.
para configurar la extensión utilice este tutorial
para los estudiantes que estan comenzando este curso y estan un poco frustados para los procesos de instalacion uso de aplicaciones repositorios uso de kali, les recomiendo q lo mejor q pueden hacer es ... dejarlo de ultimo en la ruta de ESPECIALISTA EN CIBERSEGUIRDAD debido a q este curso comienza aplicando muchos conceptos que para mi experiencia en platzy no deberia ponerlo como 3cero en introduccion a la seguridad informatica creo q falla en el orden en el cual impone el curso , se deben de ver al menos un orden que veo logico seria ponerlo en la seccion ,hacking etico y seguridad avanzada luego de la introducion a hacking web services estaria mas claro para algunos
Creo que valdría la pena se explique como usar la herramienta, ya que se asume que ya sabemos usarla y supongo que existen algunos que no sabemos usarla.
La parte teoria esta muy bien,
Repito con todo respeto mi comentario, creo que sabes mucho pero si se requeria un capitulo anterior la instalacion de todas las herramientas, no se hablo de varias cositas.
Si no pueden iniciar sesión, verifiquen que tienen instalado el certificado y que están usando https
gracias por el aporte.
El control de acceso roto (Broken Access Control) se refiere a una categoría de vulnerabilidades de seguridad en aplicaciones web donde las restricciones sobre lo que los usuarios autenticados están autorizados a hacer no se implementan o se implementan incorrectamente. Esta vulnerabilidad ocurre cuando un usuario puede realizar acciones fuera de sus permisos previstos, como acceder a datos o realizar operaciones que deberían estar restringidas. Broken Access Control se ha destacado en varias ediciones del OWASP Top 10 debido a su prevalencia y el impacto significativo que puede tener en la seguridad de una aplicación.
Ejemplos Comunes de Broken Access Control
Bypass de restricciones de acceso: Un usuario sin privilegios accede a funciones o datos reservados para usuarios con mayores privilegios, como acceder a perfiles de usuario, datos financieros, o realizar acciones administrativas sin las debidas autorizaciones.
Modificación de URL o ID de sesión: Manipular URL o identificadores de sesión para acceder a información o realizar acciones que no deberían estar disponibles para el usuario autenticado.
Elevación de privilegios: Un usuario con privilegios bajos manipula la aplicación para otorgarse privilegios más altos.
Impacto
El impacto de Broken Access Control puede ser significativo y variado, dependiendo de la naturaleza de la aplicación y los datos o funciones expuestas indebidamente. Puede conducir a la divulgación no autorizada de información sensible, modificación de datos, realización de transacciones no autorizadas, e incluso comprometer completamente la seguridad de la aplicación web.
Mitigación
Para mitigar las vulnerabilidades de Broken Access Control, se recomienda adoptar un enfoque de seguridad en capas que incluya:
Principio de menor privilegio: Asegurarse de que los usuarios tengan solo los permisos necesarios para realizar sus tareas.
Autenticación y autorización robustas: Implementar controles de acceso fuertes y asegurarse de que se verifiquen de manera consistente a lo largo de la aplicación.
Controles de acceso a nivel de aplicación: Utilizar controles de acceso en el servidor, no solo en el cliente, para asegurar que los controles no puedan ser fácilmente evadidos.
Auditorías y registros: Mantener registros detallados de las actividades de acceso para permitir la auditoría y la detección de accesos no autorizados o anomalías.
Pruebas de seguridad regulares: Realizar pruebas de penetración y revisiones de código para identificar y remediar las vulnerabilidades de control de acceso roto antes de que puedan ser explotadas.
Gracias por el aporte
Excelente resumen
No entiendo, alguien que me ayude, instale todo lo que mencionan pero no se como conectar todas las cosas, por ende al utilizar localbox el navegador no me muestra nada
que ventajas tiene Burp sobre el dev-tools de los navegadores (console y network tabs)?
los plugins, automatización de ataques, history, repetir peticiones, entre otras más
Como no pude hacer la configuración con https del laboratorio, no me funcionaba el login, si de pronto están lidiando con el mismo problema, en mi caso pude detectar que era debido a las cookies, para solucionarlo cambie el siguiente fragmento del codigo en la ruta /backend/auth/index.js del proyecto:
module.exports=function(httpRequestsTotal, dbConfig){ res.cookie('main_session', sessionEncoded,{httpOnly:false,// cookie is not accessible via JavaScript- secure:true,// https only+ secure:false,// https onlysameSite:'strict',// cookie is not sent in cross-site requestsmaxAge:1000*60*60*24*30// 30 days});
no pude terminar este ejercicio, alguien que explique un paso a paso de como ejecutar el despliegue del laboratorio, ya tengo todo instalado y configurado, burpsuite, foxyproxy, git, docker, docker-compose, etc.
necesito que me den una mano para poder desplegar el laboratorio, ya me situe en la rama vulnerable pero no pasa nada. nose si hay que situarse en esa rama y hacer el docker-compuse -f .... up o situarse en la rama de A01broken.....
ayuda por favor.
No explica absolutamente nadaaaaaaaaaaaaaaaaaaaa, ni como instalar Docker, ni como ejecutar la app, ni como configurar burpsuite o proxyfoxy. Por suerte uno se da idea por estudiar informática y busca en google, youtube, chatgpt pero la idea era que explicara como desplegar el laboratorio, nos tiro al desierto nomas.
la verdad quede muy insatisfecho con esta primera prueba.. a pesar de que hay una documentación donde se explica como instalar cada herramienta a utilizar, el profesor no puede pretender pensar que ya conocemos como utilizar las herramientas, de saber no estariamos viendo estos cursos, otra cosa es que no se si solo me paso a mi.. pero sigue las indicaciones y en el proyecto me pare en la rama del primero ejercicio git checkout A01-BrokenAccessControl pero veo que el codigo ya esta corregido, por ende no me sale ningun problema, contrario a lo que se ve en el video
hay muchos huecos en la información para la instalación de la aplicación vulnerable, la gente termina por desesperarce y no hacer el curso es muy dificil la instalación
el paso que falta es hacer la instalacion de
sudo apt install docker-compose up --build
en kali linux
Me he quedado en blanco con Burp Suite
Porque selecciona hasta el signo de "%" que pasa si selecciona el "%" + "3D" del main_session?
Nota: espero que no sea una pregunta tonta
Buena pregunta y buenisima observación que no explico el profesor.
A veces se agrega caracteres demás (salting) antes de guardar el token para que así sea un poco mas seguro.
Como hago los ejercicios en KaliLinux Vmware?
A mi se me hizo mas fácil bajar la ISO y hacer la instalación en limpio en el virtualizador.
estoy realizando la escuela de ciberseguridad , se supone que estoy realizando una ruta de aprendizaje que va en orden y hasta este punto en este video creo que fue un salto enorme al empezar a aplicar conceptos que no han enseñado segun la ruta.. quedo en este punto sin saber q hacer
Básicamente, validar información de autorización a nivel de cliente, puede no ser tan factible por este tipo de vulnerabilidades. Siempre es mejor hacerlo a nivel de backend y base de datos.