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.
Wir unterstützen Sie in allen Belangen der
Security in ihrem OnPremises und Cloud-Umgebungen
https://www.netatwork.de/security-assessment/
Ein ähnliches Programm sind z.B. Ping Castle, Adalanche, Prowler oder Bloodhound.
Betrachten Sie solche Tools wie den TÜV für
ihre Auto.
- Nur weil ein Auto den TÜV bestanden hat, ist es nicht
automatisch verkehrssicher
- Aber der TÜV kann Fehler an den geprüften Stellen finden
und größeren Schaden verhindern.
- Wenn der TÜV aber was gefunden hat und sie es nicht fixen
und dann passiert etwas, dann drücke ich ihnen alle Daumen.
Achtung
Der Einsatz solcher Programme kann bzw. sollte von einem SIEM/XDR-System erkannt und alarmiert werden. Stimmen Sie den Einsatz entsprechend ab. Wenn Sie die Ergebnisse betrachten,
dann können sie nicht mehr behaupten, Sie hätten nichts davon gewusst. Das kann
sich bei einem späteren Vorfall strafverschärfend auswirken.
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:
Kennworte in einer GPO waren anscheinend auch ein Vektor beim Zugriff auf die Südwestfalen-IT
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
-
Checkliste Active Directory Absicherung
Keine Liste ist komplett aber fangen Sie heute an und hören sie nie auf - Microsoft 365 E5 Security
- Cloud Security
- Tier 0/1/2 Security ist nicht alles
-
Security baselines
https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/windows-security-configuration-framework/windows-security-baselines -
QS Solutions CSAT
https://qssolutions.de/produkte/cyber-security-assessment-tool/ -
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 -
Bloodhound
BloodHound Community Edition https://github.com/SpecterOps/BloodHound
Mit dem Bloodhound auf Active-Directory-Jagd https://www.heise.de/news/Mit-dem-Bloodhound-auf-Active-Directory-Jagd-4973049.html
BloodHound Azure Attack Path Example https://www.youtube.com/watch?v=tOwvyXGpVvo - Purple-Knight
https://www.purple-knight.com/ - Adalanche Open Source - In Go
geschriebener AD Schwachstellen Scanner
https://github.com/lkarlslund/Adalanche -
Prowler
"Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness."
https://github.com/prowler-cloud/prowler -
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/ - Most common Active Directory
misconfigurations and default settings that
put your organization at risk
https://blog.nviso.eu/2023/10/26/most-common-active-directory-misconfigurations-and-default-settings-that-put-your-organization-at-risk/ - 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/