610 likes | 735 Views
Algorithmen des Internets Sommersemester 2005 04.07.2005 12. und letzte Vorlesung. Christian Schindelhauer schindel@upb.de. Überblick. Das Internet: Einführung und Überblick Mathematische Grundlagen IP: Routing im Internet TCP: Das Transport-Protokoll des Internets
E N D
Algorithmen desInternetsSommersemester 200504.07.200512. und letzte Vorlesung Christian Schindelhauer schindel@upb.de
Überblick • Das Internet: Einführung und Überblick • Mathematische Grundlagen • IP: Routing im Internet • TCP: Das Transport-Protokoll des Internets • Die Struktur des World Wide Web und des Internets • Suche im Web • Web-Caching im Internet • Peer-to-peer-Netzwerke • Angriffe auf das Internet • Spam-Mails und Spam-Filter • Denial of Service Angriffe und ihre Abwehr • Viren, Würmer, Trojaner, Hoaxes Heute
Was ist SPAM? • Spam: • ist der Gebrauch eines elektronischen Mediums in unverhältnismäßig großen Ausmaße • Ausprägung: • Spam-E-Mail • Instant Messages • Usenet Newsgroups • Spam-Webseiten für Web-Suchmaschinen • Spamdexing • Weblogs • Handy-SMS • Internet-Telefon-SPAM • Unterschied zu herkömmlicher Werbung: • Die Kosten werden dem “Konsumenten” des Spams aufgebürdet
Spam-E-Mail • E-Mail-Spam • Tausend bis Millionen versandte Kopien einer fast identischen E-Mail • Offizielle Begriffe • UCE (Unsolicited Commercial E-Mail) • unerbetene kommerzielle E-Mail • UBE (Unsolicited Bulk E-Mail) • unerbetene Massen-E-Mail • Fakten: (sophos.com, Apr. 2004) • Wo kommt sie her? • 50% von “Zombie”-PCs • deren Besitzer nichts davon ahnen • Prozentualer Anteil an allen E-Mails • geschätzt: 68%-83% 1. United States (35.7 %) 2. South Korea (24.9 %) 3. China and Hong Kong (9.7 %) 4. France (3.1 %) 5. Spain (2.7 %) 6. Canada (2.6 %) 7. Japan (2.1 %) 8. Brazil (1.9 %) 9. United Kingdom (1.5 %) 10. Germany (1.2 %) 11. Australia (1.2 %) 12. Poland (1.2 %)
Wie funktionieren ein SPAM-Filter?Beispiel SPAM-Assassin Version 3.0 • Problem: • Fehler erster Ordung (false positive) versus • Fehler zweiter Ordnung (false negative) • 628 Basis-Regeln mit 227 Unter-Regeln.z.B. • DRUGS_* (bezeichnet of Arzneimittel adressiert werden) • LONGWORDS (viele Wörter mit mehr als 5 Buchstaben) • Anwedung Bayessche Regeln auf Schlüsselwörter (Token) • Genetische Algorithmen • seit Version 3.0 nicht mehr Bestandteil • Ergebnisse werden mittels eines Perzeptrons kombiniert, d.h. • lineare Kombination der gewichteten Regeln • mit Anwendung einer Schwellwert Funktion mit Werte • Gewichte werden in Testreihen mit Test-Mails bestimmt [Van Dinter 2004, ApacheCon 2004]
Beispiele für besonders erfolgreiche Regeln • Message-ID in Großbuchstaben • 11,3 % SPAM • False Positives: 0% • X-Message-Info existiert • 18.0 % der SPAM, keine FP • Sender-IP weicht von angegebener IP ab • 25,7 % der SPAM, FP: 0,03 %, z.B. • Received: from 65.214.43.12 (unknown [211.222.252.28]) by bblisa.bblisa.org (Postfix) • with SMTP id DD6DE1768DB for <felicity@kluge.net>; Sat, 11 Sep 2004 00:38:56 -0400 (EDT) • MIME-Boundary beginnt mit “--” und endet mit Ziffernfolge • 36,5% der SPAM, FP: 0%
Bayessche Filter • Idee: • Es gibt typische Worte in SPAM-Mails, z.B. • Viagra, “NIGERIAN MINISTER”, VI@gra • Das Auffinden dieser Wörter erhöht die “Wahrscheinlichkeit”, dass ein Wort SPAM ist • Es gibt typische Worte, die nicht in SPAM-Mails auftuachen, z.B. • Frühschicht, Butterbrot, • Solche Worte erhöhen die “Wahrscheinlichkeit”, dass ein Wort keine SPAM ist • Problem: • Es gibt im eigentlichen Sinne keine “Wahrscheinlichkeit”, da die E-Mail entweder SPAM ist oder nicht • Wie kann man diesen Begriff formalisieren?
Der Satz von Bayes und ein Beispiel • Die bedingte Wahrscheinlichkeit P(A | B) ist definiert durch • Wahrscheinlichkeit dass Ereignis A unter der Bedingung B erscheint • Umgekehrt gilt: • Daraus folgt der Satz von Bayes: • Beispiel: • A = “Mail ist SPAM” • B = “E-Mail beinhaltet Viagra”
Einsatz von Bayes-Anti-SPAM-Filter • Bei mehreren Schlüsselwörtern B1, B2, ..., Bn erhält man dann • Sind nun Bi, Bj unabhängige Ereignisse, • als auch Bi∩A, Bj∩A voneinander unabhängig, erhält man • Um die Wahrscheinlichkeit einer SPAM-Mail zu bestimmen, • genügt es dann die Häufigkeit des Schlüsselworts in SPAM-Mails mit der Gesamthäufigkeit des Schlüsselworts in Relation zu setzen
Anti-Anti-Spam-Filter-Tricks • Kodierung der Schlüsselwörter • durch gezielte Falschschreibung: • V|agra (mit senkrechten Strich), V I A G R A, V-I-A-G-R-A, etc. • durch Bilder • Verwirren des Filters • Einstreuen von Zitaten aus Standardtexten/Weltliteratur • oft nicht sehr erfolgreich • Diese Tricks können oft mit neuen bedingten Wahrscheinlichkeiten gelöst • Dagegen unlösbares Problem (?): • “normale” E-Mails die auf eine neue E-Mail hinweisen • “Hallo Tom, ich wollte Dir nur mal meine neue Web-page zeigen, klick doch mal drauf: wwww.unscheinbarer-link.de. Grüße, Tina”
Denial of Service-Angriffe(Dienstverweigerungsangriffe) • Denial of Service (DoS)-Angriffe verbrauchen die Ressourcen eines Rechners oder Netzwerks, um deren Verfügbarkeit zu verringern oder auszuschalten • Angriffsziele • Netzwerk • Internet • Peer-to-Peer-Netzwerke • Proxy-Caching-Netzwerke • Rechner • Web-Server • Mail-Server • Router
DoS auf Rechner • Angriffsziel Rechner, z.B. SYN-Angriffe: • Angriffsziel Rechner im Internet • Eine Reihe von „half-open“ TCP-Verbindungen wird aktiviert • Ununterscheidbar von regulären Anfragen • Der TCP-Server muss SYN/ACK-Pakete senden und auf Reaktion warten • Rechnerangriffe können relativ gut lokal abgewehrt werden • Durch Abschalten des Rechners • Analyse der Attacke
DoS-Angriff auf ein Netzwerk • Z.B. SMurf-Angriff oder distributed DoS (DDoS) • Angriff gegen Internet-Service Provider (ISP) • Großer Datenstrom wird auf Netzwerk gerichtet • Mit gleicher Häufigkeit werden gültige wie DoS-Pakete wegen Überlastung durch IP gelöscht • Netzwerkangriffe sind schwierig zu bekämpfen
IP ist anfällig für DoS-Angriffe • DoS-Angriffe auf IP-Ebene können meist nicht zurückverfolgt werden • Der Angreifer erzeugt Datagramme mit falscher Quell-IP-Adresse • Dem Empfänger der Datagramme steht die Routeninformation nicht zur Verfügung • Es sei denn alle Router kooperieren bei der Suche, während einer Attacke • DoS-Datagramme können nicht von legitimen Datatgrammen unterschieden werden • Nur implizit und aus dem Kontext. • Beispiele: • Universitätsrechner werden oft benutzt, um DoS-Attacken mit korrekter Quellinformation zu führen. • 11. September 2001 – Sämtliche Nachrichtensites brachen unter der legitimer Last zusammen
Aufgabenstellung • Wie kann man die Quelle(n) einer eingehenden Datagrammflut mit gefälschten Quell-IP-Adressen bestimmen? • ohne Kooperation der Router im Netzwerk
Quellbestimmung einer DoS-Attacke • Motivation: • Im einfachsten Fall: Quelle = Angreifer • Abschalten (möglicherweise instrumentalisierter) Rechner beendet (vorerst) den Angriff • Problem Reflektorangriff • Angreifer schickt Datagramme mit Opfer-IP-Adresse als falscher Quellinformation an unbeteiligte Netzteilnehmer (Rechner oder Drucker • Die unbeteiligten Netzteilnehmer beantwortet Request an mutmaßliche Quelle • Das Opfer erhält die DoS-Attacke von diesen instrumentalisierten Netzteilnehmern • Gegenmaßnahme • Vom instrumentalisierten Netzteilnehmer aus, muss der Angreifer gefunden werden
Lösung: Ingress Filtering[Ferguson, Senie ’98] • Verfahren: • Router blockieren Pakete mit fehlerhafter Quellinformation • Sinnvoll an Schnittstellen von ISP • Diskussion • Effektiv nur bei universellen Einsatz • Wird aber nicht bei der Mehrheit der ISP eingesetzt
Lösung: Link testing by input debugging • Verfahren • Routenrückverfolgung stromaufwärts • Opfer beschreibt allgemeines Merkmal der DoS-Datagramme (attack signature) • Opfer kommuniziert diese Merkmal an Netzwerkbetreiber der eingehenden Datagramme • Dieser wiederholt dies bis zur Quelle • Einige ISPs haben dieses Verfahren automatisiert [Stone ’00]
Lösung: Link Testing durch Controlled Flooding [Burch, Cheswick ’99] • Verfahren • Opfer verfügt über eine aktuelle Routingkarte • Während eines DoS-Angriffs konstruiert das Opfer die Angriffsrouten stromaufwärts • indem es alle Möglichkeiten der letzten unbekannten Station selber durch einen DoS-Angriff belegt • Läßt die Datenmenge kurzfristig nach, ist eine Station gefunden und der Vorgang wird per Tiefensuche fortgesetzt • Nachteile • Opfer wird selber zum Angreifer • Kaum geeignet für verteilte DoS-Angriffe (DDoS) • Kann leicht von einem Angreifer überlistet werden • durch eingebaute Fluktuationen
Lösung: Logging • Verfahren • Jeder Router zeichnet alle IP-Header auf • Durch Data-Mining-Techniken kann der Angreifer bestimmt werden • Nachteil • Enormer Aufwand
Lösung: ICMP Traceback • Mit geringer Wahrscheinlichkeitkeit (z.B. 1/20.000) wird in einem Router ein ICMP-traceback-datagram an den Zielknoten geschickt • Der Zielknoten kann dann den Weg rekonstruieren • Nachteile: • ICMP-Pakete könnten bei Pufferüberlauf vor IP-datagrammen gelöscht werden
ICMP Traceback • Theorem • Wird mit Wahrscheinlichkeit p ein ICMP-Paket erzeugt, dann sind erwartet ((ln d) + O(1))/p DoS-Pakete ausreichend zur Bestimmung eines DoS Pfades aus d Routern. • Um mit Wahrscheinlichkeit 1 ‒ ε den Pfad zu bestimmen genügen ln(d)/p ‒ ln(ε)/p DoS Pakete. • Beweis • wird hier nicht besprochen... • Interessierte finden es im Skript von vor zwei Jahren
Lösung: Marking [Savage et al. ’00] • Verfahren • In ungenutzte Felder des IP-Headers schreibt jeder Router seine Adresse mit gewisser W’keit • Nachteil: • Router müssen auf gewisse Weise mitarbeiten • Distributed DoS-Pfade nur schwer rekonstruierbar
Verwaltungs-aufwand Netzwerklast Router-aufwand Post mortem fähig Präventiv/ reaktiv Ingress filtering moderat niedrig moderat Nein präventiv Link testing by input debugging hoch niedrig hoch schlecht reaktiv Link testing by flooding niedrig hoch niedrig schlecht reaktiv Logging hoch niedrig hoch ausgezeichnet reaktiv ICMP Traceback niedrig niedrig niedrig ausgezeichnet reaktiv Markieren niedrig niedrig niedrig ausgezeichnet reaktiv Quellbestimmung einer DoS-Attacke
MarkierungVoraussetzungen und Annahmen • Ein Angreifer kann alle Pakettypen erzeugen • Verschiedene Angreifer können konspirieren • Angreifer wissen, dass die Pakete zurückverfolgt werden • Pakete können verloren gehen oder ihre Reihenfolge kann vertauscht werden • Angreifer senden zahlreiche Pakete • Die Route zwischen Angreifer und Opfer ist relativ stabil • Die Router habe beschränkte Rechen- und Speicherressourcen • Die Router arbeiten im wesentlichen ordnungsgemäß
Das Traceback-Modell R1 • V: Opfer • Ri: Router • Aj: mögliche Angreifer • Ax =A2: tatsächlicher Angreifer • P = (R2,R4,R5): Angriffspfad • (R1,R3,R2,R4,R5): von Ax vorgetäuschter Pfad A3 A1 A2 R3 R3 R1 R2 R4 P R5 V
Problemstellungen • Exact traceback: • Berechne exakten Angriffspfad P • Approximate traceback: • Finde Pfad P‘ mit Angriffspfad P als Suffix • Angreifer kann längeren Pfad vortäuschen • Zwei Algorithmen: • Markierungsalgorithmus im Router • Algorithmus schreibt Pfadinformation in den IP-Header durchlaufender Datagramme • Pfadrekonstruktion durch Opfer • Löst approximate traceback • Qualtitätsmerkmale: • Konvergenzzeit: Anzahl notwendiger Pakete zur Lösung • Speicherbedarf in IP-Header • Berechnungsaufwand
Node Append • Markierung bei Router R begin for all packets w do Füge R zu w hinzu od end • Pfadrekonstruktion durch Opfer V begin for a packet w do Extrahiere Pfad P aus w od return P end
Node Append • Pfadprotokoll (node append) • In IP-Header wird gesamte Pfadinformation gespeichert • Jeder Router hängt seine IP an. • Konvergenzzeit: 1 • Probleme • Pfadlänge im vorhinein nicht bekannt • Datagrammlänge (praktisch) konstant • Angreifer kann falsche Pfade fingieren • Erheblicher Overhead
Node Sampling • Mit Wahrscheinlichkeit p>1/2 schreibt der Router seine IP-Adresse in den IP-Header • Nur eine Adresse • Markierung bei Router R begin for all packets w do x ← Zufallszahl aus [0..1] if x<p then w.router ← R (Ersetze alte Information) fi od end
Pfadrekonstruktion by Node Sampling • Pfadrekonstruktion durch Opfer V begin for all packets w do N(R) ← Anzahl Pakete mit Router R aus Paket w od P ← sortierte Liste aller vorgekommenden Router R gemäß N(R) return P end
Konvergenz Node Sampling • Lemma • Die Wahrscheinlichkeit bei der Pfadrekonstruktion von Node-sampling ein Paket mit Router-IP R, der Hopdistanz d zum Opfer hat zu finden ist • mindestens p(1‒p)d-1 und • höchstens p(1-p)d-1+(1-p)D, • wobei D die Hopdistanz des Angreifers ist. • Beweis: • 1. Fall: Der Angreifer sendet keine Pakete mit Routerinfo R • W’keit, dass d-1 Router Routerinfo nicht überschreiben: (1-p)d-1 • W’keit, dass Router R Routerinfo überschreibt: p • 2. Fall: Der Angreifer sendet nur Pakete mit Routerinfo R • W’keit, dass D Router Routerinfo nicht überschreiben: (1-p)D • W’keit, dass Router R Routerinfo überschreibt: p(1-p)d-1
Edge Sampling • Kantenproben (edge sampling) • ähnlich wie node sampling • zusätzlich wird die Entfernung der Kante eingetragen • p kann nun kleiner als1/2 gewählt werden • Kleine Wahl p verringert die Anzahl der Nachrichten, um die Route zu bestimmen.
Edge Sampling • Markierung bei Router R begin for all packets w do x ← Zufallszahl aus [0..1] if x<p then w.start ← R w.distance ← 0 else if w.distance=0 then w.end ← 0 fi w.distance += 1 fi od end
Konvergenz Edge Sampling • Theorem • Die erwartete Konvergenzzeit E[T] von Edge Sampling bei • Wahrscheinlichkeit p ist • wenn D die Distanz des Angreifers ist. • Beweis: • Xi,n: Anzahl der DoS-Pakete mit Kanteninformation der Kante in Entfernung i zum Opfer und n DoS-Paketen • Für i<D kann so ein Paket nicht gefälscht werden • Setzt man für n den obigen Wert ein erhält man die Wahrscheinlichkeit 1/D. • Der Rest des Beweises ist dann leicht einzusehen.
Anzahl Virusinfektionen pro 1000 Rechner im Monat Quelle: ICSA Labs Annual Computer Virus Prevalence Survey 2004
Computerviren (I) “Unique among all forms of artificial life, computer viruses have escaped their playpens and established themselves pervasively throughout the world’s computing environment” Jeffrey Kephart, IBM Research Center, 1994 • Computervirus ist ein Program, das sich auf andere Computer und in Netzwerken verbreiten kann, indem es sich selbst ohne Wissen des Benutzers kopiert. • Virustypen • werden nach Übertragungsart charakterisiert • Nicht Viren • Hoax (falsche Viruswarnung), Kettenbrief, Gerüchte, Urban Legend, Meme • keine Programme • Joke-Virus • keine Ausbreitung
Virustypen • Wurm • benötigt Wirtsprogramm (wie Textdokument, Betriebssystem, Mailprogramm) zur Fortpflanzung • File-Infector • Viren hängen sich an Programmdateien, die auf einen anderen Rechner dann den Virus weiterverbreiten • Boot-Virus • verändert Bootsektor von anderen Disketten oder Festplatten durch unabsichtliches Booten von infizierter Diskette • Macro-Virus • Benutzen Macro-Befehle in Text/Tabellen-Dokumente zur Weiterverbreitung • Trojanisches Pferd • ist ein legitimes Programm mit nicht spezifizierter (Viren-) Funktionalität
Computerviren (II) Quelle: ICSA Labs Annual Computer Virus Prevalence Survey 2004
Computerviren (II) Quelle: ICSA Labs Annual Computer Virus Prevalence Survey 2000/2001
Virusauswirkungen Quelle: ICSA Labs 7th Annual Computer Virus Prevalence Survey 2000/2001
Virusauswirkungen Quelle: ICSA Labs 7th Annual Computer Virus Prevalence Survey 2000/2001
Virusauswirkungen • Nachrichten • z.B.WM97/Jerk: “I think *** is a big stupid jerk” • Pranks • z.B. Yankee spielt “Yankee Doodle Dandy” um 17 Uhr • Zugriffsverweigerung • z.B.WM97/NightShade errichtet Passwortschutz für Dokument am Freitag, den 13. • Datendiebstahl • z.B. Troy/LoevLet emailt Maschinen und Benutzerinformation auf die Philipinen • Datenbeschädigung • z.B. XM/Compatable ändert Daten in Excel-Tabellen • Datenlöschung • z.B. Michelangelo überschreibt Teile der Festplatte am 6. März • Hardwaresteuerung • z.B. Chernobyl versucht BIOS am 26. April zu überschreiben
Ausbreitungsverhalten • Beobachtungen: • Die meisten Viren kommen in der freien Wildbahn nicht vor • Andere erreichen einen hohen Ausbreitungsgrad • Wie schnell breitet sich ein Virus in einem idealisierten Umfeld aus? • Welchen Anteil der Population infiziert der Virus? • Probleme: • Kommunikationsverhalten • bestimmt Ausbreitung des Virus • ist i.A. unbekannt, wird bösartig beeinflußt • verändert sich bei Ausbreitung eines Virus • Übertragungswahrscheinlichkeit • unterschiedlich, verändert sich, z.B. durch verändertes Verhalten, AntiVirus-Software • Virustod • durch Virusverhalten, z.B. Crash • durch Benutzerverhalten
Mathematische Modelle • SI-Modell (rumor spreading) • susceptible → infected • SIS-Modell (birthrate/deathrate) • susceptible → infected → susceptible • SIR-Modell • susceptible → infected → recovered • Kontinuierliche Modelle • Deterministisch • Stochastisch • führt zu Differentialgleichungen • Diskrete Modelle • Graphbasierte Modelle • Random Call-basiert • Analyse von Markov-Prozesse
Infektionsmodelle • SI-Modell (rumor spreading) • susceptible → infected • Am Anfang ist ein Individuum infiziert • Bei jedem Kontakt wird ein Individuum unheilbar angesteckt • In jeder Zeiteinheit finden (erwartet) ß Kontakte statt • SIS-Modell (birthrate/deathrate) • susceptible → infected → susceptible • Wie SI-Modell, aber ein Anteil δ aller Infizierten wird geheilt, aber wieder empfänglich für Virus • Alternativ: Mit Wahrscheinlichkeit δ wird Individuum wieder empfänglich • SIR-Modell • susceptible → infected → recovered • Wie SIS-Modell, aber einmal geheilte Individuen, sind immun gegen Virus
Deterministische Modellierung • Susceptible, Infected, Recovered • S(t), s(t) := S(t)/n; absolute Anzahl/relativer Anteil Gesunder zum Zeitpunkt t • I(t), i(t) := I(t)/n; absolute Anzahl/relativer Anteil Infizierter • R(t), r(t) := R(t)/n; absolute Anzahl/relativer Anteil Geheilter • In jeder Zeiteinheit kontaktiert jedes Individuum ß Partner • Jeder der ß i(t) S(t) Kontakte mit einem Infizierten ist ansteckend • SI-Modell: Kranke bleiben infektiös • I(t+1) = I(t) + ß i(t) S(t) • S(t+1) = S(t) – ß i(t) S(t) • SIS-Modell: In jeder Runde wird ein Anteil δ geheilt • I(t+1) = I(t) - δ I(t) + ß i(t) S(t) • S(t+1) = S(t) + δ I(t) – ß i(t) S(t) • SIR-Modell: Ein δ Anteil aller Infizierten wird immun • S(t+1) = S(t) – ß i(t) S(t) • I(t+1) = I(t) – δ I(t) + ß i(t) S(t) • R(t+1) = R(t) + δ I(t)
Ergebnis SI-Modell • SI-Modell: Kranke bleiben infektiös • i(t+1) = i(t) + ß i(t) s(t) • s(t+1) = s(t) – ß i(t) s(t) • Kann geschlossen dargestellt werden. • Anfangs steigt s(t) exponentiell • Dann nimmt i(t) exponentiell ab 1 i(t) s(t) Zeit 0