it-swarm-eu.dev

Wie ermitteln Sie, über welche Berechtigungen eine AD-Gruppe verfügt, wenn Sie keine Dokumentation haben?

Sie wurden gerade bei Firma A eingestellt und der alte Administrator ist nicht mehr da. Es werden Anfragen zum Hinzufügen von Benutzern zur Internet-Einschränkungsgruppe gestellt. Wenn Sie sich die Gruppen ansehen, ist keiner der Namen sinnvoll, und es gibt keine Dokumentation, in der erläutert wird, wofür jede Gruppe Rechte hat und was sie tut. Das würde mich beunruhigen. Woher wissen Sie aus Sicherheitsgründen, ob jeder die richtigen Rechte hat?.

Wie würden Sie herausfinden, worauf die Gruppen Rechte haben? Gibt es ein Tool, das diese Informationen für Sie findet?

20
Ambar Batista

Lassen Sie mich vorwegnehmen, was wahrscheinlich eine längere Antwort sein wird: "Es gibt keine einfache Lösung".
Die Lösung dieses Problems erfordert einige strategische Arbeit (weshalb ich empfohlen habe, nicht dies auf SF zu verschieben).

Jetzt werde ich erklären warum.

Windows basiert im Kern hauptsächlich auf dem DAC-Modell der Zugriffskontrolle.
Alles im Betriebssystem kann mit einer ACL gesichert werden - Dateien, Ordner, Registrierung, Named Pipes, Sockets, Freigaben usw. usw.

Durch die Verwendung von AD-Gruppen können Sie dies in ein Modell vom Typ RBAC abstrahieren, intern ist es jedoch immer noch ein DAC-Modell. (Ich meine, Sie können einen ACE (Zugriffssteuerungseintrag) für eine Gruppe (d. H. Eine Rolle) erstellen, aber Sie erstellen immer noch einen ACE - und das wird beim Zugriff überprüft.).

Schwerpunkt auf "meistens".
Hiervon gibt es einige eindeutige Ausnahmen:

  1. Es gibt einige Implementierungen von MAC - d. H. Integritätsstufen (in Vista/7/2008).
    Dies ist jedoch normalerweise ein interner Betriebssystemschutzmechanismus und wird normalerweise nicht für eine echte Zugriffskontrolle (außer der integrierten Benutzerkontensteuerung) genutzt. Normalerweise .
  2. Berechtigungen auf Betriebssystemebene. (Obwohl es möglich ist, einen bestimmten Benutzer anzugeben, dem diese Berechtigungen gewährt werden sollen, ist es als RBAC-Modell gedacht und fungiert als solches.).

Aber warte, das ist nur im Betriebssystem selbst ...
Windows als Plattform ermöglicht und ermutigt Anwendungen (Drittanbieter, MS-Produkte und Betriebssystem-Addons), die AD-Gruppenmitgliedschaft als RBAC-Mechanismus zu verwenden:

  1. Anwendungen von Drittanbietern können die Gruppenmitgliedschaft über eine einfache AD/LDAP-Suche überprüfen. Diese Apps speichern möglicherweise den Gruppennamen und lösen ihn auf oder speichern die SID der Gruppe und fragen direkt danach ab.
  2. Vergessen Sie nicht SQL Server - dies basiert hauptsächlich auf (verschiedenen Arten von) Rollen. Es wird jedoch empfohlen, diesen Rollen AD Gruppen hinzuzufügen, und nicht den Benutzern direkt.
  3. Solange wir dabei sind, verwaltet COM + auch den Zugriff durch RBAC, aber auch hier empfiehlt es sich, COM + -Rollen Gruppen und keine Benutzer hinzuzufügen.
  4. Sharepoint verwaltet den Zugriff auf Websites auch nach Rollen/Gruppen/und Mailinglisten ...

Fangen Sie an, meinen Standpunkt zu verstehen?
Ich möchte nicht sagen, dass es hoffnungslos ist, ABER ...

