La OTG-AUTHN-001 de OWASP propone comprobar si las credenciales viajan sobre un canal encriptado

La prueba de seguridad OTG-AUTHN-001 de la OTG tiene como objetivo comprobar si las credenciales de los usuarios viajan a través de un canal encriptado para impedir que sean interceptados por un atacante. Normalmente los datos de las credenciales son enviados por los formularios de autenticación, sin embargo, cuando se utilizan cookies de sesión estas son enviadas también a través de otras peticiones y su intercepción es tan peligrosa como la captura del nombre de usuario y la contraseña.

Como norma, las credenciales deben ser enviadas usando el método POST, por eso esta prueba de seguridad se centra exclusivamente sobre este (en la descripción original de esta prueba incluyen también GET sobre HTTPS). Si en la aplicación se utilizan otros métodos HTTP, cosa que no es común, pero puede ocurrir, tienen que ser revisados también.

Hay tres escenarios principales que iré explicando con ejemplos tomados de la OTG. Es importante siempre fijarse en el campo de encabezado HTTP Referer. Para su análisis deben apoyarse en alguna herramienta que les permita revisar la estructura de las peticiones de pruebas. En mi caso, utilizo OWASP ZAP configurado como proxy de intercepción, pero pueden utilizar cualquier otro que brinde la misma información. Estos son los escenarios:

1.Envío de credenciales con el método POST a través de HTTP.

Este escenario es el más fácil de identificar y como su nombre lo indica, consiste en el envío de credenciales a través de HTTP. En la figura 1 se destaca con líneas rojas los campos de encabezado HTTP involucrados. En este escenario, un ciberdelincuente puede usar un sniffer y puede capturar con mucha facilidad las credenciales del usuario.

figura-1-post-over-http

Figura 1. Envío de las credenciales a través de HTTP. Elaboración propia.

2.Envío de credenciales con el método POST a través de HTTPS.

Este escenario es el ideal y consiste en el envío de los datos a través de un canal encriptado, en este caso vemos que la petición se realiza a través de HTTPS y se usa el puerto 443 (por defecto). Este nos permite asegurar que los datos no pueden ser interceptados y brinda un nivel de seguridad muy alto.

figura-2-post-over-https

Figura 2. Envío de credenciales a través de HTTPS. Elaboración propia.

3.Envío de credenciales con el método POST mediante HTTPS a través de una página accesible por HTTP.

Este escenario ocurre cuando se hace la petición de autenticación a través de HTTP, aunque se solicita el recurso sobre HTTPS. En este caso, la aplicación es vulnerable de sufrir un ataque SSLStrip. Podemos ver como la petición se realiza desde http://www.example.com/homepage.do, que es una conexión sin encriptar. Para evitarlo, debe activar HTST en los encabezados de respuesta HTTP y aplicar posteriormente la prueba OTG-CONFIG-007.

figura-3-post-over-http-to-https

Figura 3. Envío de credenciales a una página HTTPS a través de una conexión HTTP. Elaboración propia.

Existen otros escenarios posibles, por ejemplo, envío de datos con GET a través de HTTP y HTTPS pero no son recomendables que se apliquen, de todas formas, el procedimiento para esta revisión es el mismo. Puedes encontrar la descripción de la prueba de seguridad en inglés en este enlace.

Espero que te haya gustado la entrada y te pueda ayudar a fortalecer la seguridad en tu aplicación web. Yo por mi parte he disfrutado escribiéndola.

S4lud0s y h4st4 el próx1m0 p0st!!!

Anuncios

4 comentarios en “La OTG-AUTHN-001 de OWASP propone comprobar si las credenciales viajan sobre un canal encriptado

  1. Pingback: ¿El suficiente que el método POST sea más seguro que el método GET? Un simple experimento demuestra que no | Behique Digital

  2. Pingback: ¿Qué es el Referer? | Behique Digital

  3. Pingback: ¿Que es un ataque de tipo “Parameter Tampering” y como puede evitarse? | Behique Digital

  4. Pingback: Guía de Pruebas de OWASP 4.0 | Behique Digital

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s