Client Security

Plug and Play ist nett weil alles ohne Mühe funktioniert aber Sicherheit und Zugriffschutz sind auch in kleinen und mittleren Netzwerken wichtig und erforderlich. Was sollten Sie dabei beachten

Diese Seite beschreibt sehr kurz die Verschiedenen Dinge, um die Sicherheit in ihrem Netzwerk zu erhöhen und Ausfälle und Angriffsflächen zu minimieren. Dies kann auf mehreren Ebenen geschehen und im Idealfall sind alle Schutzfunktionen sinnvoll kombiniet.

Das Kennwort / Die Anmeldung

Noch immer werden zur Anmeldung an verschiedenen Daten normale Kennworte genutzt. Nur wenige Zugänge erfordern z.B. Zertifikate oder andere starke Authentifizierungen. Über Gruppenrichtlinien können Sie auch in ihrer Domäne so genannte "Komplexe Kennworte" fordern. So müssen Benutzer dann auch Sonderzeichen und Zahlen verwenden. Was der Sicherheit dient sorgt aber auch für Ärger, wenn Sonderzeichen auf anderen Tastaturen nicht einfach erreichbar sind. Viele Anwender haben schon Probleme mit der Gross/Klein Schreibung (Caps Lock on) und haben Sie schon mal versucht ihr komplexes Kennwort im OWA-Anmeldebildschirm einzugeben, wenn Sie ein anderes Tastaturlayout vorgesetzt bekommen ? (z.B. im Urlaub)