Um es noch einmal zusammenzufassen:
Um die endgültige Liste der Berechtigungen einer bestimmten Gruppe zu finden, müssen Sie (oder ein Tool) ALLE der folgenden Punkte rekursiv überprüfen (und nicht vergessen, auch die Gruppenmitgliedschaft zu wiederholen):

  • Für jeden Server in Ihrer Organisation:
    • überprüfen Sie die ACL rekursiv für alle Ordner und Dateien
    • rekursiv überprüfen [~ # ~] sacl [~ # ~] alle Ordner und Dateien (Systemzugriffskontrolllisten - diese Kontrollüberwachung)
    • überprüfen Sie rekursiv den Eigentümer aller Ordner und Dateien
    • überprüfen Sie rekursiv ACL, SACL und Eigentümer aller Registrierungsschlüssel
    • überprüfen Sie rekursiv ACL, SACL und Eigentümer aller benannten Pipes, Prozesse und Threads, Dienste, Jobs usw.
    • Überprüfen Sie alle Berechtigungen auf Betriebssystemebene (obwohl dies möglicherweise mithilfe von Gruppenrichtlinienobjekten vereinfacht werden kann ...)
    • Überprüfen Sie alle COM + -Rollen, MSMQ-Rollen usw.
  • Für jede Domain in Ihrer AD:
    • Überprüfen Sie alle Berechtigungen auf Domänenebene
    • überprüfen Sie alle Gruppenrichtlinienobjekte (Gruppenrichtlinienobjekte).
  • Für jeden Datenbankserver:
    • Überprüfen Sie alle Serverrollen
    • überprüfen Sie alle Datenbankrollen
    • überprüfen Sie alle Anwendungsrollen (in MSSQL).
  • Für jedes Sharepoint-Portal:
    • überprüfen Sie alle Rollen und Berechtigungen auf Serverebene
    • überprüfen Sie alle Rollen und Berechtigungen auf Site- und Listenebene
  • Für jede Drittanbieteranwendung:
    • Überprüfen Sie die Verwendung von AD-Gruppen
    • verify wie Die App verwendet diese Rollen:
      -> Gruppenname vs. DN vs. Gruppen-SID vs. ... z. Gruppen-GUID
      -> Überprüft die App explizit die direkte Rollenmitgliedschaft oder verwendet sie die "intelligenteren" rekursiven Methoden?
    • Beachten Sie, dass dies sowohl für verpackte Produkte und Plattformen von Drittanbietern (z. B. Oracle, SAP, MQSeries, WebSphere ...) als auch für benutzerdefinierte Geschäftsanwendungen gilt.

Ist das komplett?
Traurigerweise Nein. Zum Beispiel habe ich nicht alle Desktops in die Organisation aufgenommen, da für diese sollte nicht bestimmte Berechtigungen auf AD-Gruppenebene festgelegt sind (außer z. B. Administratoren und HelpDesk) ) - aber beachte, dass sie es oft tun.
Dies ist jedoch keine vollständige Liste ...

Dies ist der große Nachteil bei der Verwendung eines DAC-Modells - das "D" hätte genauso gut für "Distributed" gelten können, da es keinen zentralen Ort gibt, an dem alle diese ACLs nachgeschlagen werden können.
Wie ich in festgestellt habe Was ist der Unterschied zwischen RBAC und DAC/ACL? :

  • DAC-Definitionen werden normalerweise an die Daten/Ressourcen angehängt, während RBAC normalerweise an zwei Stellen definiert wird: in Code/Konfiguration/Metadaten (dem Rollenzugriff) und auf dem Benutzerobjekt (oder der Tabelle - die Rollen, die jeder Benutzer hat).

Nun ein wenig zu Lösungen:

  • Es gibt verschiedene Werkzeuge, um verschiedene Teile der obigen Listen zu sammeln, z. @ Ians Antwort mit Powershell-Skripten zum Sammeln von Ordner-ACLs. Es gibt viele andere Tools dafür (ich war in der Vergangenheit dafür bekannt, CACLS zu verwenden), einige werden hier notiert .
    Wenn Sie ein Tool/Skript für einen bestimmten Teil der Liste anfordern, erhalten Sie bei ServerFault möglicherweise bessere Ideen. Beachten Sie jedoch, dass dies nur ein Teil der Liste ist.
  • Es gibt "Rollenmanagement" - und "Rollenerkennungs" -Produkte von einigen der großen Anbieter, normalerweise im Bereich Identitätsmanagement - ich kann keines speziell empfehlen, aber es lohnt sich, Folgendes zu prüfen: [~ # ~] ca [~ # ~] (früher Eurekify, ein anständiges (wenn auch nicht vollständiges) Tool), [~ # ~] ibm [~ # ~] , Oracle .
    Natürlich gibt es noch andere, und ich würde stark dazu neigen, selbst von einem Startup aus die besten kleineren Anbieter zu finden (okay, vielleicht bin ich voreingenommen;)). Ich meine, von denen, die nicht von den größeren Anbietern aufgekauft wurden.
  • Sie könnten (und sollten wahrscheinlich, obwohl dies alles andere als trivial ist) den Prozess der Zuordnung der Organisation, der Geschäftsanforderungen und dergleichen beginnen - mit dem Ziel, welche Privilegien sie sollten get und nicht nur was ist der aktuelle Status quo =. Einige der im vorherigen Punkt erwähnten Tools könnten hier helfen.
  • Wenn die vorherige Rollenanalyse und -modellierung gut funktioniert, sollten Sie sich für eine vollständige IdM/IAM/EAM-Lösung entscheiden. Auch hier stehen meine Kommentare zu Anbietern noch.
  • In jedem Fall sollten Sie darauf abzielen, die Verteilung der ACLs überall zu minimieren, und auf eine minimale RBAC drängen, die so zentral wie möglich ist.

