Erstellen eines eigenen Security Templates

 

 

Es gibt 2 Möglichkeiten ein eigenes Security Template herzustellen.

 

a)      Manipulation und Anwendung eines vorhandenen Templates

b)      Erstellung zusätzlicher Sicherheitsrichtlinien, die nicht in der Vorlage vorhanden sind

c)       Syntax – Security Template

 

 

 

Manipulation und Anwendung eines vorhandenen Templates

 

Die erste Möglichkeit ist in der Form kein echtes „eigenes“ Template, da man nur die vorhandenen Richtlinien übernimmt und diese nach eigenen Wünschen anpasst.

Wie wir schon erfahren haben stellt Microsoft selber hierfür schon 5 grundlegende Vorschläge vor. Aber auch andere Anbieter, wie zum Beispiel die NSA (ja genau die …) haben ihre eigenen Vorstellungen, wie ein System abzusichern ist.

 

Wer mal Lust hat zu erfahren, wie die NSA vorgeht und was sie einstellt, um ein System als „Sicher“ zu definieren, der kann sich bei der NSA direkt die Security Templates herunterladen. http://nsa2.www.conxion.com/win2k/download.htm Ebenfalls auf der Seite findet man ca. 20 verschiedene Security Guides, die auch als Komplettpaket „Windows 2000 Security Recommendation Guides - Zipped Archive“ heruntergeladen werden können. Es lohnt sich auf jeden Fall dort mal einen Blick hineininzuwerfen.

 

1.       Aufruf einer MMC und Integration der Snap-Ins „Sicherheitskonfiguration und Analyse“ und „Sicherheitsvorlagen“

2.       Unter Sicherheitsvorlagen wird automatisch der Pfad %systemroot%\Security\Templates  eingelesen und die von MS mitgelieferten Templates werden angezeigt. Durch diese kann man sich durchhangeln, wie in der Sicherheitsrichtlinien selber und sich die gesetzten Werte anzeigen lassen. Es ist natürlich auch möglich einen weiteren „Suchpfad“ für eigene Templates zu definieren. Hier im Beispiel, die der NSA

 

 

 

 

3.       Innerhalb dieser Suchpfade lässt sich nun eine neue Vorlage über das Kontext Menü definieren, der man einen eigenen Namen und evtl, auch eine Beschreibung gibt. Diese Blanko-Vorlage ist aktuell an keiner Stelle konfiguriert. Diese kann man jetzt nach eigenem ermessen und eigenen Vorstellungen von Sicherheit konfigurieren. Wenn die Konfiguration abgeschlossen ist, kann die Vorlage gespeichert werden und dann ggfs. Über Sicherheitskonfiguration und Analyse angewendet werden.
Schaut man sich den Inhalt der eigenen INF Datei an, so wird man feststellen, dass nur die Einträge erstellt wurden, die beeinflusst werden. Ich habe in dieser Vorlage mal grundsätzlich das Gastkonto Deaktiviert. Das ist zwar die Default Einstellung, aber wenn es mal jemand an seinem Rechner aktiviert haben sollte, so kann ist dieses über die Richtlinie Rückgängig machen. Zusätzlich soll das Herunterfahren des Systems ohne Anmeldung möglich sein.

 

 

 

Die gespeicherte INF Datei zeigt folgenden Inhalt:

----- schnipp -----

[Unicode]

Unicode=yes

[Version]

signature="$CHICAGO$"

Revision=1

[System Access]

EnableGuestAccount = 0

[Registry Values]

MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ShutdownWithoutLogon=4,1

----- schnapp -----

 

In der letzten Zeile ist schon mal ein Teil der Syntax zu erkennen, um den wir uns später kümmern, wenn wir die Vorlage um eigene Registry Werte erweitern.

 

4.       Die „Meine Eigene.inf“ kann jetzt über das Kontext Menü von „Sicherheitskonfiguration und -Analyse“ importiert werden. Bei der erstmaligen Ausführung muss erst noch eine neue Datenbank erstellt werden, in die das System die aktuellen Einstellungen speichern kann, Name und Pfad können frei gewählt werden. Danach wird man gefragt, welche Vorlage man importieren möchte => „Meine Eigene.inf“

 

 

 

5.       Anschliessend kann über den Punkt „Computer jetzt analysieren“ und „Computer jetzt konfigurieren“ die Einstellung der Vorlage erst mit der des aktuellen Systems verglichen werden und dann direkt angewendet werden. Aber ACHTUNG! Die Änderungen durch „Computer jetzt konfigurieren“ kommen wie der Name schon sagt DIREKT zur Anwendung.

 

6.       Die so erstellte Vorlage kann natürlich auch anstelle des lokalen Computers auf der Domäne oder eine OU eingesetzt werden.

 

