Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Ein Leitfaden zu Active Directory verknüpften Attributen

Ein Leitfaden zu Active Directory verknüpften Attributen

Feb 20, 2017

Das Active Directory verknüpfte Attribut ist eine spezielle Art von Active Directory-Attribut, das verwendet wird, um Beziehungen zwischen Objekten zu beschreiben. Dieser Beitrag erklärt, was verknüpfte Attribute sind und wie sie funktionieren.

Was macht ein Attribut zu einem verknüpften Attribut?

Jedes Attribut in Active Directory wird durch ein AttributeSchema-Objekt in der Active Directory-Schema-Partition definiert. Die AttributeSchema-Objekte, die verknüpfte Attribute definieren, sind die einzigen Schema-Objekte, die ein ausgefülltes LinkID-Attribut besitzen. Daher ist es so einfach, alle verknüpften Attribute in einer Domäne zu identifizieren, indem man PowerShell verwendet, um das Schema nach Objekten mit einem ausgefüllten LinkID zu durchsuchen, wie folgt:

      Get-ADObject -SearchBase (Get-ADRootDSE).SchemaNamingContext -LDAPFilter "(LinkID=*)"
      

Verknüpfte Attribute existieren in der Regel paarweise, ein Vorwärtslink und ein Rückwärtslink, der durch den Wert des LinkID-Attributs definiert wird:

  • Forward link — Der LinkID-Wert ist immer eine positive gerade Zahl.
  • Backlink — Der LinkID-Wert ist immer eine positive ungerade Zahl; tatsächlich ist es der Wert des LinkID seines zugehörigen Forward-Links plus eins.

Die Attribute mit den kleinsten LinkID-Werten sind das Member-Attribut und das MemberOf-Attribut, die zur Nachverfolgung der Gruppenmitgliedschaft in Active Directory verwendet werden. Modifizieren wir also unser PowerShell-Skript, um die Ausgabe auf nur diese beiden Attribute zu beschränken:

Image

Die Ausgabe verrät uns mehrere wichtige Fakten über diese zwei Attribute:

  • Der LinkID-Wert des Member-Attributs ist 2, was eine gerade Zahl ist. Das bedeutet, dass das Member-Attribut ein Vorwärtslink ist.
  • Der LinkID-Wert des MemberOf-Attributs ist 3, was eine ungerade Zahl ist. Das bedeutet, dass das MemberOf-Attribut ein Rückverweis ist.
  • Der LinkID-Wert des Rückwärtslinks MemberOf ist der LinkID-Wert des Vorwärtslinks Member-Attributs plus eins (3 = 2 + 1). Das bedeutet, dass das Member-Attribut und das MemberOf-Attribut assoziierte verknüpfte Attribute sind.

Ein etwas anderes PowerShell-Skript kann verwendet werden, um direkt den Namen eines verknüpften Attributs zugehörigen Vorwärtslinks oder Rückwärtslinks abzurufen, obwohl es nicht explizit angibt, ob das Attribut ein Vorwärtslink oder ein Rückwärtslink ist. Sie müssten sich den LinkID-Wert ansehen und das selbst bestimmen.

Image

Wie funktionieren mit Active Directory verknüpfte Attribute?

Jetzt, da wir festgestellt haben, was verknüpfte Attribute sind und wie man sie identifiziert, ist es an der Zeit, ihr Verhalten zu erforschen.

Verknüpfte Attribute speichern Informationen über eine Beziehung zwischen zwei Objekten, im Gegensatz zu herkömmlichen Active Directory-Attributen, die Informationen über ein Objekt speichern. Dieser funktionale Unterschied spiegelt sich darin wider, dass Active Directory die Werte von verknüpften Attributen anders speichert als die Werte von anderen Attributen.

Wie verknüpfte Attribute gespeichert werden

Active Directory-Daten werden in der Datei ntds.dit gespeichert. Die Werte konventioneller Attribute sind in einer Tabelle namens datatable abgelegt. Verknüpfte Attribute haben ihre eigene dedizierte Tabelle, die passenderweise link_table genannt wird. Wenn wir einen Blick in einen Schnappschuss der ntds.dit-Datenbankdatei meines Labors werfen, können wir sehen, wie Active Directory verknüpfte Attributwerte speichert:

Image

