2013-01-29 Übersetzung aus dem Englischen, 2012-01-26 neuester Inhalt, 2012-01-26 letztes Update, 2011-07-05 Ersttag, Robert Jasiek

Sicherheitskonzept für Windows

Vorwort

Dies ist ein Sicherheitskonzept für einen einzelnen PC für private und Internet-Aktivitäten unter Vista, Windows 7 und eventuell späteren Windows-Versionen. Es stützt sich auf die Trennung von privaten Daten, Windows-Benutzerkonten, Zugriffsrechten, Software Restriction Policies (Software-Regeln), Integrity Levels (Integritätsstufen, Windows-Deutsch: Verbindlichkeitsstufen) und Prüfsummen. Die meisten von ihnen können durch inhärente Windows-Eigenschaften erreicht werden. Die Methoden sind einfach und effektiv zugleich. Seltsamerweise sind sie kaum jemals als Kombination erwähnt oder beschrieben worden. Diese Seite soll diese Lücke füllen. Es gibt nur einen nennenswerten Nachteil: Eine gute visuelle Darstellung der Methoden existiert noch nicht.

Ziele

Das Konzept soll Folgendes erreichen:
* Der Schutz der Privatsphäre der Daten des PC-Benutzers: Nur der PC-Benutzer oder das Betriebssystem darf und kann seine eigenen Daten zu sehen.
* Der Schutz der Integrität der entscheidenden Dateien und Ordner des PCs: Sie dürfen und können nur auf Verlangen des PC-Benutzers oder des Betriebssystems verändert werden.
* Der Schutz vor Malware: Malware darf und kann nicht ausgeführt werden.

100% Sicherheit kann allerdings nicht erreicht werden, da z.B. eine zu große Komplexität des Betriebssystems zu Fehlern führt. Deshalb kann man nur versuchen, die Ziele bestmöglich zu erreichen. Somit ist Sicherheit immer relativ.

Die Trennung von privaten Daten

Partitionen

Auf der Festplatte sollten diese drei Datentypen voneinander getrennt werden:
Diese Trennung kann vom physikalischen Ort ausgehen. Jeder Datentyp erhält seine eigene Partition. Deshalb erstellt man die drei Partitionen C:, D: und E:.

C: Systemdaten Windows, Programme
D: mit dem Internet interagierende Daten Downloads, Uploads, Email-Posteingang und -ausgang,...
E: private Daten alle Ordner mit den privaten Daten

Dies ist ein Modell. Sie können es 1:1 übernehmen oder Sie erstellen, falls erforderlich, weitere Partitionen für weitere Zwecke.

Ordner für mit dem Internet interagierende Daten

Erstellen Sie diese Ordner auf D:.

\Downloads Speichern Sie alle heruntergeladenen Dateien aus Ihrem Browser oder Newsreader hier ab.
\Uploads Kopieren Sie die hochzuladenden oder an Emails anzuhängenden Dateien hier.
\Emails Hier speichert Ihr Email-Programm seine Postein- und -ausgänge ab.
\News Hier speichert Ihr Newsreader seine Messageausgänge ab.

Dies ist ein Modell. Sie können es 1:1 übernehmen oder Sie erstellen, falls erforderlich, weitere Ordner  für weitere Zwecke.

Ordner für private Daten

Erstellen Sie diese Ordner auf E:.

\MyDocuments Texte, Tabellen, Datenbanken,...
\MyMusic Musik
\MyPictures Bilder
\MyVideos Videos
\MyWork Dateien zum Beruf oder Studium

Dies ist ein Modell. Sie können es 1:1 anwenden oder andere Namen für Ihre Hauptordner wählen.

Sie werden die Ähnlichkeit zu den Unterordnern von C:\Users\MyUserName (im deutschen Windows heißt es "Benutzer" statt "Users") bemerken. Allerdings gibt es einen wichtigen Unterschied: Sie sind nicht eindeutig von der System-Daten-Partition getrennt. Deshalb benutzen Sie sie nicht. Das Speichern aller privaten Daten auf einer eigenen Partition hat ein sehr großen Vorteil: Backups entweder der Systempartition oder der privaten Daten werden sehr viel einfacher, weil man (mittels Backup) genau das speichern kann, was man will.

Wurzel-Ordner

Schreiben Sie keine Dateien in die Wurzel-Ordner (Root-Verzeichnisse) von D: und E:. Erstellen Sie dort nur Ordner. Speichern Sie alle Ihre Dateien in diesen Ordnern oder deren Unterordnern. Der Grund dafür ist, dass dann die anderen Sicherheitsmittel, die weiter unten erläutert werden, einfacher eingesetzt werden können. Außerdem erhalten Sie eine bessere Struktur Ihrer Daten.

Kopieren privater Daten

Verwenden Sie nicht "Verschieben" ("Ausschneiden und Einfügen") von Daten. Kopieren Sie sie. Kopieren Sie je nachdem, welche Datei(en) Sie benötigen von Ihren privaten Daten auf E: nach D:\Uploads. Erst dann verwenden Sie diese Dateien und ihre Inhalte durch Ihre Internet-Anwendung(en). Danach löschen Sie die verwendete(n) Kopie(n) von D:\Uploads.

Der Zugriff nach außen - von Ihrem PC auf das Internet - ist relativ einfach, da Sicherheit nur wenig Aufmerksamkeit benötigt. Sie befassen sich nur mit den Dateien, von denen Sie schon wissen, dass sie vertrauenswürdig sind.

Verschieben privater Dateien

Die Richtung nach innen - vom Internet zum PC- erfordert sehr viel mehr Aufmerksamkeit, weil neue, nützliche Dateien von Malware unterschieden werden müssen.

All Ihre neuen Dateien sollten den Ordner D:\Downloads passieren. Dateien, die in Ihrem Browser, Newsreader, FTP-Client usw. gespeichert sind, werden direkt in diesem Ordner gespeichert. Ihr Email-Posteingang, -ausgang, und Newsreader-Messageausgang erfordern größere Sorgfalt. Jede Nachricht dort sollte als eine einzelne Textdatei in D:\Downloads gespeichert werden. Dann können Sie die ursprüngliche(n) Nachricht(en) im Trash Ihres Email-Programms oder Newsreaders löschen. Durch dieses Vorgehen erstellen Sie eine Menge neuer Textdateien in D:\Downloads. Geeignet gewählte Namen von Dateien oder Unterordnern können Ihnen dabei sehr helfen.

Nun wollen Sie die Dateien von D:\Downloads in den entsprechenden Ordner mit privaten Daten auf E: verschieben. Dies ist allerdings ein entscheidender Schritt. Es gibt zwei Fälle:

Manche HTML-Dateien kommen mit einem zugeordneten Ordner, der Bilder, JavaScript-Dateien usw. enthält. Nach der Konvertierung der HTML-Datei könnten die JavaScript-Dateien noch existieren. Löschen Sie sie (klicken Sie aber nicht aus Versehen doppelt darauf!).

