Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

28
Vulnerabilidades Web Cómo detectarlas y evitarlas Jose Luis Chica · @bufferovercat

description

Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas. XSS Inyección SQL Gestión de sesiones Gestión de la autorización CRSF

Transcript of Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

Page 1: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

Vulnerabilidades Web Cómo detectarlas y evitarlas

Jose Luis Chica · @bufferovercat

Page 2: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Conocer vulnerabilidades web más

comunes y peligrosas.

• Dirigido a desarrolladores y sysadmin.

• Explicación vulnerabilidad.

• Demo (si no explota).

• Cómo evitarlas.

Page 3: Introducción a las vulnerabilidades Web: cómo detectarlas y 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 ;)

Page 4: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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

Page 5: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 97554 vulnerabilidades.

• 50% vulnerabilidades graves.

• 13% sistemas comprometidos.

¿No da miedo?

Page 6: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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...?

Page 7: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas
Page 8: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Código interpretado a través de entrada

de usuario.

• Permite robo de sesión, redirección,

ejecutar código malicioso, "BeEF“.

Page 9: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Reflejado: ejecución a través de URL,

mediante ingeniería social.

• Almacenado: el código js se almacena

en la aplicación.

Page 10: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

¡DEMO!

Page 11: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

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>‘”

Page 13: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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;--

Page 14: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Saltarse la autenticación.

• Volcar la BBDD.

• Modificar/borrar la BBDD.

• Ejecutar comandos del sistema.

Page 15: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

¡DEMO!

Page 17: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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?

Page 18: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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.

Page 19: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Cookie en la URL.

• Cookie impredecible.

• Resistente a modificaciones.

• Transmitidas por canal seguro.

• HttpOnly

• secure

Page 20: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

Ejemplo

http://ejemplo.com/usuario.php;jsessi

onid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV

Page 21: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Acceso a urls, o recursos del que no se

tiene permisos.

• Ejemplos:

• Edición de contenido.

• Sección privada de usuario.

Page 22: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

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

Page 23: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

¿Qué hacer?

• Comprobación de control de acceso en cada

recurso.

• ¿Ha iniciado sesión?

• ¿La sesión tiene permisos suficientes?

Page 24: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• 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.

Page 25: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

¡D

EM

O!

Page 26: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Credenciales enviadas por canal

inseguro.

• Configuración del server insegura.

• Software vulnerable.

• Almacenamiento no seguro de contenido

sensible.

Page 27: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

• Proyecto OWASP:

• Desarrollo seguro.

• Revisión de código.

• Guía de pruebas.

Page 28: Introducción a las vulnerabilidades Web: cómo detectarlas y evitarlas

¡GRACIAS!

www.securityartwork.es

@bufferovercat