Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas
-
Upload
s2-grupo-security-art-work -
Category
Technology
-
view
6.619 -
download
0
description
Transcript of Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas
Vulnerabilidades Web Cómo detectarlas y evitarlas
Jose Luis Chica · @bufferovercat
• Conocer vulnerabilidades web más
comunes y peligrosas.
• Dirigido a desarrolladores y sysadmin.
• Explicación vulnerabilidad.
• Demo (si no explota).
• Cómo evitarlas.
• Ing. Técnico Informática de Gestión por
la UMU.
• Security Engineer en S2 Grupo.
• Miembro del Centro de Seguridad TIC de
la Comunidad Valenciana (CSIRT-cv).
• Asiduo de las MLPs ;)
• Boletines, rss de fabricantes.
• Noticias diarias.
• Cursos online gratuitos, guías, campañas
de concienciación.
• Informes de phising. ¡Mándanos!
• twitter: @csirtcv
• fb: www.facebook.com/csirtcv
• 97554 vulnerabilidades.
• 50% vulnerabilidades graves.
• 13% sistemas comprometidos.
¿No da miedo?
• TODAS las aplicaciones tienen bugs
• Si tienen bugs, pueden tener vulns.
• Vulnerabilidad web:
• Pérdidas económicas.
• Pérdida reputacional.
• ¿Os acordáis de Sony...?
• Código interpretado a través de entrada
de usuario.
• Permite robo de sesión, redirección,
ejecutar código malicioso, "BeEF“.
• Reflejado: ejecución a través de URL,
mediante ingeniería social.
• Almacenado: el código js se almacena
en la aplicación.
¡DEMO!
Código fuente:
HTML resultante:
Ataque:
(String) page += "<input name='creditcard' type='TEXT‘
value='" + request.getParameter("CC") + "'>“;
<input name='creditcard' type='TEXT' value='121241242421434‘>
http://www.example.com/buyItem.php?CC="'><script>alert("XSS")
;</script>‘”
¿Cómo evitarlo?
• Validar TODA entrada de usuario.
• Inserción a través de parámetros de
entrada de sententencias arbitrarias a
la BBDD de la aplicación.
http://www.asdf.com/item.php?id=123 or 1=1
http://www.asdf.com/item.php?id=123; DROP TABLE
items;--
http://www.asdf.com/item.php?id=123 UNION SELECT
user,password FROM users;--
• Saltarse la autenticación.
• Volcar la BBDD.
• Modificar/borrar la BBDD.
• Ejecutar comandos del sistema.
¡DEMO!
• Sanear.
• Sanear!
• Sanear!!
• Sanear!!!
• Sanear!(n-1)!
• 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.
• HttpOnly
• secure
Ejemplo
http://ejemplo.com/usuario.php;jsessi
onid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV
• Acceso a urls, o recursos del que no se
tiene permisos.
• Ejemplos:
• Edición de contenido.
• Sección privada de usuario.
Privilegios verticales
http://ejemplo.com/index.php?idNoticia=1&accion=ver
http://ejemplo.com/index.php?idNoticia=1&accion=editar
Privilegios horizontales
http://ejemplo.com/index.php?privmsg=140
http://ejemplo.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?
• 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.
¡D
EM
O!
• Credenciales enviadas por canal
inseguro.
• Configuración del server insegura.
• Software vulnerable.
• Almacenamiento no seguro de contenido
sensible.
• Proyecto OWASP:
• Desarrollo seguro.
• Revisión de código.
• Guía de pruebas.
¡GRACIAS!
www.securityartwork.es
@bufferovercat