Active Directory-Benutzeranmeldungsaudit mit Elasticsearch und Grafana

Etwas sehr häufiges, das sie uns normalerweise fragen, ist die Möglichkeit, die Anmeldungen und andere interessante Informationen zu kennen, die ein Benutzer generieren kann. In diesem Beitrag werden wir sehen, wie man Daten so interessant visualisiert wie: wann haben sie sich eingeloggt, wann haben sie die sitzung geschlossen?, falsche Login-Versuche, wenn ein Team gesperrt wurde, das Entsperrte, oder wenn der Bildschirmschoner ausgelöst oder deaktiviert wurde…

Tatsächlich wird diese Art von Informationen, wie wir wissen, in der Ereignisanzeige des Geräts aufgezeichnet, Einige Datensätze können uns von Domänencontrollern zur Verfügung gestellt werden, und andere zeichnet die Computer selbst auf, auf denen die Benutzer arbeiten.

Das Beispiel, das wir in diesem Beitrag machen werden, ist das, was gesagt wurde, Teamevents sammeln, wir werden sie zentral in Elasticsearch speichern und dann mit Grafana die Anfragen, die uns am meisten interessieren, basierend auf einer Ereignis-ID erstellen. Wir können die Daten in Echtzeit sehen, oder direkt in einem Zeitraum suchen, oder fragen Sie direkt nach einem bestimmten Benutzer. Dann visualisieren wir sie in einer Grafik, Tabelle, Käse oder was wir wollen, und wenn wir wollen, generieren wir PDF-Berichte und wir senden sie per E-Mail an alle Interessierten.

Also brauchen wir natürlich zuerst eine Maschine mit Elasticsearch funktioniert, und dann instalaremos Winlogbeat Domänencontroller. In der Ereignisanzeige der DCs würde es registriert werden, wenn sich ein Benutzer anmeldet und die falschen Anmeldungen. Und wenn wir Daten darüber haben möchten, wann sie die Sitzung geschlossen haben, oder was wir zu Beginn kommentiert haben, wenn ein Team wegen einer Auszeit abstürzt, oder wenn es entsperrt wird, das gleiche mit dem Bildschirmschoner, Was ist, wenn der Bildschirmschoner springt oder wenn er deaktiviert ist?. Dort, wenn wir Winlogbeat auf dem Client-Computer installieren müssten.

Wie verstehen wir am Ende?, Ereignisanzeige-Ereignisse werden in Elasticsearch gesammelt und dann werden wir nach Bezeichnern fragen, in diesem Beitrag werden wir nur diese Beispiele sehen, Aber es gibt noch viele andere Möglichkeiten!!

Zusammenfassen, der Konfigurationsteil jedes Winlogbeat, Denken Sie daran, dass wir von dort aus direkt filtern können, um alle Arten von Datensätzen oder nur die, die uns interessieren, anzuzeigen, in diesem Fall, worüber wir sprechen, würde in den ‚Sicherheits‘-Ereignissen aufgezeichnet werden, also hätten wir unsere winlogbeat.yaml mehr oder weniger so:

winlogbeat.event_logs:
- Name: Sicherheit
  ignore_older: 72ha
setup.kibana:
  Gastgeber: "https://DIRECTION_IP_KIBANA:5601"
output.elasticsearch:
  # Array von Hosts, zu denen eine Verbindung hergestellt werden soll.
  Gastgeber: ["https://DIRECTION_IP_ELASTICSEARCH:9200"]
  Nutzername: "USER"
  Passwort: "PASSWORT"

Sobald wir Elasticsearch gefüttert und die DataSource von Grafana gegen diesen Index erstellt haben, können wir beginnen, die Visualisierungen zu erstellen, die uns interessieren interest. Ich werde das einfachste von allem tun, Ein Tisch, eine Tabelle, in der wir die Felder, die uns interessieren, in einem Listenformat sehen und nach der ID einer Ereignis-ID oder Ereignis-ID filtern.