Es gibt auch Spezialfälle. Ausnahme-Behandlung ist erforderlich, wenn Sie gerade ein neues Programm heruntergeladen haben. Erstellen Sie Backups und einen Systemwiederherstellungspunkt für C:, testen Sie die Anwendung und stellen Sie eventuell den Zustand vor dem Wiederherstellungspunkt wieder her.

Manche Multimedia-Dateiformate sind gefährlich (wie z.B. ein Video in einer EXE-, WMF- oder Flash-Datei), andere nicht (wie z.B. ein Video in einer MPEG-2-Datei). Für die Konvertierung benötigt man spezielle Konvertierungsprogramme. Achten Sie darauf, dass diese nur konvertieren und nicht auch die Original-Datei ausführen. Z.B. könnte eine Vorschau innerhalb des Konvertierungsprogramms bereits eine Ausführung von in der Original-Datei enthaltenen Malware bedeuten. Der sicherste Rat ist: Laden Sie keine Mediendateien irgendwelcher ausführbarer Datei-Formate herunter. Wenn Sie nicht widerstehen können, stellen Sie sicher, dass Sie den Konvertierungsprozess sehr gut verstehen, bevor Sie ihn starten.

Falls Ihr Browser oder ein Addon einen Download ohne Java und JavaScript speichern kann, könnte man denken, dass man die Umwandlung mittels Regulärer Ausdrücke vermeiden könnte. Aber übersehen Sie nicht die anderen gefährlichen Tags wie hidden, input oder form.

Windows-Benutzerkonten

Allgemeines

Ein Windows-Benutzerkonto ist nicht nur ein Login-Name mit persönlichen Preferences für die Desktop-Ansicht. Vielmehr, und was am wichtigsten ist, ist jeder Windows-Benutzer mit Rechten verbunden. Insbesondere alle Rechte, auf welche Partitionen, Ordner und Dateien der Benutzer zugreifen darf und welche Aktionen er auf ihnen ausführen darf. Des Weiteren verwendet Windows zwei Arten von Benutzern: Administratoren und Standardbenutzer. Während Administratoren wichtige Systemeinstellungen und Programm-Installationen in C:\Program Files (C:\Programme) ändern dürfen, dürfen dies Standardbenutzer nicht. Als Konsequenz sollten Administratoren nur für administrative Aufgaben eingesetzt werden, während Standardbenutzer für allen gewöhnlichen Gebrauch von Anwendungen und Internet-Zugriff eingesetzt werden sollten. Malware fällt es sehr viel schwerer Schaden anrichten, wenn man als Standardbenutzer arbeitet, weil sie seine eingeschränkten Rechte erbt. Um Malware-Zugriff auch auf private Daten zu verweigern, ist es notwendig, zwei Standardbenutzer einzurichten. Daher brauchen wir diese drei Windows-Benutzerkonten:

MyAdminUser Administrator administrative Aufgaben niemals online
MyPrivateUser Standardbenutzer Offline-Gebrauch lokaler Anwendungen niemals online
MyInternetUser Standardbenutzer Online-Gebrauch von Internet-Anwendungen darf online sein

Obwohl dies ein Modell ist, ist es ausreichend detailliert für die meisten PC-Nutzer. Falls erforderlich, könnten weitere Windows-Benutzerkonten erstellt werden.

Nach einer Windows-Installation ist der aktive Windows-Benutzer ein Administrator. Geben Sie ihm den Namen MyAdminUser, ein Passwort und starten Sie Windows neu.

Als Nächstes erstellen Sie einen anderen Benutzer namens MyPrivateUser des Typs Standardbenutzer, geben Sie ihm ein Passwort, starten Sie Windows neu, konfigurieren Sie die Einstellungen und Desktop-Ansichten des Benutzers und starten Sie Windows erneut.

Schließlich melden Sie sich als MyAdminUser erneut an und führen das Gleiche für den dritten Benutzer MyInternetUser durch.

Über Zugriffs-Einschränkungen der Benutzerkonten auf Ordner und Programme wird weiter unten eingegangen.

Aufgabenplanung

Bei der Verwendung einer DSL Kabel-Netzwerk-Verbindung kann das Umschalten zwischen offline und online tückisch sein. Die folgende Prozedur ist für die deutsche Windows-Version; bei einer anderen Sprache finden Sie den Windows-Namen Ihrer Netzwerk-Verbindung heraus und ersetzen Sie ihn wo nötig; z.B. wird er in Englisch "Local Area Connection" genannt, aber in Deutsch schreibe man "LAN-Verbindung". Vorgehensweise zur Deaktivierung oder Aktivierung einer Kabel-Netzwerk-Verbindung:

Erstellen Sie einen Ordner <path> und darin zwei Dateien dieser Namen und Einzeiler-Inhalte:

*********************************LANoff.cmd*********************************
netsh interface set interface name="LAN-Verbindung" admin=disabled
*********************************LANoff.cmd/End*****************************

*********************************LANon.cmd**********************************
netsh interface set interface name="LAN-Verbindung" admin=enabled
*********************************LANon.cmd/End******************************

Manueller Einsatz

Aufgabenplanungs-Einsatz

Angenommen MyComputerName sei der Name des Computers, MyAdminUser der Benutzername des Administrators und MyUserName sei der Benutzername eines bestimmten Benutzers.

Anmerkungen

Benutzer-Zugriffsrechte

Einführung

Die Zugriffsrechte einer Partition, eines Ordners oder einer Datei sind die Rechte je einzelnem Windows-Benutzer, ob und gegebenenfalls durch welche Aktionen er darauf zugreifen darf. Im Windows Explorer, rechtsklicke auf eine Partition, einen Ordner oder eine Datei, wähle Eigenschaften und wähle dann Sicherheit. Dort können die Benutzer und ihre Rechte bearbeitet werden. Die Standard-Rechte (Vollzugriff, Auszuführen, Ordner-Inhalte anzeigen, Lesen und Schreiben) genügen; die erweiterten Rechte zu bearbeiten ist nicht zu empfehlen, da dies mehr Verwirrung und Nebenwirkungen erzeugt, als dass es hälfe. Als Standardeinstellung werden für einen Ordner gesetzte Benutzer-Zugriffsrechte an all dessen aktuelle und künftige Dateien, Unterordner und darin enthaltene Dateien vererbt. Für unsere Partitionen D: und E: sollte dieser Standard immer verwendet werden. Alle Ordner und Dateien auf derselben Partition mit denselben Rechten zu versehen ist einfach und daher leicht zu verstehen und behalten.

Windows hat auch Kommandozeilen-Tools für das Betrachten von Benutzer-Zugriffsrechten: cacls und icacls.

System-Daten

