Upload
zekivazquez
View
203
Download
4
Embed Size (px)
DESCRIPTION
Slides from my talk about secure development using Drupal, in DrupalCamp Spain 2013.
Citation preview
Desarrollo seguro en Drupal
Ezequiel Vazquez De la calle
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Sobre mi
Estudios
Ingeniero Tecnico en Informatica - UCA
Master en Ingenierıa del Software - US
Experto en Seguridad de las TIC - US
Experiencia
3+ anos como desarrollador web, casi 2 en Drupal
Actualmente: DevOps Drupal
Python, C++, GNU/Linux, network programming. . .
Aficiones
Rock’n’Roll (guitarra) y videojuegos
Narrativa fantastica, rol, cine. . .
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Seguridad
¿Y esto de que va?
Seguridad web
Exposicion a internet
Vulnerabilidades
Explotacion
¿Hackers?
. . .
Dinero
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Seguridad
Pilares de la seguridad
Confidencialidad
Integridad
Disponibilidad
Autenticacion
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Seguridad
Principios basicos
Mınimo privilegio
Eslabon mas debil
Proporcionalidad
Participacion universal
Integracion con ciclo devida completo
Seguridad en profundidad
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Seguridad en profundidad
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
¿Por que en profundidad?
El Abismo de Helm era inexpugnable. . .
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Servidor
Arquitectura mas comun para Drupal
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Servidor
Apache
Ocultar version: ServerSignature Off
Paginas de error personalizadas
Limitar metodos HTTP (solo GET, POST y HEAD)
SSL: Forzar conexion cifrada, si esta disponible
Ajustar timeout, tamano de peticiones, maximo de clientessimultaneos. . .
Permisos sobre directorios (Allow/Deny, -Indexes, -Multiviews)
Mod security, mod chroot
¡Monitorizar los logs!
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Servidor
PHP
Actualizar → 5.2 ¡deprecated!
Limitar funciones: phpinfo, eval,exec, shell exec, system. . .
Hijacking : asociar IP y sesion
HTTP Only cookies
Evitar fugas: expose php=Off
Desactivar ejecucion remota
Desactivar “magic quotes” (5.2)
Controlar tamano de POST
Controlar uso de recursos
Proteger configuracion contraescritura
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Servidor
MySQL
Limitar usuario a una base de datos
root con contrasena segura, no conectar remotamente
No permitir acceso anonimo
Emplear la mysql secure installation
skip-networking o bind=localhost
Ejecutar MySQL enjaulado con chroot
Activar el registro de logs (¡y revisarlos!)
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Cross Site Scripting
Ezequiel Vazquez De la calle Desarrollo seguro 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!
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Cross Site Scripting
En Drupal. . .
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Cross Site Scripting
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Cross Site Scripting
Ezequiel Vazquez De la calle Desarrollo seguro 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
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
SQL Injection
En Drupal. . .
Ezequiel Vazquez De la calle Desarrollo seguro 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. . .
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Cross Site Request Forgery
En Drupal. . .
Utilizar siempre la Forms API
drupal valid token para envıos GET
Ezequiel Vazquez De la calle Desarrollo seguro 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
Ezequiel Vazquez De la calle Desarrollo seguro 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
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Referencias inseguras
¿Que es?
Acceder a contenido para el cual no se tiene permiso
Permisos definidos, pero ¿se comprueban?
Ezequiel Vazquez De la calle Desarrollo seguro 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
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Securizar la configuracion
Instalacion segura
Modulo paranoia
Modulo security review
Modulo update
Modulo password policy
Limitar duracion de sesion
Permisos “administer . . . ”
¡Ojo con los filtros de entrada!
Desactivar y eliminar modulo php
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
En resumen. . .
Defensa en todas las capas
Buenas practicas
Mucha documentacion, ¡no hay excusa!
Siempre habra fallos de seguridad
Buscar la proporcionalidad
La importancia de la formacion
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
En resumen. . .
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Indice
1 Introduccion
2 Seguridad en profundidad
3 Seguridad en Drupal
4 Conclusiones
5 Referencias
Ezequiel Vazquez De la calle Desarrollo seguro 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
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal
Esto es todo, amigos...
¡Gracias!
¿Preguntas?
@RabbitLairezequielvazq[at]gmail[dot]com
Ezequiel Vazquez De la calle Desarrollo seguro en Drupal