Vulnerabilidades WEB
Os planteo una serie escueta a modo de esquema, para conocer vulnerabilidades webs más comunes y peligrosas, que han de tener en cuenta los desarrolladores y los administradores de sistemas.
Con una breve explicación de vulnerabilidad, cómo evitarlas y algún ejemplo.
Teniendo en cuenta que TODAS las aplicaciones tienen bugs y vulnerabilidades que reportan pérdidas económicas y de reputación.
CROSS SITE SCRIPTING
Es código interpretado a través de entrada de usuario, NORMALMENTE Javascript
Permite robo de sesión, redirección, ejecutar código malicioso, “BeEF“.
Reflejado : ejecución a través de URL o mediante ingeniería social.
Almacenado o persistente : el código “javascript” se guarda en la aplicación.
Código fuente:
(String) page += “<input name=’creditcard’ type=’TEXT‘ value='” + request.getParameter(“CC”) + “‘>“;
HTML resultante:
<input name=’creditcard’ type=’TEXT’ value=’121241242421434‘>
Ataque:
http://www.example.com/buyItem.php?CC=”‘><script>alert(“XSS”);</script>‘”
¿Cómo evitarlo?
Validar TODAS las entradas de los usuarios
INYECCIÓN SSQL
Inserción a través de parámetros de entrada de sentencias arbitrarias a la BBDD de la aplicación.
Ejemplos
http://www.VICTIMAdelATAQUE/item.php?id=123 or 1=1
http://www.VICTIMAdelATAQUE/item.php?id=123; DROP TABLE items;–
http://www.VICTIMAdelATAQUE/item.php?id=123 UNION SELECT user,password FROM users;–
RIESGOS
Saltarse la autenticación.
Volcar la BBDD.
Modificar/borrar la BBDD.
Ejecutar comandos del sistema.
¿Cómo evitarlo?
Filtrar comillas, comandos… escanear periódicamente.
GESTIÓN DE SESIONES
Riesgo : robo de cookie de sesión.
Con la cookie, un atacante podría hacerse pasar por la víctima.
¿Mi web tiene mecanismos para evitar el robo?
Caducidad de la sesión.
Timeout por inactividad.
Cierre de sesión, destrucción cookie.
Renovación de cookie al hacer login.
Limitación de sesiones concurrentes.
Cookie en la URL.
Cookie impredecible.
Resistente a modificaciones.
Transmitidas por canal seguro.
Ejemplo
http://VICTIMAdelATAQUE.com/usuario.php;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV
GESTIÓN DE LA AUTORIZACIÓN
Acceso a urls, o recursos del que no se tiene permisos.
Edición de contenido.
Sección privada de usuario.
Ejemplos
Privilegios verticales
http://VICTIMAdelATAQUE.com/index.php?idNoticia=1&accion=ver
http://VICTIMAdelATAQUE.com/index.php?idNoticia=1&accion=editar
Privilegios horizontales
http://VICTIMAdelATAQUE.com/index.php?privmsg=140
http://VICTIMAdelATAQUE.com/index.php?privmsg=141
¿Qué hacer?
Comprobación de control de acceso en cada recurso.
¿Ha iniciado sesión?
¿La sesión tiene permisos suficientes?
FALSIFICACION DE PETICIONES EN SITIOS CRUZADOS CSRF
Posibilidad de forzar a un usuario a realizar una acción.
Normalmente, en formularios.
Se engaña al usuario, para que acceda a una url maliciosa.
OTROS
Credenciales enviadas por canal inseguro.
Configuración del server insegura.
Software vulnerable.
Almacenamiento no seguro de contenido sensible.
Posibles mitigaciones para todas las vulnerabilidades
Proyecto OWASP, OSSTMM, ISSAF
Desarrollo seguro.
Revisión de código.
Guía de pruebas.
Tags-
alma
autenticación
autorización
canal
código fuente
código malicioso
configuración
control de acceso
credenciales
falsificación de peticiones
permisos
privilegios
redirección
riesgo
robo de sesión
usuarios
vulnerabilidades
vulnerable
web