Gute Frage.
Das Wichtigste zuerst - Ich betrachte die meisten "Penetrationstester" als Script-Kiddies. Meine Voreingenommenheit mag nicht fair oder genau sein, aber ich füge diesen Haftungsausschluss ein, damit Sie wissen, woher er kommt, wenn Sie einen Zynismus in meinem Ton feststellen. Ich sage nicht, dass es keine qualifizierten Pentester gibt, aber das ist meine umfassende Allgemeinheit.
(Blaues Team fürs Leben!)
Meine Frage: 1) Gibt es eine Möglichkeit, Active Directory dazu zu bringen, diese fehlgeschlagenen Benutzernamenanforderungen an einem zentralen Ort zu protokollieren, damit wir einen Anstieg in ihnen feststellen können?
Sie haben nicht genügend Informationen bereitgestellt, um diese Frage gründlich und sicher beantworten zu können. Sie sagten, Ihre Anwendung enthielt einen Fehler, der es den Angreifern ermöglichte, Benutzerkonten aufzulisten. Ich versuche zu verstehen, auf welche Weise AD Ihrer Meinung nach die Protokollierung für Ihre Anwendung durchführen muss.
Anscheinend wurden die Fehler immer nur im lokalen Ereignisprotokoll des Servers angezeigt, auf dem die Anwendung installiert wurde.
Anscheinend wurden die Fehler im Ereignisprotokoll auf dem Server angezeigt? Oder die Fehler haben im Ereignisprotokoll auf dem Server angezeigt? Wenn ja, was genau haben die Ereignisse gesagt? Wer hat sie angemeldet? Ihre Bewerbung? Oder Windows? Wenn Sie es herausfinden, kann ich meiner Antwort möglicherweise zusätzliche Erläuterungen hinzufügen.
Ich werde hier auf die Nerven gehen, basierend auf Ihrer Vermutung, dass diese Ereignisse von Active Directory irgendwie protokolliert werden sollten ... Was wäre, wenn Ihre Pentester einen Fehler in Ihrer Anwendung überhaupt nicht ausnutzen würden, sondern stattdessen verwenden würden? ein sehr bekannter Fehler in Kerberos selbst, um Benutzernamen aufzulisten? Kerberos selbst enthält einen Konstruktionsfehler, bei dem ein Angreifer Tausende und Abertausende von "Vorauthentifizierungs" -Versuchen (dh einen Brute-Force-Angriff) versuchen kann, und das KDC reagiert unterschiedlich, je nachdem, ob das Benutzerkonto vorhanden ist oder nicht. Dies ist kein Active Directory-spezifisches Verhalten, gilt jedoch ebenso für MIT Kerberos, Heimdal usw. Das KDC antwortet mitKDC_ERR_PREAUTH_REQUIRED
wenn ein gültiger Benutzername ohne Vorauthentifizierungsdaten angezeigt wurde, auch ohne eine tatsächliche Authentifizierung zu versuchen. Auf diese Weise können Sie Benutzernamen aus einem KDC auflisten. Da der Angreifer (oder das Tool, das der Angreifer verwendet, wie z. B. KrbGuess - weil Pentester am besten sind, wenn sie die Tools anderer verwenden), keinen vollständigen Authentifizierungsversuch durchführen muss, wird nichts protokolliert, da nein Die eigentliche Authentifizierung wurde versucht!
Nun zu Ihrer nächsten Frage:
2) Wenn nicht, wie lässt sich diese Art von Angriff in Zukunft am besten überwachen und aktiv erkennen (hoffentlich ohne zu viel neue Ausrüstung kaufen zu müssen).
Ein paar Dinge.
Erstens gibt es kostenpflichtige Produkte für Unternehmen, die diese Art von Angriffen erkennen (unter anderem). Viele Anbieter bieten solche Produkte an, und Produktempfehlungen sind für Serverfault nicht thematisch, reichen jedoch aus, um zu sagen, dass sie nicht verfügbar sind Dort. Bei vielen dieser Produkte müssen Sie die Portspiegelung zwischen Ihren Domänencontrollern und diesen "Datenkollektoren" konfigurieren, damit sie jedes einzelne Paket, das in Ihre Domänencontroller eintritt oder aus diesen austritt, buchstäblich sehen und analysieren.
(Entschuldigung, das fällt irgendwie in Ihre Klausel "ohne zu viel neues Zeug zu kaufen".)
Eine andere Sache, die Ihnen helfen könnte, ist der Registrierungseintrag:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
LogLevel = 1
Dokumentierte hier .
Wenn Sie diesen Registrierungseintrag aktivieren, sollten Sie mit Ereignissen in Ihrem Sicherheitsereignisprotokoll über Kerberos-Fehler überflutet werden, die darauf hinweisen, dass eine Kerberos-Vorauthentifizierung erforderlich ist. Ein Beispiel für ein solches Ereignis:
A Kerberos Error Message was received:
on logon session DOMAIN\serviceaccount
Client Time:
Server Time: 12:44:21.0000 10/9/2012 Z
Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED
Extended Error:
Client Realm:
Client Name:
Server Realm: DOMAIN
Server Name: krbtgt/DOMAIN
Target Name: krbtgt/DOMAIN@DOMAIN
Error Text:
File: e
Line: 9fe
Error Data is in record data.
Dies kann Ihnen jedoch helfen oder auch nicht, wenn nicht angegeben ist, woher genau der Tsunami von Kerberos-Anforderungen stammt. Dies führt uns zurück zu den zuvor erwähnten Enterprise Intrusion Detection-Produkten.
Vergessen Sie nicht die Windows-Ereignisweiterleitung, mit der Ihre Server Ereignisse an einen zentralen Ort weiterleiten können, um sie mit einem beliebigen Tool zu analysieren.
Diese gesamte Antwort basiert bisher auf dem Kerberos-Protokoll, das ich nicht einmal für selbstverständlich halte, weil Sie in Ihrem Beitrag so wenig Details angegeben haben. Trotzdem hoffe ich, dass dies zumindest ein wenig hilft.