Projekt: Ausnutzung von Protokoll-Schwachstellen zur Manipulation von NHI-Geheimnissen und Umgehung von Zero-Trust-Richtlinien

Screenshots
Nachfolgend finden Sie echte Screenshots aus der Demonstration. Weitere finden Sie unter screenshots/README.md.
1. DNS-Exploit (BIND-Absturz)
A. Exploit-Paket gesendet
Scapy sendet ein fehlerhaftes TSIG-DNS-Paket an BIND (siehe dns_exploit.py).
B. Container-Absturz bestätigt
docker ps -a zeigt, dass der BIND-Container nach dem Exploit beendet wurde.
C. Absturz-Protokollnachweis
Relevanter Assertion-Fehler und Absturzprotokoll aus docker logs vulnerable_bind.
2. Fehlgeschlagene NHI-Geheimnisrotation
NHI-Client (client_nhi_rotation.py) kann Geheimnis aufgrund von DNS-Ausfall nicht rotieren, fällt auf statische Anmeldedaten zurück.
3. Zero-Trust-Umgehung
Umgehungsdemonstration (bypass_demo.py): statische Anmeldedaten werden von der geschützten API akzeptiert, wodurch die Zero-Trust-Kontrollen umgangen werden.
Zielsetzung
Demonstrieren, wie ein Angreifer eine kritische DNS-Schwachstelle (CVE-2025-40775) ausnutzen könnte, um DNS-Server zum Absturz zu bringen, Arbeitsabläufe zur Rotation von Nicht-Menschlichen-Identitäten (NHI) zu stören und Maschinenidentitäten zu kapern – und damit Zero-Trust-Sicherheitsframeworks zu umgehen. Dieses Projekt konzentriert sich auf Protokollschwachstellen und Lücken im NHI-Lebenszyklus und vermeidet Abhängigkeiten von KI/ML.
Hintergrund & Relevanz
- DNS-Schwachstellen: Untersuchung kritischer DNS-Schwachstellen (z. B. BIND-DoS durch fehlerhafte TSIG-Einträge).
- NHI-Verwaltung: Analyse häufiger Schwachstellen bei der Verwaltung und dem Lebenszyklus nicht-menschlicher Identitäten (API-Schlüssel, Dienstkonten, Maschinenidentitäten) in Cloud-Umgebungen.
- Zero-Trust-Frameworks: Verständnis dafür, wie Zero-Trust-Prinzipien auf kontinuierlicher Authentifizierung und Geheimnisrotation basieren und wie Störungen diese Annahmen ungültig machen können.
Angriffsketten-Workflow
Phase 1: DNS-Server-Absturz auslösen
- Ziel: DNS-Auflösung für Ziel-Cloud-Dienste stören.
- Methode: Erstellen fehlerhafter DNS-Abfragen, die eine bekannte BIND-Schwachstelle im Zusammenhang mit TSIG-Einträgen (CVE-2025-40775) ausnutzen.
- Werkzeug:
Scapy zur Paketerzeugung.
Phase 2: Fehlgeschlagene NHI-Geheimnisrotation ausnutzen
- Ziel: Systeme dazu zwingen, sich auf statische/Ersatz-NHIs zu verlassen, und diese abfangen.
- Methode: Kommunikation mit Secrets-Managern (z. B. HashiCorp Vault) durch DNS-DoS stören, was Wiederholungen der Geheimnisrotation verursacht. Untersuchen, ob während dieser Wiederholungen Klartext-Ersatzgeheimnisse übertragen werden oder ob das Vertrauen auf veraltete Geheimnisse eine Gelegenheit schafft.
- Werkzeug:
tcpdump für Netzwerkerfassung, Python-Client-Simulation.
Phase 3: Zero-Trust-Richtlinien umgehen
- Ziel: Gestohlene/offengelegte NHIs verwenden, um sich als Dienste auszugeben und Daten zu exfiltrieren.
- Methode: Authentifizierungstoken (z. B. JWTs) fälschen oder API-Schlüssel direkt verwenden, um auf eingeschränkte Ressourcen zuzugreifen.
- Werkzeug: Python-Skript zum Zugriff auf geschützten API-Endpunkt.
Zusammenfassung der Demonstration
- BIND 9.20.8 mit einem fehlerhaften TSIG-DNS-Paket ausnutzen (mit
dns_exploit.py und Scapy), um den DNS-Server zum Absturz zu bringen.
- Fehlgeschlagene NHI-Geheimnisrotation im Client (
client_nhi_rotation.py) aufgrund von DNS-Ausfall beobachten, was zu einem Rückgriff auf eine statische/Notfall-Anmeldeinformation führt.
- Zero-Trust-Umgehung demonstrieren, indem die statische Anmeldeinformation (
STATIC_BREAK_GLASS_KEY_XYZABC) verwendet wird, um auf die geschützte API (bypass_demo.py) zuzugreifen, die Zugriff gewährt und die Richtlinie umgeht.
Schlüsseldateien
dns_exploit.py: Scapy-Skript zum Auslösen von BIND-DoS.
client_nhi_rotation.py: Simuliert NHI-Geheimnisrotation und -Rückgriff.
bypass_demo.py: Demonstriert Umgehung mit statischer NHI.
api-service-mock/app.py: Geschützter API-Endpunkt.
secrets-manager-mock/app.py: Simulierter Secrets-Manager.
docker-compose.yml: Orchestriert die Umgebung.
Ausführung
- Umgebung erstellen und starten:
docker-compose up -d --build
- DNS-Exploit ausführen:
python .\dns_exploit.py
- NHI-Client-Simulation ausführen:
python .\client_nhi_rotation.py
- Umgehungsdemonstration ausführen:
python .\bypass_demo.py
Auswirkungen
- End-to-End-Exploit-Kette: DNS-DoS → fehlgeschlagene NHI-Rotation → Offenlegung statischer Anmeldedaten → Zero-Trust-Umgehung.
- Realistisches Cloud-Native-Szenario: Zeigt, wie Protokollschichtangriffe moderne Sicherheitsframeworks untergraben können.
Empfehlungen
- Statische/Notfall-Anmeldedaten nach Möglichkeit eliminieren.
- DNS-Infrastruktur härten und auf Protokollanomalien überwachen.
- Sicherstellen, dass Secrets-Manager und Clients bei Infrastrukturausfällen sicher degradieren.
Offenlegung von Schwachstellen
Dieses Projekt demonstriert die Auswirkungen von CVE-2025-40775, einer Denial-of-Service-Schwachstelle in BIND 9.20.0–9.20.8. Die Laborumgebung erstellt und führt absichtlich BIND 9.20.8 aus, um dieses Szenario zu simulieren. Alle Tests wurden in einer kontrollierten Umgebung ausschließlich zu Forschungs- und Bildungszwecken durchgeführt.
CVE-Details
- CVE: CVE-2025-40775
- Beschreibung: Wenn eine eingehende DNS-Protokollnachricht eine Transaktionssignatur (TSIG) enthält, prüft BIND diese immer. Wenn die TSIG einen ungültigen Wert im Algorithmusfeld enthält, bricht BIND sofort mit einem Assertion-Fehler ab.
- Betroffene Versionen: 9.20.0–9.20.8, 9.21.0–9.21.7
- Auswirkung: Remote, nicht authentifizierter DoS (CVSS 7.5 HOCH)
- Workaround: Keiner. Patchen auf 9.20.9 oder später.
- Referenzen: ISC Advisory, NVD
- CWE: CWE-232: Unzureichende Behandlung undefinierter Werte
Wie die anfällige Version verwendet wird
Der vulnerable_bind-Dienst wird aus dem Quellcode mit dem offiziellen 9.20.8-Tarball erstellt, wie im Dockerfile gezeigt. Dies dient nur der Demonstration – diese Version nicht in der Produktion verwenden.
Haftungsausschluss