Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tu DevOp me da trabajo: Soy auditor de seguridad

2,178 views

Published on

Mi Charla en Codemotion 2015. En ella repasamos los principales de problemas de seguridad y olvidos en los sistemas puestos en producción: fingerprinting, configuraciones incompletas, cifrados insuficientes, aplicaciones de gestión por defecto en producción, kernel de *NIX etc.

Published in: Internet
  • Be the first to comment

Tu DevOp me da trabajo: Soy auditor de seguridad

  1. 1. Tu DevOP me da trabajo: Soy auditor de seguridad Daniel García (cr0hn) - @ggdanielMADRID · NOV 27-28 · 2015
  2. 2. MADRID · NOV 27-28 · 2015 <spam>Me</spam> ➡ Auditor de seguridad y hacking ético. ➡ Programador Python. ➡ Organizador de “saraos”. ➡ Creador de más de 15 herramientas de seguridad. ➡ Trabajo en Abirtone. ∘ Formación muy especializada. ∘ Asesoramiento. ∘ Herramientas de hacking a medida. https://www.linkedin.com/in/garciagarciadaniel https://twitter.com/ggdaniel
  3. 3. MADRID · NOV 27-28 · 2015 De que NO va esta charla
  4. 4. MADRID · NOV 27-28 · 2015 De que NO va esta charla
  5. 5. MADRID · NOV 27-28 · 2015 De que NO va esta charla
  6. 6. MADRID · NOV 27-28 · 2015 De que NO va esta charla
  7. 7. MADRID · NOV 27-28 · 2015 De que NO va esta charla
  8. 8. MADRID · NOV 27-28 · 2015 ¿ De qué va esta charla? Fallos y “despiestes” que cometen muchos los sysadmin / DevOps y de cómo se pueden mitigar.
  9. 9. MADRID · NOV 27-28 · 2015 Lo primero… ¿qué es un DevOP?
  10. 10. MADRID · NOV 27-28 · 2015 Lo primero… ¿qué es un DevOP?
  11. 11. MADRID · NOV 27-28 · 2015 Lo primero… ¿qué es un DevOP?
  12. 12. MADRID · NOV 27-28 · 2015 Lo primero… ¿qué es un DevOP?
  13. 13. MADRID · NOV 27-28 · 2015 Lo primero… ¿qué es un DevOP?
  14. 14. MADRID · NOV 27-28 · 2015
  15. 15. MADRID · NOV 27-28 · 2015 Servidores web
  16. 16. MADRID · NOV 27-28 · 2015 Banners (1/2) ➡ Exponen el servidor web y/o la versión que está corriendo en el servidor. ➡ Algunos exponen la tecnología de backend usada, y su versión. ➡ La versión del servidor en producción podría contener fallos públicos … o no públicos. ➡ Cuanta menos información ofrezcamos a un atacante mejor.
  17. 17. MADRID · NOV 27-28 · 2015 Banners (2/2)
  18. 18. MADRID · NOV 27-28 · 2015 Banners (2/2)
  19. 19. MADRID · NOV 27-28 · 2015 Banners (2/2)
  20. 20. MADRID · NOV 27-28 · 2015 Banners (2/2)
  21. 21. MADRID · NOV 27-28 · 2015 Banners (2/2)
  22. 22. MADRID · NOV 27-28 · 2015 Verbos HTTP ➡ Limitar a aquellos estrictamente necesarios. ➡ Desactivar verbos potencialmente peligrosos: ∘ CONNECT ∘ PATCH ∘ PUT ∘ TRACE ∘ DELETE ➡ Usar listas blancas para servir contenido dinámico.
  23. 23. MADRID · NOV 27-28 · 2015 Verbos HTTP ➡ Limitar a aquellos estrictamente necesarios. ➡ Desactivar verbos potencialmente peligrosos: ∘ CONNECT ∘ PATCH ∘ PUT ∘ TRACE ∘ DELETE ➡ Usar listas blancas para servir contenido dinámico.
  24. 24. MADRID · NOV 27-28 · 2015 Algoritmos de cifrado (1/2) ➡ SSL permite configurarle varios algoritmos de cifrado. ➡ Por defecto vienen activos todos, en la mayoría de las distribuciones. ➡ No usar algoritmos de cifrado débiles. ∘ Nulos. ∘ Md5 ➡ No usar algoritmos de cifrado criptográficamente comprometidos. ∘ RC4 ∘ *CBC*
  25. 25. MADRID · NOV 27-28 · 2015 Algoritmos de cifrado (2/2)
  26. 26. MADRID · NOV 27-28 · 2015 Algoritmos de cifrado (2/2)
  27. 27. MADRID · NOV 27-28 · 2015 Algoritmos de cifrado (2/2)
  28. 28. MADRID · NOV 27-28 · 2015 Instalaciones por defecto
  29. 29. MADRID · NOV 27-28 · 2015 Ficheros por defecto en el servidor ➡ Ficheros configuración en servidores de produccción. ➡ Ficheros de licencia, readme o agradecimientos. ➡ “Restos” de instalaciones guiadas. ➡ NO solo han de ser controladas en la instalación, también en las actualizaciones. ➡ Protección con medidas genéricas: .htaccess
  30. 30. MADRID · NOV 27-28 · 2015 Ficheros por defecto en el servidor ➡ Ficheros configuración en servidores de produccción. ➡ Ficheros de licencia, readme o agradecimientos. ➡ “Restos” de instalaciones guiadas. ➡ NO solo han de ser controladas en la instalación, también en las actualizaciones. ➡ Protección con medidas genéricas: .htaccess
  31. 31. MADRID · NOV 27-28 · 2015 Ficheros por defecto en el servidor ➡ Ficheros configuración en servidores de produccción. ➡ Ficheros de licencia, readme o agradecimientos. ➡ “Restos” de instalaciones guiadas. ➡ NO solo han de ser controladas en la instalación, también en las actualizaciones. ➡ Protección con medidas genéricas: .htaccess
  32. 32. MADRID · NOV 27-28 · 2015 Aplicaciones de ejemplo ➡ Pueden dar información útil a un atacante. ➡ Pueden contener fallos de seguridad. ➡ Puede que hayan sido concebidas para ser instalas en entornos de DESARROLLO únicamente. ➡ La documentación también es una “aplicación” por defecto -> da información a un atacante.
  33. 33. MADRID · NOV 27-28 · 2015 Usuarios por defecto
  34. 34. MADRID · NOV 27-28 · 2015 Administración mal configurada
  35. 35. MADRID · NOV 27-28 · 2015 SSH ➡ NO permitir versiones del protocolo obsoletas o vulnerables: SSHv1. ➡ Denegar el acceso root remoto. ➡ Limite de intentos de loging. ➡ Permitir solamente orígenes válidos, cuando sea posible. ➡ Cambiar puerto por defecto.
  36. 36. MADRID · NOV 27-28 · 2015 Servicios olvidados
  37. 37. MADRID · NOV 27-28 · 2015 RPCBind ➡ Servicio de soporte a otros servicios. ➡ Por defecto escucha en todas las interfaces. ➡ SAMBA / NFS usan RPC. ➡ Un atacante podría listar los procesos que están usando el RPC y acceder a ellos: ∘ http://examples.oreilly.com/networksa/tools/ rpc_proxy.pdf
  38. 38. MADRID · NOV 27-28 · 2015 RPCBind ➡ Servicio de soporte a otros servicios. ➡ Por defecto escucha en todas las interfaces. ➡ SAMBA / NFS usan RPC. ➡ Un atacante podría listar los procesos que están usando el RPC y acceder a ellos: ∘ http://examples.oreilly.com/networksa/tools/ rpc_proxy.pdf
  39. 39. MADRID · NOV 27-28 · 2015 CUPSD ➡ Servicio de impresión de *NIX. ➡ Activo por defecto en prácticamente todas las nuevas distribuciones de Linux. ➡ Puede usarse para: ∘ Obtener usuarios del sistema. ∘ “Incordiar” enviando a imprimir información. ➡ Puede contener fallos de seguridad.
  40. 40. MADRID · NOV 27-28 · 2015 DHCP ➡ SOLO debe de estar activo como CLIENTE en redes locales. ➡ En servidores debería ser desactivado -> nuestro proveedor nos proporcionará una IP pública estática. ➡ Existen numerosas formas de atacar a un cliente DHCP: ∘ Envió de información falsa y modificación de configuración de red.
  41. 41. MADRID · NOV 27-28 · 2015 Servicios abiertos
  42. 42. MADRID · NOV 27-28 · 2015 Escucha en todas interfaces ➡ No todos los servicios han de escuchar en todas las interfaces. ➡ Las BBDD de datos no deberían de estar públicas. ➡ Los contenedores de aplicaciones deberían de apoyarse en un frontal para servir contenido.
  43. 43. MADRID · NOV 27-28 · 2015 Broking / mensajería (1/2) ➡ Usados para distribución de carga. ➡ Escuchan en todas las interfaces, por defecto. ➡ Que no usen un protocolo “user- friendly” no implica que se pueda extraer contenido de ellos.
  44. 44. MADRID · NOV 27-28 · 2015 Broking / mensajería (2/2)
  45. 45. MADRID · NOV 27-28 · 2015 Broking / mensajería (2/2)
  46. 46. MADRID · NOV 27-28 · 2015 Broking / mensajería (2/2)
  47. 47. MADRID · NOV 27-28 · 2015 MongoDB ➡ Expuesta al público para consumirse directamente su información. ➡ Comprobar privilegios. ➡ Conexiones por segundo. ➡ Securizar la conexión. ➡ Restringir acceso a información.
  48. 48. MADRID · NOV 27-28 · 2015 MongoDB ➡ Expuesta al público para consumirse directamente su información. ➡ Comprobar privilegios. ➡ Conexiones por segundo. ➡ Securizar la conexión. ➡ Restringir acceso a información.
  49. 49. MADRID · NOV 27-28 · 2015 Cachés
  50. 50. MADRID · NOV 27-28 · 2015 Memcache ➡ No implementa autenticación. ➡ Fue intentada para rendimiento, no para seguridad. ➡ Que no esté expuesta a internet, no implica que no se pueda acceder a ella -> a través de un fallo en la aplicación que la usa. ➡ Separar almacenes de información por aplicación.
  51. 51. MADRID · NOV 27-28 · 2015 Redis ➡ Uno de sus principales usos es el de caché. ➡ Sistema clave/valor. ➡ Almacenes de información compartidos y sin autenticación, por defecto. ➡ Tiene un lenguaje propio de consulta -> susceptible de ataques de inyección.
  52. 52. MADRID · NOV 27-28 · 2015 Rendimiento
  53. 53. Un chiste de descanso
  54. 54. Un chiste de descanso
  55. 55. MADRID · NOV 27-28 · 2015 Bases de datos
  56. 56. MADRID · NOV 27-28 · 2015 Roles y credenciales ➡ Las credenciales: root/root … no es una una contraseña segura. ➡ Limitar acceso de administración al sistema local. ➡ No exponer una base de datos a internet. ➡ Cambiar el puerto por defecto, cuando sea posible.
  57. 57. MADRID · NOV 27-28 · 2015 Restricción de accesos ➡ Limitar el acceso de los usuarios: ∘ Acceso a bases de datos. ∘ Acceso a tablas. ∘ Operaciones en tablas / bases de datos. ∘ Operaciones en tablas. ➡ Limitar el acceso a funciones propias del motor ∘ Funciones de acceso al S.O. ∘ Funciones críticas o cuyo uso es muy restringido.
  58. 58. MADRID · NOV 27-28 · 2015 “Scripts” vulnerables
  59. 59. MADRID · NOV 27-28 · 2015 Fallos de seguridad en código ➡ CUIDADO con los “scripts rápidos”. ∘ Se suelen dejar olvidados en el servidor. ∘ No se suelen protegen. ➡ SQL Injection / Cross Site Scripting (XSS) -> te podría pasar a ti. ➡ Log inyection: muy usado para ocultar el rastro.
  60. 60. MADRID · NOV 27-28 · 2015 Sistema operativo
  61. 61. MADRID · NOV 27-28 · 2015 Algoritmos de cifrado MD5 / SHA1 son algoritmos de cifrado “rotos” -> se pueden encontrar colisiones con relativa facilidad.
  62. 62. MADRID · NOV 27-28 · 2015 Políticas de contraseñas ➡ Cuidado con las políticas de contraseñas y los usuarios: ∘ Contraseñas muy cortas -> crakeable con software. ∘ Contraseñas muy largar y con cambios muy habituales….
  63. 63. MADRID · NOV 27-28 · 2015 Políticas de contraseñas ➡ Cuidado con las políticas de contraseñas y los usuarios: ∘ Contraseñas muy cortas -> crakeable con software. ∘ Contraseñas muy largar y con cambios muy habituales….
  64. 64. MADRID · NOV 27-28 · 2015 Comandos del sistema operativo ➡ En producción NUNCA deberían de estar disponibles ciertos comandos / aplicaciones: ∘ gcc ∘ hex ∘ netcat ∘ hexedit ∘ sudo…
  65. 65. MADRID · NOV 27-28 · 2015 Protocolo de red “inofensivos” ➡ ICMP ∘ Alerta de la presencia en la red. ∘ Si se necesita, filtrar por orígenes válidos. ∘ No permitir todos los tipos.
  66. 66. MADRID · NOV 27-28 · 2015 Protocolo de red “inofensivos” ➡ ICMP ∘ Alerta de la presencia en la red. ∘ Si se necesita, filtrar por orígenes válidos. ∘ No permitir todos los tipos.
  67. 67. MADRID · NOV 27-28 · 2015 IPv6 ➡ Activo por defecto en todos los sistemas. ➡ Prácticamente un desconocido. ➡ Su filtrado en firewalls tiene que ser activado expresamente -> reglas para IPv4 NO son compatibles con IPv6 (la mayoría). ➡ Los IDS tienen que ser activados y configurados para detectar ataques de IPv6. ➡ Existen DECENAS de ataques.
  68. 68. MADRID · NOV 27-28 · 2015 Kernel (1/2) ➡ Los módulos no usados pueden contener fallos. ➡ Cualquier módulo puede cargarse. ➡ Por defecto, están activos muchos protocolos no usados: SCTP. ➡ Compilaciones sin medidas de protección anti-exploits. ➡ Soluciones: ∘ Kernel monolíticos. ∘ Firmar los módulos
  69. 69. MADRID · NOV 27-28 · 2015 Kernel Kernel (2/2) https://wiki.gentoo.org/wiki/Signed_kernel_module_support
  70. 70. MADRID · NOV 27-28 · 2015 Kernel Kernel (2/2) https://wiki.gentoo.org/wiki/Signed_kernel_module_support
  71. 71. MADRID · NOV 27-28 · 2015 Kernel Kernel (2/2) https://wiki.gentoo.org/wiki/Signed_kernel_module_support
  72. 72. MADRID · NOV 27-28 · 2015 Kernel Kernel (2/2) https://wiki.gentoo.org/wiki/Signed_kernel_module_support
  73. 73. MADRID · NOV 27-28 · 2015 ¿Dudas o preguntas? ¡Gracias!

×