IT-Security & Sunny Cases

Archive for Februar, 2008

Voreingestellte WPA-Schlüssel in WLAN-Routern leicht erratbar

Gestern auf Heise: Eine unglaubliche Sensation! Voreingestellte WPA-Schlüssel in WLAN-Routern leicht erratbar

Sensationell, liebe Heiseredaktion. Machen wir uns dieses GENERELLE Problem doch mal klar. WPA-Keys sind eigenlich bis zu 64 Zeichen lang. Probiert man anhand einer mitgesnifften Probe auf einem Rechner jetzt herum, welcher Key denn passt – also ein normaler Brute-Force-Angriff – so ist man selbst bei 1.000.000 Keys pro Sekunde (die erreicht man aktuell nur durch Parallelisierung, beispielsweise mit einem Bot-Net) etwa eine Billiarde Jahre beschäftigt. Das ist sicher.

Aber: Man kann den zu durchsuchenden Raum sehr einfach einschränken:

  1. Kein Hardwarehersteller verwendet mehr als 10-12 Zeichen. Die haben nur wenig Platz auf den Typenschildern, und die Vertippwahrscheinlichkeit nimmt nun mal bei steigender Anzahl der Zeichen zu.
  2. Die Hersteller werden immer gleich lange Schlüssel verwenden. Sonst hätte man an der Hotline das Problem, den Leuten sagen zu müssen, dass der Schlüssel das unförmig lange Ding auf der Unterseite des Gerätes ist. Ebenso hat der Schlüssel vermutlich eine zweite Bedeutung und unterliegt beispielsweise den Regeln, nach denen eine Seriennummer vergeben wird.
  3. Kein Hersteller wird den vollständigen ASCII-Zeichensatz verwenden. Man wird sich auf die wenigen Zeichen beschränken, welche auf einer beliebigen Tastatur auf diesem Planeten immer zu finden sind. Groß- und Kleinschreibung werden viele Hersteller meiden.
  4. Auch werden die Hersteller nicht die Null und das große O gemeinsam nutzen. Noch ein Zeichen weniger.
  5. Einige Hersteller werden es sich bequem machen, und generell Buchstaben meiden.

Im schlimmsten Fall reduziert sich der Suchraum also auf alle Zahlen zwischen 0 und 9.999.999.999. Bei 1.000.000 Schlüssel pro Sekunde ist man also in 3 Stunden durch.

Gut, den voreingestellten WPA-Schlüssel auf Basis der MAC-Adresse zu vergeben, ist mehr als grob fahrlässig. Auch wenn man den Algorithmus nicht kennt, man könnte ihn, wenn man genug “Stützpunkte” hat, mit einer entsprechenden Funktion oder einem neuronalen Netz annähern. Dann wären es nur noch Sekunden, nachdem man das erste Paket mitgesnifft hat.

Ein Vorschlag zur Lösung: Der voreingestellte Key sollte ruhig 64 Zeichen lang und per Zufallsgenerator erstellt worden sein. Den Key speichert man in einer Datei auf einem USB-Stick ab. Diesen Stick legt man dem Router bei, besser aber man macht eine Halterung im Router dafür. Jetzt kann man sich den Key bequem in seine Betriebssysteme kopieren.

Für Sicherheitsfanatiker noch einen Bonus: Der Stick sitzt im Router in einem Sockel. Man kann ihn zum Kopieren des Keys herausnehmen. Wenn der Stick aber 10 Minuten weg ist, schaltet sich der Router aus. So kann man auch das Entwenden des Sticks absichern.


Neues Motto für das Blog

Bislang heißt mein Blog brosowski.info – IT-Sicherheit, Data Mining und mehr. Der Name kam aus der verrückten Idee, mein Hobby und mein Dissertationsthema zu einer Geschäftsidee zu verknüpfen, und vielleicht irgendwann mal mich bei ausreichendem Interesse dafür selbstständig zu machen.

Das werde ich nicht tun – ich habe heute einen Arbeitsvertrag bei meinem zukünftigen Arbeitgeber unterschrieben. Nach sechs Jahren Universität mit teilweise nur 3-Monats-Verträgen ist es schon ein tolles Gefühl, einen unbefristeten Vertrag zu unterschreiben. Mir lagen mehrere Verträge vor – doch dieser hier war der beste.

So oder so, in Zukunft werde ich mich doch wieder mit dem beschäftigen, was ich die letzten Jahre auch gemacht habe: Systemarchitekturen im Umfeld der Integration von Unix und Windows sowie SAP. Nur, das ist zwar interessant, doch klingt es nicht so, und mein Hobby IT-Sicherheit bleibt mir ja trotzdem erhalten.

Wenig zu tun haben werde ich mit Data Mining, zu dem Thema steht hier bislang eh praktisch nichts. Ist ja auch kaum verwunderlich, ich schreibe darüber schon in der Dissertation. Da muss ich nichts mehr kommentieren oder aufschreiben.

Zudem hat sich meine Spielerei “Projekt Blackböxchen” als der wichtigste Bestandteil dieses Blogs und meiner Webpräsenz herausgestellt. Während der Rest kleine Klickraten hat, hat Blackböxchen regelmäßig viele Besucher. Irgendwie merkwürdig: Das Ding ist aus der Not entstanden, ist eigentlich nichts anderes als ein umgebauter Kunstlederkoffer, den es für wenig Geld bei ebay gab, und ist seit rund einer Woche außer Betrieb wegen schwerer Schäden. (Die Blackböxchenfans können aufatmen: Ich werde es reparieren. Dem Teil verdanke ich viele Kontakte, die bei dem Bewerbungsmarathon der letzten Monate sehr viel genutzt haben. Und ich werde es auch nicht in “Modular Datacenter S0,20″ umbenennen.)

Blackböxchen meets Blackbox

Also, ein neues Motto muss her. In Frage kämen Sachen wie

  • brosowski.info (ohne Motto hintendran und einfach wild bloggen)
  • brosowski.info – IT-Architektur und -Sicherheit
  • brosowski.info – Unix, Windows, SAP und Blackböxchen
  • brosowski.info – Home of the Blackböxchen
  • brosowski.info – Blackböxchen und mehr…
  • brosowski.info – Koffergeschichten

silberboxSo, und jetzt gibt’s hier die erste Web2.0-Mitmach-Aktion. Die Diskussion ist eröffnet. Macht Vorschläge, gebt Ideen etc. Zu gewinnen gibt es auch was: Projekt Silberbox, der Vorgänger von Blackböxchen sucht eine neue Heimat. Der Inhalt ist wenig weltbewegend, der silberne Koffer enthält einen Pentium3-Rechner inklusive Netzteil und SCSI-Platte. Ich verlose den Koffer unter allen, die sich an der Diskussion beteiligen.


Tipps für Roaming Profiles

Seit langem mal wieder ein Blogeintrag über die Technik statt über die Dinge und Obskuritäten auf OSI-Layer-8. Diesmal über eine Kombination, die mir immer mehr Freude macht.

Es geht um folgendes Problem: Für 16 mit Solaris-Zones virtualisierte Samba-Server muss eine Methode gefunden werden, dass Userfehler beim Umgang mit deren Profiles korrigiert werden können:

  1. Das Profil muss auf den letzten funktionierenden Stand vor dem letzten Einloggen, idealerweise aber auch zu Beginn der Woche etc. zurückgesetzt werden können.
  2. Das Profil muss vor unabsichtlichem Wachstum geschützt werden. Es muss möglich sein, dass User “aus Versehen” 8 GB neue Filme oder ähnliche Dateimonster auf dem Desktop oder sonstwo im Profil liegen haben, ohne dass die Netzwerkstrippe beim Ausloggen glüht. Wichtig dabei ist, dass die User die großen Dateien während ihrer Arbeit ruhig innerhalb des Profils speichern können sollen, diese Dateien sollen halt nur bereits beim Ausloggen auf dem Server sein.
  3. Das Profil muss automatisch von überflüssigem Ballast wie uralten temporären Dateien gereinigt werden. Große Profile verlangsamen schließlich das Einloggen.

