41
Seguridad en Drupal Zequi V´ azquez Zequi V´ azquez @RabbitLair Seguridad en Drupal

Hack & Beers - Seguridad en Drupal

Embed Size (px)

Citation preview

Page 1: Hack & Beers - Seguridad en Drupal

Seguridad en Drupal

Zequi Vazquez

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 2: Hack & Beers - Seguridad en Drupal

Sobre mi

¿Y quien es este tıo?

Zequi Vazquez

DevOps & Backend

Estudiante de doctorado

Hacking & Seguridad

Rock’n’Roll

Videojuegos & Libros

¡Cerveza!

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 3: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 4: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 5: Hack & Beers - Seguridad en Drupal

Introduccion

¿Esto de que va?

CMS escrito en PHP

Extensible mediantemodulos y temas

Software libre (GPL)

Actualmente, Drupal 7

Lo mejor: La comunidad

Equipo de seguridad

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 6: Hack & Beers - Seguridad en Drupal

Seguridad

Pilares de la seguridad

Confidencialidad

Integridad

Disponibilidad

Autenticacion

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 7: Hack & Beers - Seguridad en Drupal

Vulnerabilidades

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 8: Hack & Beers - Seguridad en Drupal

Seguridad en profundidad

El Abismo de Helm era inexpugnable. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 9: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 10: Hack & Beers - Seguridad en Drupal

Recogida de informacion

Hacking con buscadores (fichero robots.txt)

“Fingerprint” de servidor, framework, versiones. . .

Crawlers, spiders, robots. . .

Herramientas automaticas: Burp, ZAP, Nikto2

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 11: Hack & Beers - Seguridad en Drupal

Pruebas sobre configuracion

Metodos HTTP permitidos (PUT, DELETE, TRACE)

Gestion de extensiones

Configuracion de plataforma (Apache, PHP, MySQL. . . )

Revisar backups en el arbol web (*.sql, *.bak. . . )

Escaner de puertos (Nmap)

Firewall/IDS/Web Application Firewall

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 12: Hack & Beers - Seguridad en Drupal

Gestion de identidad y autorizacion

Definicion de roles (filtros de entrada, permisos asignados)

Enumeracion de cuentas de usuario (modulo views)

Ataques de fuerza bruta (Hydra, modulos de Captcha)

Referencias inseguras (cambiar [nid] en /node/[nid])

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 13: Hack & Beers - Seguridad en Drupal

Autenticacion

Credenciales por canal inseguro (MitM, modulo securepages)

Polıtica de contrasenas debil (modulo password policy)

Recordar contrasenas: ¿se vuelve a enviar la pass?

Sistema de autenticacion (Drupal Ok, pero ¿modificado?)

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 14: Hack & Beers - Seguridad en Drupal

Gestion de la sesion

Duracion de la sesion (session expire y autologoff )

Gestion de cookies (cifrado, atributos httpOnly y Secure)

Robo de cookie de sesion = Robo de identidad

Cross Site Request Forgery (no solo forms)

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 15: Hack & Beers - Seguridad en Drupal

Validacion de datos de entrada

Cross Site Scripting

SQL injection

Polucion de parametros HTTP

Inyeccion de codigo

Subida de ficheros

En Drupal:

filter xssdb querycheck plaincheck markupcheck url

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 16: Hack & Beers - Seguridad en Drupal

Gestion de errores

Exposicion de codigos y textos de error

Exposicion de trazas

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 17: Hack & Beers - Seguridad en Drupal

Mas testing. . .

Criptografıa debil

Heartbleed

Errores en logica de negocio

Tests en lado de cliente

No solo web. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 18: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 19: Hack & Beers - Seguridad en Drupal

Cross Site Scripting

¿Que es?

Ejecucion de codigo Javascript

Reflejado o almacenado

Ataca al cliente: robo de cookies, descarga de malware. . .

¡La mas comun en Drupal!

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 20: Hack & Beers - Seguridad en Drupal

Cross Site Scripting

En Drupal. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 21: Hack & Beers - Seguridad en Drupal

Cross Site Scripting

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 22: Hack & Beers - Seguridad en Drupal

Cross Site Scripting

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 23: Hack & Beers - Seguridad en Drupal

SQL Injection

¿Que es?

