Es ist weithin unbekannt, dass Active Directory bereits seit Windows Server 2003 eine Funktion unterstützt, mit der sich “Dynamic Objects” erzeugen lassen. Diese Microsoft-Erfindung ist als RFC auch für andere Verzeichnisdienste spezifiziert:
[RFC 2589 – Lightweight Directory Access Protocol (v3): Extension (RFC2589)]
http://www.faqs.org/rfcs/rfc2589.html
Dynamische Objekte decken spezielle Anforderungen ab, in denen Einträge in einem LDAP-Verzeichnisdienst nur für kurze, nicht immer vorhersagbare Zeiträume existieren dürfen. Ein dynamisches Objekt erhält bei seiner Erzeugung einen TTL-Eintrag (Time to Live), nach dessen Ablauf es automatisch verschwindet. Im Gegensatz zu normalen Löschvorgängen geschieht dies nicht ausdrücklich, sondern von selbst – und das entfernte Objekt wird im Fall von Active Directory nicht in einen “Tombstone” verwandelt, es hinterlässt also keine Spuren im Verzeichnis. Stattdessen ist jeder Domänencontroller selbst dafür zuständig, das abgelaufene Objekt einfach sang- und klanglos zu löschen.
Die TTL eines dynamischen Objekts kann während seiner Lebenszeit verlängert werden. Dies können Applikationen nutzen, um die Gültigkeit eines Eintrags bei Bedarf zu verlängern. Tatsächlich ist der eigentliche Einsatzzweck von Dynamic Objects auch ihre Nutzung durch Applikationen. Es steckt allerdings einiges dahinter, was einige Quellen näher beleuchten.
Auf Florian Frommherz’ Blog gibt es einen Artikel, der das Konzept von Dynamic Objects auf Benutzerobjekte anwendet. Zwar ist es eigentlich nicht dafür entworfen worden, aber es funktioniert tatsächlich.
[Florian’s Blog » Creating dynamic objects with Active Directory]
http://www.frickelsoft.net/blog/?p=282
Ein anderer Blog-Eintrag eines Microsoft-Mitarbeiters beschreibt, warum die ursprüngliche Implementierung in Windows Server 2003 fehlerhaft war und warum sie mit dem Service Pack 1 geändert wurde. Diese Änderung hat in der Folge dazu geführt, dass einzelne Drittanbieter-Applikationen nicht mehr funktionierten, doch aus der Argumentation wird deutlich, warum sich dies nicht vermeiden ließ.
[When is it "by design" — a tale of a dynamicObject ( yet another post SP1 change ) – Spat’s WebLog (Steve Patrick)]
http://blogs.msdn.com/b/spatdsg/archive/2006/06/14/630435.aspx
In einigen Vorträgen der Security-MVP Paula Januszkiewicz aus Warschau ist zu sehen, wie gefährlich die fehlerhafte ursprüngliche Implementierung von Dynamic Objects war. Sie ließ sich für Angriffe verwenden, die kaum rechtzeitig zu erkennen und noch schwieriger abzuwenden waren.
[entryTTL Demo from TechEd North America 2011 – Paula’s Security Blog]
http://blogs.technet.com/b/plwit/archive/2011/05/23/entryttl-demo-from-teched-north-america-2011.aspx
[10 Deadly Sins of Administrators about Windows Security (engl.) | TechDay@ice:2011]
http://technet.microsoft.com/de-de/edge/10-deadly-sins-of-administrators-about-windows-security-engl-techday-ice-2011
http://faq-o-matic.net/?p=3483