·   Öffnen der gewünschten Gruppenrichtlinie

·   Computerkonfiguration

·   Windows-Einstellungen

·   Sicherheitseinstellungen

·   Kontextmenü -> Richtlinie importieren

 

 

 

 

 

Erstellung zusätzlicher Sicherheitsrichtlinien, die nicht in der Vorlage vorhanden sind

 

Alle Sicherheitsrichtlinien benutzen die sceregvl.inf aus %systemroot%\inf als Grundlage. Diese Datei ist abhängig von der scecli.dll (die einigen evtl. aus dem Eventlog als Quelle bekannt ist … ) Sobald die scecli.dll registriert wird, oder in unserem Fall neu registriert wird, wird die Datei eingelesen und die dort eingetragenen Richtlinien stehen ab sofort in jeder Richtlinie zur Verfügung. Also, als erstes: sceregvl.inf sichern und an einen sicheren Ort verfrachten J

 

Vorgehen:

·         öffnen der sceregvl.inf mit einem beliebigen Editor

·         Eintrag der neuen Richtlinie, speichern der Datei

·         Start -> Ausführen -> regsvr32 scecli.dl

·         Fertig …

 

Hört sich einfach an, ist es als solches auch, wenn da nicht die Syntax der INF Datei wäre …

 

 

 

Syntax – Security Template

 

Anlehnung an folgende Artikel:
http://support.microsoft.com/?kbid=214752
http://www.shavlik.com/Whitepapers/ Customizing%20Microsoft%20Security%20Templates.pdf

Zur Erklärung der Syntax nehmen wir uns ein Beispiel zum Beispiel als Beispiel
J

 

Ziel: Umbenennung des Arbeitsplatzes auf dem Desktop in %computername%, könnte auch in %username%, oder „%username% @ %computername%“ geändert werden, sobald die Richtlinie integriert ist. Vorweg sei gesagt, dass man leider keine Hilfetexte oder Anmerkungen wie bei den ADM Templates hinzufügen kann. Man sollte also in diesem Beipiel wissen, was man einzustellen hat. Zulässig ist jeder Text und jede Variable.

 

Relevanter Registry Value und Pfad:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}]

"LocalizedString"="@C:\\WINNT\\system32\\shell32.dll,-9216@1031,Arbeitsplatz"

 

Das ist der aktuelle Wert und ist ein REG_SZ. Damit wir hinterher auch mit Variablen arbeiten können, ändern wir ihn in der Vorlage zu einem REG_EXPAND_SZ.

 

-          öffnen der sceregvl.inf und navigieren zum Ende des Abschnitts: [Register Registry Values]

-          einfügen der Zeile vor dem Eintrag: ; delete these values from the UI
womit schon erklärt wäre, wie man die Richtlinie wieder löscht … Eintrag unterhalb von ;delete these …

Letzte Zeile in der Datei, Syntax der Zeile, farblich differenziert:
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ScRemoveOption,1,%ScRemove%,3,0|%ScRemove0%,1|%ScRemove1%,2|%ScRemove2%

Durch „Kommas“ von einander getrennt sehen wir dort:
RegistryPath, RegistryType, DisplayName, DisplayType, Options 1,2 und 3

-          Da wir in unserem Beispiel keine Optionen haben, die wir verwenden können, sondern wir Variablen als String verwenden, sieht unsere Zeile wie folgt aus:
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2


RegistryPath:
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2

Gibt den vollständigen Pfad in der Registry inklusive des Valuenames an. Es sei noch ma erwähnt, dass nur der Bereich HKEY_LOCAL_MACHINE angegeben werden kann, ersetzt durch das Keyword MACHINE.


RegistryType:
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2

1 - REG_SZ
2 - REG_EXPAND_SZ
3 - REG_BINARY
4 - REG_DWORD
7 - REG_MULTI_SZ


Displayname:
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2

Verhält sich genauso wie der STRINGS Abschnitt im ADM Template. Ist nicht unbedingt nötig, macht aber die Umstellung von deutsch auf englisch oder jede andere Sprache wesentlich leichter. %lstring% Könnte auch direkt als Text angegeben werden. Nur macht es die Arbeit mit Variablen einfacher, da a) die Zeile nicht extrem lang wird und b) es den Austausch leichter macht.

[Strings]
lstring = Arbeitsplatz umbenennen


Displaytype:
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2

0
- Boolean: Veranlasst die Benutzeroberfläche dazu, zwei Optionsfelder anzuzeigen, um den Registrierungswert zu "Aktivieren" oder zu "Deaktivieren". Wenn "Aktiviert" ausgewählt ist, wird der Registrierungswert auf 1 gesetzt. Wenn "Deaktiviert" ausgewählt ist, wird der Registrierungswert auf 0 gesetzt.
 



