Verteidiger denken in Listen, Angreifer in Vektoren


"Das größte Problem bei der Netzwerkverteidigung ist, dass Verteidiger in Listen denken. Angreifer denken in Vektoren. Solange das so ist, gewinnen die Angreifer."
John Lambert

Das Zitat ist 10 Jahre alt und noch immer brandaktuell – aber was bedeutet es?

Es ist eine Aufforderung, unser Netzwerk durch die Augen eines Hackers zu sehen. Angreifer sehen einen Haufen Endpunkte, die durch gegenseitige Abhängigkeiten und zentralisierte Management-Tools miteinander verbunden sind.

Credentials (Zugangsdaten) geben dir Zugriff auf die Endpunkte.

Admin-Credentials geben dir Macht über die Endpunkte.

Auf diesen Endpunkten gespeicherte Credentials geben dir noch mehr Zugriffe und noch mehr Macht.

Daraus resultiert dann ein Vektor – ein Angriffspfad.

Angreifer springen von einem Vektor zum Nächsten

Hacker brauchen in Netzwerken entweder Schwachstellen oder Zugangsdaten, um sich zwischen den Endpunkten fortzubewegen. Wenn der erste Eintrittspunkt zum Beispiel ein normaler Office-Client in der Finanzabteilung ist, dann ist der Bewegungsradius zunächst sehr begrenzt. Wenn sich aber dort jemand vom Service-Desk für den IT-Support mit Admin-Credentials anmeldet, können sie gestohlen und auf anderen Clients wiederverwendet werden. Das können welche aus anderen Abteilungen sein, aber auch Clients aus der globalen IT, die wiederum Zugriff auf zentrale Steuerungs-Dienste wie Active Directory, File-Server oder Mail-Server haben.

Wenn Angreifer an Master-Secrets kommen, also an kryptografische Schlüssel auf Domain Controllern oder die Root Certificate Authority, können sie auch Credentials fälschen. Das verschafft ihnen natürlich einen massiven Vorteil, um sich ungehemmt auszubreiten. Game Over!

Folge den Credentials, nicht irgendwelchen Listen

Zentrale Systeme wie Active Directory, Software-Verteilung (SCCM) und Endpoint Protection (Anti-Virus) verwalten den Großteil deiner Endpunkte im Netzwerk. Damit die Systeme ihre Arbeit machen können, brauchen sie bestimmte Rechte. Diese Rechte werden über Service-Accounts bereitgestellt.

Wenn du nur einen einzigen Service-Account für die Verteilung der Software auf allen Clients verwendest, dann reicht es, wenn ein Angreifer lediglich einen Client kompromittiert, um automatisch Zugriff auf alle zu erhalten. Verwendest du pro Client eigene Zugangsdaten, dann könnten Hacker deinen Server für die Software-Verteilung kompromittieren, um die Kontrolle über alle Clients zu erhalten.

Hier ein paar Beispiele, wie die Rechte über das Active Directory indirekt vergeben werden:

  • Client-Management: Der Domain Admin meldet sich von seinem Office-Client (E-Mail, Office, Internet) auf den Domain Controllern an. Die Admin-Credentials werden lokal verarbeitet (er gibt das Passwort ein) und sind im Arbeitsspeicher verfügbar. Die Client-Admins können den Arbeitsspeicher auslesen und werden so zu Domain Admins.
  • Software-Verteilung: Wenn Updates über die Software-Verteilung auf den Domain Controllern verteilt werden, dann sind die Software-Paketierer automatisch auch Domain Admins, denn sie können dort beliebigen Code ausführen.
  • Server-Backup: Wenn die Domain Controller vom Backup-Dienst gesichert werden, dann liegt die Active Directory Datenbank mit allen Passwort-Hashes auf den Backup-Servern. Die Backup-Admins sind dann auch Domain Admins. Das Active Directory selbst hat auch Service Accounts, die automatisch nicht geändert werden. Das heißt, selbst ein 5 Jahre altes Backup würde zur totalen Kompromittierung führen.

Was tun, Fisch? Wir haben doch keine Wahl, Fisch!

Wir müssen lernen umzudenken, was den Umgang mit Credentials betrifft, ohne die IT bei der Arbeit zu behindern.

