Sharepoint / Internet Information Server und Apache Webserver schützen

Framesniffing - Sicherheitslücken in Browsern gefährden sensible Daten

Die Sicherheitsexperten von Context Information Security haben SharePoint 2007 und 2010 getestet. Sie stellten fest, dass Framing nicht per Standard unterbunden wird. Somit lassen sich Sicherheitsmaßnahmen umgehen.

In einem Blog-Eintrag beschreiben die Sicherheitsexperten von Context, wie Framesniffing funktioniert. Angreifer bedienen sich hierfür eines HTML IFRAMEs, der in die aufgerufene Webseite eingeladen wird. Normalerweise unterbinden Browser, dass der Inhalt einer Seite in Frames gelesen werden kann. Die aufgezeigte Angriffsmethode umgeht diese Sicherheits-Maßnahmen allerdings und könnte so sensible Daten preisgeben. Cyberkriminelle können sich die so genannten Anker zu Nutze machen.

Sharepoint: Die Suchergebnisse der Webseite.
Sharepoint: Die Suchergebnisse der Webseite.
Foto: Context Information Security

Diese Anker werden normalerweise verwendet, innerhalb einer aufgerufenen Webseite zu navigieren. Sie werden der URL mit einem Hash übergeben und man könnte sich auch als Sprungmarken bezeichnen: http://www.example.com#sprungmarke. Der Browser wird nun nach einem Anker sprungmarke innerhalb der Webseite suchen. Findet der Browser diesen Anker nicht, scrollt er auch nicht zum entsprechenden Abschnitt. Und genau dieses Verhalten machen sich die Angreifer zu nutze.

Es ließe sich zum Beispiel herausfinden, ob ein Nutzer angemeldet ist. Ist er nicht eingeloggt, enthält die Frontseite zum Beispiel ein Formular <form id="login"> <input name="username">. Benutzt der Angreifer nun die URL http://www.example.com/#login und der Browser springt nicht, ist der Anwender wohl am System angemeldet.

Mozilla hat sich bereits im letzten Jahr gegen Framesniffing gerüstet. Die aktuellen Versionen von Chrome, Safari und Internet Explorer sind allerdings noch anfällig. Ebenso sind diverse mobile Browser gegen diese Art Angriff nicht gefeit.

Per Standard senden SharePoint 2007 und 2010 keinen X-Frame-Options Header. Ist die URL der SharePoint-Installation bekannt, ließe sich diese in jede Webseite als Frame einladen. Der Angriff funktioniert, wenn man die Anker der Suchergebnisseiten überprüft. Über eine E-Mail, die auf eine schädliche Webseite verweist, lassen sich auch interne Installationen angreifen, da das laden des IFRAMEs im Browser des Anwenders passiert und die Daten somit ausgeschmuggelt werden können.

Auch viele öffentliche Webseiten würden keinen Schutz gegen Framesniffing bieten. Als Beispiel nimmt Context LinkedIn. Wer dort angemeldet ist, kann über eine Demo-Seite sehen, wie sich Informationen ausspionieren lassen.

So schützen Sie sich vor Framesniffing

IIS-Konfiguration: IIS-Manager öffnen und das Icon "HTTP Response Header" suchen.
IIS-Konfiguration: IIS-Manager öffnen und das Icon "HTTP Response Header" suchen.
Foto: Context Information Security

Als Webserver-Administrator müssen Sie nicht warten, bis die Browser-Hersteller das Sicherheitsloch schließen. Mit wenigen Konfigurations-Änderungen können Sie den Angriff wirksam unterbinden. Wie schon erwähnt müssen Sie ihren Webserver lediglich anweisen, den X-Frame-Options HTTP Header zu senden. Damit schlagen Sie gleich zwei Fliegen mit einer Klappe, da Clickjacking somit auch gleich unterbunden wird.

IIS-Konfiguration: Hinzufügen von X-Frame-Options als Name und SAMEORIGIN als Wert.
IIS-Konfiguration: Hinzufügen von X-Frame-Options als Name und SAMEORIGIN als Wert.
Foto: Context Information Security

In Internet Information Server 7 (IIS) öffnen Sie den IIS Manager und suchen sich dann die entsprechende Webseite. Ein Doppelklick auf HTTP Response Headers und dann ein Hinzufügen von X-Frame-Options als Name und SAMEORIGIN als Wert ist die ganze Magie.

Das Ganze funktioniert natürlich auch mit dem Apache Webserver. In der entsprechenden Konfigurations-Datei, normalerweise httpd.conf, fügen Sie einfach Header always append X-Frame-Options SAMEORIGIN ein. Alternativ lässt sich auch die Datei .htaccess verwenden, um den Header zu senden.

Soltlen Sie eine Webseite betreiben und keinen Zugriff auf diese Einstellungen haben, können Sie HTTP Header auch via PHP, .NET und so weiter senden. Unter PHP würde das zum Beispiel <?php header("X-Frame-Options: SAMEORIGIN"); ?> erledigen. (mec)