Está en la página 1de 20

Universidad Técnica de Manabí

Facultad de Ciencias Informáticas

Autor: Ing. Alejandro Loor, Mg. I.S


Desarrollo
basado en
plataformas
Unidad 1
Clase 1
Modelo de seguridad web

Autor: Ing. Alejandro Loor Navia, Mg. I.S


UNIDAD 1: INTRODUCCIÓN A REDES Y SEGURIDAD

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
TEMAS

1.- Modelo de seguridad web


2.- Gestión de sesiones, la autenticación

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
INTRODUCCIÓN A LA SEGURIDAD EN APLICACIONES
WEB
En la actualidad el crecimiento de internet ha
impactado directamente en la seguridad de la
información.
Es común escuchar que uno de los puntos críticos de la
seguridad en internet son las herramientas que
interactúan de forma directa con los usuarios, es decir
servidores, aplicaciones, lenguajes de programación; sin
embargo debemos saber que muchos de estos
problemas se deben a las malas prácticas de los
programadores.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
Los objetivos de seguridad a alcanzar en los sistemas de información y
comunicaciones TIC pasan por:
» Identificar a las personas que acceden a la información
» Autenticar a las personas que acceden a la información.
» Controlar el acceso.
» Proporcionar confidencialidad.
» Proporcionar integridad.
» Mantener la disponibilidad.
» No repudio. Proporcionar la prueba de que una determinada
transmisión o recepción ha sido realizada.
» Trazabilidad. Proporcionar los controles que determinen que en todo
momento se podrá determinar quién hizo qué y en qué momento.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
En el contexto de la seguridad del software las vulnerabilidades son
defectos o descuidos específicos en una parte del software. Estos
descuidos permiten que los atacantes hagan algo malicioso o que
alteren información sensible o que interrumpan o destruyan un
sistema o tomar el control de un sistema informático o de un
programa.
Se puede afirmar que para que un ataque aproveche una
vulnerabilidad (debilidad en el diseño, código, configuración,
protección online de una aplicación) y se materialice en una
aplicación generando un impacto de negocio para la organización es
necesario que intervengan una serie de factores (ver figura
siguiente):

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
» Agente o amenaza: es la persona que realiza el ataque.
» Vectores de ataque: medio del que se sirve para llevar a cabo el ataque.
» Debilidad: vulnerabilidad de seguridad.
» Ausencia o fallo en el control.
» Impacto en algún activo de los sistemas de información de la
organización.
» Impacto en el negocio de la organización.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
GESTIÓN DE SESIONES, LA AUTENTICACIÓN
Una sesión es un mecanismo de programación de las tecnologías de
web scripting que permite conservar información sobre un usuario al
pasar de una página a otra. A diferencia de una cookie, los datos
asociados a una sesión se almacenan en el servidor y nunca en el
cliente.
El manejo de la sesión es uno de los aspectos críticos de la seguridad
WEB. Los objetivos principales son:
 Los usuarios autenticados tengan una asociación con sus sesiones
robusta y criptográficamente segura.
 Se hagan cumplir los controles de autorización.
 Se prevengan los típicos ataques web, tales como la reutilización,
falsificación e intercepción de sesiones.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
Se detectan las siguientes vulnerabilidades significativas.
Fijación de sesión que intenta explotar la vulnerabilidad de un sistema que
permite a una persona fijar el identificador de sesión de otra persona. La
mayoría de ataques de fijación del período de sesiones están basados en
la web, y la mayoría depende de los identificadores de sesión que han sido
aceptados de URL o datos POST.
Identificador de la sesión vulnerable, si no se reserva un tamaño
adecuado, mediante técnicas de fuerza bruta el atacante puede conocer el
identificador de una sesión autenticada y por lo tanto hacerse con el
control de la sesión.
Manejo de la información de sesión errónea, ya sea por estar en un
espacio compartido o mal encriptado, el atacante puede obtener datos de
la sesión de otro usuario.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
PAUTAS

1.- Evitar generar sesiones de forma permisiva


Es necesario controlar a quien se emite un identificador de sesión, se
puede permitir que un usuario malintencionado suplante una
identidad. Se recomienda considerar lo siguiente para minimizar esta
problemática:
 Cuando inicie un nuevo objeto de sesión para un usuario, asegúrese
que se encuentra “fuera del sistema” y no le haya sido otorgado
ningún rol.
 Asegúrese que cada página protegida o acción controle el estado de
autenticación y autorización antes de realizar cualquier cantidad
significativa de trabajo, incluyendo la generación de contenido.
 Asegúrese que todas las páginas desprotegidas utilicen la menor
cantidad de recursos para prevenir un ataque de negación de
servicio, y no facilite la fuga de información de la parte protegida de
la aplicación.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
2.- Proteger las variables de sesión
En los casos de un servidor web compartido, es importante seguir
las siguientes recomendaciones:
 En la medida de lo posible asegurar que los datos de sesión, si
están almacenados en disco, no sean accesibles.
 Asegúrese que el servidor de aplicaciones sea configurado para
