Need-To-Do statt Nice-To-Have


"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 auch nicht weniger.

Das können User, Admins, Anwendungen, Prozesse, Netzwerk-Geräte oder auch Betriebssysteme sein. Was man nicht hat, kann einem nicht weggenommen werden. Das Ziel ist es Risiken drastisch zu minimieren, die Angriffsflächen zu verkleinern und auch die potenziellen Schäden zu begrenzen.

Es ist wie der Master-Key des Haustechnikers. Damit kommt man zu jeder Uhrzeit in jeden Raum hinein. Mit Latzhose und schmutzigen Händen, würde dich nicht mal der CEO fragen, ob du das darfst, wenn du plötzlich in seinem Büro stehst.

Im echten Leben wird der räumliche Zugriff strikt reglementieren, aber in der IT sind alle großzügig und wollen immer mehr Rechte, als sie eigentlich bräuchten.

Es geht um mehr als nur User-Berechtigungen

Nicht jeder User braucht Vollzugriff auf alle Ordner, Datenbanken, oder Anwendungen. Ich könnte jetzt wieder über Rechte- und Rollenkonzepte schreiben, aber das hatten wir schon.

Was ist mit den Datenbanken und Anwendungen selbst?

Oder die Betriebssysteme auf denen sie installiert sind?
Oder die Accounts, unter denen sie gestartet werden?
Oder die Administratoren, die sie verwalten?
Oder die Hardware, auf denen sie laufen?

Hardware

Wenn ein Angreifer die Hardware kontrolliert, kann er auch die Daten direkt aus dem Arbeitsspeicher auslesen. Selbst wenn die Daten auf dem Datenträger verschlüsselt sind, ist exakt dieser Schlüssel im RAM, während das Betriebssystem läuft. Gerade bei Cloud-Rechenzentren ist das ein echtes Security- und Datenschutz-Thema.

Das Konzept der vertikalen Sicherheit habe ich in diesem Beitrag bereits erklärt.

Administratoren

Viele Firmen haben Admins mit sehr weitreichenden Berechtigungen, wie zum Beispiel Admin-Zugriff auf alle Server / alle Clients. Das sind dann sozusagen die Haustechniker unter den Admins. Wenn ein einziger Client gehackt wäre und sich ein Client-Admin darauf anmelden würde, dann wären mit einem Schlag alle Clients kompromittiert.

Mit dem Tool "LAPS" kannst du das für Windows Server und Clients verhindern. Wie genau, habe ich in diesem Beitrag erklärt.

Service-Accounts

Wenn du eine Anwendung auf einem Server installierst, wie zum Beispiel eine Zeiterfassung, dann läuft sie unter einem Standard-Service-Account. Unter Windows ist das meistens SYSTEM und der hat die meisten Berechtigungen. Damit hast du sogar Zugriff auf die Geheimnisse aller anderen lokalen Accounts, weil du als SYSTEM über den Admins stehst.

Möchtest du wirklich, dass der ganze Server samt allen Accounts kompromittiert ist, wenn nur deine Zeiterfassung eine Schwachstelle ist? Ich auch nicht! Ich würde immer einen dedizierten Service-Account verwenden. Aber bitte keinen, wo du dich um das Kennwort selbst kümmern musst, denn das tust du ja sowieso nicht.

Für den Zugriff auf externe Ressourcen eignet sich ein "Managed Service Account", für rein lokale Zugriffe ein "Virtual Account". Schau mal hier, bei Microsoft findest du eine Vergleichstabelle: https://learn.microsoft.com/de-at/windows-server/identity/ad-ds/manage/understand-service-accounts#choosing-your-service-account

Ach ja, auch übergreifende Service-Accounts, die auf allen Clients / Servern verwendet werden, sind genauso schlecht. Wenn du den "Software Delivery Agent" einsetzt und denselben Account auf allen Geräten benutzt, dann hast du sogar noch ein größeres Problem als im Beispiel oben bei den Admins. Service-Accounts sind nämlich immer eingeloggt, solange die Anwendung läuft, Admins nur sporadisch.

Betriebssysteme

Es gibt auch innerhalb der Betriebssysteme verschiedene Abstufungen der Berechtigungen. Sie basieren auf den Prozessor-Architekturen wie x86/x64 oder ARM/ARM64. Das nennt man "Rings", oder "Exception Levels". Der Kernel des Betriebssystems läuft in einem anderen Bereich der CPU als die User-Anwendungen. So wird verhindert, dass es zu Überschneidungen kommt.

Unter Linux und Unix kommt man als "root" ziemlich weit, genauso wie unter Windows als "SYSTEM" oder Administrator. Unter Windows gibt's verschiedene Härtungsmaßnahmen:

  • Kernel / User Mode Separation
  • Virtualization-Based Security
  • Credential Guard
  • Hypervisor-Enforced Code Integrity
  • Protected Process Light.

Unter Linux gibt es unter anderem:

  • Kernel Page Table Isolation
  • Supervisor Mode Access/Execution Prevention
  • Usercopy Protection
  • Linux Security Modules
  • Speculative Execution.

Die CPU-Schwachstellen der letzten Jahre, wie Spectre und Meltdown, haben die Trennung zwischen Kernel und User umgangen. Das war natürlich eine Katastrophe.

