Anda di halaman 1dari 10

SESIONES WEB E IDENTIFICADORES DE SESIN

Las pginas web tienen memoria, reconocen las acciones que el usuario ha realizado anteriormente como, por ejemplo, si se ha registrado, qu elementos ha visitado o las compras aadidas a la cesta. Dicho de otro modo, establecen una sesin con el internauta. Si HTTP, el protocolo con el que se interacta con las pginas web, no est orientado a conexin, ya que por s mismo no proporciona manera de almacenar las acciones que el navegante realiza en una pgina web1, cmo es posible mantener una sesin web? Para mantener las sesiones web el navegador y el servidor web comparten un identificador nico que el navegador web incluye en cada peticin HTTP o HTTPS realizada al portal (generalmente mediante cookies

ATAQUES Y MEDIDAS DE SEGURIDAD


Mediante el identificador de sesin el servidor discierne la sesin a la que pertenece la peticin HTTP. Por tanto, si un atacante obtiene o genera un identificador de sesin vlido y realiza peticiones web en las que incluye este identificador, podr suplantar al usuario en su sesin web y realizar acciones en su nombre sin su

consentimiento. En la prctica el resultado del ataque es similar a que el atacante conociera el nombre de usuario y la contrasea del usuario afectado. Este tipo de ataques son muy graves y comunes, de hecho, junto con la gestin de autenticacin, ocupan el tercer lugar en el ranking de riesgos de seguridad en aplicaciones web de OWASP. Aunque todos tienen un mismo objetivo, obtener identificadores de sesin vlidos para suplantar al usuario, se diferencian en el modo de hacerlo.

PREDICCIN DE SESIN
Este tipo de ataque se centra en generar un identificador vlido. Para ello, el atacante aprovecha los patrones de generacin de identificadores de sesin que pueda utilizar el servidor y, una vez reducido el espacio de bsqueda, prueba todas las posibilidades posibles mediante fuerza bruta.

Solucin
Aleatorizacin y longitud suficiente del identificador de sesin
Como ejemplo, PHP utiliza como identificador un hash de 16 o 20 bytes creado a partir de una cadena de texto que se compone de: La direccin remota del cliente HTTP. Opcionalmente, dependiendo de la opcin session.entropy_length, permite aadir a la fuente del hash datos aleatorios obtenidos a partir del API de Windows o del archivo /dev/random en sistemas Unix.

CAPTURA DEL IDENTIFICADOR A TRAVS DE ATAQUES XSS

Si una pgina web presenta una vulnerabilidad XSS un atacante puede aprovecharla para ejecutar cdigo que capture el contenido de la cookie y se lo enve.

Para evitarlo se cre la etiqueta httponly, de modo que el navegador impide el acceso por medio de scripts a las cookies que tienen este atributo, aunque existen maneras de capturar el valor de la cookie aunque sea httponly a travs del mtodo TRACE.

Solucin
Activar la opcin httponly en el servidor web. Deshabilitar el mtodo TRACE.

FIJACIN DE SESIN Este tipo de ataque sigue un camino distinto del resto, en vez de capturar un identificador de sesin valido, genera un identificador genuino (que no est asociado a ningn usuario por el momento) en el portal web afectado para, a continuacin, tratar de que la vctima se autentique en el portal con l. De este modo, el atacante obtiene un identificador de un usuario autenticado que puede utilizar para realizar acciones en el portal afectado en nombre de la vctima.

EAVESDROPPING (INTERCEPTANDO LA COMUNICACIN)

Si se puede interceptar el trfico web entre la vctima y el portal web, ahora ms que nunca por el auge de las comunicaciones inalmbricas, tambin se puede capturar el identificador de sesin. En el captulo Filtros de la gua Anlisis de trfico con Wireshark se describe de qu manera se pueden capturar las cookies de sesin.

Aunque

una

proteccin

contra

estos

ataques

es

cifrar

las

comunicaciones mediante el protocolo HTTPS, el pasado octubre del 2010 se destap lo fcil que era secuestrar el acceso web a varias redes sociales debido a que el identificador de sesin, contenido en cookies, se transmita en claro por canales fcilmente accesibles, como redes WiFi. Incluso se desarrollaron herramientas para realizar fcilmente estos ataques.

Solucin
Utilizar el protocolo HTTPS para que la comunicacin sea cifrada incluyendo la cookie de sesin. Para las cookies de sesin activar la opcin secure que evita que el navegador pueda enviar la cookie por HTTP y, por tanto, sea posible obtenerla interceptando el trfico. Como en el ataque anterior, asociar el identificador a informacin del usuario nica como su direccin IP. ERRORES EN EL CIERRE DE SESIN A diferencia de los ataques anteriores el atacante no necesita realizar ninguna sofisticada accin para obtener un identificador de sesin.

Solucin Establecer un timeout de sesin


De esta forma, ante cierto tiempo de inactividad del usuario, se cierra la sesin y por tanto se invalida en el servidor el identificador de sesin. Mediante esta medida se minimiza la ventana de tiempo en el que un atacante puede acceder al equipo y reutilizar el identificador de sesin si el usuario no hubiera cerrado sesin.

Establecer un tiempo mximo de validez de sesin

Aparte de un tiempo mximo de inactividad, es conveniente establecer un tiempo mximo de validez de sesin, tambin llamado de expiracin de sesin, para que si se ve comprometido el identificador, ste no pueda ser utilizado durante ms tiempo del que dicta el tiempo mximo de validez de sesin. Es ms conveniente que los tiempos de timeout de sesin y de validez de sesin sean controlados en el servidor. Si esta informacin es almacenada en la cookie de sesin u otra del sitio web, estos parmetros podran ser modificados.

Utilizar cookies no persistentes


En la medida de lo posible es mejor utilizar cookies no persistentes (aquellas que no tienen definidas el atributo Max-Age o Expires). Estas cookies son eliminadas al cerrar el navegador, por lo que un atacante, independientemente de que no haya vencido el timeout o el tiempo de validez de sesin en el servidor, no podr acceder al identificador.

Invalidar los identificadores de sesin


Ante un cierre de sesin, el cumplimiento del timeout de sesin o el vencimiento del tiempo mximo de validez de sesin se ha de invalidar el identificador de sesin en uso.

CONFIGURACIN SEGURA EN FRAMEWORKS WEB PHP almacena los datos de cada sesin en un fichero individual bajo el directorio definido por la variable session.save_path. El nombre de este archivo incluye el identificador de sesin y el formato en el que almacena la informacin es muy sencillo: Lee el identificador de sesin (generalmente de una cookie). Busca un archivo en el directorio session.save_path cuyo nombre contiene el identificador. Procesa este archivo y guarda en el array $_SESSION las variables que contiene. Aade la cookie de sesin a la respuesta. Procesa el resto de la pgina PHP que contiene la lgica de la aplicacin. Serializa el contenido de $_SESSION y lo almacena en el archivo de sesin para su recuperacin posterior. ASP.NET De los diferentes mtodos que ofrece ASP.NET, para almacenar los datos de sesin, este informe describir el ms comn: Session state. El funcionamiento es muy similar al de PHP, a travs del objeto Session, que gestiona automticamente el framework, se puede establecer y leer la informacin de sesin:

Sobre qu tratan estas preguntas frecuentes? Esta lista de preguntas frecuentes da respuesta a algunas de las cuestiones que los desarrolladores suelen realizarse acerca de la seguridad en aplicaciones Web. Esta lista no es especfica para una plataforma o lenguaje en particular, discute los problemas y soluciones que son aplicables a cualquier plataforma. 2. Cules son las amenazas ms usuales en las aplicaciones Web? A la hora de desarrollar una aplicacin, generalmente nos centramos ms en la funcionalidad que en la seguridad. Los atacantes se aprovechan de ello explotando la aplicacin de diferentes maneras. Las amenazas ms comunes en las aplicaciones Web son la inyeccin de cdigo SQL, el ejecucin inter-sitio (Cross Site Scripting), la manipulacin de variables y la explotacin de de funcionalidad importante Se como el recordatorio contraseas, etctera. han creado

secciones separadas en esta lista para cada una de estas amenazas. 3. Quin Desarroll esta lista de preguntas frecuentes? Esta lista es un documento que evoluciona constantemente con contribuciones de la comunidad de seguridad. Sangita Pakala y su equipo de Paladio Networks desarrollaron la primera versin de esta lista y mantienen esta pgina. 4. Cmo puedo contribuir a esta lista? Necesitamos sus opiniones y contribuciones para mejorar la lista. Nos encanta escuchar sobre:

Anda mungkin juga menyukai