zum Beispiel, um die Logouts zu sehen (wenn jemand seinen Benutzer abmeldet), Wir werden eine sehr einfache Lucene-Abfrage durchführen, mit Putten “event.code: 4647” genug für uns. Um herauszufinden, welche ID was macht, Ich werde unter dem Beitrag eine Liste der interessantesten IDs zu diesem Thema hinterlassen. Und das Beste wie immer, es wird von Kibana aus spielen, um eine andere Art von Abfragen zu entdecken.

Gesamt, als mit einem Table-Typ-Panel, mit der Abfrage, zeigt an, dass wir das Ergebnis im Raw-Format haben wollen, Wir transformieren in das JSON-Format und wählen die Felder aus, die wir anzeigen möchten, wir können sie auch umbenennen oder ihr Format ändern. Schauen Sie sich das Bild an, um Fragen zu beantworten.

Dann können wir so viele Panels erstellen, wie wir verschiedene Informationen visualisieren möchten, um die Logins mit der ID zu sehen 4624 Wir werden es haben oder vielleicht mit dabei 4768, Es hängt davon ab, an welcher Art von Anmeldung wir interessiert sind. Für die Sitzungsschließungen können wir nach der ID suchen 4647.

Wenn wir die falschen Logins sehen wollen, reicht es, nach der ID zu suchen 4625.

Wenn wir die Teams durchsuchen wollen, wenn sie gesperrt sind, Wenn eine Benutzersitzung gesperrt ist, haben wir die Ereignis-ID 4800 und für Entsperrungen werden wir nach ID filtern 4801.

Und das gleiche für den Bildschirmschoner, wenn wir wissen wollen wann ein Team gesprungen ist, wir suchen die ID 4802 und wenn wir wissen, wann sie den Bildschirmschoner deaktiviert haben, haben wir die ID 4803.

Zu guter Letzt, wir müssen ein GPO erstellen, um es zu aktivieren 3 Richtlinien, die es ermöglichen, diese Art von Informationen in den Ereignisanzeigen der Geräte zu sammeln, aus den Computereinstellungen > Richtlinien > Windows-Einstellungen > Sicherheitseinstellungen > Erweiterte Überwachungseinstellungen > Anmelden und Abmelden:

  • Audit-Logout: Hits und Misses
  • Audit-Login: Hits und Misses
  • Überwachen Sie andere An- und Abmeldeereignisse: Hits und Misses

Ich hinterlasse Ihnen eine Liste von Ereignissen, die für Sie nützlich sein könnten:

Änderung der Prüfungsrichtlinien:
4719: Die System-Audit-Richtlinie wurde geändert.
4908: Die Login-Tabelle für spezielle Gruppen wurde geändert.

Änderungen der Authentifizierungsrichtlinie prüfen
4706: In einer Domäne wurde eine neue Vertrauensstellung erstellt.
4707: Eine Domänenvertrauensstellung wurde entfernt.
4713: Kerberos-Richtlinie geändert.
4716: Informationen zur vertrauenswürdigen Domain wurden geändert.
4717: Einem Konto wurde Zugriff auf die Systemsicherheit gewährt.
4718: Der Systemsicherheitszugriff auf ein Konto wurde entfernt.
4739: Eine Domänenrichtlinie wurde geändert.
4865: Ein vertrauenswürdiger Waldinformationseintrag wurde hinzugefügt.
4866: Der vertrauenswürdige Waldinformationseintrag wurde entfernt.
4867: Ein vertrauenswürdiger Forest-Informationseintrag wurde geändert.
4706: Für eine Domäne wurde eine neue Vertrauensstellung erstellt.
4707: Eine Domänenvertrauensstellung wurde entfernt.

Audit der Computerkontenverwaltung
4741: Ein Computerkonto wurde erstellt.
4742: Ein Computerkonto wurde geändert.
4743: Ein Computerkonto wurde gelöscht.

DPAPI-Aktivitätsaudit
4692: Es wurde versucht, den Datenschutz-Hauptschlüssel zu sichern.
4693: Es wurde versucht, den Datenschutz-Hauptschlüssel abzurufen.
4695: Es wurde versucht, den Schutz der geschützten auditierbaren Daten aufzuheben.

Kerberos-Authentifizierungsdienst-Audit
4768: Ein Kerberos-Authentifizierungsticket wurde angefordert (TGT)
4771: Kerberos-Vorauthentifizierung fehlgeschlagen
4772: Anfrage für Kerberos-Authentifizierungsticket fehlgeschlagen