Windows hat schon die Benutzer-Zugriffsrechte von C:\Windows, dessen Unterordnern, C:\Program Files, C:\ProgramData und C:\Users eingeschränkt. Insbesondere dürfen Standardbenutzer nichts in C:\Windows and C:\Program Files schreiben oder löschen. Lassen Sie diese Einstellungen unangetastet. Installieren Sie alle Ihre Programme in C:\Program Files. Wenn dies aus irgendeinem Grund unmöglich sein sollte und eine Software sich unbedingt in ein anderes Verzeichnis installieren will, so geben Sie ihm dieselben Zugriffsrechte wie diejenigen von C:\Program Files. Beachten Sie, dass 64-Bit-Windows auch den Pfad C:\Program Files (x86) verwendet. Im deutschen Windows werden auch die Aliase C:\Programme, C:\Programme (x86) und C:\Benutzer verwendet.

Mit dem Internet interagierende Daten

Für Partition D: setzen Sie folgende Benutzer-Zugriffsrechte und löschen alle anderen generischen Benutzer-Begriffe:

SYSTEM Vollzugriff
Administrators (MyComputerName\Administrators) Vollzugriff
MyAdminUser (MyComputerName\MyAdminUser) Vollzugriff
MyPrivateUser (MyComputerName\MyPrivateUser) Vollzugriff
MyInternetUser (MyComputerName\MyInternetUser) Vollzugriff

Dies bedeutet jedoch nicht, dass Sie in der Praxis Vollzugriff für jeden Benutzer verwenden sollten. Für all den beabsichtigten Gebrauch siehe unter Die Trennung von privaten Daten. Im deutschen Windows heißt es Administratoren statt Administrators.

Eingeschränkte Ausführung von mit dem Internet interagierenden Daten

Obwohl Sie aufgrund der Zugriffsrechte ausführbare Dateien in D: ausführen dürfen, ist die Idee, dass Sie ausführbare Dateien in D: nicht ausführen. Öffnen Sie auch nicht (per Doppelklick) Skript-Dateien wie JAR oder JS, die dann von einem Script-Prozessor wie Ihre Java Runtime Environment oder dem Windows Scripting Host interpretiert würden. Seien Sie sich Ihrer Unvorsicht bewusst und doppelklicken Sie nicht versehentlich auf eine ausführbare Datei. Es ist jedoch unschädlich, nicht-ausführbare Dateien wie TXT oder JPG zu öffnen.

Warum setzen wir die Rechte auf Vollzugriff, obwohl wir eigentlich die Ausführung von ausführbaren Dateien verbieten wollen? Der Grund dafür ist, dass das Windows-Rechte-System nicht so klar definiert ist. Es gibt Lücken und Nebenwirkungen. Eine Lücke besteht darin, dass, selbst wenn die Ausführung von ausführbaren Dateien verboten ist, man noch Script-Dateien ausführen kann, indem man sie in einem entsprechenden Skript-Prozessor öffnet. Ein Nebeneffekt ist, dass das Verbieten des Standard-Rechts des Ausführens auch weitere Rechte verbietet. Ein weiterer Nebeneffekt ist, dass das Verbieten nur des einem Ordner zugeordeten und an seine enthaltenen Dateien vererbte erweiterten Rechts auf Ausführung auch den Zugriff durch den Kommandozeilen-Befehl cd auf den Ordner verbietet. Noch ein weiterer Nebeneffekt ist, dass das Verbieten nur des erweiterten Rechts auf Ausführung auch das Recht auf Synchronisation verbietet. Wahrscheinlich gibt es weitere, noch nicht dokumentierte Nebenwirkungen.

Als Lektion daraus sollte man in Windows nicht versuchen, Benutzer-Zugriffsrechte für das Verbieten der Ausführung von Dateien zu verwenden. Stattdessen soll Ausführung wie folgt verboten werden:

Private Daten

Für Partition E: setzen Sie folgende Benutzer-Zugriffsrechte und löschen alle anderen generischen Benutzer-Begriffe:

SYSTEM Vollzugriff
Administrators (MyComputerName\Administrators) Vollzugriff
MyAdminUser (MyComputerName\MyAdminUser) Vollzugriff
MyPrivateUser (MyComputerName\MyPrivateUser) Vollzugriff

Haben Sie bemerkt, dass MyInternetUser fehlt? Dies ist der Schlüssel, um die Partition E: privat zu machen. Eingeloggt als MyInternetUser ist der Zugriff auf E: verboten. Das können Sie leicht testen: Melden Sie sich als MyInternetUser an und klicken Sie auf E:. Sie werden eine „Zugriff verweigert“-Meldung sehen.. Malware oder Fernzugriffsversuche wären mit demselben Verbot konfrontiert. Mit den Rechten von MyInternetUser dürfen sie weder auf E: zugreifen noch die Benutzer-Zugriffsrechte von E: ändern. (Im deutschen Windows heißt es Administratoren statt Administrators.)

Software Restriction Policies

Einführung

Software Restriction Policies (SRP, Software-Einschränkungsregeln) verbieten die Ausführung von Programmen für bestimmte Windows-Benutzer. Wir verwenden hauptsächlich Whitelisting, das heißt, alle Programme sind verboten außer den explizit erlaubten. Wir setzen SRP für unseren Windows-Benutzer MyInternetUser.

SRP erfordern Vista Business, Ultimate oder Enterprise, Windows 7 Professional, Ultimate oder Enterprise oder ähnliche Versionen von späteren Windows-Editionen. Der Kauf einer entsprechenden Edition lohnt sich, schon damit man SRP einsetzen kann. Bevor Sie sie verwenden, lesen Sie Einführungen zum Thema sehr sorgfältig durch:
Nachdem Sie dies gelesen haben, sind Sie sich nun darüber im Klaren, ein Backup Ihrer Systempartition zu erstellen, wie man mit Group-Policy-Objekten arbeitet, wie man ein Snapin für einen bestimmten Benutzer erstellt, wie man die von Windows vorkonfigurierten Standard-Regeln einfügt, wie man SRP überhaupt aktiviert, wie man gpedit und gpupdate nutzt, wie man Administratoren nicht aussperrt und wie man den LNK-Dateitypen entfernt. Dieses Ihr Wissen wird nunmehr vorausgesetzt.

Zusätzliche Pfadregeln

Erstellen Sie einen SRP-Snapin für MyInternetUser, konfigurieren Sie dessen Grundeinstellungen, dann fügen Sie diese Regeln hinzu, und aktivieren Sie sie:

