22 de noviembre de 2005

Falla 2: Control de acceso interrumpido

El proceso de control de acceso (conocido como autorización), es la manera en la que una aplicación web garantiza el acceso al contenido y la ejecución de funciones a algún usuario en particular.

Estas revisiones se hacen después de la autenticación y dictaminan qué es lo que los usuarios "autorizados" pueden hacer o no. ¿Así de entrada suena simple no lo crees? El problema es que no es tan sencillo implementar de manera correcta y eficientemente un sistema de autorización, ya que en primera, el modelo a seguir generalmente está estrechamente ligado con el contenido y las funcionalidades del sitio, y por otro lado, los usuarios pueden pertenecer a uno o varios grupos o roles cada uno con diferentes privilegios en el sistema.

Todo comienza cuando los desarrolladores desestiman la dificultad inherente en el proceso de la implementación de los mecanismos de control ya que en su mayoría los esquemas desarrollados no fueron deliberadamente designados para este propósito y fueron evolucionando junto con la aplicación web. En estos casos, se tienen varias versiones de las reglas de control de acceso regadas por todo el sitio, lo que ocaciona que a medida que el sitio crezca, la tarea de mantener toda esta colección de reglas va aumentanto hasta que se hace prácticamente insostenible y las reglas en sí dejan de tener sentido para los desarrolladores.

El problema continúa en virtud de que los controles de autorización, al estar tan íntimamente relacionados con la aplicación en sí, son difícilmente reutilizados o reimplementados en algún proyecto nuevo, lo que en su caso requerirá modificaciones.

Estos esquemas de control de acceso son fácilmente detectables y explotables por medio de llamadas a funciones o solicitudes de contenido que no debería proporcionarse. Resulta claro que las consecuencias son devastadoras puesto que además de ganar acceso a la visualización de contenido no autorizado, el atacante podría ejercer operaciones no autorizadas para cambiar o hasta eliminar los datos e incluso adueñarse de la administración del sitio.

Un ejemplo muy específico del problema del control de acceso son las interfaces que le permiten a los administradores manejar un sitio desde internet debido a que permiten controlar a los usuarios, los datos y el contenido del sitio. En algunos casos estos sitios implementan roles administrativos lo que permite una administración más fina. En virtud de todo el poder que concentran estas interfaces, se convierten comunmente en los objetivos primarios de cualquier ataque.

Virtualmente todos los sitios tienen algún mecanismo de control de acceso. Por esto es que es recomendable crear una política de control de acceso claramente documentada. Así mismo, la documentación de las etapas de diseño debería concentrarse en la implantación de dicha política.

Del mismo modo que con la política, el código que la implementa debe revisarse y después probarse mediante pruebas de penetración. Es recomendable que se diseñe para ser modular, estructurado y mayormente centralizado.

Finalmente, otra práctica importate es averiguar cómo se administran los sitios web, averigue cómo se hacen los cambios sobre las páginas, en dónde se prueban y cómo son transportados al servidor de producción. Si los administradores pueden hacer cambios de manera remota sería deseable saber cómo están protegidos esos canales.

1 comentario:

Tombino de pura Cepa dijo...

Hola mi nombre es Diego Lopez, de Argentina, quiero saber como hacer para poder ingresar a una pagina, en este caso youtube por ej., por que cada vez que quiero ingresar me sale este cartelito..
ERROR
El URL solicitado no se ha podido conseguir

Mientras se intentaba traer el URL: http://www.youtube.com/

Ha ocurrido el siguiente problema:

* Acceso Denegado.

Las reglas de control de acceso impiden que su petición sea permitida en este momento. Contacte con su proveedor de servicios si cree que esto es incorrecto.


Generated Mon, 26 Jan 2009 17:00:06 GMT by localhost.localdomain (squid/2.5.STABLE11)
el tema es que la computadora es de mi oficina y me la han configurado para no meterme a ciertas paginas, mi preguntar seria ¿como debo hacer para poder ingresar a esta pagina o a las que no me deja?
mi correo es lopezdiegog@hotmail.com
desde ya muchas gracias.
Diego Lopez