Archive for the ‘Security’ Category

Wer kennt nicht noch die Zeiten, wo Microsoft nicht gerade der Inbegriff für Sicherheit war.

Aber dies hat sich enorm geändert. Microsoft hat viel getan in dieser Hinsicht und hat noch viel mehr vor.

Jetzt haben die Jungs vom Internet Explorer Team eine weitere feine Sache in den IE8 implementiert.

Und zwar das sogenannte “InPrivate”.

Laut dem Blogbeitrag unter IE8 and Privacy speichert der IE8 keinerlei Daten auf der Festplatte.

Das macht Forensikern das Leben so richtig schwer, den Werbetreibenden aber auch.

Keine Tracking Cookies, keine versteckten Informationen mehr und auch Viren haben hier ihre Last dann. Da der IE8 nichts mehr auf der Platte speichert, wird sich hier auch ein Virus die Zähne ausbeißen.

So jedenfalls die Theorie!

Bleibt abzuwarten wie die ganze Sache gelöst ist. In der nächsten Beta des IE8 soll dieses Feature enthalten sein und ich werde es mir auf jeden Fall ansehen.

*Aktualisierung*

Hier ein Auszug aus dem Blogbeitrag vom IE8 Team:

    New temporary Internet files will be deleted after the Private Browsing window is closed

:D Merci… Solange Daten auf der Platte landen, kommt man später auch wieder ran. Auch wenn sie gelöscht sind.

Schade… Hätte ja sein können, dass hier mal mitgedacht wird. ;)

SQL Injections… die Grundlage alles Bösen denken viele…

Nein, dass stimmt so nicht!

Dieses Problem war schon immer vorhanden und liegt oftmals im blanken Unwissen der Programmierer und noch häufiger in der Unbrauchbarkeit einer Programmiersprache begründet.

Unbrauchbarkeit?

Ja! Programmiersprachen mit Typsicherheit haben hier Unmengen an Vorteilen. Viele SQL-Injections gehen nur, wenn man aus dem SQL String ausbrechen kann.

Sprachen wie PHP und Perl sind hier aufgrund ihres Aufbaus schon per Definition ein Sicherheitsrisiko.

Zwar hat man bei PHP mit PDO und den Prepared Statements und Stored Procedures einen großen Schritt in Richtung höherer Sicherheit gemacht, aber dies stellt in meinen Augen auch nur eine Hilfslösung da.

Es gibt immer noch genügend SQL Injections, welche Besonderheiten des jeweiligen Datenbankservers ausnutzen und nicht zwingend auf das Ausbrechen aus dem SQL String angewiesen sind.

Ich will hier aus verschiedenen Gründen keine Beispiele bringen, aber es gibt sie. :(

Denkt einfach an Dinge wie automatische Zeichenumwandlung, nicht dokumentierte Befehle und Funktionen aus Datenbankfremden Treiberschichten, welche von dieser angesprochen werden können.

All data are evil !

Grundsätzlich kann man nur empfehlen bei wichtigen Dingen auf Typsichere Sprachen wie JAVA oder .NET auszuweichen.

PHP und Co. mögen ja für Hobbyprogrammierer langen, aber bei kommerziellen Projekten oder Projekten mit Fremddaten (z.B. Browsergames) kann man jedem nur empfehlen den sicheren Weg zu gehen.

Im Moment sind schon genügend Daten von uns allen unterwegs und außer Kontrolle. Man muß nicht noch selbst dazu beitragen diese Datenmenge zu vergrößern.

Mehr über das Thema SQL Injections kann man unter den folgenden Links nachlesen:

Auch wer mögliche Fehlermeldungen unterdrückt und eine Standardisierte Fehlerseite anzeigt, ist nicht sicher gegen SQL Injections. Man macht es dem Angreifer nur schwerer, aber nicht unmöglich.

Es gibt genügend Möglichkeiten um anhand des Verhaltens der verschiedenen Anzeigeseiten den groben internen Aufbau und sogar die Datentypen der einzelnen Spalten ermitteln zu können.

Glaube nicht, weil du es nicht kannst, dass andere es auch nicht können!

Es gibt genügend Scriptkiddis, welche sich solcher Tools bedienen:

Blind SQL Injection Brute Forcer

Und wem das nicht langt…

Top 15 free sql injection scanners

Ok… Scanner… aber wo ein Wille ist, da ist auch ein Weg daraus mehr zu machen.

Klar ist das Tool primär auf Datenübergabe per URL ausgelegt, aber ein halbwegs fähiger Programmierer hat das in wenigen Minuten von URL/GET auf POST geändert und an das Zielsystem angepaßt.

Ach und weil man es nicht oft genug sagen kann:

All data are evil !

Webauditing ist eine ziemliche aufwändige Tätigkeit.

Um so mehr freut man sich über Hilfsmittel, welche standardisierbare Handgriffe übernehmen können.

W3AF: Metasploit for Web applications

WA3F ist so eines. Man bekommt es hier:

W3AF

W3AF selbst ist eine Art Metasploit für Webbasierende Anwendungen und prüft Dinge wie SQL Injections, XSS und einige andere Dinge ab.

Hier ein kleines Beispielvideo direkt vom Hersteller:

OS commanding detection and exploit (pyGTK user interface) – Video

Sieht fein aus und dummerweise funktioniert es auch so einfach ;)

Logischerweise sollte man schon wissen was welches Modul macht und sowas auch schon selbst gemacht haben.

Sich blind auf Tools zu verlassen kann ziemlich schnell ins Augen gehen. Es wäre nicht der erste Server, der Datenverlust hat oder offline geht, weil jemand ohne Ahnung rumgefummelt hat.

Wer Lust und Zeit hat, oder es Beruflich eh macht, der kann sich ja mal diese leider schon beendete Reverse Engineering Challenge ansehen:

F-Secure Reverse Engineering Challenge

Level 1 hatte ich in ca. drei Stunden beendet. Ich hatte mich dummerweise an der Dokumentation meiner Schritte festgekrallt, anstatt einfach die Lösung zu erarbeiten.

Level 2 hat mich bisher erst zwei Stunden gekostet und ich habe im Moment schon ein paar Ansatzpunkte.

Wer auch immer das vorbereitet hat… Respekt !

Es dürfte nicht mehr viele Programmierer geben, welche direkt in Assembler programmieren können.

BitLocker… ich versuche mal zu zitieren: “Da haben schon gestandene Männer geheult”…

Geheult habe ich nicht, aber der Frust war heute gewaltig.

Versucht niemals nachträglich Ubuntu neu zu installieren. Zumindestens nicht, wenn man Vista schon drauf hat und die Partition von Vista mit BitLocker verschlüsselt war.

Da hilft auch kein “Don’t install Grub to mbr”…

Irgendwas macht Ubuntu doch. Der Vista Bootmanager war da, XP hat noch gebootet, Ubuntu endlich auch, Vista…

    Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:

    1. Insert your Windows installation disc and restart your computer.
    2. Choose your language settings, and then click “Next.”
    3. Click “Repair your computer.”

    If you do not have this disc, contact your system administrator or computer manufacturer for assistance.

    File: \Windows\system32\winload.exe

    Status: 0xc00000001

    Info: The selected entry could not be loaded because the application is missing or corrupt.

*Hust*

Aber sowas schreckt uns nicht. Wofür hat Vista eine Recovery Console auf der Installations DVD. Dumm nur, daß diese mit BitLocker Partitionen nichts anfangen kann.

Google sei Dank, findet man dann hier eine brauchbare Anleitung um auch dieses Problem gelöst zu bekommen:

http://support.microsoft.com/?scid=kb%3Ben-us%3B928201&x=7&y=11

Und der Support Artikel ist sogar ziemlich Aktuell (Last Review : June 2, 2008).

Also Flugs von Microsoft das notwendige Tool besorgt (laut Support Artikel ein ZIP-File)

http://www.microsoft.com/downloads/details.aspx?FamilyID=4ffd0d16-a51b-48b1-9042-ae1fb2de40c6

Ok, Microsoft will hier die genuine Microsoft Windows Prüfung durchführen. Auch nicht schlimm. Man hat ja Originale und das geht sogar, wenn man mit XP unterwegs ist.

Aber Moment! Wieso hat das File die Extension .msu ?

Und spätestens hier merkt man, daß man gewaltig von Microsoft verarscht wird.

.msu kann nur unter Vista / Server 2008 verwendet werden und stellt den Nachfolger zu den msi Paketen da.

Wer übrigens meint so intelligent sein zu müssen und das .msu Paket auspackt, dann die .cab Files auch noch auspackt wird erkennen, daß ihm das auch nichts bringt.

Naja… der Trend geht ja eh zum Zweit-PC ;) bzw, man hat jemanden den man mal anrufen kann.

Ein Anruf bei einem Kollegen hat mir wenigstens dann die 3 im Support Artikel beschriebenen Files bescherrt, aber selbst die brachten nichts mehr.

Ich hatte sowohl das Keyfile noch, als auch den Zahlencode. Das einzigste was ich bekommen habe waren ein paar Exceptions die als Ausgabe angezeigt wurden (natürlich in der Kurzversion) und eine Partition, welche absolut nicht mehr wollte.

Was lernen wir daraus? Trotz TPM Chip, Backup der BitLocker Keys und striktem Befolgen der Anweisungen kann man sein System schrotten.

Hey… die Daten waren aber absolut sicher! Dumm nur, daß einem das dann auch nichts mehr hilft…

Deshalb mein Tip: Finger weg von BitLocker wenn man nicht weiß was passieren kann und immer brav Backups machen!

Wie bekommt man unter Vista einen Zugriffslevel, welcher höher als der des Admins ist?

Ganz einfach:

How to gain system access in Windows Vista

Ok, es hätte eigentlich vorher schon klar sein müssen, daß dies geht. Als Resultat des Ganzen werden meine Transportablen Systeme im Moment mit TrueCrypt, bzw. BitLocker verschlüsselt.

Bei BitLocker natürlich nur die Systeme, welche einen TPM Chip besitzen.

Wirklich wichtige Daten liegen bei mir eh schon einige Jahre lang nicht mehr elektronisch vor. Auf das ich mir nicht noch mehr Sachen merken muß ;)