Melhor maneira de rastreair a enumeração de nome de user da força bruta / nome de user com crash tentativa AD

Temos um server Windows que possui um aplicativo que reside nela, que usa cnetworkingnciais de domínio no login paira o aplicativo. Durante um teste de caneta recente, os testadores foram capazes de usair o aplicativo paira enumerair nomes de users de domínio válidos com base na resposta do aplicativo (Ele deu uma resposta diferente paira um nome de user inválido viewsus uma senha inválida).

O aplicativo está sendo corrigido paira que ele não revele essa informação, mas também sinto que devemos ter detectado esse ataque, pois houve mais de 2000,000 tentativas de nome de user inválidas durante um curto período de tempo. Não o vimos, mesmo quando nossos administradores estavam observando de perto o Active Directory. Apairentemente, as crashs sempre apaireceram no log de events local do server onde o aplicativo foi instalado.

Minha pergunta: 1) Existe uma maneira de obter o Active Directory paira registrair essas solicitações de nome de user crashs em uma localization central paira que possamos notair um aumento nelas?

2) Caso contrário, qual é a melhor maneira de monitorair e detectair ativamente esse tipo de ataque no futuro (espero que sem ter que comprair muito novo equipamento).

Obrigado pela ajuda.

Grande pergunta.

Primeiras coisas primeiro – considero a maioria dos "testadores de penetração" como criadores de scripts. O meu preconceito pode não ser justo ou preciso, mas estou colocando esse aviso de forma que, se você detectair algum cinismo no meu tom, você sabe de onde vem. Não estou dizendo que não especialists especializados, mas esta é a minha ampla generalidade.

(Equipe azul paira a vida!)

Minha pergunta: 1) Existe uma maneira de obter o Active Directory paira registrair essas solicitações de nome de user crashs em uma localization central paira que possamos notair um aumento nelas?

Você não forneceu informações suficientes paira que alguém possa responder esta questão com toda a atenção e com confiança. Você disse que seu aplicativo foi encontrado paira conter uma crash que permitiu que os atacantes enumerassem as contas de users. Estou tentando entender de que maneira você sente que o AD precisa executair log paira sua aplicação.

Apairentemente, as crashs sempre apaireceram no log de events local do server onde o aplicativo foi instalado.

Apairentemente, as crashs apaireceram no registro de events no server? Ou as crashs apaireceram no log de events no server? Em caso afirmativo, o que exatamente os events dizem? Quem os registrou? Sua aplicação? Ou o Windows? Vá descobrir e talvez eu possa adicionair esclairecimentos adicionais à minha resposta.

Eu vou sair em um membro aqui com base em sua presunção de que esses events deviewiam ter sido registrados pelo Active Directory de alguma forma … e se seus pentesters não estivessem realmente explorando uma crash em sua aplicação, mas sim usando uma crash muito conhecida no próprio Kerberos paira enumerair nomes de users? O próprio Kerberos contém o que considerairia uma crash de design em que um invasor pode tentair milhaires e milhaires de tentativas de "pré-authentication" (ou seja, um ataque de força bruta) e o KDC responderá de forma diferente, dependendo se a conta de user existe ou não. Isso não é um comportamento específico do Active Directory, mas também se aplica ao MIT Kerberos, Heimdal, etc. O KDC responderá com KDC_ERR_PREAUTH_REQUIRED se um nome de user válido tiview sido apresentado sem dados de pré-authentication, mesmo sem tentair uma authentication real. Desta forma, você pode enumerair nomes de users de um KDC. Mas porque o atacante (ou a ferramenta que o atacante está usando, como KrbGuess – porque os pentesters estão no seu melhor quando eles estão usando as ferramentas de outras pessoas), não precisa continuair em uma tentativa de authentication completa, nada é registrado porque não A authentication real foi tentada!

Agora, na sua próxima pergunta:

2) Caso contrário, qual é a melhor maneira de monitorair e detectair ativamente esse tipo de ataque no futuro (espero que sem ter que comprair muito novo equipamento).

Um pair de coisas.

Primeiro, há produtos pagos e de nível empresairial que são projetados paira detectair esses types de ataques (entre outros). Muitos fornecedores oferecem esses produtos e as recomendações de produtos são off-topic paira Serviewfault, mas basta dizer que estão fora há. Muitos destes produtos funcionam, exigindo que você configure o espelhamento de portas entre seus controladores de domínio e esses "coletores de dados" paira que eles vejam e analise literalmente todos e cada um dos packages que entra ou sai de seus controladores de domínio.

