miércoles, 30 de mayo de 2007

Sesiones web + seguridad (Parte II)

Este artìculo es la segunda parte de estotro artículo.
Como les decía, acceder a las cookies desde un browser es muy sencillo. Simplemente hay que recurrir a la carpeta que hace las veces de caché del browser.

Las comunicaciones a través de protocolos no seguros (http) pueden ser fácilmente interceptadaspor los hackers. A menos que uses el protocolo https, debes saber que las posibilidades deque obtengan tu SID existen.

Otro mecanismo que existe para obtener la SID es predecirlo. Las predicciones ocurren cuando el atacante descubre un patrón entre los SID. Esto se da porque algunos sistemas web usan un correlativo para mantener una nueva SID. Si un atacante descubre dos SID, ya podría descubrir el patrón usado para generar las SIDs.

Otros usan un ataque de fuerza bruta. Este es un simple pero efectivo método para identificarun SID. Un ataque de fuerza bruta ocurre cuando un usuario intenta ingresar a un sitio web repetidas veces, generando SIDs aleatorios, hasta que le chunta(acierta). Esto no es complicado,sin embargo puede ser altamente efectivo.


Llegó la hora de las preguntas.
Cómo mitigo esos ataques?
De varias maneras:
1.- Cuando sea necesario, usa comunicaciones seguras (https). Si se trata de sesiones basadas en cookies, asigna el atributo de sólo SSL a "true", esto dará algo más de seguridad y,reducirá la chance de que un atacante XSS capture la SID mediante la cookie.

2.- Mate las sesiones rápidamente. Obligue al usuario a loguearse después de un período de inactividad. De esta manera reduciremos la chance de que un atacante encuentre una sesión activa.
Es también aconsejable NO GUARDAR los datos del login (información de usuario y password) de manera persistente. Pues esto ocasionará que los datos se guarden en una cookie de la PC cliente. Lo cual ya les dije que es fácilmente accesible.
Esto aumenta considerablemente las posibilidades de que un atacante obtenga un válido SID.


3.- Nunca haga la SID visible. Este es un gran problema con el método GET. Las variables GET están siempre presentes en la url del browser.
Es preferible usar el método POST o en todo caso use cookies.


4.- Siempre solicite re-autenticación cuando se trate de operaciones críticas. Por ejemplo,si un usuario desea cambiar su contraseña, solicítele su password original primero.

5.- Capacite a los usuarios del sistema para que cierren su sesión correctamente.
Realice la operación de cerrado de la SID de la mejor manera, tal que el servidor desactive la sesión terminada. Borre la SID completamente.


6.- Prevenga el no mantener las páginas en la caché del cliente, especialmente aquellas que manejan información sensitiva. Use http para configurar la expiración de la página.

7.- Es altamente recomendable (pero nadie lo hace) obligar al usuario a re-autenticarse luego de transcurrido un período de tiempo, así su sesión aún esté activa. Esto será un obstáculo más para aquel hacker que logre obtener una sesión válida por algún medio.
Si no lo haces, aquel hacker que logre ingresar a un sitio restringido, podrá mantenerse mástiempo dentro de él.

En resumen, las aplicaciones web deben apoyarse en una buena administración de la SID para mantenerse más seguras.

Si tú no sigues las recomendaciones, debes ser consciente de los riesgos a los que te expones... ajajajajajajajaja.

No hay comentarios.: