Sicherheitslücke in der Konzeption der Filterregeln ermöglichen das Umgehen des Time-For-Kids Schulfilter Plus
Dieses Dokument liegt bei mir schon länger rum und damit andere Admins, die diese Software benutzen, ihre Systeme auf Anfälligkeit kontrollieren können lade ich das mal hier ab.
Aus der Art und Weise, in welcher Reihenfolge URL-Listen ausgewertet werden und wie die Einträge der URL-Listen verarbeitet werden kann eine Sicherheitslücke resultieren, die im Zweifelsfall zur kompletten Umgehung des Schulfilters in jeder Situation von Nutzern genutzt werden kann.
Im Beispiel werden die folgenden Seiten benutzt:
Diese Methode hat den Nachteil, dass tatsächlich die aktuell aufgerufene Seite, aber keine Bilder, die sich in der Seite befinden, geladen werden.
Dies heißt aber keinesfalls, dass es nicht möglich ist. Die Methode funktioniert gleichermaßen für Textseiten wie für Bilder. Wenn ein Nutzer also ein gesperrtes Bild gefunden hat (z.b.
Dieselbe Methodik funktioniert natürlich auch mit Programmen (exe-Dateien) etc.
Daneben gibt es noch eine zweite Methodik, den Filter zu umgehen: über Subdomains.
Diese Methode funktioniert nicht immer, aber ein Beispiel liefert
Um diese Methode nachzuvollziehen, entfernen Sie den
Die Website von Time for Kids sollte jetzt gesperrt sein.
Legen Sie jetzt unter „Freie Links“ den Eintrag
Ab jetzt ist es möglich, beide Einträge zu kombinieren: Rufen Sie in ihrem Browser
Jetzt haben wir eine eigentlich gesperrte Seite mit allen Bildern vor uns.
Diese Methode setzt also gleichermaßen eine Fehlkonfiguration des Schulfilters und eine Wildcard-Konfiguration (3) bei der aufgerufenen Website voraus.
Eine dritte Möglichkeit, basierend auf Methode 1, ist es, eine einfache Firefox-Extension zu schreiben, die jede geladene URL entsprechend abändert. Vorlagen liefern hier FireBug, Tamperdata und HTTPS Everywhere.
Alternativ kann aber auch folgendes Bookmarklet benutzt werden, um z.B. alle Bilder auf einer Seite nachzuladen:
Somit es möglich, ohne jeglichen Eingriff in das System den Filter praktisch komplett zu umgehen.
Beachten Sie, dass die Regeln des Internetgrundschutz nicht gelten, sobald es eine aktive Lernbox gibt, und dass innerhalb einer Lernbox „Freie Links“ über „Gesperrte Links“ gehen. Die beiden administrativen Listen stehen immer über dem Rest.
(Anm.: Die offizielle Dokumentation des Herstellers enthält weder die oben gegebenen Erläuterungen zu URL-Listen, noch eine Beschreibung der Andwendungsreihenfolge der Filter)
Diese unterscheiden sich je nach Version, mit der die Erstinstallation durchgeführt wurde!
Die Einträge der aktuellen Version 2.1.03 sind:
Die Einträge wiederum können sich zwischen den verschiedenen Varianten (Squid,ISA, etc.) unterscheiden.
Da die „Weiße Liste“ vor praktisch allen anderen kommt, ist es somit immer möglich, den Filter vollständig zu umgehen, wie bereits im ersten Teil gezeigt wurde.
Dabei reicht es idR schon
In anderen Versionen beginnen diese Einträge evtl. mit einem
Das ist aber unerheblich!
Alleine ein Eintrag, der z.B.
Sie können aber alle Einträge dieser Liste ohne Bedenken löschen! Stellen Sie nur zwei Dinge sicher:
(1) In Version 2.1.03 besteht ein Bug im Schulfilter, wodurch eine Linkliste mit exakt den zwei Einträgen
(2) Wir erinnern und, dass nach Punkt 1 der Eintrag
(3) Ob eine Website eine Wildcard-Konfiguration besitzt, können Sie testen, indem Sie
(4) Ich habe diese Lücke im Juli 2010 mittgeteilt. Zu dem Zeitpunkt war sie laut Aussage des Herstellers allerdings schon "bekannt".
Aus der Art und Weise, in welcher Reihenfolge URL-Listen ausgewertet werden und wie die Einträge der URL-Listen verarbeitet werden kann eine Sicherheitslücke resultieren, die im Zweifelsfall zur kompletten Umgehung des Schulfilters in jeder Situation von Nutzern genutzt werden kann.
Betroffene Versionen
Time for Kids Schulfilter Plus <= 2.1.03 (Zum Zeitpunkt des Verfassens aktuellste Version)Einschätzung
Abweichend, von „Schwach“ bis „Völlige Umgehung“ möglich (wenn die Konfiguration nach der Installation nicht verändert wird)Beschreibung
Die Sicherheitslücke ist ein Ergebnis zweier Programmfunktionen, die vorher erläutert werden müssen, um die Sicherheitslücke selbst zu verstehen.Im Beispiel werden die folgenden Seiten benutzt:
seite.de
als Seite, die standardmäßig gesperrt ist aber evtl. von einigen Nutzern legitim genutzt werden sollboese.com
als Seite, die immer gesperrt sein sollte
Verarbeitung von URL-Listen
Der Schulfilter Plus bietet an mehreren Punkten die Möglichkeiten, URL-Listen mit eigenen Links einzutragen (Administration, Internetgrundschutz, Lernboxen). Es ist essentiell wichtig zu verstehen, wie diese Listen verarbeitet werden. Grundregeln der URL-Listen:- Pro Zeile steht eine URL (also ein Eintrag).
- Ein
*
steht für null oder mehr Zeichen an dieser Stelle. - Ein
?
steht für genau ein beliebiges Zeichen an dieser Stelle. - Der Filter unterscheidet zwischen DNS-Match und URL-Match:
- Sobald ein Eintrag ein
?
oder*
enthält, wird er automatisch zu einem URL- Match. - Wenn ein Eintrag keinen Pfad-Anteil enthält, (
www.seite.de
aber nichtwww.seite.de/unterseite
) ist es ein DNS-Match - Regeln für einen DNS-Match:
- Beginnt der Eintrag mit
http://
, wird es herausgefiltert, ist also unbedeutend - Solange der DNS-Name eines Eintrags nur aus TLD oder TLD und SLD besteht, muss die Domain exakt übereinstimmen (
seite
oderseite.de
,aber nichtwww.seite.de
) - Wenn der Eintrag aus mehr als 2 Komponenten besteht (
www.seite.de
odertimes.co.uk
) darf er an einer beliebigen Stelle im Query String erscheinen, solange er von Nicht-Buchstaben umschlossen ist - Regeln für ein URL-Match
- Bei einem URL-Match muss die gesamte URL mit dem Eintrag übereinstimmen
- Sobald ein URL-Match an einer beliebigen Stelle ein
*
oder?
enthält wird auch ein*
an Anfang und Ende des Eintrags eingefügt. - Wenn ein Eintrag mit
*
umschlossen ist, kann er sich an einer beliebigen Stelle in der URL befinden.
Beispiele der Anwendung
Aus den obigen Regeln ergeben sich einige wichtige Implikationen:- Der Eintrag
seite.de
führt dazu, dass die URLhttp://seite.de
,http://seite.de/irgendwas
usw. freigegeben werden, nicht aberhttp://www.seite.de
oderhttp://www.seite.de/unterseite
usw. Dieses Verhalten ist erwartet und wird hier als korrekt angesehen. Aus dem Eintragseite.de
kann also keine (oder zumindest nicht die hier thematisierte) Sicherheitslücke entstehen. [Regeln 4.2., 5.2.] - Hätte der Eintrag
http://seite.de
gelautet, wäre dies kein Unterschied zur in 1 beschriebenen Situation. [Regel 5.1.] - Da mit dem in 1 beschriebenen Eintrag zwar
seite.de
aufrufbar ist, aber nichtwww.seite.de
entschließt man sich auch noch diesen zweiten Eintrag aufzunehmen. Für diesen zusätzlichen Eintrag greift Regel 5.3 (1). Aus dieser Regel ergibt sich, dass die URLhttp://boese.com/?useless=www.seite.de
jetzt auch freigegeben ist! - Wir stellen nun folgende Unterrichtssituation dar: Ein Lehrer möchte, dass sich die Schüler auf der Internetseite des Spiegels informieren. Dazu legt er eine Lernbox an, die alle Internetseiten sperrt und trägt dann den üblichen Eintrag
www.spiegel.de
ein (2), so dass die Schüler sich nur auf der Internetseite des Spiegels bewegen können. Das Ergebnis ist das selbe wie in 2 - Eine totale Umgehung des Filters ist möglich. [Regel 5.3.] - Es hätte auch nichts geholfen, hätte der Lehrer den Eintrag als
http://www.spiegel.de/panorama/gesellschaft/*
geschrieben, um sich auf ein Ressort zu beschränken. Regel 6.2. und damit auch 6.3. greift hier und somit isthttp://boese.com/?useless=www.spiegel.de/panorama/gesellschaft/x
erreichbar. - Wenn der Lehrer in Situation 3 einen absoluten Eintrag wie
http://www.spiegel.de/panorama/gesellschaft/artikel.html
oderwww.spiegel.de/panorama/gesellschaft/artikel.html
gemacht hätte, wäre dieser sicher, da hier Regel 6.1. greift. Die Internetseite wäre dann aber wenig ansehnlich, da auch keine Bilder etc. geladen werden können.
Zusammenfassung
Wenn Sie derzeit bei der Anwendung der Linklisten absolut sichergehen wollen, halten Sie sich an folgende Regeln:- Der Eintrag
seite.de
ist sicher, wird aber in den wenigsten Fällen funktionieren - Der Eintrag
www.seite.de
sollte niemals verwendet werden! - Ein
*
oder ein?
sollten niemals verwendet werden! - Ein führendes
http://
ist prinzipiell überflüssig.
„Aber die bösen Seiten werden ja gar nicht richtig dargestellt“
Im vorherigen Abschnitt wurde eine Methode gezeigt, wie man den Filter umgehen kann - nämlich über den Query String.Diese Methode hat den Nachteil, dass tatsächlich die aktuell aufgerufene Seite, aber keine Bilder, die sich in der Seite befinden, geladen werden.
Dies heißt aber keinesfalls, dass es nicht möglich ist. Die Methode funktioniert gleichermaßen für Textseiten wie für Bilder. Wenn ein Nutzer also ein gesperrtes Bild gefunden hat (z.b.
http://boese.com/bild.jpg
kann auch hier einfach der Query String angehängt werden: http://boese.com/bild.jpg?www.seite.de
).Dieselbe Methodik funktioniert natürlich auch mit Programmen (exe-Dateien) etc.
Daneben gibt es noch eine zweite Methodik, den Filter zu umgehen: über Subdomains.
Diese Methode funktioniert nicht immer, aber ein Beispiel liefert
www.time-for-kids.de
selbst.Um diese Methode nachzuvollziehen, entfernen Sie den
time-for-kids
Eintrag aus der globalen Weißen Liste und legen sie eine Lernbox mit der Vorgabe „bis 12 Jahre“ an.Die Website von Time for Kids sollte jetzt gesperrt sein.
Legen Sie jetzt unter „Freie Links“ den Eintrag
seite.de*
an.Ab jetzt ist es möglich, beide Einträge zu kombinieren: Rufen Sie in ihrem Browser
http://seite.de.www.time-for-kids.de
auf. [Regel 4.1., 6.3.]Jetzt haben wir eine eigentlich gesperrte Seite mit allen Bildern vor uns.
Diese Methode setzt also gleichermaßen eine Fehlkonfiguration des Schulfilters und eine Wildcard-Konfiguration (3) bei der aufgerufenen Website voraus.
Eine dritte Möglichkeit, basierend auf Methode 1, ist es, eine einfache Firefox-Extension zu schreiben, die jede geladene URL entsprechend abändert. Vorlagen liefern hier FireBug, Tamperdata und HTTPS Everywhere.
Alternativ kann aber auch folgendes Bookmarklet benutzt werden, um z.B. alle Bilder auf einer Seite nachzuladen:
{{javascript:(function(){el=document.getElementsByTagName(‘img‘);for(i=0;i<el.length;i++){el.item(i).src+="?www.seite.de";}})();}}
Reihenfolge der Filterregeln
Der zweite wichtige Punkt ist die Anwendungsreihenfolge der einzelnen Filterregeln. Diese können Sie dem folgenden Diagramm entnehmen:Beachten Sie, dass die Regeln des Internetgrundschutz nicht gelten, sobald es eine aktive Lernbox gibt, und dass innerhalb einer Lernbox „Freie Links“ über „Gesperrte Links“ gehen. Die beiden administrativen Listen stehen immer über dem Rest.
(Anm.: Die offizielle Dokumentation des Herstellers enthält weder die oben gegebenen Erläuterungen zu URL-Listen, noch eine Beschreibung der Andwendungsreihenfolge der Filter)
Sicherheitsproblematik
Ein Teil der Sicherheitsproblematik wurde bereits erläutert, ein weiterer entsteht aus den Standardvorgaben in der „Weißen Liste“.Diese unterscheiden sich je nach Version, mit der die Erstinstallation durchgeführt wurde!
Die Einträge der aktuellen Version 2.1.03 sind:
*localhost*
*time-for-kids*
*.iss.*
*.cobion.*
*webfilterplus*
*handeln-handinhand*
*update*drweb.com*
*ntrsupport.com*
*<IP-DES-TFK-SERVERS>*
*<NAME-DES-TFK-SERVERS>*
Da die „Weiße Liste“ vor praktisch allen anderen kommt, ist es somit immer möglich, den Filter vollständig zu umgehen, wie bereits im ersten Teil gezeigt wurde.
Dabei reicht es idR schon
http://boese.com/?time-for-kids
zu schreiben.In anderen Versionen beginnen diese Einträge evtl. mit einem
http://
oder enthalten einen genaueren Domainnamen (z.B. http://www.time-for-kids.de/*
).Das ist aber unerheblich!
Alleine ein Eintrag, der z.B.
time-for-kids.de
oder www.time-for-kids.de/update.php
lautet, ist sicher!Sie können aber alle Einträge dieser Liste ohne Bedenken löschen! Stellen Sie nur zwei Dinge sicher:
- Die Updates des Proxys selbst dürfen nicht über den Proxy erfolgen
- Der Aufruf des Cockpits darf nicht über den Proxy erfolgen
Stellungnahme des Herstellers
- Juli 2010: Das Problem ist bekannt. Es wird mit der Version 2.1.04 in den nächsten 2-3 Wochen behoben.
- Update September 2011: Mit dem Update im Juli 2011 auf Version 2.1.04 konnte die Lücke im Kurztest nicht mehr nachvollzogen werden. Damit hat der Hersteller über ein Jahr(4) gebraucht um eine KRITISCHE Sicherheitslücke zu beheben!
(1) In Version 2.1.03 besteht ein Bug im Schulfilter, wodurch eine Linkliste mit exakt den zwei Einträgen
seite.de
und www.seite.de
dazu führt, dass keiner von beiden angewendet wird. Dies kann dadurch umgangen werden, dass ein beliebiger dritter Eintrag in diese Liste geschrieben wird.(2) Wir erinnern und, dass nach Punkt 1 der Eintrag
spiegel.de
sicher gewesen wäre. Dieser hätte aber nichts genützt, da man von http://spiegel.de
automatisch auf http://www.spiegel.de
weitergeleitet wird.(3) Ob eine Website eine Wildcard-Konfiguration besitzt, können Sie testen, indem Sie
bla.seite.de
aufrufen. Ändert sich die URL in Ihrer Adresszeile nicht und sehen Sie die reguläre Seite, ist das der Fall.(4) Ich habe diese Lücke im Juli 2010 mittgeteilt. Zu dem Zeitpunkt war sie laut Aussage des Herstellers allerdings schon "bekannt".
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 165927
Url: https://administrator.de/contentid/165927
Ausgedruckt am: 23.11.2024 um 11:11 Uhr
3 Kommentare
Neuester Kommentar
Ich bedanke mich für diesen Hilfreichen Beitrag - wir benutzen hier selbst einen Schulrouter Plus und das funktioniert wirklich - beim nächsten Gespräch mit der Servicehotline werde ich das erwähnen.
Mfg Max
Mfg Max
Als ich meinen Beitrag vor deinem Beitrag schrieb, war das Problem weiterhin ein Problem
mfg max
mfg max