Und ein letztes Wort der Warnung an diejenigen, die das Glück haben, vorher die unangenehme Situation zu sein, in der Sie sich gerade befinden:
Definitiv Schauen Sie sich eine zentralisierte Autorisierungsplattform an, z. B. IdM/IAM/EAM-Produkte. (Beachten Sie, dass einige viel besser sind als andere, und einige würden diese Situation auch nicht lösen.)


tl; dr: Sie sind zu Recht und wirklich geschraubt . Siehe oben. ;)
(Aber alle Hoffnung ist nicht verloren ...)

23
AviD

Die Antwort darauf hängt genau davon ab, wie Sie diese Daten sehen/verwalten möchten. Meine Empfehlung wäre PowerShell, um all dies zu erhalten.

Wenn Sie PowerShell verwenden, können Sie entweder die nativen AD-Cmdlets oder die kostenlosen Cmdlets von Quest (http://www.quest.com/powershell/activeroles-server.aspx) verwenden. Um die nativen Cmdlets verwenden zu können, muss mindestens ein Windows Server 2008 R2-Domänencontroller in Ihrer Domäne oder mindestens eine Instanz in einem AD LDS-Konfigurationssatz vorhanden sein, der auf einem Windows Server 2008 R2-Server ausgeführt wird - siehe http: //technet.Microsoft.com/en-us/library/ee617195.aspx für Details.

Im Endeffekt müssen Sie die Ordner-ACLs nur rekursiv auf die Zugriffsebene einer bestimmten Gruppe überprüfen. Es gibt einige Stellen ( hier und hier ), an denen Leute Versuche unternehmen, aber da dies möglicherweise eine unglaublich große Menge an Dateistruktur ist, durch die das Skript navigieren muss, ist es könnte definitiv einige Zeit dauern. Für verschachtelte Gruppen wird es noch komplizierter.

EDIT: @AviD ist genau richtig in Bezug auf die ursprüngliche Befehlssyntax, und es hat völlig das Falsche getan! Bearbeitet, um mehr zum Thema zu sein.

4
Ian Pugsley

Dies kann über den Windows-Befehl Eingabeaufforderung wie folgt erfolgen:

  • Wechseln Sie zu dem Verzeichnis, in dem Sie Ihren Bericht speichern möchten. Wenn keines ausgewählt ist, sollte standardmäßig das Verzeichnis des angemeldeten Benutzers verwendet werden. Ein Beispiel wäre cd C:\Users\Administrator\Desktop

  • Generieren Sie einen Bericht mit dem folgenden Befehl:

    gpresult /s servername /user INTERNAL\user1 /h gpreport.html
    
  • Der obige Befehl generiert einen Bericht basierend auf dem GPOS und den Regeln, die auf den Benutzer angewendet werden, für den der Bericht ausgewählt wurde. Dieser Benutzer sollte jemand sein, der Mitglied einer bestimmten Gruppe ist, oder Sie können einen Testbenutzer erstellen, um die Einstellungen einer bestimmten Gruppe zu testen.

  • Eine andere Möglichkeit, diese Informationen zu finden, besteht darin, das GPO) zu bearbeiten. Unter Windows 2008 sollten Sie die Option haben, alle Einstellungen anzuzeigen und nach Status zu sortieren. Anschließend können Sie alle aktivierten Einstellungen des aufzeichnen Gruppenrichtlinienobjekt.

1