16.10.2006 | Autor / Redakteur: George Wrenn / Achim Karpf
Passwörter und andere Authentifizerungs-Methoden könnten Ihre Daten nicht immer ausreichend schützen. Ein gutes Security-Policy-System evaluiert jede Zugriffs-Anfrage und erlaubt beziehungsweise verbietet den Zugriff basierend auf den entsprechenden User-IDs und Access Policies. Eine Angriffsmethode, die sich Authetifizierungs-Bypass nennt, erlaubt es Hackern, diesen Sicherheitscheck zu umgehen und in einigen Fällen sogar das gesamte Sicherheits-Subsystem auszuhebeln.
Die meisten Angriffe erfolgen über Websites, die Fehler im Design oder der Implementierung aufweisen. Es gibt eine Vielzahl von Methoden, um ein System mit dem Authentifizierungs-Bypass-Angriff zu knacken. Jedoch sind alle diese Angriffe problemlos zu verhindern.
Systeme, die durch den Authentifizierungs-Bypass gefährdet sind, weisen in der Regel ein oder zwei Problemstellen auf: die fehlende Möglichkeit die Zugriffs-Politik zu beziffern und zu verstärken oder ein schwaches Authentifizierungssystem, bei dem die Identität leicht gefälscht werden kann. Im ersten Fall hat das Web Access Control System entweder keinen kompletten Satz von URIs (Uniform Resource Identifier), der die Applikationen oder angegriffenen Webseiten aufzählen kann oder das Zugriffs-Kontroll-System schützt die Seiten nicht, die einen Schutz benötigen.
Nehmen wir als Beispiel den Fall, in dem im Root-Ordner einer neuen geschützten Website Dateien enthalten sind, die sowohl von geschützten wie ungeschützten Anwendungen verwendet werden. In diesem Root-Verzeichnis befinden sich auch Datenbank-Verbindung-Skripts und andere Dateien, die sensible Daten enthalten. Ein Authentifizierungs-Bypass-Angriff zielt in diesem Falle auf Dateien, die von der geschützten Applikation verwendet werden. Der Angreifer sieht sich dazu die ungeschützten Dateien an und entwickelt daraus eine Strategie, um das Authentifizierungs-System zu umgehen. Viele Standard-Applikationen und Web-Server werden mit diesen ungesicherten Standard-Ordnern und –Anwendungen ausgeliefert.
Zudem vergessen Administratoren vielfach verteilte Ressourcen oder Dateien mit in die Sicherheits-Policy zu integrieren. Genauso wie die Web-Server durch neuen Inhalt, Applikationen und Ordner wachsen, so wächst auch das Risiko, dass sensible Daten durchsickern und Angreifern den Zugriff ermöglichen.
Innerhalb der Struktur von geschützten Websites kann es auch Sicherheitslücken geben, die Zugriff auf Verzeichnisse erlauben. So kann zum Beispiel das Hauptverzeichnis einer Anwendung geschützt sein, die Unterverzeichnisse sind dagegen ohne Schutz.
Diese Angriffe können einfach verhindert werden, wenn man ein einfaches Informations-Management-Modell (IMM) auf einem Spreadsheet erstellt. Listen Sie in einer Spalte alle Ordner und Objekte. Tragen Sie alle Benutzerrechte, Sicherheits-Policies und berechtigte User mit Ihren Zugriffrechten in eine zweite Spalte. Dann testen Sie alle Objekte über eine neue Web-Session und stellen Sie sicher, dass nicht berechtigte Zugriffe auch entsprechend verhindert werden. Die meisten Entwickler führen solche Tests und Analysen vor der ersten Veröffentlichung nicht durch und lassen dadurch unbeabsichtigt Angriffe auf Daten und Anwendungen von außen zu.
Eine weitere Variante von Authentifizierungs-Bypass-Angriffen ist die direkte Attacke auf Authentifizierungs- und Autorisierungs-Systeme. Viele Webseiten verwenden Skripts und Hintergrund-Datenbanken um Authentifizierungen und Autorisierungen zu prüfen und freizugeben. Leider sind das Design und die Implementierungen von diesen Systemen oft fehlerhaft. Ein webformular-basiertes System prüft die Legitimation über ein clientseitiges Webbrowser-Skript oder durch Parameter, die über den Webbrowser gepostet werden. Ein Angriff gegen diese Systeme erfolgt in der Regel durch Manipulationen der Daten, die in den Webformularen enhalten sind, oder der Daten, die an den Server gepostet werden. Einige Attacken sind so einfach, als würde man Basic true und false Werte an den Webserver posten.
Beispielsweise kann /webapps/login?validUser=yes&isAutheticated=yes manuell in einen Browser eingetragen werden, um den Authentifizierungs-Mechanismus eines Applikations-Servers zu umgehen. Verhindern Sie diese Art der Schwachstellen, in dem Sie den Authentifizierungs-Status nicht in URLs oder clientseitigen Skripts darstellen.
Anspruchsvollere Angriffe nutzen ausgefeiltere Methoden, in dem SQL-Statement oder andere Kommandos direkt in die Web-Server-Software oder Datenbanken eingeschleust werden. Dadurch versucht der Angreifer einen regulären Zugriff auf eine User-Session zu bekommen. Nach einer erfolgreichen Authentifizierung eines Users, vergeben viele webbasierte Anwendungen Cookies or Tokens an die User, so dass sie bei der nächsten Anmeldung erkannt werden. Der Token ist oft mit einer serverseitigen Session-ID verbunden, oder in einigen Fällen ist der Cookie die Session-ID. Die Applikationen führen einfach logische Operationen durch, um zu ermitteln, ob die ID oder der Token gültig ist oder ob er in der Liste der bekannten Sessions zu finden ist.
Das kann verhindert werden, wenn man stark verschlüsselte Cookies oder zufällige Session-IDs verwendet, die eine Fälschung wesentlich schwerer machen. Auch die Validierung aller User-Daten auf der Server-Seite kann feindliche Angriffsversuche auf Sessions erheblich erschweren.
Fortschrittlichere Angriffe versuchen die Authentifizierungs-Systeme zu umgehen, in dem sie Session-IDs oder Cookies stehlen. Ein Angreifer versucht in diesem Fall die Cookies oder Session-IDs einfach wieder abzuspielen um eine falsche Identität anzunehmen. Diese Art der Attacken werden oft als Mann-in-der-Mitte oder Session-Hijacking fehl-interpretiert. Dabei führt das Abspielen von Cookies und Session-IDs zu einem Authentifizierungs-Bypass-Angriff, da er das Sicherheits-Subsystem umgeht, das den Zugriff auf eine Applikation vermittelt und einen direkten Zugang zur Anwendung ermöglicht. Um diesen Angriff zu verhindern, senden Sie alle Session- und Cookie-Daten über einen verschlüsselten Kanal.
Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 2000287)