Purple Knight
Ein lokales Active Directory wird uns auch noch die nächsten Jahre begleiten. Für die Sicherheit der Server und Dienste in der Cloud ist der jeweilige Anbieter zuständig. Aber die Authentifizierung der erfolgt in den meisten Fällen per PHS, PTA oder ADFS und ist damit direkt von der Sicherheit ihres eigenen Active Directory abhängig. Sie sollten diesen Zustand immer mal wieder überprüfen. Es haben sich einige "Best Practices" bewährt und Programme wie Ping Castle oder Purple Knight helfen ihnen, diese zu bewerten.
Download, Einrichtung und Start
Sie finden Purple Knight auf der Seite https://www.purple-knight.com/ und der Download ist leicht zu finden. Allerdings möchte der Anbieter (Semperis, www.semperis.com) über ein Formular schon wissen, wer die Software einsetzt. Sicher können Sie hier wilde Daten und auch eine Einmal-Mailadresse eintragen. Ich habe damals meine korrekten Daten angegeben und wurde nie mit Werbung oder Vertriebskontakten belästigt. Eine Firma, die im Beriech Sicherheit unterwegs ist, tut auch gut daran hier seriös zu bleiben.
Sie bekommen dann per Mail einen Downloadlink zugesendet. Im Sep 2022 war die Community Version 2.0 ein ca. 100 MB großes ZIP-Archiv, welches von Hand ausgepackt werden muss.
Eine klassische Installation ist gar nicht erforderlich. Relevant ist die 100 MB große "PurpleKnight.exe", die Sie direkt ohne privilegierte Berechtigungen starten können:
Das bedeutet, dass in einer Windows Umgebung auch ein Mitarbeiter mit "Domain User"-Rechten des Programm sehr einfach starten und die Ergebnisse betrachten kann. Aber "Security by Obscurity" war noch nie ein guter Ratgeber und die bösen Jungs (und Mädels natürlich) haben die gleichen Rechte.
Nach der Betätigung der Lizenzvereinbarung müssen Sie die Zielumgebung definieren. War es früher noch das lokale AD kann die aktuelle Version auch ein AzureAD auslesen und auswerten.
Ich finde den Weg interessant (und sehr gut), denn Semperis für die Verbindung zum AzureAD gewählt hat. Hier wird nicht einfach nach den Zugangsdaten eines "GlobalAdmin" oder eines Benutzers gefragt, mit dem das Tool dann die Verbindung herstellt. Stattdessen müssen Sie als Administrator eine "AppRegistration" vornehmen und dieser App die erforderlichen Rechte zuweisen. Die notwendigen Rechte sind gut beschrieben und beschränken sich wirklich auf "ReadOnly"-Rechte.
Quelle: Create and Configure Application Registration
https://docs.purple-knight.com/community/purpleknight/pk-create-configure-app-registration.htm
Das gefällt mir, da es dem Prinzip der Minimalen Rechte ("least privilege") folgt.
- Principle of least privilege
https://en.wikipedia.org/wiki/Principle_of_least_privilege - Create and Configure Application Registration
https://docs.purple-knight.com/community/purpleknight/pk-create-configure-app-registration.htm
Für meinen Test reicht mir erst einmal das lokale AD.
Der nächste Schritt dauert etwas länger denn das Hauptprogramm ruft anscheinend im "/Scripts"-Verzeichnis die verschiedenen PowerShell-Skripte mit dem Parameter "-Metadata" auf, damit die Skripte eine JSON-Struktur zurückgeben.
Anhand dieser Informationen baut das Hauptprogramme eine Liste der Checks samt Beschreibung auf, aus denen Sie dann Test selektieren können:
Standardmäßig sind 98 von 99 Test ausgewählt. Bei mir hat Purple Knight den "Zerologon vulnerability" deaktiviert.
Bei Stufe 4: Progress werden im Hintergrund dann wohl die PowerShell-Skripte aufgerufen, um die verschiedenen Prüfungen durchzuführen. Die GUI zeigt den Fortschritt an:
Währenddessen sehen sie im Taskmanager die verschiedenen PowerShell-Instanzen kommen und gehen.
Nach Abschluss der Tests sehen Sie ein erstes Rating:
Die Ergebnisse landen im OUTPUT-Verzeichnis von PurpleKnight und liegen einmal als XLSX-Datei und als HTML-Datei vor.
Report
Der Bericht ist in mehrere Abschnitte gegliedert und startet mit einem "Overall Score", gefolgt von einer Liste der "Indicator of Exposure" (IOE) nach ihrem Schweregrad. Ich picke hier hier aber erst einmal die Übersicht nach Kategorien heraus, die selbst in meiner kleinen "Familiendomäne" schon einige Überraschungen bietet.
Kurz darunter findet sich dann die Liste der einzelnen möglichen Schwachstellen.
Jeder Eintrag ist mit einem weiterführenden Link verbunden. Exemplarisch habe ich den ersten DCSYNC-IOE herausgepickt:
In meinem Lab/Test ist das ok, da ich hier z.B. das Skript GET-ADChanges entwickelt, habe, welches mit einem Dienstkonto über die DirSync-API ein Change-Tracking macht. In einem produktiven Netzwerk sollten sie natürlich genau wissen, welche Konten dieses sensible Recht haben, denn über die API kann ich mich quasi als "Domain Controller" ausgeben und so auch Kennwort-Hashwerte und jegliche Änderung quasi in Realtime erhalten.
Auch den nächsten Fehler dürften die meisten Firmen erhalten.
Microsoft empfiehlt das regelmäßige Ändern des KRBTGT-Userkennworts zumindest einmal im Jahr. Siehe auch KRBTGT Key Rollover.
Einschätzung
"Danke, Semperis", für die kostenfreie Bereitstellung eines solchen Werkzeugs, um verschiedene "Best Practices" eines lokalen Active Directories und AzureAD zu überprüfen. Ich kann jedem mit Verantwortung für ein Active Directory nur dazu raten, ab uns an mal ein Programm wie Purple Knight oder Ping Castle zu starten. Vielleicht müssen Sie nicht alle "Findings" behandeln aber sie sollten zumindest bewerten, ob die Schwächen für ihre Umgebung relevant sind. Es sollte zumindest ein Weckruf sein, wie einfach jeder Domain-Benutzer ihr lokales Windows Netzwerk lesen und auswerten kann.
Purple Knight erfordert, dass sie aktiv das Programm starten. Es soll nicht verschwiegen werden, dass es für kontinuierliche Überwachungen von Semperis ein kommerzielles Produkt (Directory Services Protector) gibt. Übrigens: Von Microsoft gibt es auch einen "Security Score". Allerdings ist der Service in der Cloud für die verschiedenen Microsoft Cloud-Produkte.
Mein Tipp: Gehen Sie auf www.purpleknight.com.
Weitere Links
- Ping Castle
- Checkliste Security
- Microsoft 365 E5 Security
- Cloud Security
- Tier 0/1/2 Security ist nicht alles
-
ADSecurity.org
https://adsecurity.org/ -
AD Permission Reporter
http://www.cjwdev.co.uk/Software/ADPermissionsReporter/Info.html -
GoldFinger
https://www.paramountdefenses.com/products/free-active-directory-audit-tool.html
https://www.active-directory-security.com/2017/01/active-directory-effective-permissions-calculator-and-audit-tool.html - Purple-Knight
https://www.purple-knight.com/ -
AADInternals.com The ultimate Azure AD /
Microsoft 365 hacking and admin toolkit
https://aadinternals.com/aadinternals/ - Directory Services Protector
https://www.semperis.com/ds-protector/ - Do You Know Your Active Directory Security Vulnerabilities?
https://www.semperis.com/blog/do-you-know-your-active-directory-security-vulnerabilities/ - Create and Configure Application Registration
https://docs.purple-knight.com/community/purpleknight/pk-create-configure-app-registration.htm - Microsoft-Sicherheitsbewertung
https://docs.microsoft.com/de-de/microsoft-365/security/defender/microsoft-secure-score?view=o365-worldwide - Greenbone - Einer von vielen Scannern.
Früher gab es mal eine "Community Edition"
https://www.greenbone.net/ - IT-Grundschutz-Profil: Basis-Absicherung
Kommunalverwaltung
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/Hilfsmittel/Profile/Basis_Absicherung_Kommunalverwaltung.html - SQL Server vulnerabilities and
assessment
https://www.red-gate.com/simple-talk/databases/sql-server/security/sql-server-vulnerabilities-and-assessment/