C:\Program Files Disallowed Whitelisting
C:\Program Files\MyBrowserDir Unrestricted Whitelisting
C:\Program Files\MyEmailClientDir Unrestricted Whitelisting
C:\Program Files\MyNewsreaderDir Unrestricted Whitelisting
C:\Program Files\MyFtpClientDir Unrestricted Whitelisting
C:\Program Files\MyMusicPlayerDir Unrestricted Whitelisting
C:\Program Files\MySpecialHardwareDriverDir Unrestricted Whitelisting
C:\Program Files\MyTrustedJavaApplicationDir Unrestricted Whitelisting
C:\Program Files\MyJavaDir Unrestricted Whitelisting
C:\Windows\System32\runas.exe Disallowed Blacklisting
C:\Windows\System32\cmd.exe Disallowed Blacklisting
C:\Windows\System32\COMMAND.COM Disallowed Blacklisting
C:\Windows\System32\cscript.exe Disallowed Blacklisting
C:\Windows\System32\wscript.exe Disallowed Blacklisting

Im deutschen Windows heißt Disallowed Nicht erlaubt und heißt Unrestricted Nicht eingeschränkt. In 64-Bit-Windows wird eine weitere Disallowed-Regel für C:\Program Files (x86) benötigt und manche von dessen Unterverzeichnissen benötigen Unrestricted. Ähnliche Blacklisting-Regeln sollten für C:\Windows\SysWOW64 hinzugefügt werden. Außerdem kann man erwägen, die Powershell-EXEs zu blacklisten sowie ein paar grundlegende, SRP-unabhängige Gruppenrichtlinien und administrative Vorlagen betreffend Kommandozeile, Ausführung, Registry-Editieren und Programmsuche im Startmenü-Feld.

Beachten Sie, dass dies ein Modell ist. Ihre tatsächlichen Programm-Ordnernamen können sich davon unterscheiden. Wenn Ihre neuen Regeln aktiviert sind, melden Sie sich als MyInternetUser an und bemerken den Effekt: Versuchen Sie, irgendeine Anwendung  (außerhalb C:\Windows) auzuführen, die nicht in Ihrer Whitelist ist. Sie werden eine Windows-Meldung erhalten, das die Ausführung des Programms durch eine Gruppenrichtlinie verboten sei oder eine ähnliche Meldung fürs Doppelklicken auf eine JAR-Datei beispielsweise D:\Downloads: Dasselbe Schicksal widerführe einer Malware.EXE oder NewDownloadedProgram.EXE, welche ihren Weg z.B. nach D:\Downloads gefunden hätten.

Der Disallow-Regel für C:\Program Files setzt die Basis eines Whitelistens der gelisteten Unrestricted-Programmunterordner. Die fünf ausführbaren Dateien in C:\Windows\System32 sind ein Blacklisting, das die vorkonfigurierte Vollzugriff-Regel für %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot% überschreibt. Nun können weder Malware noch Remote-Zugriff die Kommandozeile missbrauchen und eine JS-Datei darf nicht von einem Windows Scripting Host interpretiert werden, solange MyInternetUser der aktuelle Benutzer ist.

Sie sollten anerkennen, wie kurz die Whitelist ist. All Ihre anderen Anwendungen (Office, Grafik, Video, usw.) dürfen durch MyInternetUser nicht ausgeführt werden. Trotzdem sollte man sich zweimal überlegen, ob man wirklich MyTrustedJavaApplication braucht und ob Sie auch MyJavaDir aus der Whitelist nehmen sollten.

Bemerkungen

Windows 7 (Ultimate) oder spätere Versionen beinhalten AppLocker. Die Verwendung von SRP setzt die Nicht-Anwendung von AppLocker voraus, weil Letzteres Vorrang vor Ersterem hat. Allerdings ist die Verwendung von AppLocker statt SRP eine Alternative.

Aus Erfahrung ist diese Prozedur der sicherste Weg zum Vermeiden von Problemen nach dem SRP-Editieren: 1) führen Sie gpupdate aus, 2) starten Sie Windows neu, 3) melden Sie sich als MyAdminUser an, 4) melden Sie sich ab, 5) melden Sie sich als MyInternetUser und testen Sie die Änderungen.

Wenn Sie ein Notebook oder ein Mainboard mit speziellen Hardware-Komponenten haben, so können in den Programm-Verzeichnissen mehrere Treiber und Tools sein, die auch whitezulisten sind.

Normalerweise sollte man nicht versuchen, Blacklisting zu verwenden, weil es eine nie endende Aufgabe ist. Allerdings sind die wenigen Programme in C:\Windows\System32\ zielführende und nützliche Ausnahmen. Viele weitere sollten nicht hinzugefügt werden.

Die Interaktion von SRP und Java Runtime Environment ist schlecht dokumentiert. Das Zulassen von MyJavaDir wegen einer Java-Anwendung ermöglicht es für potenziell alle JAR-Dateien. Dass Testen von JAR-Dateien in D:\Downloads zu einer anderen Windows-Fehler-Meldung geführt hat ist keine Garantie, dass das Verhalten immer dasselbe sein wird. Deshalb ist es sicherer, MyJavaDir nicht unter MyInternetUser zu erlauben.

Browser-Addons, die in Script-Dateien definiert sind (wie jene für Mozilla Firefox) führen zu einem ähnlichen Problem. SRP blockieren zwar EXE-Dateien, aber nicht proprietäre Script-Dateien. Daher sollte man sehr vorsichtig sein mit seinem Vertrauen in Browser-Addons. Die einfachste Lösung ist, keines zu installieren. Jedoch sagen manche, dass ein paar bestimmte Addons wie NoScript ein Sicherheitsgewinn in sich seien. Jeder PC-Benutzer muss sich hier seine eigene Meinung bilden.

Die Programme C:\Windows\explorer.exe (Windows-Explorer), C:\Windows\notepad.exe (einfacher Texteditor) und C:\Windows\System32\calc.exe (einfacher Taschenrechner) dürfen benutzt werden, ohne sie explizit in die Whitelist aufzunehmen, da sie, wie alle Systemprogramme in C:\Windows schon durch die vordefinierte Pfadregel gewhitelistet sind. Dies ist anders für C:\Program Files\Windows NT\Assessories\wordpad.exe (Texteditor mit einfacher Formatierung); Sie müssten ihn whitelisten.

Wenn Sie ein jedes dieser Programm unter MyPrivateUser oder MyInternetUser starten, laufen sie unter dem Integrity Level Medium. Sie könnten es vorziehen, z.B. notepad.exe nach C:\Program Files\MySimpleLowToolsDir zu kopieren, in notepadLOW.exe umzubenennen, dieses Verzeichnis in den SRP whitezulisten, MySimpleLowToolsDir auf CI OI L NW NR NX  zu setzen (siehe weiter unten unter Integrity Levels) und
diese Low-Kopie von notepad.exe nur fürs Betrachten der TXT-Dateien auf D: zu verwenden. Jedoch ist es unmöglich, dem Windows-Explorer die Ebene Low zuzuweisen, weil er auch als Shell dient und die anderen Anwendungen verwaltet, welche vom Benutzer als Child-Prozesse gestartet werden.

Selbstverständlich können Sie Monitoring-Tools für MyInternetUser installieren, müssen sie aber auch whitelisten.