Die "Cracker" haben mittlerweile aber auch nachgerüstet und dank moderner Grafikkarten GPUs können diese sogar noch ein vielfaches schneller die Hashwerte mit roher Gewalt (Brute Force Attacke) durchprobieren, als dies vor wenigen Jahren noch denkbar war. (Siehe auch http://www.heise.de/ct/inhalt/2009/06/204/). So kann ein normales Kennwort aus Buchstaben und Zahlen [a-zA-Z0-9] mit weniger als 7 Stellen schon in Minuten geknackt werden. Selbst komplexe Kennworte mit der Länge halten einem Angriff nicht länger als 30 Minuten Stand. Der Angreifer muss einfach nur das verschlüsselte Kennwort abgehört haben, was z.B. mit Cain&Abel im LAN gar kein Problem ist. Entsprechende auf Grafikkarten optimierte" Tools gibt es z.B. unter http://3.14.by/en/md5 und anderen Quellen.

Erst mit zunehmender Länge eines Kennwort wird es für solche Angriffe immer schwerer, solche Attacken in vertretbarer Zeit erfolgreich zu fahren. Wenn Sie also ihr Kennwort entsprechend lange wählen und häufig genug (z.B. mindestens alle 60 Tage) ändern, dann ist das Risiko schon erheblich reduziert.

Ein weiterer Aspekt ist natürlich die Übertragung des Kennworts selbst. Wer heute noch per POP3, IMAP4, TELNET oder HTTP auf sensible Daten zugreift, ist selbst schuld, weil ich dann nicht mal das Kennwort knacken muss, sondern zumindest bei "Basic-Auth" direkt einsehen kann.

Neben einem "guten Kennwort" ist natürlich auch eine entsprechend gesicherte Übertragung per SSL (POP3S, IMAP4S, HTTPS, SSH etc.) oder eine starke Authentifizierung (Kerberos, Zertifikate) ratsam, so dass sich wenig Angriffsflächen für Mitleser oder Hash-Cracker bieten.

Leider wird genau das allzu oft vernachlässigt, da die Beantragung, Installation, Verlängerung und Konfiguration von z.B. SSL-Zertifikaten natürlich ein zusätzlicher Aufwand darstellt und auch die Clients entsprechend angepasst werden müssen.

Hinzu kommt auch, dass sie sicher alarmiert sind, wenn an ihrer Eingangstür seltsame Kratzspuren zu finden sind, aber fast niemand aktiv die fehlerhaften Anmeldungen an einem Netzwerk überwacht. Zwar hilft Windows hier mit einer "Lockout"-Strategie, dass nach zu vielen Fehlversuchen ein Konto temporär gesperrt wird, aber das funktioniert nicht bei "geknackten" Kennworten. Eine Überwachung der Anmeldungen kann aber wertvolle Hinweise auf Unregelmäßigkeiten liefern, da sich die meisten Anwender doch primäre an "ihrem" PC anmelden und Fremdanmeldungen daher einfach zu erkennen sind.

Wenn Sie nun die Übertragungswege weiter gesichert haben und auch lange Kennworte einsetzen, dann steigt der Aufwand für Angreifer natürlich sehr hoch an. Auf der anderen Seite belegen aber Projekte wie seti@home und andere, dass Millionen von PCs an einer gemeinsamen Rechenaufgabe arbeiten können. Andererseits gibt es auch immer wieder Viren und BOT-Netze, welche ferngesteuert werden können. Vielleicht erleben wir zukünftig Schadprogramme, die keinen direkten Schaden mehr auf ihrem Wirt verursachen, um möglichst lange unerkannt zu bleiben und statt dessen als verteilter Password-Knacker-Dienst arbeiten.

Kennwort Komplexität, Brute Force

Viel Wirbel wird auch um Kennworte und deren Komplexität gemacht. Es ist schon erschreckend, wie viele Dienste ein "komplexes" Kennwort (mit Zahlen, Gro/Kleinschrift, Sonderzeichen) erfordern aber bei der Länge passen. Auch Windows war früher mit LM-Hashwerte auf 14 Zeichen beschränkt, von denen sogar nur zwei Gruppen al 7 Zeichen "verhashed" wurden und ein Entwickler am Hashwert schon sehen konnte, ob das Kennwort 7 oder weniger Stelle hatten. Damit konnte der Aufwand zum "erraten" eines Kennworts natürlich reduziert werden.

Aber diese "Brute Force"-Attacken erfordern zwei Dinge:

Die Komplexität statt der Länge ist aber kein wirklich guter Ratgeber. Ein Kennwort mit 10 Zeichen aus einem Zeichensatz von [a-zA-Z0-1Sonderzeichen} ist weniger sicher als ein langes Kennwort aus [a-z]

Zeichensatzauswahl Zeichenmenge Stellen Varianten (Menge hoch Stellen)
0-9  (z.B. PIN der EC-Karte oder SIM-Karte etc.) 10 4 10000
a-z, A-Z, 0-9, Sonderzeichen ca 80 8 1677721600000000
a-z 26 11 3670344486987776
a-z, A-Z, 0-9, Sonderzeichen ca 80 10 10737418240000000000
a-z 26 14 64509974703297150976

Wer also ohne Zahlen, Sonderzeichen und Groß/Kleinschrift auskommt, muss nur 11 statt 8 oder 14 statt 10 Stellen fordern, um viel mehr Varianten zu haben. Oder es mit einem Comic zu sagen:


Quelle: http://xkcd.com/936/

Hinweis: Das Comic beschreibt den Begriff "Entropie". Auch wenn ein Betriebssystem z.B. einen 128bit Hashwert hat, so muss ein BruteForce keine 2hoch128 Varianten prüfen. Denn mehrere Kennworte können durchaus zum selben Hashwert führen. und dass auch ein komplexes Zeichen keine 8 Bit braucht, reduziert die Entropie weiter.

Interessant ist hier auch die Geschwindigkeit, mit der Brute-Force-Angriffe durch Grafikkarten beschleunigt werden: (Quelle: Cheap GPUs are rendering strong passwords useless. http://www.zdnet.com/blog/hardware/cheap-gpus-are-rendering-strong-passwords-useless/13125)

Passwortlänge HostCPU 10 Mio try/Sek GDU 3,3 Mrd try/Sek
4 Zeichen a-zA-Z0-9 24 Sek <1 Sek
6 Zeichen a-zA-Z0-9 1h30min 4 Sek
7 Zeichen a-zA-Z0-9 4 Tage 17 Min
7 Zeichen komplex 75 Tage 7h
9 Zeichen a-zA-Z0-9 43 Jahre 48 Tage

Und es gibt Berichte, dass Systeme mit 4x HD 5970 (8 GPUs) bis zu 33 Mrd Hashes/Sek durchtesten können. Von dem Einsatz von Rainbow-Tables gar nicht zu reden.

Die Lösung kann eigentlich nur sein, dass sehr sehr lange Kennworte verwendet werden oder das Kennwort auf einer Hardware (z.B. Smartcard) hinterlegt ist, welche die Entschlüsselung macht und falsche Versuche aussperren, oder der Schlüssel von einem Server/Service bereitgestellt wird. (wie z.B. TPM-Chip für Bitlocker)

Empfehlung ?
Es ist sicher nicht einfach einen Ratschlag zu geben, aber ich bin dazu übergegangen, meinen Anwendern keine "komplexen" Kennworte mehr aufzuzwingen, aber die Mindestlänge entsprechend anzuheben, so dass auch mit vielen Grafikkarten eine Attacke auf den Hashwert erst in Jahren und nicht in Tagen erfolgreich ist. Dies wird kombiniert mit einem maximalen Kennwortalter von z.B. 60 Tagen und die Vermeidung jeder Übertragung in unverschlüsselter (FTP, POP3) oder schwach versteckter (BASE64 bei HTTP) Form.

Lockout Policies

Ein wirksames Mittel, gegen Brute Force aber noch mehr gegen Dictionary-Attacken ist natürlich das "Bremsen" der Versuche. Das funktioniert leider nicht, wenn der Angreifer eine Kopie der SAM, der PFX oder der verschlüsselten DOC-Datei etc. hat. Aber wenn er z.B. ein Anmeldkonten auf einem DC über das Netzwerk "probieren" will, dann sind die Lockout-Policies ein effektives Mittel. Allerdings muss man hier auch wieder die richtige Wahl zwischen Sicherheit und Nutzbarkeit finden.

Wer nach drei Fehlerversuchen ein Konto für eine Stunde "aussperrt" oder sogar eine manuelle Entsperrung erfordert, der macht es einem Angreifer zwar sehr schwer, das Kennwort zu "erraten", sofern er keinen deutlichen Hinweise auf das möglich Kennwort hat. Aber dann kann ein Angreifer eben "anders" stören, indem er eine Liste der Benutzer bösartig abläuft und in kurzer Zeit alle Konten "gesperrt" hat. Viel Spaß beim Lösen dieses Knotens. Und Webserver versuchen schon mal gerne zwei Anmeldeverfahren, so dass mit einem falschen Kennwort schon zwei Versuche weg sein können.

Wer aber z.B. ein Konto erst nach 5-8 Fehlversuchen sperrt und nach 1 Minute wieder automatisch entsperrt, der verhindert weiterhin recht effektiv "Brute Force"-Attacken. Mit 5-8 Versuchen pro Minute muss ein Angreifer nicht nur viel Geduld haben, sondern setzt sich durch die permanente Sperrung eines Kontos auch der Entdeckung aus. Wenn ein Angreifer aber einen überwiegenden Teil des Kennworts ausgespäht, hat, dann könnte er so an das Ziel kommen. Auf der Habenseite einer entspannter eingerichteten Richtlinie steht, dass der Anwender einfach kurz warten muss und der Helpdesk weniger zu tun hat.

Wer es etwas pfiffiger haben will, kann ja das Konto weiterhin nach 3-5 Versuchen für "immer" sperren aber die Freischaltung über eine eigene Logik realisieren, die dynamischer auf die Häufigkeit oder die Quelle der Sperrung eingeht. Es ist recht einfach, das Active Directory zeitnah dahingehend abzufragen, ob ein Konto gesperrt wurde und darauf zu reagieren (siehe auch Get-USNChanges). Auch das Eventlog ist eine gute Quelle um "getriggert" eine Sperrung zu erkennen und angepasst zu reagieren

Übrigens ist eine Lockout-Policy nur die halbe Miete. Es hilft ihnen nicht, wenn ein Anwender sich meldet, weil sein Konto immer wieder gesperrt wird und sie keine Hilfsmittel haben, um die Ursache der Sperrung zu ermitteln. Gerade wenn ein Konto immer wieder gesperrt wird, sollten Sie schnell heraus finden, ob es wirklich ein einfacher Benutzerfehler ist, z.B. ein PC der noch mit dem alten angemeldet ist, oder ob tatsächlich jemand "probt". Das Windows Security Eventlog der Domain Controller ist hier die erstelle Quelle.

Wenn die Kennwort ausreichend Lange sind und eine passende Sperr-Richtlinie etabliert ist, dann könnten Sie darüber nachdenken, den "Wechselzwang" alle 60 Tage ein neues Kennwort zu vergeben, zu lockern. Allerdings sollten Sie dann eine Lösung haben, die Anmeldungen der Anwender "protokolliert" und auswertet um Missbrauch zu erkennen. Aber so eine Protokollierung ist ja für die Analyse von "Lockout"-Vorgängen eh schon relevant.

Netzwerkphysik (MAC)

Mal abgesehen von einem direkte Zugriff zu einem PC oder Server finden viele unerwünschte Zugriffe natürlich über das Netzwerk statt. Hier muss erst einmal das physikalische Netzwerk untersucht werden. Wenn ich mit meinem Notebook mich einfach an einen freien Port anschließen kann oder einen Mini-Hub in das Anschlusskabel eines anderen PCs oder Druckers einschleife, dann ist der Weg frei für interne Angriffe mit voller Brandbreite. Viele Firmen haben ja nur Angst vor Angriffen aus dem Internet. Das ist aber ein Irrtum.

Aber was kann ein Administrator hier tun ?. Es gibt mehrere Möglichkeiten:

Weitere Details finden Sie auf 802.1x

Sicherer Datentransfer

Sie glauben gar nicht, wie viele Nutzdaten komplett unverschlüsselt über das LAN übertragen werden. D.h. selbst wenn Sie den Zugriff auf das Medium kontrollieren, so sind ja nicht alle Mitarbeiter "gut" bzw. Trojaner und Viren können ohne Wissen des Mitarbeiters die Berechtigungen missbrauchen. Daher sollten Sie generell kontrollieren, welche Protokolle in ihrem Netzwerk genutzt werden und wie diese zu verschlüsseln sind, z.B.:

Systemschutz

Die Sicherheit eines Gesamtsystems nicht nur vom Netzwerk abhängig. Auch die Server sollten Sie etwas genauer untersuchen, da Sie als permanent verfügbare Systeme natürlich auch erstes Ziel eines Angriffs sein werden.

Desktop Absicherung

Oft sind es die kleinen Dinge, die ein Gesamtsystem schon sehr viel sicherer machen. Wenn Sie die Haustür einfach nur schließen, dann hilft das schon sehr viel. Wenn ein Einbrecher in ihrem Haus ist, dann kann er auch die Werkzeuge nutzen, die Sie selbst haben. Übertragen bedeutet dies:

Unterstützung durch Net at Work:
Die Umsetzung einer solchen Anmeldesteuerung geht mit Bordmitteln und ganz einfach, wird aber auf der MSXFAQ nicht beschrieben. Sprechen Sie uns einfach an,  wenn Sie hier Bedarf haben.

Nutzdatensicherung

Zuletzt schauen wir uns natürlich noch mal die Daten selbst an. Die meisten Dokumente werden mehr oder minder ungeschützt auf Dateiservern, USB-Stick, CD-Roms und Backupbändern gespeichert

REM Kommandozeile zum decodieren aller Dateien in einem Baum, wenn "versehentlich"
REM die Daten beim Kopieren auf den Server verschlüsselt wurden.

cipher /d /s:\\server\share

Soweit eine kurze Übersicht der verschiedenen Stellen, an denen Sie die Sicherheit aktiv steuern können.

Weitere Links

Keywords:IPSec WiFi 802.1x Security Sicherheit Isolation