Modificacion de consultas a base de datos

Basico, blind o time based

Ataca al servidor: extrae informacion, o la modifica

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 24: Hack & Beers - Seguridad en Drupal

SQL Injection

En Drupal. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 25: Hack & Beers - Seguridad en Drupal

Cross Site Request Forgery

¿Que es?

Hacer que usuario pida URL sin que lo sepa

Peticion a un formulario con parametros GET

Eliminar nodos, cambiar contrasena. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 26: Hack & Beers - Seguridad en Drupal

Cross Site Request Forgery

En Drupal. . .

Utilizar siempre la Forms API

drupal valid token para envıos GET

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 27: Hack & Beers - Seguridad en Drupal

Hijacking de sesion

¿Que es?

Robo de cookies para suplantar a un usuario identificado

Drupal se encarga de la gestion de la sesion

Mejor practica: utilizar SSL en todo el portal

Certificado valido, modulo securepages

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 28: Hack & Beers - Seguridad en Drupal

Bypass de autorizacion

¿Que es?

Usuario accede a URLs osecciones no permitidas

En Drupal. . .

Controlado mediante elsistema de menu, roles ypermisos

Mejor practica:Mınimo privilegio posible

Granularizar permisos tantocomo sea necesario

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 29: Hack & Beers - Seguridad en Drupal

Referencias inseguras

¿Que es?

Acceder a contenido para el cual no se tiene permiso

Permisos definidos, pero ¿se comprueban?

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 30: Hack & Beers - Seguridad en Drupal

Referencias inseguras

Prevencion

Comprobar permisos: user access

Comprobar acceso a contenido: node access

En consultas SQL: $select→addtag(’node access’);

Utilizar la Forms API

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 31: Hack & Beers - Seguridad en Drupal

Securizar la configuracion

Instalacion segura

Modulo security review

Modulo paranoia

Modulo update

Modulo password policy

Limitar duracion de sesion

Permisos “administer . . . ”

¡Ojo con los filtros de entrada!

Desactivar y eliminar modulo php

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 32: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 33: Hack & Beers - Seguridad en Drupal

Un vector de ataque simple

Deteccion de XSS almacenado (filtro “Full HTML”)

Inyectar JS que envıa cookies a atacante (SOP, httpOnly)

Atacante inyecta cookie en su navegador

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 34: Hack & Beers - Seguridad en Drupal

Un vector de ataque simple

Activacion de modulo “PHP filter”

Modificar nodo para que use este filtro

Ejecutar comandos de sistema desde PHP (disable functions)

Lanzar shell reversa con netcat (cortafuegos saliente)

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 35: Hack & Beers - Seguridad en Drupal

Un vector de ataque simple

¡Demo time!

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 36: Hack & Beers - Seguridad en Drupal

Un vector de ataque simple

¡Vamos a palmar!

Escalado de privilegios para obtener root

Persistencia del acceso

Tecnica de pivoting : escanear red interna

¡En la imaginacion (y en el contrato) esta el lımite!

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 37: Hack & Beers - Seguridad en Drupal

Indice

1 Introduccion

2 Hacking Drupal

3 Hardening Drupal

4 Live Demo

5 Conclusiones

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 38: Hack & Beers - Seguridad en Drupal

En resumen. . .

Defensa en todas las capas

Buenas practicas

Mucha documentacion, ¡no hay excusa!

Buscar la proporcionalidad

La importancia de la formacion

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 39: Hack & Beers - Seguridad en Drupal

En resumen. . .

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 40: Hack & Beers - Seguridad en Drupal

Referencias

Linux Administrator’s Security Guidehttp://www.seifried.org/lasg

Apache Security Tipshttp://httpd.apache.org/docs/current/misc/security tips.html

PHP security manualhttp://php.net/manual/en/security.php

Cracking Drupalhttp://www.crackingdrupal.com

Writing secure codehttps://drupal.org/writing-secure-code

Securing your sitehttps://drupal.org/security/secure-configuration

Zequi Vazquez @RabbitLair Seguridad en Drupal

Page 41: Hack & Beers - Seguridad en Drupal

Esto es todo, amigos...

¡Gracias!

@RabbitLairezequielvazq[at]gmail[dot]com

Zequi Vazquez @RabbitLair Seguridad en Drupal