Da im Prinzip eine Anwendung, die sowohl unter MyPrivateUser als auch unter MyInternetUser verwendet wird, Informationen sammeln könnte, wenn sie unter MyPrivateUser läuft, und sie senden könnte, wenn wenn sie unter MyInternetUser läuft, können Sie die Sicherheit weiter erhöhen, indem Sie alle Ihre Internet-Anwendungen nur unter MyInternetUser ausführen lassen. Dies ist relativ einfach für E-Mail-und FTP-Clients und Newsreader, aber Sie könnten weitere Anwendungen wie einen HTML-Reader (oder einen anderen Browser für diesen Zweck) nur unter MyPrivateUser nutzen wollen.

SRPs haben auch unglückliche Einschränkungen. Z.B. kann man nicht Ressourcen wie Ordner, Dateien und Registry-Schlüssel auf einer Per-Anwendung-Basis assoziieren. Manche multiplen Sandboxen wie Geswall versprechen das zu tun, jedoch überzeugt bisher keine davon unter Windows. Allerdings wäre es großartig, eine künftige Windows-Version mit diesem Feature zu sehen. Derzeit besteht die Gefahr, dass Anwendung A in die Dateien von Anwendung B schreibt usw. Eine weitere Lösung in der Zukunft wäre die Idee expliziter Zugriffsrechte für jede Anwendung, ganz so wie bei Benutzerzugriffsrechten.

Wenn Sie einen nicht-administrativen ProcessExplorer von Sysinternals unter 64-bit-Windows starten, kann es eine 64-Bit-Programm-Kopie C:\Users\MyUserName\AppData\Local\Temp\procexp64.exe erstellen. Da das Whitelisten des \Temp-Verzeichnisses eine schlechte Idee wäre (auch Malware kann dieses Verzeichnis verwenden), sollte ein Whitelisting-Hashregel für procexp64.exe hinzugefügt werden. Manche anderen Programme können auch Helfer-Executables an unerwarteten Orten haben; auch sie müssen geortet und möglicherweise geregelt werden.

Integrity Levels

Einführung

Vista hat den neuen, verbindlichen Sicherheitsmechanismus der Integrity Levels eingeführt, den auch spätere Windows-Versionen verwenden. Es gibt diese Ebenen und Flags:

TrustedInstaller möglicherweise verwendet von TrustedInstaller.exe, aber undokumentiert
System Systemprozesse
High H wichtige Administratorprozesse
Medium M Default; verwendet für gewöhnliche Anwendungen, Ordner und Dateien
Low L Internetanwendungen und die von ihnen zugegriffenen Ordner und Dateien
Untrusted im Wesentlichen undokumentiert

Die Grundidee ist, dass eine Anwendung auf einer bestimmten Ebene keinen Zugriff auf irgendwelche Ordner oder Dateien auf irgendeiner höheren Ebene haben darf. Es gibt diese drei Typen möglicherweise verbotenen, höheren Zugriffs mit ihren Kommandozeilenflags:

NoWriteUp NW Schreiben auf einer höheren Ebene ist verboten
NoReadUp NR Lesen auf einer höheren Ebene ist verboten
NoExecuteUp NX Ausführen auf einer höheren Ebene ist verboten

NoWriteUp alleine gesetzt ist der Default.

Darüber hinaus unterscheidet man zwischen Containern und Objekten und ob ein Container auch vererbt an alle unterhalb befindlichen Container (CI) oder alle Objekte (OI).

Container kann Container oder Objekte enthalten CI vererbt an alle unterhalb befindlichen Container
Objekt enthält keine Container oder Objekte OI vererbt an alle unterhalb befindlichen Objekte

Beachte den Tippfehler IO; es hat eine andere Bedeutung: nur vererben. Wir benutzen es nicht.

Es existieren verschiedene Arten von Containern und Objekten, welche ein explizites oder geerbtes Integrity Level tragen: Prozesse, Registry-Schlüssel usw. Wir sind nur an Ordnern (eine Art von Containern) und Dateien (eine Art von Objekten) interessiert. Ein Ordner oder eine Datei ohne explizit gesetztem Integrity Level erbt sein Integrity Level und die damit zusammenhängenden Flags von seinem (Ober)ordner.

Trotz allem hat der Internet Explorer einen Vorteil: Ein Teil davon nutzt das Integrity Level Low. Damit endet die Liste seiner Vorteile; schon manche anderen seiner Teile benutzen die Ebenen Medium oder High. Die grundlegende Idee, Low als Sandbox für alle vom PC-Benutzer eingesetzten Internet-Anwendungen zu verwenden, ist allerdings sehr gut, weil Malware, die es irgendwie schaffen sollte, eine Internet-Anwendung anzugreifen oder zu missbrauchen, das Integrity Level Low erbt und somit nur Schäden an Low-Ordnern oder -Dateien anrichten kann. Allerdings ordnet Windows Internet-Anwendungen noch nicht automatisch das Integrity Level Low und Flags zu. Der PC-Benutzer muss dies manuell tun. Außerdem muss man akzeptieren, dass noch nicht alle Anwendungen bereit sind, von Integrity Levels beschränkt zu werden; einige wollen Zugriff auf mehr Ressourcen, als man vernünftigerweise in die Low-Liste aufzunehmen kann. Manche Experten weisen auch darauf hin, dass Integrity Levels noch nicht 100%ig für alle Arten von Windows-Desktop-Nachrichten usw. funktionieren. Hoffentlich werden Software-Entwickler in Zukunft vernünftiger und wird eine spätere Windows-Version die verbleibenden Lücken schließen. Bis dahin muss man akzeptieren, dass Mandatory Integrity Control sehr vielversprechend, aber noch unvollkommen ist. Es trägt allerdings zur PC-Sicherheit bei; es gibt noch keine Berichte, wie Malware sich immer einen Weg von Low nach System geebnet hätte.

Durch Zurückgehen zu einem Windows-Wiederherstellungspunkt werden manchmal nicht alle Benutzerzugriffsrechte und Integrity Levels und Flags rückgängig gemacht. Wenn Sie also kürzlich Änderungen vorgenommen haben, sollten Sie erneut überprüfen.

Das Integrity Level einer Anwendung ist in Sysinternals' ProcessExplorer zu sehen. Aktivieren Sie die entsprechende Spalte.

Wurzel-Verzeichnis

Man könnte auch versuchen, Integrity-Level-Kommandos auf ein Wurzelverzeichnis einer Partition anzuwenden, wenn dort alle Ordner dieselben Flags tragen sollen. Allerdings zeigt die Erfahrung, dass man in Schwierigkeiten geraten kann. Z.B. könnte der Superhidden-Ordner System Volume Information eine solche Änderung nicht akzeptieren und $Recycle.bin will auch eine spezielle Behandlung. Deshalb ist der sichere Ansatz, Integrity Levels und Flags jedem Hauptordner zuzuweisen, sobald der PC-Benutzer ihn auf D: oder E: anlegt. Noch besser wäre die Entwicklung eines zuverlässigen Konzeptes für Ihre Hauptordner, und danach fügen Sie weder Hauptordner hinzu, noch löschen Sie sie (oder Sie erinnern sich, dass jeder neu angelegte Hauptordner auf D: oder E: sofort die passenden Integrity Levels und Flags erhalten sollte).

