Desarrollo Seguro en Drupal - DrupalCamp Spain 2013

397 views
298 views

Published on

Slides from my talk about secure development using Drupal, in DrupalCamp Spain 2013.

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
397
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Desarrollo Seguro en Drupal - DrupalCamp Spain 2013

  1. 1. Desarrollo seguro en Drupal Ezequiel V´zquez De la calle a Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  2. 2. Sobre mi Estudios Ingeniero T´cnico en Inform´tica - UCA e a M´ster en Ingenier´ del Software - US a ıa Experto en Seguridad de las TIC - US Experiencia 3+ a˜os como desarrollador web, casi 2 en Drupal n Actualmente: DevOps Drupal Python, C++, GNU/Linux, network programming. . . Aficiones Rock’n’Roll (guitarra) y videojuegos Narrativa fant´stica, rol, cine. . . a Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  3. 3. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  4. 4. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  5. 5. Seguridad ¿Y esto de qu´ va? e Seguridad web Exposici´n a internet o Vulnerabilidades Explotaci´n o ¿Hackers? ... Dinero Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  6. 6. Seguridad Pilares de la seguridad Confidencialidad Integridad Disponibilidad Autenticaci´n o Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  7. 7. Seguridad Principios b´sicos a M´ ınimo privilegio Eslab´n m´s d´bil o a e Proporcionalidad Participaci´n universal o Integraci´n con ciclo de o vida completo Seguridad en profundidad Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  8. 8. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  9. 9. Seguridad en profundidad Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  10. 10. ¿Por qu´ en profundidad? e El Abismo de Helm era inexpugnable. . . Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  11. 11. Servidor Arquitectura mas com´n para Drupal u Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  12. 12. Servidor Apache Ocultar versi´n: ServerSignature Off o P´ginas de error personalizadas a Limitar m´todos HTTP (s´lo GET, POST y HEAD) e o SSL: Forzar conexi´n cifrada, si est´ disponible o a Ajustar timeout, tama˜o de peticiones, m´ximo de clientes n a simult´neos. . . a Permisos sobre directorios (Allow/Deny, -Indexes, -Multiviews) Mod security, mod chroot ¡Monitorizar los logs! Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  13. 13. Servidor PHP Actualizar → 5.2 ¡deprecated! Limitar funciones: phpinfo, eval, exec, shell exec, system. . . Hijacking : asociar IP y sesi´n o HTTP Only cookies Evitar fugas: expose php=Off Desactivar ejecuci´n remota o Desactivar “magic quotes” (5.2) Controlar tama˜o de POST n Controlar uso de recursos Proteger configuraci´n contra o escritura Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  14. 14. Servidor MySQL Limitar usuario a una base de datos root con contrase˜a segura, no conectar remotamente n No permitir acceso an´nimo o Emplear la mysql secure installation skip-networking o bind=localhost Ejecutar MySQL enjaulado con chroot Activar el registro de logs (¡y revisarlos!) Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  15. 15. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  16. 16. Cross Site Scripting Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  17. 17. Cross Site Scripting ¿Qu´ es? e Ejecuci´n de c´digo Javascript o o Reflejado o almacenado Ataca al cliente: robo de cookies, descarga de malware. . . ¡La m´s com´n en Drupal! a u Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  18. 18. Cross Site Scripting En Drupal. . . Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  19. 19. Cross Site Scripting Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  20. 20. Cross Site Scripting Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  21. 21. SQL Injection ¿Qu´ es? e Modificaci´n de consultas a base de datos o B´sico, blind o time based a Ataca al servidor: extrae informaci´n, o la modifica o Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  22. 22. SQL Injection En Drupal. . . Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  23. 23. Cross Site Request Forgery ¿Qu´ es? e Hacer que usuario pida URL sin que lo sepa Petici´n a un formulario con par´metros GET o a Eliminar nodos, cambiar contrase˜a. . . n Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  24. 24. Cross Site Request Forgery En Drupal. . . Utilizar siempre la Forms API drupal valid token para env´ GET ıos Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  25. 25. Hijacking de sesi´n o ¿Qu´ es? e Robo de cookies para suplantar a un usuario identificado Drupal se encarga de la gesti´n de la sesi´n o o Mejor pr´ctica: utilizar SSL en todo el portal a Certificado v´lido, m´dulo securepages a o Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  26. 26. Bypass de autorizaci´n o ¿Qu´ es? e Usuario accede a URLs o secciones no permitidas En Drupal. . . Controlado mediante el sistema de men´, roles y u permisos Mejor pr´ctica: a M´ ınimo privilegio posible Granularizar permisos tanto como sea necesario Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  27. 27. Referencias inseguras ¿Qu´ es? e Acceder a contenido para el cual no se tiene permiso Permisos definidos, pero ¿se comprueban? Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  28. 28. Referencias inseguras Prevenci´n o Comprobar permisos: user access Comprobar acceso a contenido: node access En consultas SQL: $select→addtag(’node access’); Utilizar la Forms API Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  29. 29. Securizar la configuraci´n o Instalaci´n segura o M´dulo paranoia o M´dulo security review o M´dulo update o M´dulo password policy o Limitar duraci´n de sesi´n o o Permisos “administer . . . ” ¡Ojo con los filtros de entrada! Desactivar y eliminar m´dulo php o Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  30. 30. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  31. 31. En resumen. . . Defensa en todas las capas Buenas pr´cticas a Mucha documentaci´n, ¡no hay excusa! o Siempre habr´ fallos de seguridad a Buscar la proporcionalidad La importancia de la formaci´n o Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  32. 32. En resumen. . . Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  33. 33. ´ Indice 1 Introducci´n o 2 Seguridad en profundidad 3 Seguridad en Drupal 4 Conclusiones 5 Referencias Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  34. 34. Referencias Linux Administrator’s Security Guide http://www.seifried.org/lasg Apache Security Tips http://httpd.apache.org/docs/current/misc/security tips.html PHP security manual http://php.net/manual/en/security.php Cracking Drupal http://www.crackingdrupal.com Writing secure code https://drupal.org/writing-secure-code Securing your site https://drupal.org/security/secure-configuration Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal
  35. 35. Esto es todo, amigos... ¡Gracias! ¿Preguntas? @RabbitLair ezequielvazq[at]gmail[dot]com Ezequiel V´zquez De la calle a Desarrollo seguro en Drupal

×