Post on 16-Apr-2017
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!