Badlock: SAMR and LSA protocol man-in-the-middle attack against Samba (CVE-2016-2118)
Table of Contents
Red Hat Product Security ha tenido conocimiento de un fallo de protocolo en el DCE/RPC basado en protocolos SAMR y LSA en la infraestructura de Microsoft Windows Active Directory. Esta vulnerabilidad ha sido asignada en CVE-2016-2118
Nota: Este es un incidente de protocolo y afecta todas las aplicaciones que implementan este protocolo, incluido Samba - CVE-2016-2118 y Microsoft Windows - CVE-2016-0128.
Información de fondo
DCE/RPC es la especificación para un procedimiento de mecanismo de llamadas remoto que define las API y un protocolo sobre la red. El Protocolo remoto (cliente a servidor) de SAM (Security Account Manager) proporciona una funcionalidad administrativa para un almacén de cuentas o directorio que consta de usuarios y grupos. El protocolo expone la "account database" para dominios de directorios de Microsoft local y remoto. El protocolo remoto de autoridad de seguridad local (Política de dominio) sirve para manejar varias políticas de seguridad de máquina y dominio. Este protocolo, con unas pocas excepciones, habilita escenarios de administración de políticas. Tanto los protocolos SAMR como los protocolos LSA se basan en el protocolo DCE/RPC 1.1.
Estos protocolos suelen estar disponibles para todas las instalaciones de Windows, así como cada servidor de Samba. Sirven para mantener la base de datos de SAM. Esto aplica a todos los roles(por ejemplo, el servidor autónomo, el controlador de dominio, el miembro de dominio).
Descripción del ataque e impacto
Cualquier conexión autenticada de DCE/RPC iniciada por un cliente con un servidor, podría ser utilizada por un atacante Hombre-en-el-medio para hacerse pasar por el usuario autenticado con el servicio SAMR o LSA en el servidor. Como resultado, el atacante podría obtener acceso de escritura/lectura para la base de datos de Security Account Manager, la cual podría revelar las contraseñas y otra información confidencial.
El protocolo de aplicación de cliente elegido, el tipo de autenticación ( por ejemplo,Kerberos o NTLMSSP) y el nivel de autenticación (NONE, CONNECT,SIGN o SEAL) no importan es este caso. Un atacante Hombre-en-el-medio podría bajar el nivel de autenticación a CONNECT y tomar el control de la conexión.
Todas las versiones de paquetes de Samba distribuidos con el servidor Red Hat Enterprise Linux y Red Hat Gluster Storage se afectan con este fallo. Red Hat Product Security ha evaluado este incidente como impacto de seguridad Importante.
Configuraciones afectadas
Una infraestructura de Active Directory con el servidor Samba como un miembro de dominio es vulnerable a este fallo. Un atacante Hombre-en-el-medio podría interceptar tráfico DCE/RPC entre el miembro de dominio y el controlador de dominio para hacerse pasar por el cliente y obtener algunos privilegios como cuenta de usuario autenticado. El atacante podría ver o modificar secretos dentro de una base de datos AD, incluidos los hash de contraseñas de usuario o los servicios críticos de apagado.
Cualquier servidor Samba configurado como un archivo o servidor de impresora también es vulnerable a este fallo. El atacante podría usar el fallo para modificar los permisos de usuario en archivos o directorios.
Mitigación
Se puede reducir el riesgo al utilizar cuentas con privilegios para acceder a servicios SMB/CIFS hasta que el paquete que contenga el correctivo haya sido aplicado. El acceso administrativo restringido para hardware físico (consola, servidor) ha sido aplicado para que la autenticación no implique ninguna comunicación de red.
Resolución
Producto | Componente | Recomendación |
---|---|---|
Red Hat Enterprise Linux 5 | samba (3.0) | RHSA-2016:0621 |
Red Hat Enterprise Linux 5 | samba3x (3.6) | RHSA-2016:0613 |
Red Hat Enterprise Linux 6 | samba (3.6) | RHSA-2016:0611 |
Red Hat Enterprise Linux 6 | samba4 (4.2) | RHSA-2016:0612 |
Red Hat Enterprise Linux 7 | samba (4.2) | RHSA-2016:0612 |
Red Hat Gluster Storage 3 (EL6) | samba (4.2) | RHSA-2016:0306 |
Red Hat Gluster Storage 3 (EL7) | samba (4.2) | RHSA-2016:0306 |
Agradecimientos
Red Hat agradece al proyecto Samba por reportar este problema. La corriente de desarrollo principal agradece a Stefan Metzmacher (SerNet) por haber sido el primero en reportar este incidente.
Notas adicionales
La actualización de seguridad para este fallo introduce una nueva opción en smb.conf
, documentada como:
allow dcerpc auth level connect (G)
Esta opción controla si los servicios DCE/RPC pueden ser utilizados con
DCERPC_AUTH_LEVEL_CONNECT, el cual proporciona autenticación, pero no por integridad de mensaje (SIGN) ni protección de privacidad (SEAL).
Algunas interfaces como samr, lsarpc y netlogon tienen un valor de codificación predeterminado fijo
de no; epmapper, mgmt, y rpcecho tienen un predeterminado fijo de sí.
La conducta puede ser sobrescrita por nombre de interfaz (por ejemplo, lsarpc,
netlogon, samr, srvsvc, winreg, o wkssvc) al especificar
'allow dcerpc auth level connect:interface = yes'.
Esta opción tiene precedencia en cualquier restricción específica de implementación.
Por ejemplo:
* Los protocolos drsuapi y backupkey requieren DCERPC_AUTH_LEVEL_PRIVACY.
* El protocolo dnsserver requiere DCERPC_AUTH_LEVEL_INTEGRITY.
Predeterminado: allow dcerpc auth level connect = no
Ejemplo: allow dcerpc auth level connect = yes
Preguntas frecuentes
¿Necesito actualizar los servidores y clientes Samba en mi infraestructura?
Como mínimo, los servidores Samba deben ser actualizados. Debido a que Badlock es un fallo de protocolo, tanto los servidores como los clientes pueden afectarse, según la configuración de la infraestructura de Samba. Red Hat Product Security recomienda a los clientes actualizar los servidores y los clientes.
**¿Los paquetes actualizados afectarán a mis clientes existentes que están ejecutándose en versiones anteriores de Samba?
Esta recomendación de seguridad refuerza algunas de las opciones de seguridad utilizadas para configurar Samba. Esto puede afectar las configuraciones cuando un servidor Samba esté actualizado, pero el cliente no lo esté. Es posible volver a las opciones anteriores para continuar la interoperatividad, (por ejemplo al establecer 'allow dcerpc auth level connect = yes' en el archivo
smb.conf), aunque Red Hat Product Security no lo recomienda, ya que esto reintroduce algunos de los vectores de ataques.
**Mis instancias de servidor Samba no están conectadas a ningún Windows Domain, ¿aún me veré afectado?
Sí, si un usuario administrador se comunica con un servidor Samba mediante un cliente no seguro o usa un cliente seguro para comunicarse con un servidor Samba inseguro, un atacante Hombre-en-el-medio podría, en potencia, aprovechar esta falla.
**He actualizado mis servidores y clientes Samba, ¿necesito reiniciar todo?
No, cuando la actualización se aplique en su sistema de servidor, el servicio 'smb' se reiniciará automáticamente.
**¿El cifrado me protegerá del ataque Hombre-en-el-medio (MITM)?
El protocolo SMB, solamente cifra las credenciales y comandos cuando los archivos son transferidos en texto plano. Se recomienda que en escenarios de seguridad y confidencialidad se utilice para proteger todas las comunicaciones. El cifrado fue agregado a Samba en versión 3.2, pero únicamente para clientes Samba. Microsoft agregó soporte de cifrado SMB a SMB 3.0 en Windows 8 y Windows Server 2012. Sin embargo, ambos tipos de cifrado solamente protegen comunicaciones, tales como transferencias de archivos, después de que negociación SMB y comandos hayan sido completados. Es esta la fase que contiene la vulnerabilidad resaltada arriba. El cifrado de Samba/SMB es una buena práctica, pero no es suficiente para proteger contra esta vulnerabilidad.
Referencias
http://badlock.org/
Comments