Qual a finalidade do NTLM?
O Windows New Technology LAN Manager (NTLM) é um conjunto de protocolos de segurança que a Microsoft oferece para autenticar a identidade dos usuários e proteger a integridade e confidencialidade da atividade deles. Em essência, o NTLM é uma ferramenta de single sign-on (SSO) que usa um protocolo desafio-resposta para confirmar o usuário sem exigir que ele envie uma senha.
Apesar das vulnerabilidades conhecidas, o NTLM continua sendo muito implementado até mesmo em sistemas novos para manter a compatibilidade com clientes e servidores legados. Embora o NTLM ainda tenha o suporte da Microsoft, ele foi substituído pelo Kerberos como o protocolo de autenticação padrão no Windows 2000 e nos domínios posteriores do Active Directory (AD).
Como o protocolo NTLM funciona?
O NTLM autentica os usuários por meio de um mecanismo de desafio-resposta. Esse processo é formado por três mensagens:
- Mensagem de negociação do cliente
- Mensagem de desafio do servidor
- Mensagem de autenticação do cliente
Processo de autenticação do NTLM
A autenticação do NTLM costuma seguir este processo em etapas:
- O usuário compartilha seu nome de usuário, senha e nome de domínio com o cliente.
- O cliente desenvolve uma versão embaralhada da senha (ou hash) e exclui a senha completa.
- O cliente transmite uma versão em texto simples do nome do usuário ao servidor relevante.
- O servidor responde ao cliente com um desafio, que é um número aleatório de 16 bytes.
- Em resposta, o cliente envia o desafio criptografado pelo hash da senha do usuário.
- Depois, o servidor envia o desafio, a resposta e o nome do usuário para o controlador de domínio (DC, na sigla em inglês).
- O DC recupera a senha do usuário do banco de dados e a usa para criptografar o desafio.
- Em seguida, o DC compara o desafio criptografado e a resposta do cliente. Se ambos forem correspondentes, o usuário será autenticado, e o acesso será concedido.
Qual é a diferença entre o NTLM e o Kerberos?
Assim como o NTLM, o Kerberos é um protocolo de autenticação. Ele substituiu o NTLM como a ferramenta de autenticação padrão no Windows 2000 e em lançamentos posteriores.
A principal diferença entre o NTLM e o Kerberos é a forma como os dois protocolos gerenciam a autenticação. O NTLM depende de um handshake de três vias entre o cliente e o servidor para autenticar o usuário. Já o Kerberos usa um processo em duas partes que utiliza um serviço de concessão de tíquetes ou um centro de distribuição de chaves.
Outra diferença principal é com relação ao hash ou criptografia das senhas. O NTLM usa o hash de senha, que é uma função unidirecional que produz uma cadeia de texto com base em um arquivo de entrada. Já o Kerberos utiliza a criptografia, que é uma função bidirecional que embaralha e desbloqueia informações usando uma chave de criptografia e de descriptografia, respectivamente.
Embora o protocolo Kerberos seja o método de autenticação padrão da Microsoft no momento, o NTLM funciona como um backup. Se o Kerberos não conseguir autenticar o usuário, o sistema tentará usar o NTLM.
Por que o NTLM foi substituído pelo Kerberos?
O NTLM é suscetível a diversas vulnerabilidades de segurança conhecidas relacionadas ao sal e hash de senha.
No NTLM, as senhas armazenadas no servidor e no controlador de domínio não têm “sal”. Isso significa que uma cadeia aleatória de caracteres não é adicionada à senha com hash para oferecer ainda mais proteção contra técnicas de quebra. Por isso, os adversários com um hash de senha não precisam da senha subjacente para autenticar uma sessão. Como resultado, os sistemas ficaram vulneráveis a ataques de força bruta: quando um invasor tenta descobrir uma senha por meio de várias tentativas de login. Se o usuário definir uma senha fraca ou comum, ele estará muito suscetível a essas táticas.
A criptografia do NTLM também não aproveita as inovações em algoritmos e criptografia que melhoram bastante as capacidades de segurança.
Protocolo Kerberos
O Kerberos foi desenvolvido pelos pesquisadores do Instituto de Tecnologia de Massachusetts (MIT) na década de 1980. O nome é inspirado no personagem da mitologia grega Cérbero, o cão de três cabeças que protege a entrada para o submundo.
Na prática, os três componentes de segurança no protocolo Kerberos são representados como:
- Um cliente que busca autenticação
- Um servidor que o cliente quer acessar
- O serviço de tíquete ou centro de distribuição de chaves (KDC, na sigla em inglês)
Autenticação do Kerberos
Confira a seguir o processo em doze etapas da autenticação do Kerberos:
- O usuário compartilha seu nome de usuário, senha e nome de domínio com o cliente.
- O cliente monta um pacote (ou autenticador) que contém todas as informações relevantes sobre o cliente, incluindo nome de usuário, data e hora. Todas as informações contidas no autenticador, exceto o nome de usuário, são criptografadas com a senha do usuário.
- O cliente envia o autenticador criptografado para o KDC.
- O KDC verifica o nome de usuário para estabelecer a identidade do cliente. Em seguida, ele verifica o banco de dados do AD para obter a senha do usuário. Depois, ele tenta descriptografar o autenticador com a senha. Se o KDC conseguir descriptografar o autenticador, a identidade do cliente será verificada.
- Depois que a identidade do cliente é verificada, o KDC cria um tíquete ou chave de sessão, que também são criptografados e enviados ao cliente.
- O tíquete ou chave de sessão são armazenados na bandeja do Kerberos do cliente. O tíquete pode ser usado para acessar o servidor por um período definido, que normalmente é de 8 horas.
- Se o cliente precisa acessar outro servidor, ele envia o tíquete original para o KDC com uma solicitação para acessar o novo recurso.
- O KDC descriptografa o tíquete com a chave dele. O cliente não precisa autenticar o usuário porque o KDC pode usar o tíquete para verificar se a identidade dessa pessoa foi confirmada anteriormente.
- O KDC gera um tíquete ou chave de sessão atualizados para o cliente acessar o novo recurso compartilhado. Esse tíquete também é criptografado pela chave do servidor. Em seguida, o KDC envia o tíquete ao cliente.
- O cliente salva a nova chave de sessão na bandeja do Kerberos e envia uma cópia ao servidor.
- O servidor usa a própria senha para descriptografar o tíquete.
- Se o servidor conseguir descriptografar a chave de sessão, o tíquete será legítimo. Em seguida, o servidor abre o tíquete e revisa a lista de controle de acesso (ACL, na sigla em inglês) para determinar se o cliente tem as permissões necessárias para acessar o recurso.
Aplicações que usam o NTLM
O NTLM deixou de ser o protocolo de autenticação padrão no Windows 2000, sendo substituído pelo Kerberos. No entanto, o NTLM ainda está disponível em todos os sistemas Windows para fins de compatibilidade entre clientes e servidores mais antigos.
Por exemplo, os computadores que ainda executam o Windows 95, Windows 98 ou Windows NT 4.0 usarão o protocolo NTLM para realizar a autenticação de rede com um domínio do Windows 2000. Já os computadores que executam o Windows 2000 usarão o NTLM ao autenticar servidores com o Windows NT 4.0 ou anterior e acessar recursos em domínios do Windows 2000 ou anterior. O NTLM também é usado para autenticar logons locais com controladores que não sejam de domínio.
Benefícios e desafios do NTLM
O NTLM é considerado um protocolo obsoleto. Por isso, seus benefícios são limitados, quando comparados com uma solução mais moderna, como o Kerberos. No entanto, a essência do NTLM continua: os clientes usam o hash de senha para evitar o envio de senhas desprotegidas pela rede.
Nesse ponto, há várias desvantagens claras ao usar a autenticação do NTLM:
- Autenticação única: o NTLM é um método de autenticação única. Ele se baseia em um protocolo de desafio-resposta para estabelecer o usuário. Além disso, ele não é compatível com a autenticação multifatorial (MFA), que é o processo de usar duas ou mais informações para confirmar a identidade do usuário.
- Vulnerabilidades de segurança: a forma relativamente simplista do hash de senha torna os sistemas de NTLM vulneráveis a vários modos de ataque, como pass-the-hash e ataques de força bruta.
- Criptografia desatualizada: o NTLM não aproveita os últimos avanços em pensamento algorítmico e criptografia para proteger as senhas.
Como proteger a rede usando o NTLM?
Considerando os riscos de segurança conhecidos em relação ao NTLM, a CrowdStrike recomenda que as organizações tentem reduzir ao máximo o uso desse protocolo nas suas redes.
No caso das organizações que ainda dependem do NTLM por questões de compatibilidade, a CrowdStrike tem as seguintes recomendações para aumentar a segurança e diminuir os riscos.
- Aplique mitigações de NTLM: para se proteger totalmente contra ataques de retransmissão de NTLM, você precisa habilitar a assinatura de servidor e a EPA em todos os servidores relevantes.
- Faça correções: verifique se seus sistemas estão totalmente protegidos com as atualizações de segurança mais recentes da Microsoft.
- Use técnicas avançadas: aplique técnicas avançadas de detecção e prevenção de retransmissão de NTLM que sejam semelhantes às divulgadas pela Preempt (agora CrowdStrike) na nossa palestra Black Hat 2019.
- Identifique variações fracas: alguns clientes NTLM usam variações fracas (por exemplo, não enviam um MIC). Isso expõe a rede a riscos maiores de vulnerabilidade à retransmissão de NTLM.
- Monitore o tráfego de NTLM na rede: tente restringir o tráfego de NTLM não seguro.
Elimine os clientes que enviam respostas de LAN e defina a segurança de rede do objetivo de política de grupo (GPO, na sigla em inglês): defina o nível de autenticação do Lan Manager para recusar as respostas de LAN.
O Guia Completo para Construir uma Estratégia de Proteção de Identidade
Comece a adotar uma postura de segurança resiliente: faça download do Guia completo para construir uma estratégia de proteção de identidade para proteger hoje mesmo o panorama de identidade digital da sua organização.
Baixe agora