1 - Numerisch: Veranlasst die Benutzeroberfläche, ein Drehfeld-Steuerelement anzuzeigen, in dem der Benutzer einen numerischen Wert im Bereich von 0 bis 99999 eingeben oder auswählen kann. Numerische Anzeigetypen können "Einheiten"-Zeichenfolgen wie "Minuten" oder "Sekunden" angeben, die neben dem Drehfeld-Steuerelement in der Benutzeroberfläche erscheinen. Diese "Einheiten"-Zeichenfolgen werden im Feld "Options" definiert, das nachfolgend beschrieben ist. Der Registrierungswert wird auf die Zahl gesetzt, die vom Benutzer eingegeben wurde.



 
2 - Zeichenfolge: Veranlasst die Benutzeroberfläche, ein Textfeld anzuzeigen. Der Registrierungswert wird auf die Zeichenfolge gesetzt, die vom Benutzer eingegeben wurde.



 
3 - Liste: Veranlasst die Benutzeroberfläche, ein Listenfeld anzuzeigen, in dem der Benutzer eine von mehreren Optionen wählen kann. Der Registrierungswert wird auf den numerischen Wert gesetzt, der der vom Benutzer gewählten Option zugeordnet ist. Diese Optionen werden im Feld "Options" definiert, das nachfolgend beschrieben ist.



 
4 - Mehrwertig (nur in Windows XP verfügbar): Veranlasst die Benutzeroberfläche, ein mehrzeiliges Bearbeitungssteuerelement anzuzeigen, in dem der Benutzer mehrere Zeilen Text eingeben kann. Dieser Anzeigetyp sollte zum Definieren von Werten für MULTI_SZ-Typen verwendet werden. Der Registrierungswert wird auf die Zeichenfolgen gesetzt, die vom Benutzer eingegeben wurden. Die einzelnen Zeilen werden durch ein NULL-Byte getrennt.




5 - Bitmaske (nur in Windows XP verfügbar): Veranlasst die Benutzeroberfläche, eine Reihe von Kontrollkästchen anzuzeigen. Jedes Kontrollkästchen entspricht dabei einem numerischen Wert, der im Feld "Options", wie nachfolgend beschrieben, definiert wird. Der Registrierungswert wird auf das bitweise ODER der ausgewählten Werte gesetzt.






Options:

In unseren Fall nicht vorhanden, aber die möglichen Optionen werden, per Komma von einander getrennt und der Wert, der in die Registry eingetragen wird, wird der Option vorangestellt und mit einer | (Pipe) vom angezeigten Namen separiert. Siehe Beispiel der SmartcardOptionen direkt in der Zeile darüber:
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ScRemoveOption,1,%ScRemove%,3,0|%ScRemove0%,1|%ScRemove1%,2|%ScRemove2%

Anhand des gewählten DisplayTypes haben die Optionen unterschiedliche Auswirkungen
Wenn DisplayType = 1 (Numerisch), enthält das Feld "Options" möglicherweise eine Zeichenfolge, die die Einheiten für den numerischen Wert definiert. Die Einheitenzeichenfolge wird neben dem Drehfeld-Steuerelement in der Benutzeroberfläche angezeigt. Diese Zeichenfolge hat keine Auswirkung auf den in der Registrierung festgelegten Wert.
Wenn DisplayType = 3 (Liste), definiert das Feld "Options" die Listenoptionen, die dem Benutzer zur Verfügung stehen. Jede Option besteht aus einem numerischen Wert, der durch ein Pipe-Zeichen '|' von dem Text für die Auswahl getrennt ist. Der Registrierungswert wird auf den numerischen Wert gesetzt, der der vom Benutzer gewählten Option zugeordnet ist.
Wenn DisplayType = 5  (Bitmaske), definiert das Feld "Options" die Auswahlmöglichkeiten, die dem Benutzer zur Verfügung stehen. Jede Auswahl besteht aus einem numerischen Wert, der durch ein Pipe-Zeichen '|' von dem Text für die Auswahl getrennt ist. Der Registrierungswert wird auf das bitweise ODER der vom Benutzer gewählten Auswahlmöglichkeiten gesetzt.

-          Unsere angepasste Datei sollte jetzt folgende Zeilen extra enthalten

[Register Registry Values]
MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedString,2,%lstring%,2

[Strings]
lstring= Arbeitsplatz umbenennen

-          Nach erfolgter Änderung der sceregvl.inf muss diese jetzt nur noch erneut eingelesen und registriert werden.

Start -> Ausführen -> regsvr32 scecli.dl

-          Unsere Richtlinie finden wir in den Sicherheitsoptionen wieder:



(c) 2003 - heute, Mark Heitbrink, weitere Informationen unter WebSite-Info\Copyright