Kopieren und Verschieben von Ordnern und Dateien

Unterordner oder Dateien ohne explizit gesetzte Integrity Levels kann man einfach nach einem neuen Ort unterhalb eines anderen Hauptverzeichnisses kopieren oder verschieben. Die Unterordner oder Dateien erben einfach des neuen Hauptverzeichnisses Integrity Level und Flags.

Kopieren oder Verschieben von Ordnern oder Dateien mit explizit gesetzten Integrity Level und Flags an einen neuen Ort scheint die vorherigen explizit gesetzten Integrity Level und Flags beizubehalten. Daher könnten sie sich von denen der neuen Hauptverzeichnisse unterscheiden. Prüfen Sie das. Falls notwendig korrigieren Sie Integrity Levels oder Flags der kopierten oder verschobenen Ordner oder Dateien.

In der Praxis muss man selten Anwendungsordner verschieben. Die, wie oben unter Die Trennung von privaten Daten beschrieben, kopierten oder verschobenen Ordner und Dateien machen keine Probleme, solange a) man kein Hauptverzeichnis verschiebt und b) man Integrity Levels und Flags nicht explizit für manche Unterordner oder Dateien setzt. Somit arbeiten die Konzepte "Trennung von privaten Daten" und "Integrity Levels" gut zusammen und unterstützen einander. Das Gleiche kann man zu den Benutzer-Zugriffsrechten sagen. Beim Kopieren oder Verschieben von Ordnern oder Dateien von D: nach E: oder umgekehrt werden die Benutzerzugriffsrechte von denen der Partition des neuen Orts geerbt.

Sandboxe die Ordner für mit dem Internet interagierende Daten

Setzen Sie diese Flags für Ihre Low-Ordner auf D:.

\Downloads CI OI L NW NR NX
\Uploads CI OI L NW NR NX
\Emails CI OI L NW NR NX
\News CI OI L NW NR NX

Dies können Sie z.B. für jeden Ordner (setzen Sie den passenden Namen ein) mittels des folgenden Kommandos tun:

D:\>chml FolderName -i:l -nw -nr -nx

chml wendet als Default CI und OI an. Nach dem Ändern sollten Sie immer mittels icacls oder accesschk den Erfolg prüfen. Tippen Sie z.B.

D:\>icacls *.*

Setzen der Ordner für private Daten außerhalb der Sandbox

Setzen Sie diese Flags für Ihre Medium-Ordner auf E:.

\MyDocuments CI OI M NW NR NX
\MyMusic CI OI M NW NR NX
\MyPictures CI OI M NW NR NX
\MyVideos CI OI M NW NR NX
\MyWork CI OI M NW NR NX

Dies können Sie z.B. für jeden Ordner (setzen Sie den passenden Namen ein) mittels des folgenden Kommandos tun:

E:\>chml FolderName -i:m -nw -nr -nx

Sandboxen Ihrer Internet-Anwendungen

Einführung

Alle Ihre Internet-Anwendungen sollen ein Low erhalten. Für einfache Anwendungen ist nur der Pfad C:\Program Files\MySimpleApplicationDir zu behandeln mit diesem Befehl:

C:\Program Files>chml MySimpleApplicationDir -i:l -nw -nr -nx

Nun werden manche Beispiele für schwierigere Anwendungen gezeigt. Finden Sie für Ihre Internet-Anwendungen heraus, auf welche Ordner sie zugreifen und setzen Sie CI OI L NW NR NX für den Ordner des Anwendungsprogramms in C:\Program Files und nur CI OI L NW für dessen andere genutzten Ordner.

In 64-Bit-Windows ist der Pfad eines 32-Bit-Programms unter C:\Program Files (x86). Dies gilt auch für Mozilla Firefox, Mozilla Thunderbird und Real Alternative (siehe unten). Wenn Sie 64-Bit-Windows haben und einen Befehl auf ein 32-Bit-Programmverzeichnis anwenden, ersetzen Sie C:\Program Files durch C:\Program Files (x86).

Mozilla Firefox

C:\Program Files\Mozilla Firefox CI OI L NW NR NX
C:\Users\MyAdminUser\AppData\Local\Mozilla CI OI L NW
C:\Users\MyAdminUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyAdminUser\AppData\Mozilla CI OI L NW
C:\Users\MyPrivateUser\AppData\Local\Mozilla CI OI L NW
C:\Users\MyPrivateUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyPrivateUser\AppData\Mozilla CI OI L NW
C:\Users\MyPrivateUser\AppData\Roaming\Mozilla CI OI L NW
C:\Users\MyInternetUser\AppData\Local\Mozilla CI OI L NW
C:\Users\MyInternetUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyInternetUser\AppData\Mozilla CI OI L NW
C:\Users\MyInternetUser\AppData\Roaming\Mozilla CI OI L NW

Um einen typischen Gebrauch von icacls zu zeigen, ist hier ein Beispiel fürs Setzen der Flags CI OI L NW:

C:\Users\MyAdminUser\AppData\Local>icacls Mozilla /setintegritylevel (ci)(oi)L

icacls setzt als Default NW, aber weder NR noch NX.

Mozilla Thunderbird

C:\Program Files\Mozilla Thunderbird CI OI L NW NR NX
C:\Users\MyAdminUser\AppData\Local\Thunderbird CI OI L NW
C:\Users\MyAdminUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyAdminUser\AppData\Roaming\Thunderbird CI OI L NW
C:\Users\MyAdminUser\AppData\Thunderbird CI OI L NW
C:\Users\MyPrivateUser\AppData\Local\Thunderbird CI OI L NW
C:\Users\MyPrivateUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyPrivateUser\AppData\Roaming\Thunderbird CI OI L NW
C:\Users\MyPrivateUser\AppData\Thunderbird CI OI L NW
C:\Users\MyInternetUser\AppData\Local\Thunderbird CI OI L NW
C:\Users\MyInternetUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyInternetUser\AppData\Roaming\Thunderbird CI OI L NW
C:\Users\MyInternetUser\AppData\Thunderbird CI OI L NW

Real Alternative

C:\Program Files\Real Alternative CI OI L NW NR NX
C:\Users\MyAdminUser\AppData\Local\Real CI OI L NW
C:\Users\MyAdminUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyAdminUser\AppData\Roaming\Media Player Classic CI OI L NW
C:\Users\MyAdminUser\AppData\Roaming\Real CI OI L NW
C:\Users\MyPrivateUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyPrivateUser\AppData\Roaming\Media Player Classic CI OI L NW
C:\Users\MyInternetUser\AppData\Local\TEMP CI OI L NW
C:\Users\MyInternetUser\AppData\Roaming\Media Player Classic CI OI L NW

