Bundesamt für Sicherheit in der Informationstechnik

Microsoft Windows Script

Der allgemeine Begriff "Microsoft Windows Script" definiert eine Umgebung, welche auf Microsoft Windows-Betriebssystemen seit Windows 98 zur Skripterstellung und -ausführung eingesetzt wird. Seit der Betriebssystem-Version Windows XP ist die Version 5.6 von Microsoft Windows Script enthalten. Bei älteren Betriebssystem-Versionen wird die Windows Script-Umgebung aktualisiert, sobald ein neuerer Internet Explorer installiert wird.

Bestandteil der aktuellen Microsoft Windows Script Version sind folgende Skriptmodule:

  • Visual Basic Scripting Edition (VBScript)
  • JScript
  • Windows Script Components
  • Windows Script Runtime
  • Windows Script Host

Die ersten beiden Module bezeichnen die Skript-Engines für die Skriptsprachen VBScript und JScript. Eine Skript-Engine übersetzt den Skriptcode in Maschinensprache, so dass die Anweisungen richtig ausgeführt werden. Sie wird von einem so genannten Scripting Host angestoßen. Im Falle eines in einer HTML-Seite eingebetteten Skripts bildet der Browser den Scripting Host. Der Internet Explorer lieferte den ersten Scripting Host für VBScript und JScript. Inzwischen setzt Microsoft Scripting Hosts in immer mehr Produkten ein, vor allem in Produkten ihrer Enterprise–Server-Reihe, wozu beispielsweise der SQLServer oder der Exchange Server zählen.

Microsoft Windows Script Components bieten eine Methode zur Erstellung von COM-Komponenten unter Verwendung von Skriptsprachen. COM-Komponenten sind Programm-Module, die nach dem Component Object Model (COM) entwickelt wurden. Das Component Object Model ist eine von Microsoft entwickelte Software-Architektur, um die Kommunikation zwischen Programmen zu regeln. Mit einer 2COM-Komponente werden häufig wiederkehrende Funktionen in einem Modul zusammengefasst. Diese Funktionen können so von anderen Programmen über die 2COM-Technologie aufgerufen werden und müssen nicht für jeden Anwendungszweck neu programmiert werden.
Die Windows Script Runtime ist eine Laufzeitbibliothek und verwaltet u. a. Dictionary Objects sowie FileSystem Objects und enthält die Software Script-Encoder für Skriptentwickler.
Das Dictionary Object ist ein Objekttyp, in dem Element/Schlüsselpaare gespeichert werden. Dieser Objekttyp ist vergleichbar mit einem Array und kann in Skripten eingesetzt werden, um nicht nur einen Wert (Schlüssel) in einer Variablen, sondern zusätzlich auch eine alternative oder genauere Beschreibung (Element) zu speichern.
Das FileSystem Object wird in Skripten für die Verwaltung von Ordnern und Dateien eingesetzt. Aus Sicherheitsgründen sollten diese Objekte nur lokal verwendet werden, damit ausgeschlossen wird, dass Unbefugte Zugriff auf die lokalen Ressourcen des Anwenderrechners erhalten.
Mit dem Script-Encoder können Skripte sowohl für den serverseitigen als auch für den client-seitigen Einsatz verschlüsselt werden. Im Normalfall liegen Skripte unverschlüsselt vor und sind daher für jeden lesbar. Durch die Verschlüsselung ergeben sich für den Entwickler zwei wesentliche Vorteile. Zum einen wird sein geistiges Eigentum (beispielsweise selbst entwickelte Algorithmen) geschützt. Zum anderen wird die Integrität gewahrt, d. h. eine Manipulation des verschlüsselten Skriptcodes wird sofort erkannt.

Folgendes Beispiel zeigt verschlüsselten JScript-Code innerhalb eine Webseite:

<HTML>
<HEAD>
<TITLE>Script Encoder Beispiel</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//
//**StartEncode*kkWUJtr1DGkW6YP&xDnDP,P~.[+X66Pcr.n.kkWUbxP,P~.~
{'~Jtr1DGkW6YP+ME#@#@&[+X66PcrDDEbIP,P,+M`*#@#@&P,~P9W^Es+UOch
DbO+v/YMq~_,/DDfPQ~kY.c*IP,+sd@#@&~~,P
[W1;s+UDRSDkD+vdYMF~_,/O.yP_,dYM&P3~dYMc*iNz&R @*^#~@
//-->
</SCRIPT>
</HEAD>
</HTML>

Der spezielle Begriff Windows Script Host (WSH) bezeichnet den Scripting Host, der seit Microsoft Windows 98 in Microsoft Windows Betriebssystemen integriert ist und dort ausgeführt wird. Einige der Grundfunktionen des WSH sind:

  • Zugriff auf Netzwerke
  • Steuerung von Anwendungen
  • Bearbeitung der Systemregistrierung
  • Signieren von Skripten

Sicherheitsmodell von Windows Script

Der Windows Script Host verfügt seit der Version 5.6 über ein neues Sicherheitsmodell. So können beispielsweise Skriptbenutzer die Echtheit von Skripten überprüfen. Entwicklern stehen Software-Werkzeuge zur Verfügung, mit denen u. a. digitale Signaturen in Skriptdateien mit der Endung *.js und *.vbs erstellt und geprüft werden.

Gefahren und Risiken im Zusammenhang mit Windows Script

Der WSH birgt jedoch auch Risiken. Beispielsweise ist es durch die Skriptfunktion möglich, mit im Internet Explorer aufgerufenen Webseiten über das Internet auf den lokalen Rechner des Anwenders zuzugreifen und Daten zu manipulieren. Auch werden von fremder Seite häufig Programmfehler sowie manchmal auch Features im WSH ausgenutzt, um Würmer und Viren zu verbreiten.

So kann beispielsweise die standardmäßige Ausblendung bekannter Dateiendungen dazu führen, dass der Anwender einen vermeintlich ungefährlichen E-Mail-Anhang öffnet. Es können Anhänge mit der VBScript-Endung *.jpg.vbs wie ein harmloses Bild mit der Endung *.jpg beim Anwender erscheinen. Beim Doppelklick auf den Anhang wird das VBScript ausgeführt. Wenn der Programmierer sich Mühe gegeben hat, wird zusätzlich noch das erwartete Bild zur Verschleierung der Tätigkeiten im Hintergrund angezeigt.