Auditieren des Kerberos-Service-Ticket-Vorgangs
4769: Ein Kerberos-Service-Ticket wurde angefordert (TGS)
4770: Ein Kerberos-Serviceticket wurde verlängert

Logout-Audit
4634: Ein Benutzerkonto wurde abgemeldet.

Login-Audit
4624: Ein Benutzerkonto wurde erfolgreich angemeldet.
4625: Ein Benutzerkonto konnte sich nicht anmelden, ungültige Zugangsdaten.
4648: Es wurde versucht, eine Sitzung mit expliziten Anmeldeinformationen zu starten.

Audit anderer Account-Login-Ereignisse
4648: Es wurde versucht, eine Sitzung mit expliziten Anmeldeinformationen zu starten.
4649: Ein Replay-Angriff wurde erkannt.
4800: Der Arbeitsplatz ist gesperrt.
4801: Der Arbeitsplatz wurde entsperrt.
5378: Die angeforderte Delegierung von Anmeldeinformationen war laut Richtlinie nicht zulässig

Audit anderer Objektzugriffsereignisse
4698: Eine geplante Aufgabe wurde erstellt.
4699: Eine geplante Aufgabe wurde gelöscht.
4702: Eine geplante Aufgabe wurde aktualisiert.

Erstellung von Auditprozessen
4688: Ein neuer Prozess wurde erstellt.

Management von Audit-Sicherheitsgruppen
4728: Ein Mitglied wurde einer globalen Sicherheitsgruppe hinzugefügt.
4729: Ein Mitglied einer globalen Sicherheitsgruppe wurde entfernt.
4732: Ein Mitglied wurde zu einer sicherheitsaktivierten lokalen Gruppe hinzugefügt.
4733: Ein Mitglied einer lokalen sicherheitsaktivierten Gruppe wurde entfernt.
4735: Eine sicherheitsaktivierte lokale Gruppe wurde geändert.
4737: Eine globale sicherheitsaktivierte Gruppe wurde geändert.
4755: Eine sicherheitsaktivierte universelle Gruppe wurde geändert.
4756: Ein Mitglied wurde zu einer sicherheitsaktivierten universellen Gruppe hinzugefügt.
4757: Ein Mitglied einer sicherheitsaktivierten universellen Gruppe wurde entfernt.
4764: Der Gruppentyp wurde geändert.

Erweiterung des Audit-Sicherheitssystems
4610: Die lokale Sicherheitsbehörde hat ein Authentifizierungspaket hochgeladen.
4611: Ein vertrauenswürdiger Anmeldeprozess wurde bei der lokalen Sicherheitsbehörde registriert.
4697: Ein Dienst wurde auf dem System installiert


Prüfung der Nutzung sensibler Rechte
4672: Besondere Privilegien, die einem neuen Login zugewiesen werden.
4673: Ein privilegierter Dienst wurde aufgerufen.
4674: Eine Operation wurde an einem privilegierten Objekt versucht.

Spezielles Login-Audit
4964: Spezielle Gruppen wurden einem neuen Login zugewiesen.

Audit der Benutzerkontenverwaltung
4720: Ein Benutzerkonto wurde erstellt.
4722: Ein Benutzerkonto wurde aktiviert.
4723: Es wurde versucht, das Passwort für ein Konto zu ändern.
4724: Es wurde versucht, ein Kontopasswort zurückzusetzen.
4725: Ein Benutzerkonto wurde deaktiviert.
4726: Ein Benutzerkonto wurde gelöscht.
4738: Ein Benutzerkonto wurde geändert.
4740: Ein Benutzerkonto wurde gesperrt.
4765: Einem Konto wurde ein SID-Verlauf hinzugefügt.
4766: Ein Versuch, einem Konto einen SID-Verlauf hinzuzufügen, ist fehlgeschlagen.
4767: Ein Benutzerkonto wurde entsperrt.
4780: ACL wurde für Konten konfiguriert, die Mitglieder von Administratorgruppen sind.
4794: Es wurde versucht, den Wiederherstellungsmodus für Verzeichnisdienste einzustellen.