Erweiterungen des Prinzips

Need to know

Das kommt ursprünglich aus der Compliance. Wenn du es richtig anwendest, kann es dir echt den Arsch retten. Ein Server-Admin muss vielleicht den Datenbank-Server administrieren, braucht aber nicht unbedingt Zugriff auf die Inhalte der Datenbank.

Oder ein Abteilungsleiter muss nur auf die Zeitlisten seiner Teamleiter zugreifen, nicht aber automatisch auf alle Mitarbeiter darunter.

Das reduziert nicht nur ungewollte Datenabflüsse durch Mitarbeiter, sondern erschwert auch Angreifern, große Datenmengen von einzelnen Usern abzugreifen.

Just-in-Time-Administration

Ich liebe dieses Prinzip. Es erhöht die Sicherheit für Administratoren drastisch und stellt auch Compliance zufrieden. Statt den Server-Admins ständig Vollzugriff auf hunderte oder tausende Server zu geben, bekommen sie die Rechte nur für eine bestimmte Zeit.

Admins besitzen nicht den Master-Key die ganze Zeit, sondern es wird für sie ein eigener Schlüssel angefertigt, um nur einen einzelnen Raum betreten zu können … äh … einzelnen Server zu managen. 😅

Das funktioniert über Privileged Access Management Tools. Dort können Admins den Zugriff auf berechtigte Systeme anfragen und bekommen sie nur dafür. Nach Ablauf der definierten Zeit, verfällt die Berechtigung automatisch. Zum Beispiel 30 Minuten Zugriff für ein Update.

Die Anfrage kann einen Genehmigungsprozess auslösen, oder die Berechtigung wird sofort erteilt. Normalerweise muss man sich vorher über Multifaktor-Authentication noch zusätzlich verifizieren. Der Start- und Stop-Zeitpunkt wird genau protokolliert und Admins haben ein geringeres Risiko, falls ihr Passwort geleakt wurde.

Separation of Duties

Auf Deutsch: Aufgabentrennung

Kritische Aktionen dürfen nicht von einzelnen Personen durchgeführt werden. Im Finanzwesen ist es üblich, dass Überweisungen, die einen gewissen Betrag übersteigen, eine zweite, oder dritte Freigabe brauchen.

In der Softwareentwicklung gibt's auch ähnliche Prozesse. Der Entwickler schreibt den Code und darf ihn nur in das Development-Code-Repository einpflegen. Ein zweiter Verantwortlicher darf den Code nicht verändern, sondern ihn nur 1:1 in die Test-Umgebung verschieben. Erst wenn alle Tests erfolgreich waren und freigegeben wurden, kommt der Code in die Produktion und wird von dort ausgerollt.

Das verhindert, dass Entwickler unbeabsichtigt und direkt die Produktion lahmlegen können, aber auch, dass der Code vor Freigabe noch unwissentlich verändert wird.

Wie reduziere ich Rechte?

Das Problem bei der Sache ist oft das Ego der Menschen.

Je mehr Berechtigungen, desto größer ist das gefühlte Vertrauen in die Person. Wenn du den Super-Admins die Rechte entziehst, dann ist das circa genau so, als würdest du einem Teenager das Smartphone wegnehmen. Rechne mit Gegenwind! 😡

Es ist besser, wenn du die Kommunikation in Richtung Verantwortung und Schutz lenkst. Argumentiere, dass es nicht um Misstrauen geht, sondern darum, dass Angreifer die Rechte ausnutzen könnten, wenn der Account gehackt wird.

Ein Admin möchte natürlich nicht, dass wegen ihm/ihr alle Server verschlüsselt werden. Wenn du das Schadensausmaß verringern möchtest, könntest du mehrere Accounts verwenden, oder Just-in-Time-Administration implementieren.

Du kannst auch gerne kreativ mit der Fragestellung sein, um eine Bedarfsanalyse zu machen.

"Wenn du heute einen neuen Account bekämst, welche Rechte bräuchtest du unbedingt, um deine Arbeit zu machen?" 🤔

"Was meinst du, was passiert, wenn ein Hacker deinen Account hackt? Für welche Altlasten würde dir dann der IT-Leiter den Kopf abreißen?" 😅

Fazit

Wenn du deinen Mitarbeitern und auch Admins nur die Rechte gibst, die sie auch tatsächlich für ihre Arbeit brauchen, dann reduzierst du das Risiko deutlich für Datenlecks, Compliance-Verstöße, oder ungeplante Ausfälle.

Anders gesagt: Es zahlt sich für das Unternehmen finanziell aus, weniger Berechtigungen zu vergeben. 🤑

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...

Was haben Minecraft, ein DDoS-Protection-Service, ein Journalist und 600.000 infizierte Geräte gemeinsam? Die größten DDoS-Attacken in der Geschichte des Internets und die Verhaftung der drei minderjährigen Drahtzieher. Nach der Geschichte von Duqu 2.0, erzähle ich heute eine weitere packende Hacking-Story rund um die Mirai IoT-Malware, die sich 2016 abgespielt hat. Ich fange mal mit ein paar technischen Hintergründen an. Wie funktionierte das Mirai-Botnet? Wie im letzten Artikel über DDoS...