usar áreas de ficheros temporales por cliente / aplicación. Si
esto no es posible, los datos de sesión deben ser cifrados o
contener solo información no sensible.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
3.- Manejo de las credenciales y página en formularios
Las credenciales específicas de páginas pueden ser usadas en conjunto
con credenciales específicas de sesión para proveer una medida de
autenticidad cuando se manejan solicitudes de clientes. Utilizándolas
en conjunto con mecanismos de seguridad en la capa de transporte,
las credenciales de páginas pueden ayudar a asegurar que el cliente del
otro lado de la sesión es de hecho el mismo cliente que ha solicitado la
última página en una determinada sesión. Las credenciales de páginas
son frecuentemente guardadas en cookies o cadenas de consulta y
deben ser completamente aleatorias. Para mejorar este aspecto se
recomienda seguir las siguientes recomendaciones:
 Incorpore un campo oculto con un número aleatorio en la página o
formulario criptográficamente seguro.
 Elimine este número oculto de la lista activa.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
4.- Usar algoritmos de encriptación robustos para las credenciales de
sesión
Si un manejador de sesión emite credenciales que son predecibles, un
atacante no necesita capturar las variables de sesión de los usuarios
remotos, pueden simplemente adivinar y probablemente encuentre una
víctima desafortunada. Las credenciales de sesión deberían ser únicas,
no predecibles, y resistentes a ingeniería inversa. Se recomienda seguir
las siguientes recomendaciones:
 Generar la credencial en base a un origen aleatorio (como un
generador aleatorio de números, Yarrow, EGADS, etc.).
 Las credenciales de sesión deben estar relacionadas de alguna
manera con una instancia de cliente HTTP específica (identificador de
sesión y dirección IP) para prevenir ataques de secuestro y
reutilización de sesiones.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
5.- Controlar la desconexión de la sesión
Hay que asegurar que las sesiones tienen un tiempo de expiración
adecuado.
Las credenciales de sesión que no expiran en el servidor HTTP pueden
brindar a un atacante tiempo ilimitado para adivinar o utilizar fuerza
bruta en una credencial de sesión valida. Si una cookie de usuario es
capturada o atacada por fuerza bruta, el atacante puede usar estas
credenciales “estáticas” de sesión para obtener acceso a las cuentas
web de dicho usuario.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
6.- Regenerar credenciales
Asegurar que existen un tiempo determinado para la regeneración de
credenciales.
Para reducir el riesgo de secuestro de sesión y ataques de fuerza bruta, el
servidor HTTP puede sin problemas expirar y regenerar las credenciales. Esto
acorta la ventana de oportunidad para ataques de este tipo. Se recomienda
que se regeneren las credenciales:
 Antes de cada transacción significativa.
 Después de una cierta cantidad de transacciones.
 Después de un determinado tiempo, por ejemplo 20 minutos.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
7.- Secuestro de sesión
Cuando un atacante intercepta o crea una credencial de sesión valida en el
servidor, pueden hacerse pasar por otro usuario. El secuestro de sesión puede
ser mitigado parcialmente utilizando controles adecuados de anti-secuestro en
la aplicación. El nivel de estos controles debería estar influenciado por el riesgo
de la organización o los datos del cliente.
El tipo más fácil de aplicación para secuestrar son aquellas que utilizan
credenciales de sesión basadas en la URL, particularmente aquellas que no
expiran. Para atacar estas aplicaciones, simplemente es necesario abrir el
historial del navegador y hacer clic en la URL de la aplicación web. Se
recomienda seguir lo siguiente:
 Provea un método a los usuarios para desconectarse de la aplicación. La
desconexión debería limpiar todos los estados de sesión y remover o
invalidar cualquier cookie residual.
 Establezca periodos cortos de tiempo para cookies persistentes, no mayor a
un día o bien no utilice cookies persistentes.
 No guarde credenciales de sesión en una URL u otro método trivial de
almacenaje.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
8.- Autenticación de la sesión
Uno de los errores más comunes es no verificar la autorización
previamente a ejecutar una función restringida o acceder información.
Es necesario comprobar que el usuario conectado tenga la autorización
necesaria para acceder, actualizar o eliminar información.
9.- Validar la sesión
Las variables de sesión deben ser validadas para asegurar que tienen el
formato adecuado, no contienen caracteres inesperados, y que son
válidas en la tabla de sesiones activas. Es necesario comprobar que el
usuario conectado tenga la autorización necesaria para acceder,
actualizar o eliminar información.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
10.- Evitar identificadores de sesión que sean cortos
Es recomendable asegurar que los identificadores de sesión tengan
una longitud de al menos 128 bits.
 Si un atacante puede adivinar o robar la identificación de una
sesión, entonces puede ser capaz hacerse cargo de la sesión del
usuario (secuestro de sesión). El número de posibles identificadores
de sesión aumenta con una mayor longitud del campo identificación
de la sesión, por lo que es más difícil de adivinar o robar una sesión
ID.
 Se recomienda que los identificadores de sesión deban de ser de al
menos 128 bits de longitud para evitar ataques de fuerza bruta
sobre las sesiones. Un identificador de sesión más corto deja la
aplicación abierta ataques de fuerza bruta sobre la sesión.

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas
No dejes de leer…
OTRAS RECOMENDACIONES DE LA OWASP (página 9 compendio)

Recurso complementario:
https://drive.google.com/file/d/1iEOpzwOC5pWA-
kAY_dwM_JBUBotKFB11/view?usp=sharing

Facultad de Ciencias Informáticas


Desarrollo basado en plataformas

También podría gustarte