Spezielle Probleme der Internet/Intranet-Technologie

Kommentieren Drucken
Teil 48 von 71 aus der Serie "Professionelle Datenkommunikation"
Alle Artikel der Serie "Professionelle Datenkommunikation":

Leider ist es so, dass die Programme des allseits beliebten TCP/IP-Protokollstacks, die heute ja die Grundlage für den überwiegenden Teil der Kommunikation bilden, noch nicht einmal auf ihre korrekte Arbeitsweise hin untersucht werden können, weil selbst einfache TCP/IP-Implementierungen hierfür zu groß sind. So werden Angriffe besonders vereinfacht.

Das IP-Programm hat keine Möglichkeit zu bemerken, wenn man ihm gefälschte Adressen vorhält (IP-Adress-Spoofing). Man kann z. B. einen auf IP basierenden so genannte Firewall, der autorisierte (interne) Benutzer und nichtautorisierte (externe) Benutzer auf der Basis von IP-trennt, leicht dadurch überwinden, dass man von außen kommt und ihm eine IP-Adresse vorhält, von der er glaubt, dass sie zu einem Paket gehört, was von einer autorisierten inneren Station abgeschickt wird. Viele Firewall-Programme konnten zu Beginn noch nicht einmal zwischen äußeren und inneren Stationen differenzieren, sondern führen Weitertransport und Ablehnung der Pakete lediglich durch Filterung auf IP-Ebene durch. Damit kann man in der Praxis höchstens gutwillige Benutzer von anderen gutwilligen Benutzern trennen, z. B. im Sinne einer Netzwerkstrukturierung. Gegen ernsthafte Angreifer wirkt ein solcher Firewall wie eine Papptür bei Feuer. Im Einzelnen wird die TCP/IP Handshakesequenz ausgenutzt:

A —> B: SYN, A_SNa
B —> A: SYN, A_SNb
A —> B: ACK (A_SNb)

Der Anfangswert SN wird aus SN der vorhergehenden Verbindung zuzüglich 128/Sekunde berechnet. Zunächst bereitet man die Verbindung auf einen harmlosen Port vor, um so einen Ausgangswert SN zu ermitteln. Diesen Port lässt man aber dann in Ruhe und errät den Wert SNb + 128n, n natürliche Zahl. Mit dem erratenen Wert schmuggelt man sich dann an den Port, der das eigentliche Ziel des Angriffes ist.

Eine weitere Angriffsmöglichkeit auf TCP/IP-Ebene ist das Erzeugen offener Verbindungen. Der Verbindungsaufbau umfasst einen Three-Way Handshake. Wenn eine Client-Station das erste Paket schickt, eine Antwort vom Server erhält und auf diese Antwort ihrerseits aber nicht antwortet, wird der Server verwirrt, weil er eben als nächstes die Antwort erwartet. Der Server möchte weiterhin eine Verbindung zustande bringen und wartet nunmehr auf das zweite Paket vom Client. Dieser denkt aber gar nicht daran, sondern baut unter einem anderen »Namen« die nächste offene Verbindung auf. Die Kapazität eines jeden Servers für solche Verbindungen ist eng begrenzt, nach einer Handvoll bis einigen Dutzend wird er i.a. aussteigen und damit auch den Service für alle anderen Verbindungen beenden. So kann man einem Server-Betreiber von außen damit drohen, seinen Server außer Betrieb zu setzen und z. B. ein Lösegeld verlangen. Neuere Server können hiermit natürlich schon wieder umgehen.

Eine andere Alternative der Überlastung ist natürlich gegeben, wenn man einem Server, z. B. einem Mail-Server, lauter Unsinn schickt, den er aber bearbeiten muss. Damit kann man die Nutzbarkeit eines Mail-Systems zerstören.

Eine andere beliebte Methode ist die Ausnutzung der Sequenznummerierung bei TCP. Wenn man Sequenznummern einer Verbindung fängt, kann man eigene Pakete mit passenden Sequenznummern einschleusen. Kombiniert man dies mit dem IP-Spoofing und der Blockierung entscheidender Anwendungsprogramme durch halboffene Verbindungen, stehen Tür und Tor für weitere Angriffe auf.

So kann man z. B. ein Server-Login zunächst dadurch angreifen, dass man so viele halboffene Verbindungen hineinschreibt, bis es nicht mehr geht und der für diese Zwecke reservierte Pufferspeicher gänzlich voll ist. Danach kann man Server-Login-Pakete z. B. an ein X-Terminal vortäuschen, da ja der tatsächliche Server-Login gar nicht mehr reagiert. Auf ein vorgetäuschtes SYN vom Server-Login an X-Terminal antwortet dieses mit einem SYN-ACK. Das vorgetäuschte Server-Login kann dann ein ACK mit erratener Sequenznummer losschicken und somit das SYN-ACK bestätigen. Damit steht die Verbindung aber nicht zwischen Terminal und Server, sondern zwischen Terminal und Angreifer. Und der ist jetzt ganz gespannt, was das Terminal dem Server zu sagen hat!

