Übersicht und Research
XDR vs. EDR vs. Antivirus
XDR, EDR und traditionelle Antivirus-Software sind Sicherheitslösungen, die verwendet werden, um Netzwerke und Einzelsysteme vor Schadsoftware und anderen Cyberbedrohungen zu schützen. Die verschiedenen Ausprägungen eigenen sich auf Grund ihres jeweiligen Funktionsumfangs für unterschiedliche Arten von Umgebungen und Anwendungsfeldern.
Traditionelle Antivirus-Software wurde dafür entwickelt, bekannte Schadsoftware auf einem System zu erkennen und zu entfernen. Diese Lösungen basieren in der Regel auf signaturbasierter Erkennung, bei der die Dateien auf einem Gerät mit einer Datenbank bekannter Schadsoftware-Signaturen verglichen werden. Der Übergang von AV zu EDR-Lösungen ist heutzutage fließend. So verfügen Antiviren-Produkte, wie EDR, über Möglichkeiten zur Schadsoftwareerkennung und -abwehr, die über die reine Suche nach Schadsoftwaresignaturen deutlich hinausgehen.
EDR (Endpoint Detection and Response)-Lösungen sind dafür entwickelt worden, um Endgeräte wie Laptops und Server umfassender zu schützen. EDR-Lösungen stützen sich unter anderem auf Funktionen wie verhaltensbasierte Erkennung, wodurch sie in der Lage sind auch noch unbekannte Bedrohungen erkennen zu können. Darüber hinaus verfügen EDR über Incident-Response- und Forensik-Funktionen, um Unternehmen bei der Untersuchung und Behandlung von Sicherheitsvorfällen zu unterstützen. Während AV-Prdodukte sich also auf die Erkennung von Schadsoftware auf Basis von Verhaltensauffälligkeiten und Signaturen fokussiert, versucht EDR durch Kombination verschiedener Sicherheitsmechanismen eine Kompromittierung zu erkennen.
XDR (Extended Detection and Response)-Lösungen gelten als die nächste Entwicklungsstufe von Sicherheitslösungen. Sie gehen über EDR-Lösungen hinaus, indem sie mehrere Sicherheitstechnologien wie Netzwerksicherheit, Cloud-Sicherheit und Sicherheitsinformationen und Ereignismanagement (SIEM) integrieren, um einen umfassenderen Überblick über den Sicherheitsstatus zu erhalten. XDR-Lösungen können auch automatisch Bedrohungen erkennen und darauf reagieren.
Die Cortex XDR Schwachstelle
“Cortex XDR ist eine von Palo Alto Networks entwickelte Sicherheitsplattform, die Netzwerksicherheit, Endpunktschutz und Cloud-basierte Bedrohungsdaten kombiniert, um einen umfassenden Schutz vor hochentwickelten Bedrohungen zu bieten. Cortex XDR nutzt künstliche Intelligenz um Cyberangriffe in Echtzeit zu erkennen und darauf zu reagieren, und kann mit anderen Sicherheitssystemen integriert werden, um einen einheitlichen Überblick über die Sicherheitslage eines Unternehmens zu erhalten.”(ChatGPT, 22.01.2023)
Im April 2022 veröffentlichte der Sicherheitsforscher mr.d0x einen Blog-Post, in dem er beschreibt, wie der Hash und das dazugehörige Salt des Uninstall-Passworts eines Cortex XDR Agents aus einer Lock Database(LDB) extrahiert werden kann. Sollte dieser Hash gecrackt werden können, wäre es einem Angreifer möglich den Cortex XDR Agent problemlos zu deinstallieren und somit das betroffene System ungehindert und ohne die Gefahr entdeckt zu werden weiter zu kompromittieren.
Mr.d0x hat somit eine Schwachstelle gefunden und dessen Ausnutzen in seinem Blogbeitrag dargestellt, die ein erhebliches Risiko für die Sicherheit einzelner Systeme oder gar ganzer Unternehmensnetze darstellte.
Palo Alto veröffentlichte kein Patch, sondern wies mittels Security Advisory darauf hin, dass ein hinreichend sicheres Passwort ausreiche, um diesem Problem adäquat zu begegnen.
Unsere Recherchen zu der Thematik haben gezeigt, dass das Problem, das mr.d0x in seinem Blogbeitrag beschrieben hat, allerdings über das Auslesen des Hashes sowie des dazugehörigen Salts hinausgeht.
Weiterentwicklung des Ansatzes von mr.d0x
Auf Basis der vorhergehende Recherche von mr.d0x haben wir ein Tool entwickelt, welches noch weitaus mehr Informationen, wie z.B. Ausnahmeregeln oder aktivierte Module, aus dem Lock Information File extrahiert.
Responsible Disclosure
Bereits im Oktober 2022 haben wir dieses Tool via Responsible Disclosure dem Security-Team von Palo Alto zur Verfügung gestellt. Dieser Blogeintrag wurde entsprechend verschoben und dem Security Team somit ausreichend Zeit eingeräumt, um das Problem beheben zu können.
Laut Aussage von Palo Alto ist es seit der Agent Version 8.1 nicht mehr möglich sensible Informationen aus den LDBs zu extrahieren. Ein Security-Advisory hat Palo Alto hierzu nicht veröffentlicht.
Cortex XDR Config Extractor
Voraussetzungen
Entwickelt und getestet wurde das Tool auf den Agent Versionen 7.8.0 und 7.7.4. Für die Extraktion der Informationen gibt es für bestimmte Agenten Versionen unterschiedliche Ansätze, die wir im Folgenen entsprechend aufschlüsseln werden.
Agent Version <7.8
Bei Agent-Versionen vor 7.8 kann jeder authentifizierte Benutzer unter Windows über die Cortex XDR-Konsole im System Tray eine Support-Datei erzeugen. Die LDBs sind dann in der generierten Zip-Datei zu finden:
logs_[ID].zipPersistenceagent_settings.db[XXXXX].ldb
Agent-Version ≥7.8
Seit der Agent Version 7.8.0 sind durch die Konsole generierte Support Files verschlüsselt und können nicht durch das Tool geparsed werden, allerdings gibt es zwei Methoden, um unter Umständen dennoch an die unverschlüsselten LDBs zu gelangen:
Methode I
Mit administrativen Rechten auf der Windows-Maschine, können die LDBs direkt aus dem folgenden Verzeichnis kopiert werden:
C:ProgrammDatenCyveraLocalSystemPersistenceagent_settings.db[XX].ldb
Methode II
Generierte Supportdateien werden nicht regelmäßig gelöscht, so dass es möglich ist Supportdateien von, alten Agenten-Versionen, unverschlüsselt in den folgenden Verzeichnissen zu finden:
C:Benutzer[Username]AppDataRoamingPaloAltoNetworks Trapssupportlogs_[ID].zip
Das Tool extrahiert derzeit die folgenden Agenteninformationen:
Toolumfang
Uninstall Password Hash & Salt
Der Hash und das Salt können dazu verwendet werden um das Uninstall Passwort des Agents zu cracken – dies wurde bereits von mr.d0x demonstriert.
Sollte das Cracken des Hashes erfolgreich sein, kann ein Angreifer den XDR Agent auf dem System einfach deaktivieren und sogar deinstallieren.
Excluded Signer Names
Über die Managementplattform von Cortex XDR können die Namen von Software Signern hinterlegt werden, welche generell auf einer Allowlist landen sollen.
In dieser Sektion werden die Namen der Signierer, für die eine Ausnahmeregel erstellt wurde, extrahiert.
Es sollte ausreichen, eine Software mit einem selbst signierten Zertifikat und gleichem Namen zu signieren, damit die Ausnahmeregel greift. Die tatsächlichen Zertifikate werden nicht validiert.
DLL Security Exclusions & Settings
In dieser Sektion werden Dateien und Pfade, für die in der DLL-Security eine Ausnahmeregelung erstellt wurde, extrahiert. Zudem werden Moduleinstellungen wie beispielsweise, die maximale Dateigröße für lokale Scans oder auch welche Sub-Module aktiviert sind, angezeigt.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise eine schadhafte DLL abzulegen und über regsvr32.exe oder rundll32 auszuführen.
PE Security Exclusions & Settings
In dieser Sektion werden Dateien und Pfade, für die in der PE-Security eine Ausnahmeregelung erstellt wurde, extrahiert. Zudem werden Moduleinstellungen wie beispielsweise, die maximale Dateigröße für lokale Scans oder auch welche Sub-Module aktiviert sind, angezeigt.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise eine schadhafte Executable abzulegen und auszuführen.
Office Files Security Exclusions & Settings
Das Modul Macro-Security verhindert die Ausführung bösartiger Makrodateien. In dieser Sektion werden Dateien und Pfade, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise schadhafte Office-Dateien abzulegen und auszuführen.
Credential Gathering Module Exclusions
Das Modul Credential-Gathering schützt vor Prozessen, die versuchen, auf Passwörter und andere sensible Daten zuzugreifen bzw. sie zu stehlen. In dieser Sektion werden Dateien und Pfade, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise schadhafte Tools wie mimikatz oder File-Scanner abzulegen und auszuführen.
Webshell Protection Module Exclusions
Das Modul Webshell-Protecton dient dem Schutz von Prozessen, die Webshells absetzen. In dieser Sektion werden Dateien und Pfade, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert. Hierbei handelt es sich in der Regel um Prozesse, die Dateien mit den Dateiendungen php, asp, aspx, js usw. ablegen dürfen.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise Webshells abzulegen, die dann von einem Webserver ausgeführt werden können.
Childprocess Executions Exclusions
Das Modul Childprocess Executions verhindert skriptbasierte Angriffe, indem es bekannte Zielprozesse daran hindert, bösartige Childprozesse zu starten. In dieser Sektion werden Prozessketten, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert.
Ein Angreifer kann mit Hilfe der hierüber erlangten Informationen über erlaubte Prozessketten gezielt Malware entwickeln, die nicht von dem XDR Agent geblockt wird.
Behavorial Threat Module Exclusions
Das Modul Behavorial Threat Prevention verhindert Angriffe, die beispielsweise LOLBAS Binaries ausnutzen, indem es die Endpunktaktivitäten auf bösartige Causality Chains überwacht. In dieser Sektion werden Dateien und Pfade, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert.
Ein Angreifer kann die Pfade aus der Exklusion nutzen, um dort beispielsweise Tools abzulegen und auszuführen, die sonst aufgrund von verhaltensbasierter Erkennung blockiert würden.
Local Malware Scan Module Exclusions
Das Modul Local Malware Scan prüft Festplatten und externe Laufwerke auf
Malware. In dieser Sektion werden Dateien und Pfade, für die in dem Modul Ausnahmeregelung erstellt wurden, extrahiert.
Ein Angreifer kann die Pfade aus der Exklusion nutzen um dort gezielt Schadsoftware abzulegen, die dann von der lokalen Scanengine ignoiert wird.
Memory Protection Module Status
Dieses Modul versucht, den Arbeitsspeicherzugriff von Programmen wie mimikatz zu verhindern. In dieser Sektion wird lediglich extrahiert, ob das Modul aktiviert ist.
Ein Angreifer kann mit diesen Setting einschätzen, ob Memory-Protections aktiviert sind und so gegebenfalls Tools verwenden die auf den Arbeitsspeicher zugreifen. Beispielsweise procdump.exe zum dumpen des lsass.exe Prozesses um Passwörter zu extrahieren (Link).
Global Hash Exclusions
In dieser Sektion werden alle SHA-256 Hash-Values, für die eine globale Ausnahme bei Behavioral Threats angelegt wurde, extrahiert.
Ein Angreifer kann die Hash-Values evaluieren um diese zu seinem Vorteil zu verwenden. Möglicherweiße wurde für eine LOLBAS eine generelle Ausnahmeregel eingerichtet und kann so von dem Angreifer missbraucht werden.
Ransomware Protection Module Modus & Settings
In dieser Sektion werden Moduleinstellungen wie beispielsweise, der Ransomware Protection Mode oder auch Quarantäneeinstellungen extrahiert.
Ein Angreifer kann mit diesen Setting einschätzen, welche Mechanismen für Ransomware aktiviert sind und so gegebenfalls seine Ransomware anpassen, um etwaige Beschränkungen zu umgehen.
Fazit
Wenn jemand in der Lage wäre, die Einstellungen und Konfigurationen eines XDR-Agenten zu extrahieren, könnte dies schwerwiegende Folgen für die Sicherheit eines Unternehmens haben. Die Agentenkonfigurationen bieten einen umfassenden Überblick über die Sicherheitslage eines Unternehmens, denn die Einstellungen und Konfigurationen steuern die Arbeitsweise des Agenten und die Erkennung potenzieller Bedrohungen. Wenn ein Angreifer in der Lage wäre, diese Informationen zu extrahieren, hätte er ein detailliertes Verständnis über die Sicherheitsmaßnahmen des Unternehmens und könnte sie möglicherweise umgehen.
Darüber hinaus könnte ein Angreifer die extrahierten Informationen nutzen, um gezielte Angriffe zu entwickeln, die speziell die Schwachstellen in der Sicherheit des Unternehmens ausnutzen. Wenn ein Angreifer beispielsweise die spezifischen Dateitypen und Aktionen kennt, für die der XDR-Agent zum Scannen konfiguriert ist, könnte er Malware erstellen, die vom Agenten nicht erkannt wird.