Programmierung eines Internetfilters
-
Hallo!
Bei uns in der Schule hat man die Schüler-PCs gesperrt, weil sich einige Leute wohl Porno-Filme aus dem Internet heruntergeladen haben. Nun waren diese PCs aber die einzige Rettung vor der Langeweile einer Freistunde. Die PCs werden erst dann wieder freigegeben, wenn sich derjenige meldet oder eine ordentliche Lösung gefunden wurde.
Nun habe ich vor, vielleicht eine Art von Filter zu programmieren, der z.B. das Herunterladen von Videodateien verbietet. Dazu müsste ich allerdings ähnlichen Zugriff auf den Traffic haben wie z.B. ZoneAlarm. Hat jemand eine Idee, wie man sowas anstellen könnte?
Eine andere Möglichkeit wäre, den PC zu überwachen und sobald eine Videodatei auf die Festplatte geschrieben wird, diese direkt wieder zu löschen. Ich wäre dankbar für jegliche Ideen (und die anderen Schüler sicher auch, damit sie wieder im Netz surfen können)!
-
Dü könntest einen Sniffer benutzen /schreiben und darin alle Texte durchsuchen und filtern. Kommt das Wort "porn" vor wird irgentetwas ausgeführt. Ist eigentlich halb so wild.
[edit]Rechtschreibfehler, sry, bin grad erst wieder aufgewacht, hab einen Mittagschlaf gemacht [edit]
[ Dieser Beitrag wurde am 10.02.2003 um 18:42 Uhr von paranoiac.org editiert. ]
-
naja, die Methode hat ein paar Nachteile
1. Wie willst du reagieren, wenn das Wort/Zeichen X vorkommt? (X steht für ein beliebiges Wort/Zeichen, was du filtern willst)
Einfach das Packet verwerfen? Naja, Packete sind so klein, dass trotzdem noch genug Material durchkommt und bei TCP sorgst du für eine Art DOS Angriff auf den Server!
Einfach das Wort rauslöschen? Nicht sehr sinnvoll, da kommt noch genug durch, hilft vielleicht, wenn du Bilddaten zensieren willst, weil die Datei dann nur noch bedingt gelesen werden kann2. Glaubst du wirklich, dass du so etwas erreichst? Du müsstest ziemlich viele Wörter Filtern und dein Filter arbeitet ja auch nicht unbedingt intelligent und sonst passiert dir so etwas http://www.heise.de/newsticker/data/wst-09.02.03-003/ . Wie willst du die Bilder prüfen? Einfach alle Bilder/Videos rauslöschen? Schon mal mit w3m gesurft und außerdem frag ich mich, wie genau du Videos und Bilder erkennen willst, so fällt dir das vielleicht nicht allzu schwer, aber wenn jemand auf die Idee kommt mit gepackten/verschlüsselten/veränderten (mit verändert meine ich so etwas wie uuencode oder base64 oder rot13) Videos zu arbeiten, wie willst du das rausbekommen?
Also ich muss zu dem Thema sagen, ein Filter bringt nicht effektiv etwas, vielleicht kannst du die Lehrer DAUs überzeugen, aber wenn du nur 1 (wirklich nur 1) pfiffigen Schüler an der Schule hast, dann dauert das eh nicht lange, bis der Filter umgangen wurde.
-
Danke! Wie der Filter genau aussieht, darum werde ich mich später kümmern. Aber was erst einmal das Problem ist: Wie kann man entweder...
- Auf ein ankommendes Datenpaket zugreifen, bevor es verarbeitet werden kann, oder...
- Bemerken, wenn eine neue Datei auf der Festplatte erstellt wurde (so wie Norton AntiVirus es ja bestimmt auch macht)
-
such mal nach der libpcap für Windows (geh mal davon aus, dass du ein Windows Projekt schreibst).
-
Warum benutzt ihr nicht einfach einen Proxy-Server? Da lassen sich ganz bequem sowohl Content als auch URLs filtern, und leistungsfähige Produkte gibt's ohne Ende.
-
Danke, ich werde mir das libpcap mal anschauen!
Ein Proxy-Server wäre natürlich eine Lösung, aber wahrscheinlich noch einfacher zu knacken als ein Filterprogramm (wenn es gut getarnt ist). Ich habe vor, immer zwei Instanzen des Programms laufen zu lassen. Wenn die eine bemerkt, dass die andere beendet wurde, startet sie sie wieder neu und umgekehrt. D.h. man müsste schon beide gleichzeitig beenden und das ist "per Hand" ja nicht so ohne weiteres möglich.
-
Könnte da nicht die dnsniff Tool-Sammlung weiterhelfen?
Passives loggen aller URLs und runtergeladenen Files...
Könnte nicht schon dieses Logging als Abschreckung genügen?
-
Naja, in diesen Raum, wo die PCs stehen, kann praktisch jeder rein, wann er will. Von daher würde Logging wohl nicht viel bringen. Nachher kann man nicht mehr nachvollziehen, wer wann an welchem PC saß.
[ Dieser Beitrag wurde am 10.02.2003 um 23:19 Uhr von TomasRiker editiert. ]
-
selber programmieren ist zu aufwendig, benutze ein komerzieles produckt, das geld bekommst du über eine internet gebühr wieder rein (dann können sich die schüler auch gleich bei den geilen böcken bedanken)
-
wer sein rechner eingeloggt läst ist selber schuld
-
Original erstellt von TomasRiker:
**Naja, in diesen Raum, wo die PCs stehen, kann praktisch jeder rein, wann er will. Von daher würde Logging wohl nicht viel bringen. Nachher kann man nicht mehr nachvollziehen, wer wann an welchem PC saß.
**Bei uns wurden feste Usernamen vergeben... so war die Überwachung relativ
einfach...
-
Original erstellt von TomasRiker:
Ein Proxy-Server wäre natürlich eine Lösung, aber wahrscheinlich noch einfacher zu knacken als ein Filterprogramm (wenn es gut getarnt ist).Ich bezweifle, dass ein Programm auf dem lokalen Rechner schwieriger zu "knacken" sein soll als ein Programm auf einem entfernten Rechner, zu dem es keinen physikalischen Zugang gibt.
-
Nein, was ich meinte: es ist ja recht einfach, die Proxy-Einstellungen des Browsers zu ändern und dann hat man's doch schon. Die Idee mit den Usernamen ist nicht schlecht, das könnte ich auch mal vorschlagen!
-
Original erstellt von TomasRiker:
die Proxy-Einstellungen des Browsers zu ändern und dann hat man's doch schonJunge, Junge, was habt ihr denn da für ein Netzwerk?
Selbstverständlich muss der Proxy-Server der einzige Rechner mit direktem Zugang zum Router/Gateway sein, allen anderen LAN-IPs werden am Gateway blockiert und müssen so über den Proxy gehen.
-
vielleicht könntest du ein login und logout machen damit man ins internet kann (sowat wie nen bildschirmschoner)
und dann alles per keyhook loggen was getippt wird auf den nick der sich da angemeldet hat, dann wieder beim logout den bildshirmshoner sozusagen einschalten.anderer vorschlag wäre so, wie man früher TSR unter dos codete, einfach die wsock32.dll umbenennen und stattdesssen eine eigene dazwischen schalten die alles direckt wieder auf die wsock32.dll mapt. dann kannst du eventuell einen direckte textsuche in den packeten machen.
du mußt beim wsock32.dll wrapper nichtmal jede funktion in deiner dll definieren und alle parameter weiterleiten, es reicht wenn du dort einen Jump durchführst, die funktion in der echten wsock32.dll wird dann schon den stack aufräumen.
rapso->greets();
-
Hey, die Idee mit der DLL gefällt mir
sehr gut,... vielleicht mache ich es dann so.
-
Soll das ein Witz sein? Die totale Überwachung (inklusive Passwörter ausspähen), damit die lieben kleinen keine ****filme ziehen? Das ist nicht nur rechtlich mehr als fragwürdig ...
-
Nein, ich will nicht die Tastatur überwachen, sondern nur die Packets nach Anzeichen für eine Videodatei durchsuchen.
-
wo ist den das Problem, dass ihr einfach Benutzer Accounts einrichtet? Dann weisst du doch wer was gemacht hat.
(Wenn ihr Win98 habt oder ein ähnliches Schrott OS, was für die Aufgaben eh nicht geeignet ist, die ihr durchführt, dann hast du eh verloren, dann wird es auch niemanden schwerfallen einfach die DLL wieder zurückzukopieren oder ähnliches.)
Außerdem glaub ich nicht, dass du einen DLL Hack hinbekommst (nichts gegen dich persönlich, ich stell mir nur vor, dass das ziemlich schwer ist)
[BTW. kann ich Bashar nur zustimmen und versteh nicht, wie du deine Freiheit (und die deiner Freunde) für ein paar Stunden länger im Internet aufgeben kannst. Wie wärs mal damit ein Buch zu lesen? Vielleicht über Grundrechte und Freiheit...]