A delegação Kerberos permite que um serviço solicite recursos ou execute ações em nome de um usuário, mantendo os princípios de segurança de autenticação e autorização.
Delegação dentro Kerberos desempenha um papel fundamental na facilitação de interações seguras e contínuas entre serviços em nome dos usuários.
Kerberos, uma pedra angular das arquiteturas modernas de segurança de rede, oferece uma estrutura robusta para autenticar usuários e serviços em uma rede não segura. Elimina a necessidade de transmitir senhas diretamente, em vez de usar tickets criptográficos para provar a identidade. No entanto, em ambientes de TI complexos, surgem frequentemente situações em que um serviço deve agir em nome de um utilizador para aceder a outros serviços. Este requisito levou ao desenvolvimento da delegação Kerberos.
Esse recurso é vital em cenários onde os processos iniciados pelo usuário envolvem vários níveis de serviços, cada um exigindo autenticação. O conceito pode parecer simples, mas a sua implementação e as considerações de segurança que implica são complexas e matizadas. É essencial que os profissionais de TI e de segurança cibernética compreendam a mecânica, as aplicações e os riscos associados à delegação Kerberos para proteger eficazmente os seus ambientes.
Como funciona a delegação Kerberos
O protocolo Kerberos foi originalmente projetado para um ambiente de rede mais simples, com o objetivo de autenticar usuários em serviços que pudessem ser acessados diretamente. A necessidade de os serviços comunicarem em nome dos utilizadores tornou-se evidente à medida que as infra-estruturas de TI evoluíram para arquitecturas mais integradas e em camadas. Para acomodar esta mudança, o Kerberos desenvolveu a delegação, permitindo interações mais complexas, mantendo ao mesmo tempo as garantias de segurança.
O processo de delegação no Kerberos envolve várias etapas importantes:
- O usuário se autentica no Kerberos Key Distribution Center (KDC) e recebe um Ticket-Granting Ticket (TGT).
- Ao acessar um serviço que requer delegação, o serviço solicita um ticket de serviço do KDC em nome do usuário, indicando a necessidade de acessar outro serviço downstream.
- O KDC emite um tíquete de serviço que o serviço inicial pode usar para solicitar acesso ao serviço downstream em nome do usuário.
Este mecanismo garante que as credenciais do usuário nunca sejam expostas aos serviços, aderindo aos princípios de segurança do Kerberos.
Tipos de delegação Kerberos
Para atender a diversos níveis de necessidades de segurança e arquiteturas de aplicativos, foram desenvolvidos três tipos diferentes de delegação Kerberos. Cada um desses tipos – delegação irrestrita, restrita e restrita baseada em recursos – oferece diferentes mecanismos para que os serviços atuem em nome dos usuários, com controles específicos sobre quais serviços podem ser acessados.
Delegação irrestrita
Esta é a forma mais permissiva de delegação no Kerberos, permitindo que um serviço solicite acesso a qualquer outro serviço em nome do usuário. Com delegação irrestrita, uma vez que um usuário se autentica em um serviço, esse serviço pode obter tickets para qualquer outro serviço para o usuário.
Esta forma de delegação é poderosa, mas apresenta riscos de segurança significativos se não for cuidadosamente gerida, uma vez que essencialmente concede ao serviço amplos poderes para agir em nome do utilizador.
Delegação restrita
Introduzida para mitigar os riscos associados à delegação irrestrita, a delegação restrita limita os serviços aos quais um delegado pode solicitar acesso em nome do usuário. Requer especificar antecipadamente quais serviços são permitidos para delegação, proporcionando um ambiente controlado e seguro para que a delegação ocorra.
Essa configuração depende da extensão Service for User to Proxy (S4U2Proxy), que permite que um serviço obtenha um ticket para um serviço específico em nome do usuário, mas somente se esse serviço for explicitamente permitido.
Delegação restrita baseada em recursos
Uma evolução da delegação restrita, a delegação restrita baseada em recursos aumenta ainda mais a segurança e a flexibilidade, permitindo que o administrador do serviço de destino controle quais serviços podem delegar a ele.
Introduzido em Servidor 2012 do Windows, esse tipo transfere a configuração da delegação do controlador de domínio para o próprio recurso. Ele aproveita as extensões Service for User to Self (S4U2Self) e S4U2Proxy para permitir que um serviço solicite acesso em nome do usuário com base em permissões definidas no nível do recurso, e não globalmente no domínio.
Cada tipo de delegação aborda preocupações específicas de segurança e necessidades operacionais:
- Delegação irrestrita é adequado para ambientes altamente confiáveis onde a facilidade de uso supera o potencial de abuso.
- Delegação restrita fornece uma abordagem equilibrada, oferecendo flexibilidade e ao mesmo tempo limitando significativamente o potencial de uso indevido, restringindo a delegação a serviços específicos.
- Delegação restrita baseada em recursos oferece o mais alto nível de controle e segurança, permitindo que os proprietários dos recursos gerenciem diretamente quais serviços podem atuar em seu nome, minimizando assim o risco de delegação não autorizada.
Considerações e riscos de segurança
As considerações e os riscos de segurança são fundamentais no complexo mundo da delegação Kerberos. Cada tipo de delegação – irrestrita, restrita e restrita baseada em recursos – carrega vulnerabilidades específicas que poderiam ser potencialmente exploradas se não forem gerenciadas adequadamente. Compreender esses riscos e as medidas para mitigá-los é essencial para manter a integridade e a segurança de um ambiente de TI.
Riscos de delegação irrestrita
- O risco mais significativo com a delegação irrestrita é a possibilidade de um compromisso conta de serviço sendo usado para acessar qualquer outro serviço dentro da rede em nome dos usuários. Isto poderia levar a escalação de privilégios e movimento lateral dentro da rede se os invasores obtiverem o controle de tal conta.
- As estratégias de mitigação incluem limitar o uso de delegação irrestrita a serviços altamente confiáveis, usar formas de delegação mais seguras sempre que possível e empregar monitoramento e auditoria rigorosos para detectar atividades incomuns.
Riscos de delegação restrita
- Embora a delegação restrita limite o escopo dos serviços que uma conta delegada pode acessar, configurações incorretas ou configurações excessivamente permissivas ainda podem apresentar oportunidades para invasores. Por exemplo, se uma conta de serviço puder delegar para serviços confidenciais e essa conta for comprometida, o impacto poderá ser substancial.
- A mitigação destes riscos envolve a revisão regular dos serviços permitidos no atributo msDS-AllowedToDelegateTo e a garantia de que apenas os serviços necessários são permitidos.
Riscos de delegação restrita baseada em recursos
- A descentralização da autoridade de delegação aos proprietários dos recursos aumenta a flexibilidade, mas também introduz o risco de políticas ou configurações de segurança inconsistentes em diferentes recursos. Se um proprietário de recurso permitir inadvertidamente a delegação de um serviço inseguro, isso poderá comprometer o recurso.
- Para mitigar estes riscos, as organizações devem estabelecer políticas claras para configurar a delegação restrita baseada em recursos, fornecer formação aos proprietários de recursos e realizar auditorias regulares para garantir a conformidade com as melhores práticas de segurança.
Como identificar se Kerberos está sendo usado
Existem alguns métodos que você pode usar para identificar a presença de Kerberos:
- Verifique os logs do sistema:
- Em sistemas Linux, os eventos de autenticação Kerberos geralmente são registrados em /var/log/messages ou /var/log/syslog.
- Em sistemas Windows, eles geralmente estão localizados no Visualizador de Eventos na categoria “Segurança”.
- Procure erros ou avisos relacionados ao Kerberos.
- Mensagens de erro comuns incluem:
- “KDC_ERR_SERVER_NOT_FOUND”
- “KDC_ERR_CLIENT_NOT_TRUSTED”
- “KDC_ERR_INVALID_CREDENTIAL”
- “KRB5KDC_ERR_ETYPE_NOSUPP”
- “KRB5KDC_ERR_PREAUTH_FAILED”
- Procure os arquivos de configuração do Kerberos:
- Em sistemas Linux, os arquivos de configuração Kerberos normalmente estão localizados em /etc/krb5.conf.
- Em sistemas Windows, eles geralmente estão localizados em %WINDIR%\krb5.ini.
- Verifique os arquivos de configuração em busca de erros ou inconsistências.
- Certifique-se de que a região Kerberos esteja correta e que os servidores KDC estejam listados corretamente.
- Verifique o registro:
- Nos sistemas Windows, a configuração do Kerberos também é armazenada no registro.
- A chave de registro relevante é HKLM\SYSTEM\CurrentControlSet\Services\Kdc.
- Verifique a chave do registro em busca de erros ou inconsistências.
- Certifique-se de que a região Kerberos esteja correta e que os servidores KDC estejam listados corretamente.
- Use um sniffer de rede:
- Um sniffer de rede pode ser usado para capturar o tráfego de autenticação Kerberos.
- Isso pode ser útil para solucionar problemas do Kerberos ou para monitorar a atividade do Kerberos.
- Procure erros ou anomalias no tráfego Kerberos.
- Use uma ferramenta de teste Kerberos:
- Há diversas ferramentas de teste Kerberos disponíveis que podem ser usadas para testar a configuração do Kerberos e o processo de autenticação.
- Algumas dessas ferramentas incluem:
- Kinit
- lista de cliques
- kdcdiag
- cliente de teste krb5
- servidor de teste krb5
- Use as ferramentas de teste do Kerberos para testar a configuração e o processo de autenticação do Kerberos.
- Procure erros ou inconsistências nos resultados dos testes.
Configuração e Gestão
Configurar e gerenciar a delegação Kerberos é uma etapa crítica para garantir que ela atenda à finalidade pretendida sem comprometer a segurança. Cada tipo de delegação – irrestrita, restrita e restrita baseada em recursos – requer etapas de configuração específicas, envolvendo tanto o Active Directory ambiente e configurações de serviço individuais.
Delegação irrestrita:
- Ative em uma conta de serviço definindo o sinalizador TRUSTED_FOR_DELEGATION no campo Active Directory conta de usuário propriedades.
- Não são impostas restrições aos serviços para os quais o delegado pode solicitar tickets em nome do usuário, tornando crucial a seleção cuidadosa de contas para este tipo de delegação para evitar riscos de segurança.
Delegação restrita (S4U2Proxy):
- Configure especificando os serviços para os quais uma conta de serviço específica pode apresentar credenciais delegadas. Isso é feito modificando o atributo msDS-AllowedToDelegateTo no arquivo da conta de serviço Active Directory objeto.
- Requer a configuração do sinalizador TRUSTED_TO_AUTH_FOR_DELEGATION na conta de serviço se a transição de protocolo (S4U2Self) também for usada, permitindo que os serviços solicitem tickets em nome dos usuários sem uma autenticação Kerberos inicial.
Delegação restrita baseada em recursos:
- Configure definindo permissões no serviço de destino Active Directory objeto, especificamente no atributo msDS-AllowedToActOnBehalfOfOtherIdentity. Isto permite que o proprietário do recurso controle quais serviços podem delegar diretamente a ele.
- Ao contrário da delegação restrita tradicional, a delegação restrita baseada em recursos não requer alterações na conta de serviço de delegação, simplificando a gestão e aumentando a flexibilidade.
Conclusão
A delegação Kerberos oferece uma estrutura robusta que permite aos usuários navegar pelas complexas demandas de segurança dos ambientes de rede modernos. Através da delegação, o Kerberos evoluiu como uma solução para autenticar usuários em redes não seguras. Embora esta capacidade seja poderosa, ela requer uma compreensão abrangente e um gerenciamento meticuloso para ser aproveitada de forma eficaz e, ao mesmo tempo, mitigar os riscos de segurança inerentes.
Em todas as formas de delegação Kerberos, as considerações de segurança são de extrema importância. Devido ao potencial de abuso ou configuração incorreta, o gerenciamento vigilante, a auditoria regular e o princípio da Ultimo privilégio são necessários. Ao compreender os riscos específicos associados a cada tipo de delegação e ao empregar as melhores práticas, as organizações podem reduzir significativamente as vulnerabilidades.