Bemerkungen

Benutzen Sie eine administrative Kommandozeile (C:\Windows\System32\cmd.exe gestartet als Administrator) für die Kommandozeilentools.

In einer Kommandozeile muss man einen Leerzeichen enthaltenen Pfadparameter durch "" einklammern. Beispiel:

C:\Users\MyInternetUser\AppData\Roaming>icacls "Media Player Classic" /setintegritylevel (ci)(oi)L

Ich bin mir nicht sicher, ob Mozilla Thunderbird und Real Alternative die \TEMP-Ordner benutzen. Da wir sie schon für Mozilla Firefox auf Low gesetzt haben, macht das nichts aus.

Ändern Sie nicht die Integrity Levels für \VirtualStore-Ordner. Diese werden durch Windows verwaltet - nicht durch die Anwendungsprogramme selbst.

Wenn Ihre Anwendung nicht gestartet wird, dann müssen wahrscheinlich weitere Verzeichnisse auf Low gesetzt werden. Innerhalb jeder Anwendung setzen Sie den Pfad für das Speichern von Dateien auf ein Low-Verzeichnis. Z.B. sollte das D:\Emails für Ihr E-Mail-Programm sein. (Sie können sich unnötige Probleme schaffen, wenn Sie D:\Folder1\Emails benutzten, \Folder1 auf Medium setzten und \Emails auf Low. Mozilla Thunderbird kann \Emails nicht öffnen, weil es versucht darauf zuzugreifen, indem es zuerst den Oberordner \Folder1 besucht, was aufgrund eines höheren Integrity Levels verboten ist. Halten Sie die Dinge einfach und Sie werden mit weniger Problemen konfrontiert.).

Seien Sie nicht überrascht, wenn Windows manchmal die Ausführung von Low-Programmen unter MyAdminUser verhindert. Dies macht Sinn, da Internet-Anwendungen keine Verwaltungstools sind.

Windows ärgert den PC-Benutzer mit einem Bestätigungsdialog, wann immer er ein Low-Programm (ein anderes als der Internet Explorer) unter MyPrivateUser oder MyInternetUser starten will. Das ist unlogisch. Es machte mehr Sinn, wenn Windows stattdessen "Sind Sie sicher?" im Falle von Medium- oder High-Programmen fragte, da diese auf mehr zugreifen könnten, würden sie gestartet werden. Es ist allerdings möglich, die Dialoge zu deaktivieren. Melden Sie sich mit dem Benutzer, für den Sie deaktivieren möchten, an. In der Systemsteuerung wählen Sie: "Internetoptionen | Sicherheit | Internet | Stufe anpassen | Verschiedenes | Anwendungen und unsichere Dateien starten  (nicht sicher) | Aktivieren (nicht sicher)". Klicken Sie auf OK. Melden Sie sich ab und unter demselben Windows-Benutzer wieder an. Machen Ihnen die rote Schattierung (auch im Sicherheitszentrum) und das Überschreiben der Windows-Empfehlung Angst? Da ich noch nie einen solchen Bestätigungsdialog für ein Medium- oder High-Programm bekommen habe, kann man sicher annehmen, dass dieser bestimmte Bestätigungsdialog vielmehr für PC-Anfänger, die auf alle Optionen in den Einstellungen klicken ohne zu nachzudenken, gedacht ist als für Power-User.

Software


[Ende der Übersetzung]

Checksums

Introduction

Although Windows is said to protect its system files itself, the scope is mostly undocumented and unclear. It is safer to double check the integrity of the system files. Besides one wants to check it for the program files, what Windows does not do at all. Hash values are used for verification of each file's integrity. A hash is a lengthy, possibly hexadecimal number calculated as a checksum of the file's sequence of bits using some defined algorithm. In practice, changing bits of a file always leads to a new hash. Therefore a changed hash value means that the file has been modified. Modifications occur for different reasons like a) a log or ini file has been updated, b) a file is new (e.g., after the related program has been installed) or has been deleted, c) a file has been replaced due to a Windows or a software update, d) malware has attacked a file. In most cases, it is rather obvious why a hash value has changed. Almost all changes occur due to updates, (de)installations, logs, or prefetch data. When suspiciously more has happened to the files on C:, then this can be an indication of the effect of malware.

One popular algorithm creates MD5 checksums and files. A suitable and mighty command line tool with the ability to analyse subdirectories and their files recursively is fsum from Slavasoft's webpage, which should be copied to C:\Windows. If you prefer a GUI with this feature, you might need to purchase some shareware.

Integrity starts from the moment of installing Windows. If one starts only later and some files are already compromised, then all one would be checking afterwards is that the compromised files are still compromised. To check that all files have integrity, one needs to start afresh. In other words, reinstall Windows and calculate the checksums for the first time immediately afterwards. Later one should perform checksum calculations regularly. Additionally it makes very much sense to check just before and just after a Windows update or a major installation or program update.

For checking the MD5 of a single, downloaded file, there are more convenient freeware programs with GUI. You will find some easily.

Usage of fsum

General

Of course, you can also use a different utility; nevertheless the following will give you the general idea. Create a directory where you store checksum files: E:\MyDocuments\MD5. Whenever you verify for integrity, perform a two-step process. Note that, in case of a Windows update, you should perform the procedure twice: Once just before and once just after the Windows update. Let us devise a suitable naming convention for our stored checksum files:
We should observe these folders and use the denoted abbreviations for foldername:

C:\ c
C:\ProgramData programdata
C:\Program Files programfiles
C:\Windows windows

For 64-bit Windows, see the related remark in the section Integrity Levels.

Step 1: Log the Changes to the Last Previous Checksums

Let us assume that the current date is 2009-02-01 and that our last previous checksum creation was on 2008-12-31.

C:\>fsum -c -jf E:\MyDocuments\MD5\081231c.MD5 >E:\MyDocuments\MD5\090201c.TXT

C:\ProgramData>fsum -c -jf E:\MyDocuments\MD5\081231programdata.MD5 >E:\MyDocuments\MD5\090201programdata.TXT

C:\Program Files>fsum -c -jf E:\MyDocuments\MD5\081231programfiles.MD5 >E:\MyDocuments\MD5\090201programfiles.TXT

C:\Windows>fsum -c -jf E:\MyDocuments\MD5\081231windows.MD5 >E:\MyDocuments\MD5\090201windows.TXT

-c compares and does so also recursively in all subdirectories, -jf outputs the failures only. The sign > before a path to a filename redirects the output to that file. Note that fsum works relative to the current directory. When you create checksums for the first time, omit step 1.

Step 2: Calculate the Current Lists of Checksums

C:\>fsum *.* >E:\MyDocuments\MD5\090201c.MD5

