Killbit
Das Killbit (auch bekannt als Kill-Bit oder Kill Bit) ist ein Eintrag in der Windows-Registrierungsdatenbank, der die Aktivierung von Software-Teilen (COM-Komponenten, insbesondere ActiveX-Elemente) mit Sicherheitslücken verhindern soll. Das Killbit unterstützt eine Methode der Softwaretechnik, die in Microsoft-Betriebssystemen (insbesondere MSHTML) eingeführt wurde.
Abgrenzung
Das Killbit ist kein Bit, sondern wird durch einen 4-Oktett großen Wert mit dem Namen "Compatibility Flags" und dem Datentyp REG_DWORD in der Windows-Registrierungsdatenbank repräsentiert.[1]
Anwendung und Wirkungsweise
Eine Software kann die dahinterstehende Methode unterstützen, in dem die Instanzierung bzw. Ausführung von COM-Komponenten trotz anderweitiger Anforderung verhindert wird, wenn folgende Bedingungen erfüllt sind:
- Es existiert ein Eintrag in der Windows-Registrierungsdatenbank mit einem Pfad, der folgenden Aufbau hat[1]
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID[1]
- Im Falle von 64-Bit-Betriebssystem auch
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID[1]
- Wobei CLSID für die Identifikationsnummer der Komponente steht.
- Unter diesem Pfad ist der Wert "Compatibility Flags" auf 0x00000400 gesetzt.[1]
Software die das Killbit unterstützt
- MSHTML (HTAs ausgenommen)[1]
- Microsoft Office[1]
- Internet Explorer[1]
Beispiel
Das ActiveX-Control mit der CLSID {73BCFD0F-0DAA-4B21-B709-2A8D9D9C692A} hat einen Eintrag "Compatibility Flags" in der Windows-Registrierungsdatenbank mit dem Wert 0x00000400. Siehe Bild rechts. Da der Internet Explorer diese Methode unterstützt, wird dieses ActiveX-Control nicht ausgeführt, auch dann nicht, wenn das ActiveX-Control in einer adressierten HTML-Datei (nicht zu verwechseln mit HTAs) eingebettet ist.
Lösung für gesperrte Komponenten
Liefert ein Entwickler eine neue, korrigierte Fassung seiner durch ein Killbit gesperrten Active-X-Komponente aus, muss er dieser eine neue CLSID geben. Damit Webseiten und Anwendungen nun diese neue Version verwenden, obwohl sie nur die alte CLSID kennen, kommt das sogenannte Phoenix-Bit zum Einsatz. Dabei handelt es sich um einen weiteren Registry-Eintrag an gleicher Stelle, der eine alternative CLSID für die gesperrte Komponente festlegt – die CLSID der neuen Version. In diesem Registry-Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Active-X Compatibility\<CLSID> sind die Einträge für das Killbit ("Compatibility Flags = 0x00000400 (1024)") und das Phoenix-Bit ("AlternateCLSID = <neue CLSID>") enthalten[2].