Sonntag, 4. September 2011


Topthema

Donnerstag, 6. Mai 2010 | Topthema

About Security #253: Schwachstellen-Suche im Überblick (5)

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/055325)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Im fünften und letzten Teil des Überblicks über die Schwachstellen-Suche in Webanwendungen geht es zuerst weiter um Angriffe auf die Authentifizierung. Zu diesem Bereich gehört auch eine "Remember me"-Funktion, mit der eine Webanwendung einen einmal authentifizierten Benutzer bei einem erneuten Besuch automatisch erkennt. Enthält die Funktion eine Schwachstelle, kann ein Angreifer womöglich als Benutzer erkannt werden, ohne sich jemals authentifizieren zu müssen (siehe About Security #224). Eine weitere potentielle Schwachstelle ist eine Funktion zur "User Impersonation", mit der ein Administrator die Identität eines anderen Benutzers annehmen kann, um z.B. Probleme nachzuvollziehen (#225).

Außer Schwachstellen, die einem Angreifer sofort den Zugriff auf die Webanwendung erlauben, gibt es auch welche, die einen Angriff nur erleichtern, z.B. nur unvollständig ausgewertete Passwörter (#226). Auch doppelt vergebene Benutzernamen können eine Schwachstelle darstellen, von den logischen Problemen mal ganz abgesehen (#227). Weitere Schwachstellen entstehen, wenn von der Webanwendung erzeugte Benutzernamen oder Passwörter vorhersagbar sind (#228). Zugangsdaten müssen immer sicher übertragen werden. Nicht nur, wenn der Benutzer sich einloggt, sondern auch, wenn die Webanwendung ihm die von ihr erzeugten Zugangsdaten mitteilt (#229). Wurden bis hierhin keine Schwachstellen gefunden, ist man fast auf der sicheren Seite. Sofern man keine Implementierungsfehler gemacht hat, die vor allem in mehrstufigen Systemen leicht passieren (#230). Auch "Sicherheitsfragen" können falsch implementiert werden, ebenso wie die Speicherung der Zugangsdaten, die keinesfalls als Klartext erfolgen darf. Zu guter Letzt bleiben Fail-Open-Mechanismen ein mögliches Problem, bei denen durch Logikfehler in einem mehrstufigen Authentifizierungsprozess ein Angreifer authentifiziert statt abgewiesen wird (#231).

Aufgrund der Bedeutung der Authentifizierung folgen nach der Suche nach Schwachstellen darin Hinweise zur Behebung möglicher Schwachstellen sowie Allgemein zur sicheren Implementierung der Authentifizierung.

Sichere Authentifizierung

Ein sicheres Authentifizierungssystem soll den Benutzern keine störenden Hürden in den Weg legen und gleichzeitig mögliche Angreifer aussperren. Im wesentlichen führt das zu mehreren Anforderungen, zuerst einmal der Verwendung sicherer Zugangsdaten und der sicheren Verwendung dieser Zugangsdaten (#232). Auch die korrekte Prüfung der Zugangsdaten ist wichtig (#233). Bei allen Maßnahmen muss man darauf achten, nicht unfreiwillig für einen Angreifer nützliche Informationen preis zu geben wie z.B. gültige Benutzernamen (#234). Außerdem muss man Brute-Force-Angriffe verhindern (#235) und die Funktion zur Passwortänderung vor Angriffen schützen (#236). Besondere Bedeutung hat auch die Funktion zum Zurücksetzen eines vergessenen Passworts, allgemein als "Account Recovery" oder "Password Recovery" bezeichnet (#237). Eine "Sicherheitsfrage" kann schnell zur Unsicherheitsfrage werden, wenn sie falsch implementiert wird. Zu guter Letzt bleiben dann noch Fragen der zwingend notwendigen Überwachung zu klären (#238).

Nach der Untersuchung der Authentifizierungsfunktionen sowie ggf. deren Absicherung bleibt auf dem Weg zu einer sicheren Webanwendung noch eines zu tun: Die Suche nach

Denial-of-Service-Schwachstellen

Es gibt viele Möglichkeiten, einen DoS auszulösen, wobei es auch darauf ankommt, worauf ein Angreifer es abgesehen hat. Nicht zu verachten ist auch ein DoS als Nebenwirkung eines anderen Angriffs (#239). Immer, wenn ein Benutzer mit wenig Aufwand eine hohe Auslastung der Webanwendung verursachen kann, besteht Gefahr. Die muss verringert und am besten ganz beseitigt werden (#240). Ein DoS kann außer durch Angriffe auf die Webanwendung auch durch die Ausnutzung von Schwachstellen im Webserver oder durch eine Überlastung ausgelöst werden, wobei DDoS-Angriffe ein Spezialfall sind (#241). Zur Abwehr von DoS-Angriffen gibt es spezielle 'Anti-DoS-Produkte', die aber u.U. selbst zum Problem werden können. Auch eine sorgsame Planung der benötigten Kapazitäten hilft bei der Verhinderung bzw. Abwehr von DoS-Angriffen (#242). Dabei hat jeder Betreiber einer Webanwendung einen natürlichen Verbündeten: Seinen ISP, der ggf. ebenso unter dem DoS-Angriff zu leiden hat wie er selbst. Außerdem gilt es, Netzwerk und Server zu härten und die Webanwendung sicher zu entwerfen (#243). Beim sog. "Threat Modelling" wird zwar vor allem auf Angriffe auf z.B. die Anwendungslogik oder die Authentifizierung geachtet, aber auch DoS-Angriffe lassen sich zumindest teilweise schon beim Entwurf verhindern, zumindest lassen sich aber ihre Folgen abschwächen (#244).

Damit ist die Suche nach Schwachstellen in der Webanwendung eigentlich abgeschlossen. Etwas, was immer mal wieder gebraucht wird und deshalb zum Abschluss allgemein beschrieben wurde, ist die Untersuchung der von der Webanwendung erzeugten Werte wie Session-Identifier/Token oder Passwörter.

Session-Token etc. untersuchen

Es gibt für die Erzeugung von Session-Token etc. generell zwei Möglichkeiten: Entweder, sie haben für die Webanwendung eine Bedeutung und enthalten z.B. Informationen über den Benutzer o.Ä., oder sie werden als Zufallswert erzeugt und dienen wirklich nur dazu, einen Webbrowser wieder zu erkennen. Los geht es mit der Analyse von Token mit Bedeutung (#245). Danach sind Token ohne Bedeutung dran, die zufällig erzeugt werden müssen, damit ein Angreifer nicht seine eigenen Token berechnen und der Webanwendung unterschieben kann (#246). Wie Token allgemein analysiert werden können, kann zum Abschluss nur sehr allgemein beschrieben werden - zu vielfältig sind die Möglichkeiten zu ihrer Erzeugung, ihrem Aufbau, ihrer Verwendung, ... (#247).

Hiermit ist das Thema "Schwachstellensuche in Webanwendungen" abgeschlossen. In der nächsten Folge geht es um eine recht neue Entwicklung: Clickjacking, über das Webseiten angegriffen werden können, die gar keine Schwachstellen enthalten.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security - Übersicht zum aktuellen Thema:

Kommentare

Folgende Links könnten Sie auch interessieren