C:\ProgramData>fsum -r *.* >E:\MyDocuments\MD5\090201programdata.MD5

C:\Program Files>fsum -r *.* >E:\MyDocuments\MD5\090201programfiles.MD5

C:\Windows>fsum -r *.* >E:\MyDocuments\MD5\090201windows.MD5

-r executes also recursively in all subdirectories, *.* applies to all files.

Miscellaneous

Manual Protocol

If you do not want to lose track of what you are doing, manually log the crucial facts to text files:

Backups

Make regular backups. Back up your system and programs partition by a Windows or third party software, maybe once every one or two months.

Especially just before any software installation, create a Windows Restore Point. Give it a speaking name like "Before MyNewApplication1". If you find the application to be unsecure or not fitting your taste, you can go back to the restore point and be sure of the system files' integrity again. Additionally, you might have to delete a remainder of the application's subfolder manually.

Frequently back up your personal data, application data, and application settings files.

Compromised PC

"There is malware on my PC or I am not sure whether some symptoms might indicate malware. What should I do?" There is only one correct answer: Reinstall Windows or at least your last known good image of your system and programs partition(s). Everything else would leave behind doubts.

Windows Default

Although, since Vista, Windows has a number of new security features, the operating system's default settings do not guarantee security yet because the aims are not achieved and because emphasis on usability leads to compromises.

User Account Control

Have the UAC activated and set it to the highest level. Bear the confirmation dialogs. The UAC is meant to nerve you - not to let you just click away every box but to let you think carefully whether a) it has been you to start the action and b) you really want to change the relevant system setting. If you are online as a Windows standard user and a malware wants to change the system, it cannot do so because it has to pass your explicit grant. Therefore so far the UAC is in particular still the best known anti rootkit software for Windows. One just has to be aware of the possibility of an UAC dialog being spoofed, i.e., forged to fetch your administrator password. If in doubt, cancel the action instead of entering the password. One must also understand that an installer inherits administrative or even higher rights for its further actions once it is allowed in an UAC dialog at all. Bad software developers abuse this power by, e.g., changing rules in the Windows Firewall.

Windows Settings

This page is not a complete or detailed list for choosing secure Windows settings. However, be aware of the importance. The following measures should be considered seriously. For further reading, also search for hardening.

PC User

The best security concept is useless if the human being in front to the machine violates it. The PC user must understand the concept and always think about what he intends to do and how. Think of yourself as being the greatest risk for your PC's security. The PC user might, e.g., accidentally format a partition, install malware described as useful application, or open an executable email attachment.

Third Persons

Since you do not watch your PC 24h every day, there is a danger of third persons trying to access it. Whenever you leave your PC temporarily, lock the currently active Windows user, e.g., by the keyboard command [Win] + L. Close the room. Encrypt partitions or folders before someone accesses your PC by a different operating system launched, e.g., from a DVD or before your PC needs to be sent in for repairs.

Personal Firewall

Either use the Windows Firewall or some good personal firewall. Do not use two firewalls simultaneously because this creates conflicts and instability. People recommending the Windows Firewall do so because of the greater complexity, often greater number of security holes of personal firewalls, and doubting the usefulness of outbound or application filtering. Those in favour of some particular personal firewall appreciate its much easier configuration per se and also of outbound or application filtering. This pages does not intend to prove either preference and instead recommends further reading elsewhere. One thing seems to have universal agreement though: inbound packet filtering is essential.

Monitoring Tools

There some good monitoring or logging tools like those from Sysinternals. However, monitoring means to observe what has already happened and - if one wants to be complete - requires permanent watching. So monitoring can at best offer assistance - it is not a security solution in itself. Logging network traffic helps for setting appropriate firewall rules. Logging files and registry activity of an application can assist judgement about the software.

Anti Virus, Anti Spyware, Host Intrusion Protection, Virtual Machine, Anti Rootkit Software

The number of malwares grows exponentially and malware exists already before its signatures are added to databases. Therefore signature based detection does not guarantee security, even if tests report 99.9% filtering for previously known malware. The best anti virus softwares achieve only 60% detection by behaviour blocking and also cause some false alarms. Instead of making compromises by trying to rely on anti virus software, never just open attached or downloaded untrusted executables, scripts, macros, and documents with scripts / macros (e.g., files in the format DOC). Although it does not hurt to run anti spyware or anti rootkit software from time to time, they offer only assistance. A few HIPS or virtual machines may be rather efficient if configured correctly, however, they all fight with the problem of the unsecure design of Windows messages. Hence do not rely on such tools alone. Besides consider the potential problem of greater instability of the operating system due to greater complexity caused by intervention of security software services in system services.

Applications

Reflect which companies, programmers, softwares, download sites, and checksums you can and want to trust. The fewer the better. Verify reputation and trustworthy reviews. Always be aware that it might be malware. All security fences are overcome if the PC user makes one wrong decision. In case of doubt, do not install or execute.

Usually applications should not install anything into the Windows directory or its subdirectories. Applications have the cleanest installation procedure, if it can be done by the PC user manually copying the file(s) to a new subfolder of the Program Files folder. While normally system files and folders are protected, an installer or a setup.exe run with administrative rights are exceptions. This major gap in Windows's security design may permit a greater compatibility of old softwares and installation of a new hardware or device driver but at the same time potentially opens all gates for malware. Therefore let me repeat: Never install any software that you do not fully trust.

After installation and a Windows restart, the first thing to do for every Windows user is to set the application's preferences: Disable all script and macro languages, phoning home, and information sharing features. This applies also to applications preinstalled with Windows: e.g., Windows Media Player, Windows Media Center. Let your email program edit and show only plain text; disable HTML because it can contain scripts, etc.

Do not install skins if they behave like executables. Do not install addons unless you apply the same careful considerations as for the software's major EXE.

Do not use Internet Explorer and Outlook Express. Never. They are programs with a record history of security gaps. Use much more secure programs as browser and email client instead. For a start, here are some names: Opera, Firefox, Thunderbird.

Internet applications require further thinking: Sometimes an essential webpage relies on JavaScript. Unless you use a whitelist for such webpages, activate JavaScript (and possibly Cookies) temporarily and immediately afterwards deactivate it again.

Updates

Keep Windows and your applications up to date. This is important because many updates close known security gaps. There is a question though about which might be the best method. While automatic updates are timely, manual downloads and offline installation of updates ease recognition of the last known good state and calculation of checksums just before / after an update and work better with the idea of separation that MyInternetUser is used for downloading but MyAdminUser is used for installation of a previously downloaded Windows update or application. Therefore, together with the described security concept, I recommend regular manual updates.

Not Covered

This page does not cover hardware security, password security, router settings, various attacks on browsers, and online banking. Please read about these and further security topics elsewhere.

Der Autor dankt den anonymen Helfern bei der Übersetzung des Texts und mancher Windows-Begriffe.