Für praktisch jede Komponente im Internet-Protokollstack gibt es mehr oder minder bequeme Möglichkeiten, sie anzugreifen. Sogar die eigentlichen Authentifikationsverfahren (z. B. Passwort) sind nicht sicher, solange sie nicht oder nur unzureichend verschlüsselt arbeiten und mit einfachen Methoden wie Sniffer-Analyse ausgehebelt werden können. Spätestens seit ein besserer Student in kurzer Zeit die 40 Bit DES-Verschlüsselung geknackt hat, weiß man, wo die Latte liegt: Auf jeden Fall deutlich über dem, was die US-Regierung freizugeben gewillt ist.

ID-Systeme

Viele Einbrüche sind nicht so einfach und sofort zu erkennen. Vielmehr benötigt man Intrusion Detection (ID)-Systeme zur Erkennung erfolgloser, bereits erfolgreicher oder gerade ablaufender Einbruchsversuche in ein Computersystem oder Datennetz. ID-Systeme arbeiten heute mit der Erkennung von Anomalien und der Erkennung missbräuchlicher Systemnutzung. Natürlich sind sie nicht in der Lage, laufende Netzwerkeinbrüche zu stoppen. Anomalien sind in der CPU-Nutzung, Aktivitäten an den I/O-Ports und an der Netzlastcharakteristik zu erkennen. Werden z. B. allzu viele Pakete ohne erkennbare Nutzlast erzeugt, ist wahrscheinlich, dass jemand versucht, in einen Server einzudringen. Man muss ein solches System zunächst auf die Messparameter festlegen, dann allgemeine Durchschnittswerte und Zusammenhänge zwischen diesen definieren sowie schließlich die Schwellwerte, bei denen eine Anomaliereaktion ausgelöst werden soll, bestimmen. Problematisch an diesen ID-Programmen ist die hohe benötigte Rechenleistung und die große Anzahl von Fehlern: Autorisierte Zugriffe werden als Angriff erkannt, Angriffe bleiben unentdeckt. Schließlich kennen Profis die Arbeitsweise dieser Systeme und fallen nicht darauf herein. Mittlerweile will man den Angreifern mittels Erkennung missbräuchlicher Systemnutzung auf die Schliche kommen, indem man bestimmte Ereignismuster z. B. auf der Basis von Petri-Netzen auswertet. So will man z. B. die »Handschrift« des Einbrechers entziffern. Andere Ereignismuster passen auf Virus- und Wurm-Angriffe, Trojanische Pferde, Login/Password-Angriffe, Service-Angriffe. Hier gibt es eine Reihe bereits sehr ausgefeilter Public Domain Systeme wie z. B. ASAX (Advanced Security Audit Trail Analyzer on Unix) unter

ftp://coast.cs.purdue.edu/pub/tools/unix/asax

oder COPS (Computer Oracle and Password System Farmer/Spafford) der TAMU-Tiger Texas A&M University unter

ftp://coast.cs.purdue.edu/pub/tools/unix/cops
ftp://net.tamu.edu:/pub/security/TAMU

oder kommerzielle Produkte wie Stalker/Web-Stalker , Saic CMDS.
Problem: Glauben Sie wirklich, dass jemand, der noch nicht einmal ein allgemeines Sicherheitskonzept hat, mit diesen Instrumenten wirklich arbeiten kann und wird? Wohl kaum!

Alles in allem wird viel diskutiert, vorgeschlagen und lamentiert. Tatsache ist aber, dass die Sicherheitsproblematik in vernetzten und verteilten Umgebungen als Ganzheit in voller Komplexität angegangen werden kann. Es hilft nichts, über einzelne Risiken und deren einzelne Abmilderung durch einzelne Produkte, wie z. B. Firewalls zu reden. Nur ein Gesamtkonzept hilft weiter. Auch der beste Firewall kann nichts machen, wenn niemand ihm »sagt«, was wann warum vor wem zu schützen ist, oder positiv: wer wann was wie darf! Zur Begründung der Gesamtkonzeption holen wir jedoch noch etwas weiter aus. Die gesamte Logik der Intranets besteht aus der Kommunikation von Objekten in verteilten Umgebungen. Also steht die Sicherheit dieser im Vordergrund.

« Teil 47: 1:1-Marketing mit dem Internet und Intranets (2)Teil 49: Sicherheitsprobleme und -lösungen in Netzen »


zugeordnete Kategorien: LAN, Web-Techniken
zugeordnete Tags:

Sie fanden diesen Beitrag interessant? Sie können



Anmerkungen, Fragen, Kommentare, Lob und Kritik:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

.