Objektreferenzen in der link_table verwenden den distinguished name tag (DNT) eines Objekts, der tatsächlich der interne Primärschlüssel von Datensätzen in der ntds.dit-Datentabelle ist. Dies verhindert, dass Änderungen am distinguished name eines Objekts ein Update der zugehörigen link_table-Einträge erfordern.

Der Screenshot hebt drei wichtige Felder in der link_table hervor:

  • link_DNT — Ein Verweis auf ein Vorwärts-Link-Objekt.
  • backlink_DN — Eine Referenz auf das zugehörige Backlink-Objekt.
  • link_base — Ein Verweis auf die LinkID des vorwärts gerichteten Link-Attributs. Dieses Feld verwendet den LinkID-Wert des vorwärts gerichteten Links, um die zwischen den beiden Objekten verfolgte Beziehung zu identifizieren (obwohl, wie Sie im Screenshot sehen können, die Werte in der Tabelle tatsächlich der durch 2 geteilte LinkID-Wert sind).

Praktische Konsequenzen dieses Ansatzes zur Speicherung verknüpfter Attribute

Auch wenn dieser Speicheransatz etwas ungewöhnlich erscheinen mag, ist es ein wirklich geniales Design, das einige wichtige praktische Konsequenzen nach sich zieht:

  • Vorwärtsverknüpfungswerte werden gespeichert; Rückwärtsverknüpfungswerte werden konstruiert. Dies ist wahrscheinlich das wichtigste Konzept, das man aus dieser Diskussion mitnehmen sollte: Rückwärtsverknüpfungen speichern tatsächlich keine Informationen. Da eine Verbindung zwischen zwei Objekten eine einzelne Entität ist, muss Active Directory nicht mehr als eine Kopie einer Verbindung speichern. Wenn eine Vorwärtsverknüpfung abgefragt wird, kann Active Directory einfach die Einträge in der link_table zurückgeben, bei denen die DNT des abgefragten Objekts mit dem Wert im Feld link_DNT übereinstimmt und die LinkID der Vorwärtsverknüpfung mit dem Wert im Feld link_base übereinstimmt. Wenn eine Rückwärtsverknüpfung abgefragt wird, kann Active Directory deren Werte berechnen, indem es die Einträge in der link_table zurückgibt, bei denen die DNT des abgefragten Objekts mit dem Wert im Feld backlink_DNT übereinstimmt und die LinkID der zugehörigen Vorwärtsverknüpfung (berechnet durch Subtraktion von 1 von der LinkID der Rückwärtsverknüpfung) mit dem Wert im Feld link_base übereinstimmt.
  • Vorwärtsverknüpfungswerte sind beschreibbar; Rückwärtsverknüpfungswerte sind schreibgeschützt. Sobald Sie wissen, dass Active Directory nur die Werte von Vorwärtsverknüpfungen speichert, scheint dies wahrscheinlich offensichtlich. Es hat jedoch wichtige Konsequenzen: Wenn ein verknüpftes Attribut geändert wird, aktualisiert Active Directory die Vorwärtsverknüpfung, was das Objekt mit dieser Verknüpfung modifiziert. Die Rückwärtsverknüpfung, die einen konstruierten schreibgeschützten Wert besitzt, kann niemals geändert werden, daher wird das Objektbesitzende die Rückwärtsverknüpfung auch nicht modifiziert.

    Um zu veranschaulichen, warum dies wichtig ist, betrachten wir das Hinzufügen eines Benutzers zu einer Gruppe. Dieses Update modifiziert nur das Member-Attribut der Gruppe; das MemberOf-Attribut des Benutzers wird nicht geändert. Da das Gruppenobjekt eine materielle Änderung hatte, werden die Metadatenfelder, die diese Änderung widerspiegeln (z. B. die Attribute „ModifyTimeStamp“ und „WhenChanged“), aktualisiert. Diese gleichen Metadatenfelder werdennicht auf dem Benutzerobjekt aktualisiert, denn obwohl sein MemberOf-Attribut nun einen anderen Wert zurückgibt, wurde das MemberOf-Attribut selbst nicht modifiziert.
  • Vorwärtsverknüpfungen sind obligatorisch; Rückverknüpfungen sind optional. Einige Artikel über verknüpfte Attribute behaupten, dass verknüpfte Attribute immer sowohl eine Vorwärts- als auch eine Rückverknüpfung haben. Obwohl das oft zutrifft, ist die Präsenz einer Rückverknüpfung nicht strikt notwendig. Tatsächlich können wir, wenn wir PowerShell verwenden, um verknüpfte Attributpaare abzurufen, sehen, dass nicht jede Vorwärtsverknüpfung in meinem Labor eine zugehörige Rückverknüpfung hat:
Image

Vorteile dieses Ansatzes zur Speicherung verknüpfter Attribute

Erinnerst du dich, wie ich erwähnt habe, dass die Art und Weise, wie verknüpfte Attribute gespeichert werden, irgendwie genial ist? Der Ansatz von Active Directory zur Speicherung von Werten verknüpfter Attribute bringt tatsächlich zwei wirklich bedeutende Vorteile mit sich.

Zuerst reduziert das Speichern von nur Vorwärtsverknüpfungswerten und deren Verwendung zur Berechnung der zugehörigen Rückwärtsverknüpfungswerte die Größe der Active Directory database.

Ein anderer wichtiger Vorteil, der etwas weniger offensichtlich ist, ergibt sich aus der Tatsache, dass Active Directory jede Zuordnung einzeln speichert. Da jede Verknüpfung eines Vorwärtslinks ihre eigene Eintragung in der link_table hat, kann jeder Eintrag seine eigene Update Sequence Number (USN) beibehalten. Dieses Verhalten wird Linked Value Replication (LVR) genannt und ermöglicht es Active Directory, jede einzelne Zuordnung unabhängig zu replizieren. Wenn Sie beispielsweise einen Benutzer zu einer Gruppe mit 100 bestehenden Mitgliedern hinzufügen, wird nur der Eintrag für den neu hinzugefügten Benutzer repliziert. Dies kann das Volumen der Replikation, das notwendig ist, um Änderungen an verknüpften Attributen zu verbreiten, erheblich reduzieren.

Bonusfakt

Bevor ich all dies abschließe, gibt es ein weiteres Verhalten, das erwähnenswert ist: Verknüpfte Attributwerte werden von gelöschten Objekten entfernt, es sei denn, der AD Recycle Bin ist aktiviert. Wenn ein Objekt, das ein verknüpftes Attribut hat, gelöscht wird, obwohl Active Directory das Objekt selbst für eine Zeit als Tombstone beibehält, werden auch die zugehörigen Einträge in der link_table gelöscht. Die Aktivierung des Active Directory Recycle Bin ändert dieses Verhalten und behält die zugehörigen link_table-Einträge für die Dauer der Tombstone-Periode des gelöschten Objekts bei.

Fazit

Da mit Active Directory verknüpfte Attribute anders gespeichert werden als andere Active Directory-Attribute, verhalten sie sich auch anders. Dies gilt insbesondere für Rückverweisattribute. Wenn Sie nur eine Sache aus diesem Artikel mitnehmen, muss es die Tatsache sein, dass Rückverweise konstruierte Attribute sind — ihre Werte werden nicht direkt gespeichert und verhalten sich daher wirklich überhaupt nicht wie andere Attribute, insbesondere in Bezug auf Aktualisierungen. Active Directory verbirgt im Allgemeinen seine Backend-Verhaltensweisen sehr gut, um eine konsistente Benutzererfahrung zu gewährleisten, aber das Verständnis dieser zugrunde liegenden Unterschiede über Attribute und deren Konsequenzen kann Probleme verhindern.

Wie Netwrix helfen kann

Sichern Sie Ihr Active Directory von Anfang bis Ende mit der Netwrix Active Directory security solution. Dadurch wird es Ihnen ermöglicht:

  • Decken Sie Sicherheitsrisiken in Active Directory auf und priorisieren Sie Ihre Minderungsmaßnahmen.
  • Verstärken Sie die Sicherheitskonfigurationen in Ihrer IT-Infrastruktur.
  • Erkennen und enthalten Sie selbst fortgeschrittene Bedrohungen, wie DCSync und Golden Ticket Angriffe, umgehend.
  • Reagieren Sie sofort auf bekannte Bedrohungen mit automatisierten Antwortoptionen.

Minimieren Sie Geschäftsunterbrechungen mit schneller Active Directory-Wiederherstellung.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Joe Dibley

Sicherheitsforscher

Security Researcher bei Netwrix und Mitglied des Netwrix Security Research Teams. Joe ist ein Experte für Active Directory, Windows und eine Vielzahl von Unternehmenssoftwareplattformen und -technologien. Joe erforscht neue Sicherheitsrisiken, komplexe Angriffstechniken sowie zugehörige Milderungs- und Erkennungsmaßnahmen.