Die Lösung dafür setzt sich aus mehreren Teilen zusammen. Die Teile 1 und 3 sind schon gelöst, am Teil 2 arbeite ich noch, hier gibt es erste Ergebnisse.

Teil 1: “Instant Backup mit ZFS”

Das Zurücksetzen der Profile ist relativ einfach zu realisieren mit ZFS, vorausgesetzt die Profile, zumindest aber die Homeverzeichnisse der User liegen in eigenen ZFS-Filesystemen. Dann muss man Samba nur in der smb.conf anweisen, vor dem Ausliefern des Profiles schnell einen snapshot zu ziehen. Gefunden habe ich das Ganze bei Chris Gerhard. Das sieht dann folgendermaßen aus. In der smb.conf steht folgende Zeile:
root preexec = ksh -c '/usr/sbin/zfs snapshot smbexport/homes/%u@smb$(/usr/local/scripts/smbdate)'
Dabei ist smbdate ein kleines Skript, das ein mit dem Datum hilft. Rein theoretisch sollte es auch gehen, das direkt mit Samba zu erzeugen, doch leider wandelt Samba zunächst die Einträge um, die mit % beginnen (hier also das %u). Daher muss man den date-Befehl (der zur Formatierung des Datums auch ein paar % enthält), und der eigentlich zeitgleich oder kurz nach dem Auspacken der % laufen soll, in ein Skript einpacken.
Das Datumskript sieht so aus:
#!/bin/ksh -p
exec date +%F--%R
Das %F erzeugt das Datum in amerikanischer Schreibweise (die sortiert sich besser), die beiden “-” trennen Datum und Uhrzeit, und %R erzeugt die Uhrzeit in 24-Stunden-Schreibweise.

Das kombiniert man dann noch mit automatischen Aufräumskripten, sodass nicht zu viele Snapshots aufgehoben werden (solche Skripte hat auch Chris Gehard vorrätig).

Teil 2: Kleine Roaming Profiles beim Client erzeugen

Für einige Dateimonster, beispielsweise Thunderbird-Profile, in denen per POP3 abgerufene Mails sich verbergen, oder OUTLOOK.PST-Dateien eines relativ bekannten PIM, bietet sich ein anderer Trick an: Die Programme greifen immer nur auf Teile der Riesendateien zu, man kann also diese Dateien dauerhaft auf ein Netzlaufwerk auszulagern, ohne dass diese dann beim Programmstart komplett auf den Client transferiert werden. Neben der (lässtigen) Methode, dass jeder User dies in seinem Mailprogramm/PIM selbst einstellen muss, kann man das auch Windows/Samba überlassen.

Dazu lege man sich im NETLOGON-Share eine Policy-Datei an, in der man Windows ein wenig zurechtweist. Unter

HKEY CURRENT USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell
Folders\

findet man folgende Werte:

AppData %USERPROFILE%\Anwendungsdaten
Cache %USERPROFILE%\Lokale Einstellungen\Temporary Internet Files
Cookies %USERPROFILE%\Cookies
Desktop %USERPROFILE%\Desktop
Favorites %USERPROFILE%\Favoriten
History %USERPROFILE%\Lokale Einstellungen\Verlauf
Local AppData %USERPROFILE%\Lokale Einstellungen\Anwendungsdaten
Local Settings %USERPROFILE%\Lokale Einstellungen
My Pictures %USERPROFILE%\Eigene Dokumente\Eigene Bilder
NetHood %USERPROFILE%\Netzwerkumgebung
Personal %USERPROFILE%\Eigene Dokumente
PrintHood %USERPROFILE%\Druckumgebung
Programs %USERPROFILE%\Startmenü\Programme
Recent %USERPROFILE%\Verlauf
SendTo %USERPROFILE%\SendTo
Start Menu %USERPROFILE%\Startmenü
Startup %USERPROFILE%\Startmenü\Programme\Autostart
Templates %USERPROFILE%\Vorlagen