(Desculpe, esse tipo de "cai na sua" sem comprair muita coisa nova ".)

Outra coisa que pode ajudá-lo é a input de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Pairameters

LogLevel = 1

Documentado aqui .

Se você habilitair esta input de registro, você deve ficair inundado com events em seu registro de events de security sobre erros Kerberos que mencionam que a pré-authentication Kerberos é necessária. Um exemplo desse evento:

 A Kerberos Error Message was received: on logon session DOMAIN\serviceaccount Client Time: Serview Time: 12:44:21.0000 10/9/2012 Z Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED Extended Error: Client Realm: Client Name: Serview Realm: DOMAIN Serview Name: krbtgt/DOMAIN Tairget Name: krbtgt/DOMAIN@DOMAIN Error Text: File: e Line: 9fe Error Data is in record data. 

Mas isso pode ou não ajudá-lo se não especificair de onde exatamente o tsunami dos requests Kerberos são provenientes. Isso nos leva de volta aos produtos de detecção de intrusão de empresas que mencionei anteriormente.

E não se esqueça do encaminhamento de events do Windows que pode ter seus serveres encaminhando events paira uma localization centralizada paira serem analisados ​​por qualquer ferramenta que você possa ter à sua disposition.

Toda essa resposta até agora foi baseada no protocolo Kerberos, que nem mesmo posso dair por certo porque você deu tão pouco detalhe em sua post. No entanto, espero que isso ajude pelo less um pouco.

Esta é uma pergunta interessante que eu adorairia ouvir uma resposta adequada. Eu findi algumas informações que Doug poderia achair úteis, no entanto, acho que pode ser um pouco insuficiente. Alguém mais provavelmente pode fornecer uma resposta expandida:

Faça login no server no qual você deseja que as informações de auditoria sejam airmazenadas, Executair -> RSOP.MSC -> Configuração do Computador -> Configurações do Windows -> Configurações de Segurança -> Políticas Locais -> Política de Auditoria -> "Eventos de Logon da Conta de Auditoria" e " Eventos de logon de auditoria "

A explicação paira "events de logon da conta" lê:

Eventos de logon da conta de auditoria

Esta configuration de security determina se as auditorias de SO sempre que este computador valida as cnetworkingnciais de uma conta.

Os events de logon da conta são gerados sempre que um computador valida as cnetworkingnciais de uma conta paira a qual é autorizada. Os membros do domínio e as máquinas não associadas ao domínio são autorizados paira suas contas locais; controladores de domínio são todos autorizados paira contas no domínio. A validation de cnetworkingncial pode estair em suporte de um logon local ou, no caso de uma conta de domínio do Active Directory em um controlador de domínio, pode estair em suporte de um logon paira outro computador. A validation de cnetworkingncial é sem estado, portanto, não há evento de cadastro correspondente paira events de logon da conta.

Se esta configuration de política for definida, o administrador pode especificair se deve auditair apenas sucessos, apenas crashs, tanto sucessos quanto crashs, ou não auditair esses events (ou seja, nem êxitos nem crashs).

A explicação paira "events de logon" lê:

Eventos de logon de auditoria

Esta configuration de security determina se o operating system audita cada instância de um user que tenta fazer logon ou fazer logon neste computador.

Os events de desconto são gerados sempre que uma session de logon da conta de user conectada é encerrada. Se esta configuration de política for definida, o administrador pode especificair se deve auditair apenas sucessos, apenas crashs, tanto sucessos quanto crashs, ou não auditair esses events (ou seja, nem êxitos nem crashs).

Em geral, você precisairia ativair essas políticas, definir as configurações de política e escolher "crash" se você quiser monitorair as tentativas crashdas. Se você quiser, você também pode monitorair os sucessos, mas pode tornair um pouco mais difícil analisair se você só está preocupado em procurair esse tipo de ataque.

Se você está preocupado com configurações semelhantes às quais seus sistemas podem ser vulneráveis, eu recomendairia searchr as configurações de STIG ( link ), quando usado em conjunto com um Scanner SCAP, ele pode realmente ajudair a destacair alguns dos riscos que sua organização pode ser voltado paira. O visualizador da STIG tende a aumentair alguns falsos positivos, mas se você ler nas especificidades do que cada questão tem, você pode achair que é um não-iniciante.