Tu DevOp me da trabajo: Soy auditor de seguridad

  • View
    1.982

  • Download
    3

  • Category

    Internet

Preview:

Citation preview

Tu DevOP me da trabajo: Soy auditor de seguridad

Daniel García (cr0hn) - @ggdanielMADRID · NOV 27-28 · 2015

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

MADRID · NOV 27-28 · 2015

De que NO va esta charla

MADRID · NOV 27-28 · 2015

De que NO va esta charla

MADRID · NOV 27-28 · 2015

De que NO va esta charla

MADRID · NOV 27-28 · 2015

De que NO va esta charla

MADRID · NOV 27-28 · 2015

De que NO va esta charla

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.

MADRID · NOV 27-28 · 2015

Lo primero… ¿qué es un DevOP?

MADRID · NOV 27-28 · 2015

Lo primero… ¿qué es un DevOP?

MADRID · NOV 27-28 · 2015

Lo primero… ¿qué es un DevOP?

MADRID · NOV 27-28 · 2015

Lo primero… ¿qué es un DevOP?

MADRID · NOV 27-28 · 2015

Lo primero… ¿qué es un DevOP?

MADRID · NOV 27-28 · 2015

MADRID · NOV 27-28 · 2015

Servidores web

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.

MADRID · NOV 27-28 · 2015

Banners (2/2)

MADRID · NOV 27-28 · 2015

Banners (2/2)

MADRID · NOV 27-28 · 2015

Banners (2/2)

MADRID · NOV 27-28 · 2015

Banners (2/2)

MADRID · NOV 27-28 · 2015

Banners (2/2)

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.

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.

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*

MADRID · NOV 27-28 · 2015

Algoritmos de cifrado (2/2)

MADRID · NOV 27-28 · 2015

Algoritmos de cifrado (2/2)

MADRID · NOV 27-28 · 2015

Algoritmos de cifrado (2/2)

MADRID · NOV 27-28 · 2015

Instalaciones por defecto

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

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

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

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.

MADRID · NOV 27-28 · 2015

Usuarios por defecto

MADRID · NOV 27-28 · 2015

Administración mal configurada

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.

MADRID · NOV 27-28 · 2015

Servicios olvidados

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

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

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.

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.

MADRID · NOV 27-28 · 2015

Servicios abiertos

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.

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.

MADRID · NOV 27-28 · 2015

Broking / mensajería (2/2)

MADRID · NOV 27-28 · 2015

Broking / mensajería (2/2)

MADRID · NOV 27-28 · 2015

Broking / mensajería (2/2)

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.

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.

MADRID · NOV 27-28 · 2015

Cachés

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.

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.

MADRID · NOV 27-28 · 2015

Rendimiento

Un chiste de descanso

Un chiste de descanso

MADRID · NOV 27-28 · 2015

Bases de datos

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.

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.

MADRID · NOV 27-28 · 2015

“Scripts” vulnerables

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.

MADRID · NOV 27-28 · 2015

Sistema operativo

MADRID · NOV 27-28 · 2015

Algoritmos de cifrado

MD5 / SHA1 son algoritmos de cifrado “rotos” -> se pueden encontrar colisiones con

relativa facilidad.

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

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

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…

MADRID · NOV 27-28 · 2015

Protocolo de red “inofensivos”

➡ ICMP ∘ Alerta de la presencia en la red. ∘ Si se necesita, f i ltrar por

orígenes válidos. ∘ No permitir todos los tipos.

MADRID · NOV 27-28 · 2015

Protocolo de red “inofensivos”

➡ ICMP ∘ Alerta de la presencia en la red. ∘ Si se necesita, f i ltrar por

orígenes válidos. ∘ No permitir todos los tipos.

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.

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

MADRID · NOV 27-28 · 2015

Kernel

Kernel (2/2)

https://wiki.gentoo.org/wiki/Signed_kernel_module_support

MADRID · NOV 27-28 · 2015

Kernel

Kernel (2/2)

https://wiki.gentoo.org/wiki/Signed_kernel_module_support

MADRID · NOV 27-28 · 2015

Kernel

Kernel (2/2)

https://wiki.gentoo.org/wiki/Signed_kernel_module_support

MADRID · NOV 27-28 · 2015

Kernel

Kernel (2/2)

https://wiki.gentoo.org/wiki/Signed_kernel_module_support

MADRID · NOV 27-28 · 2015

¿Dudas o preguntas?

¡Gracias!

Recommended