Dabei ist %USERPROFILE% ein Verweis auf C:\Dokumente und Einstellungen\%USERNAME%. Und genau diesen Verweis kann man per Policy-Datei ändern. Man nehme also den NT4-Gruppenrichtlinien-Editor und ersetze in den Teilen des Profils, die zum Wachsen neigen und die nun nicht wirklich ständig hin- und hergeschoben werden müssen, das %USERPROFILE% durch

%LOGONSERVER%\%USERNAME%\ServerProfil

Und schon landet das jeweilige Teilverzeichnis direkt im Verzeichnis des jeweiligen Users auf dem Server, und zwar im Unterverzeichnis ServerProfil. Ideal für Desktop, Anwendungsdaten, Lokale Einstellungen und Eigene Dateien.

Wendet man das ganze sehr strikt an, kann man Profile von mehreren Gigabyte auf wenige Megabyte zusammenstauchen.

Teil 3: Serverseitiges Ausmisten der Profile

Das Aufräumen eines Windowsprofils ist auch relativ einfach: Es gibt Dateien, die man serverseitig löschen darf, und solche, von denen man den rm-Befehl fernhalten sollte. Das Problem sind dabei einige Spezialitäten, einfach mit find nach .tmp-Dateien zu suchen bringt nichts – schließlich benennt jeder Hersteller seine temporären Dateien, wie er will. Diese Varianten sind vor allem dann interessant, wenn es nicht möglich ist, die Tipps aus Teil 2 zu berücksichtigen. Daher hier mal einige exemplarische Löschvorschläge:

  • Viel Zeit kosten viele kleine Dateien, da relativ viel Overhead für relativ wenig Nutzlast erzeugt wird. Wo findet man sowas? Die Cookies zählen ebenso dazu wie die diversen Temporären Dateien unter Lokale Einstellungen/Temp. Insbesondere Adobe-Produkte neigen dazu, hier jede Menge Cleanup-Müll abzulegen, der dann noch Jahrzehnte später von den Abstürzen zeugt.
  • Ebenfalls relativ gut aufzuräumen sind die Temporary Internet Files: Der Internetexplorer ist ein guter Datensammler. Daher sollte man bei Roaming Profiles hier eine Bremse einbauen und die Cache-Größe beschränken. Auch per Skript hier auszumisten funktioniert.
  • Besonders Java neigt dazu, sich einen großen Cache zuzulegen. Wer viel mit Java arbeitet, sollte sich mal \Anwendungsdaten\Sun\Java\Deployment im Profil anschauen. Diesen Cache kann man auch verkleinern (oder lagert ihn mit Tipp 2 auf den Server aus).

Noch ein Tipp am Rande: Wenn man sich solche Datenmengen hübsch visualisiert anschauen möchte, dann empfehlen sich die Tools TreeSize und Sequoia View.


Blackböxchen ging in die Luft…

… und erlitt dabei bleibende Schäden. Dank eines freundlichen Mitarbeiters einer großen, roten Fluglinie verbrachte Blackböxchen den letzten Flug im Gepäckraum einer Fokker 100. Der Flug war wohl auch kein Problem für den Koffer, wohl aber die Lade- und Entlademannschaft.

Jedenfalls ist das Netzteil aus seiner Verankerung gebrochen und wurde mit einer Kante so auf die Festplatte gedrückt, dass deren Gehäuse eine Beule bekam. Zudem ist einer der Verschlüsse kaputt gegangen, und – besonders ärgerlich – die Anschlusskabel der Griffantenne wurden durchtrennt. Das wird viel Arbeit, bis das alles repariert ist. Oder ich baue einfach eine nächste Version – diesmal besonders robust und vielsprachig beschriftet.

Besonders ärgerlich daran: Die Beschädigungen werden nicht durch die Airline gezahlt. Originalton: Kunsthandwerkliche Gegenstände müssen entsprechend verpackt werden.