Selbst wenn du 100.000 Endpunkte in deinem Netzwerk hast, sind es immer nur eine Handvoll, die alle Systeme zentral verwalten. Die IT ist es gewohnt, ihre Systeme nach Teams, Aufgaben und Abteilungen zu managen. Aber wenn es um Cybersecurity geht, reicht das nicht. Wir müssen uns fragen: "Wo werden Credentials verarbeitet?" und "Wer kann darüber verfügen?"

  • Tipp #1: Verwende so viele "lokale Credentials" wie möglich. Clients und Server kannst du in per LAPS super managen. "Virtuelle Accounts" gibt es seit Server 2008 R2 und fast niemand kennt sie. Damit kannst du lokale Dienste isolieren.
  • Tipp #2: Domain Admins dürfen sich nirgendwo, außer auf Domain Controllern anmelden. Das kannst du über "Authentication Policies" einfach steuern. Hast du Service Accounts die Domain Admins sind? Falls ja, weg damit! Es gibt effektiv keinen Grund, uneingeschränkte Berechtigungen zu delegieren. Das kannst du im Active Directory sehr einfach und sehr granular umsetzen.
  • Tipp #3: Vermeide "Super Credentials" – also alle Service Accounts und Berechtigungsgruppen, die du auf eine relativ große Anzahl an Endpunkten verteilst. Müssen deine Server-Admins wirklich ständig auf hunderten, oder sogar tausenden Servern Berechtigungen haben? Konzepte wie "Just in Time Access" haben hier enorme Vorteile.

Tools wie Bloodhound können dir bei der Analyse helfen. Die sind auf den ersten Blick nicht unbedingt einfach zu verstehen, aber wenn du dich ein wenig mit ihnen beschäftigst, kriegst du das bestimmt hin. Falls du Hilfe brauchst, sprich mich gerne an.

Fazit

Es ist zwar wichtig, alle Systeme zu betreuen, abzusichern und zu aktualisieren, aber dabei darfst du das "Wie" nicht aus den Augen verlieren. Credentials sind wie eine Schattengesellschaft, die sich unbemerkt über deine IT-Systeme ausbreiten.

Sichere IT passiert nicht einfach so, schon gar nicht in verwobenen Strukturen, man muss sie sich MACHEN.

Michael Mayer, Modecenterstraße 22, Wien, 1030
Abbestellen · Einstellungen

Michael Mayer

MACH dir deine Security selbst. Jeden Samstagmorgen, teile ich anwendbare Strategien und Anekdoten aus der Welt der Cyber Security. Ganz ohne Fachchinesisch!

Read more from Michael Mayer

Stell dir eine IT-Messi-WG vor. Überall liegt Dreck herum, Zettel stapeln sich, Laptops türmen sich zwischen Servern und Geräten, die noch in Verwendung sind – oder auch nicht. Wer weiß das schon? Irgendwann erbarmt sich jemand und startet eine Aufräumaktion. Auf die Frage “Wem gehört dieser Server?” folgt nur Stille. In Filmen würde ein Dornenbusch von links nach rechts rollen, aber dafür ist hier einfach kein Platz. Irgendwann reißt der Geduldsfaden, der Stecker wird gezogen und in einer...

Schach ist ein komplexes Spiel mit klaren Regeln und definierten Feldern. Man spielt zu zweit und hat jeweils die gleichen Figuren und Voraussetzungen. Das Ziel ist klar: Den gegnerischen König zu schlagen, bevor der eigene geschlagen wird. Wenn man gewinnen will, braucht man eine solide Strategie und eine bewährte Taktik. Es gibt viele Parallelen zur Cybersecurity, aber auch einige große Unterschiede. Wer ist dein König? Beim Schach geht es nicht darum, alle Figuren zu retten, sondern nur...

"Welches Recht nimmst du dir bitte heraus, um mir sowas anzutun???" "Öh … ich bin doch Admin!" 😬 In einem früheren Beitrag habe ich schon mal über alte Rechte geschrieben. Heute beschäftigen wir uns aber mit Berechtigungen, die auch neu, sehr großzügig vergeben werden. Dazu gibt es einen Fachbegriff: "Principle of Least Privilege". Worum geht es beim Principle of Least-Privilege? Die Idee dahinter ist ganz einfach: Jeder hat nur Zugriff auf das, was er auch wirklich braucht. Nicht mehr, aber...