Kapitel 3 Hacker und Cracker In diesem Kapitel möchte ich Ihnen erläutern, welche Ansätze und Vorgehensweisen Hacker und Cracker verfolgen, um ein Netzwerk zu attackieren. Ferner finden Sie hier auch einen Überblick über die Hitliste der zwanzig gefährlichsten Sicherheitslücken, die von der Gruppe SANS (SysAdmin, Auditing, Network, Security; Systemadministration, Netzwerke und Sicherheit; http:// www.sans.org) aufgestellt wurde. 3.1 Hacker und Cracker – wo ist der Unterschied? Damit man die Vorgehensweise eines Hackers oder Crackers versteht, muss man begreifen, was ein Hacker oder ein Cracker ist. Der Unterschied zwischen Hackern und Crackern war jahrelang Gegenstand hitziger Debatten im Web; meinen Beitrag dazu finden Sie hier. Wenn man mich also fragen würde, wo ich die Grenze zwischen Hackern und Crackern ziehen würde, dann wären meine Definitionen die folgenden: ■ ■ Ein Hacker ist ein Individuum, das sich in hohem Maße für die geheimnisvollen und verborgenen Arbeitsabläufe von Computerbetriebssystemen interessiert. Hacker sind oft Programmierer und verfügen insofern über fortgeschrittenes Wissen über Betriebssysteme und Programmiersprachen. Hin und wieder entdecken sie Löcher in diesen Systemen und oft auch die Ursachen dieser Löcher. Hacker gieren nach Wissen, teilen ihre Erkenntnisse freimütig mit anderen und werden niemals – niemals! – mit Absicht Daten beschädigen oder gar ganze Rechner lahm legen. Im Vergleich hierzu handelt es sich beim Cracker um eine Person, die in böswilliger Absicht in Rechnersysteme eindringt oder deren Integrität anderweitig beschädigt. Nachdem sie sich unberechtigten Zugriff verschafft haben, zerstören Cracker oft wichtige Daten, enthalten befugten Benutzern Dienste vor oder verursachen ganz einfach Probleme auf dem Zielsystem. Diese Cracker sind leicht an ihrer heimtückischen Handlungsweise zu erkennen. Manchmal verhalten sie sich auch so unauffällig wie möglich und richten sich versteckt auf dem Rechner ein, um ihn dann unbemerkt für Angriffe auf weitere Rechner zu benutzen. Ferner ist festzuhalten, dass zwei unterschiedliche Arten von Crackern zu unterscheiden sind. Auf den ersten Typ trifft man glücklicherweise nur selten: Es handelt sich um Cracking-Experten, die neue Sicherheitslücken entdecken und oft Programme entwickeln, um diese Lücken auszunutzen. Die zweite >>> NEW TECH 79 Kapitel 3 • Hacker und Cracker Sorte von Crackern sind die Script-Kids; sie wissen lediglich, wo solche Programme zu bekommen sind und wie man sie ausführt. Die Script-Kids sind zwar zahlreicher, aber auch leichter zu enttarnen und zu stoppen. Soviel zu dieser grundlegenden Unterscheidung und dem Selbstverständnis dieses Buches. 3.2 Der Werkzeugkasten Es gibt verschiedene Werkzeuge, mit denen ein Cracker oder Hacker in Ihr Netzwerk eindringen kann. Dabei handelt es sich teils um Programme, teils um Methoden. 3.2.1 Reconnaissance »Reconnaissance« bezeichnet im Englischen den Begriff des Auskundschaftens, wie man ihn aus Indianer- oder Spionageromanen kennt. Warum benutzen Cracker diese Methode? Nun, das Auskundschaften ist ja nichts anderes als der Prozess des Sammelns von Informationen über ein oder mehrere Zielobjekte. Ein gewiefter Einbrecher wird sein Zielobjekt – das Haus, das er ausrauben will – vor der Tat auskundschaften: Er wird beispielsweise feststellen, wann die Besitzer zu Hause sind, wie belebt die Straße ist und ob vielleicht sogar mal ein Streifenpolizist zu sehen ist. Dadurch erhält der Ganove einen guten Eindruck davon, welche Tageszeit für seine Missetat am geeignetsten ist. Ein Cracker, der einen Angriff auf ein Netzwerk oder eine Website plant, wird die gleiche Vorgehensweise wählen. Es gibt für die Reconnaissance eine Menge von Arbeitsmitteln, von denen wir uns im Folgenden ein paar ansehen wollen. Social Engineering Der erste (und wahrscheinlich am häufigsten unterbewertete) Ansatz ist das so genannte Social Engineering. Darunter versteht man eine Vorgehensweise, bei der Leute derart getäuscht, gelenkt oder manipuliert werden, dass sie Informationen preisgeben, die für sie oder Dritte, eine Firma oder eine Organisation schädlich sind. Solche Informationen können dann bei der Planung, Organisation oder Durchführung eines Angriffs verwendet werden. HINWEIS Ira Winkler hat ein hervorragendes Buch namens »Corporate Espionage« verfasst, in dem das Social Engineering und viele andere taktische Ansätze zur Informationssammlung beschrieben werden. Ferner wird hier auch beschrieben, wie Sie sich vor solchen Angriffen schützen können. Mehr Informationen zu Ira Winkler finden Sie unter http://www.annonline.com/interviews/ 970512/. Ein weiteres empfehlenswertes Buch ist »The Art of Deception«, verfasst von dem berühmten Cracker Kevin Mitnick. 80 >>> NEW TECH Der Werkzeugkasten Wie funktioniert Social Engineering? Nehmen wir einmal an, Cracker A möchte das Softwareunternehmen ABC123 GmbH attackieren, um ein paar Benutzernamen und Kennwörter in Erfahrung zu bringen und vielleicht auch herauszufinden, welche Sicherheitsmaßnahmen ABC123 implementiert hat. Er ruft also bei der offiziellen Telefonnummer von ABC123 an und erklärt der freundlichen Dame am anderen Ende der Leitung, dass er neu bei der Firma sei und zudem auswärts tätig wäre; nun bräuchte er die Durchwahl zum Support, um sein Mailkonto und sein Kennwort konfigurieren zu können. Daraufhin erhält er die Nummer. Dann ruft er beim Support an, erläutert die Situation und bittet um ein Kennwort und Angaben dazu, wie er das Netzwerk von außen erreichen kann. Der Supportmitarbeiter gibt bereitwillig Auskunft und stellt die Anforderung nicht einmal in Frage. Warum auch? Die meisten Supportmitarbeiter wagen es nicht, es auf eine Konfrontation ankommen zu lassen, etwa nach dem Motto »Niemals einen Kunden verärgern«. Dieses einfache Szenario gibt dem Angreifer bereits genug Daten an die Hand, um einen Angriff ungesehen durchführen zu können. Die nachfolgend aufgeführten Methoden funktionieren ähnlich wie das Social Engineering: ■ ■ Abfall durchwühlen. Hierbei macht sich der Angreifer über den Mülleimer oder den Papierkorb des Opfers her und sucht dort nach Abfall, der Informationen enthält – etwa IP-Adressen, abgelaufene Kennwörter und vielleicht sogar einen Netzwerkplan. Hierbei handelt es sich im wahrsten Sinne des Wortes um ein »schmutziges« Geschäft, das aber sehr effektiv sein kann. Hochstapelei. Ein Cracker gibt vor, eine wichtige Person zu sein, und nutzt die daraus entstehende Autorität, um an die gewünschten Informationen zu gelangen. Diese Ansätze führen meist zu sehr guten Ergebnissen, und es gibt noch viel mehr Methoden, die zu beschreiben aber den Rahmen dieses Buches sprengen würde. Denken Sie immer daran, dass es Leute gibt, die solche Praktiken anwenden und damit Ihre Sicherheit oder die Sicherheit Ihrer Firma bedrohen. Portscanner Dieser Abschnitt gibt einen technischen Überblick über Portscanner und Sniffer. Portscanner sind Programme, die den TCP/IP-Stapel eines Computers nach Ports (Anschlüssen) absuchen, die den Status LISTEN aufweisen. TCP/IP umfasst eine ganze Reihe von Protokollen, die die Kommunikation über das Internet ermöglichen. Einige Protokolle aus der TCP/IP-Familie (TCP, UDP) kennen jeweils 65.535 Ports. Die Ports 1 bis 1023 gelten dabei als »WellKnown-Ports« (»gängige Ports«), und auf vielen Systemen können nur Benutzer mit Administratorprivilegien Prozesse starten, die diese Ports abfragen. Die Ports 1024 bis 49151 sind registrierte Ports, die verbleibenden Ports 49152 bis 65535 werden als dynamische und/oder private Ports bezeichnet. >>> NEW TECH 81 Kapitel 3 • Hacker und Cracker TIPP Eine Liste mit den Port-Nummern finden Sie online unter http:// www.iana.org/assignments/port-numbers. Das TCP-Protokoll wird in RFC 793 behandelt, wo viele Ports festgeschrieben sind, die Socketprogrammierer beachten müssen. Ferner ist hier definiert, wie TCP auf die verschiedenen Pakete (mit den Statusbits FIN, ACK, RST, PSH, URG und SYN) reagiert: Wenn der Status der Verbindung auf einem Port CLOSED ist (ein fiktiver Status, denn dies bedeutet einfach, dass der TCP-Block – und damit eine Verbindung – nicht vorhanden ist), dann werden alle Daten des empfangenen Pakets verworfen. Ein empfangenes Paket, das eine RESET-Meldung (RST) enthält, wird verworfen. Ein empfangenes Paket, das keine RST-Meldung enthält, verursacht das Senden einer RST-Meldung als Reaktion auf den Empfang. Die Werte des Bestätigungs- und Sequenzfeldes werden selektiert, damit der TCP-Sender, der das irreguläre Paket übermittelt hat, die RST-Meldung akzeptiert. Ist der Status hingegen LISTEN (das Programm hinter dem Port wartet auf eine eingehende Verbindung), dann prüfen Sie zunächst auf Vorhandensein einer RST-Meldung; eine eingehende RST-Meldung sollte ignoriert werden. Als Nächstes prüfen Sie auf Vorhandensein einer ACK-Meldung; Bestätigungen, die über Verbindungen mit LISTEN-Status erhalten werden, sind generell als negativ zu betrachten. Für jedes empfangene ACK-Paket sollte ein adäquates RST-Paket erstellt werden. Die dritte Überprüfung bezieht sich auf eine SYN-Meldung (Sequenznummernsynchronisierung); ist das SYN-Bit gesetzt, dann überprüfen Sie die Sicherheitsparameter des eingehenden Paketes. Wenn diese Sicherheitsparameter nicht exakt mit denen des TCB (Transmission Control Block, Übertragungskontrollblock) übereinstimmen, dann senden Sie eine RST-Meldung und beginnen von vorn. Dieser Auszug aus RFC 793 sagt uns, wie Ports mit dem Status CLOSED bzw. LISTEN auf bestimmte TCP-Flags reagieren. Mit diesem Wissen können Entwickler Programme schreiben, die sowohl offene als auch geschlossene Ports erkennen. Dies sind die Programme, die man dann als »Portscanner« bezeichnet. Sehen wir uns einmal ein paar populäre Portscanner an und überprüfen wir, was diese können (und was sie nicht können). TIPP Informationen über TCP/IP finden Sie im Web unter http://www.ietf.org/ rfc/rfc0793.txt und http://www.ietf.org/rfc/rfc0791.txt. Weitere Informationen über das Verhalten von TCP/IP können Sie unter http://www.insecure.org/nmap/nmap-fingerprinting-article.html nachlesen. 82 >>> NEW TECH Der Werkzeugkasten Nmap Nmap ist der derzeit wahrscheinlich meistverbreitete und -genutzte Portscanner überhaupt. Er ist eine Entwicklung von Fyodor (mehr zu ihm unter www.insecure.org) und wurde dank des offen gelegten Quellcodes von Mitgliedern der gesamten Internetgemeinde immer weiterentwickelt. Nmap erlaubt dem Benutzer die Einstellung zahlreicher Optionen für den Scanprozess. Listing 3.1 zeigt die Ergebnisse des Befehls nmap -h. Dies ist ein hervorragender Ausgangspunkt für Nmap. Weitere Informationen zu Nmap finden Sie unter http://www.insecure.org/nmap/data/nmap_manpage.html. Listing 3.1: Ergebnisse von nmap -h Nmap V. 3.00 Usage: nmap [Scan Type(s)] [Options] <host or net list> Some Common Scan Types ('*' options require root privileges) * -sS TCP SYN stealth port scan (default if privileged (root)) -sT TCP connect() port scan (default for unprivileged users) * -sU UDP port scan -sP ping scan (Find any reachable machines) * -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only) -sR/-I RPC/Identd scan (use with other scan types) Some Common Options (none are required, most can be combined): * -O Use TCP/IP fingerprinting to guess remote operating system -p <range> ports to scan. Example range: '1-1024,1080,6666,31337' -F Only scans ports listed in nmap-services -v Verbose. Its use is recommended. Use twice for greater effect. -P0 Don't ping hosts (needed to scan www.microsoft.com and others) * -Ddecoy_host1,decoy2[,...] Hide scan using many decoys -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing policy -n/-R Never do DNS resolution/Always resolve [default: sometimes resolve] -oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile> -iL <inputfile> Get targets from file; Use '-' for stdin * -S <your_IP>/-e <devicename> Specify source address or network interface --interactive Go into interactive mode (then press h for help) Example: nmap -v -sS -O www.my.com 192.168.0.0/16 '192.88-90.*.*' SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES Listing 3.1 beweist, wie einfach Nmap zu konfigurieren ist und welche Optionen vorhanden sind. Ich möchte einfach ein paar Schalter herausgreifen, ihre Funktionsweise beschreiben und erläutern, wie sie zur Reconnaissance verwendet werden können. Der Schalter -sT (»scan TCP«) ist wahrscheinlich der auffälligste Schalter (weil er sich längst nicht so gut tarnt wie die anderen). Er weist Nmap an, eine vollständige Verbindung mit dem Zielcomputer herzustellen. Diese Form des Portscanning ist sehr leicht aufzudecken (ein Verbindungsaufbau wird von den meisten Betriebssystemen mitprotokolliert), und ein Angreifer, der es ernst meint, wird sie wahrscheinlich nicht verwenden. >>> NEW TECH 83 Kapitel 3 • Hacker und Cracker HINWEIS Im Sommer 2000 haben ein paar Analytiker, die der SANS-Gruppe angehören, ein Buch über die Erkennung von Signaturen zusammengestellt, die Eindringlinge hinterlassen. Das Buch heißt »Intrusion Signatures and Analysis« (Analyse von Einbruchsignaturen) und ist eine hervorragende Referenz für jeden, der sich in die Themen »Erkennen von Eindringlingen« und »Einbruchsignaturen« einarbeiten möchte. Der Schalter -sF sendet FIN-Pakete an den Zielcomputer. Wie funktioniert das? Wenn ein Computer ein FIN-Paket empfängt, dann stehen ihm mehrere Möglichkeiten offen, darauf zu reagieren: ■ ■ ■ Wenn der Port den Status LISTEN hat, dann antwortet der Computer nicht. Wenn der Port den Status CLOSED hat, dann antwortet der Computer mit einem RESET. Wenn eine Verbindung vorhanden ist, dann beginnt der Computer mit dem Abbau dieser Verbindung (sofern das FIN-Paket zu der bestehenden Verbindung »passt«, darum interessiert uns diese Möglichkeit momentan nicht). Die Reaktion des Rechners auf den Schalter -sF sagt Nmap, welche Ports geöffnet sind. Listing 3.2 zeigt uns die Ergebnisse eines Scans mit diesem Schalter, wie sie sich dem Benutzer darstellen. Dieser Scan wurde an einem Linux-Computer vorgenommen, auf dem das t0rn-Rootkit ausgeführt wurde (Port 47017 ist ein falscher Fünfziger). Hier die Ergebnisse: Starting nmap V. 3.00 ( www.insecure.org/nmap/ ) Interesting ports on (192.168.1.3): HINWEIS Die 4000 gescannten Ports, die hier nicht angezeigt werden, haben den Status CLOSED. Port State Service 47017/tcp open unknown TCP Sequence Prediction: Class=random positive increments Difficulty=3980866 (Good luck!) Remote operating system guess: Linux 2.1.122 - 2.2.16 Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds Bei Verwendung eines Sniffers (zum Beispiel tcpdump) würde man diese Ausgabe zu sehen bekommen: Listing 3.2: Ergebnisse von nmap -sF 20:00:48.813047 > 192.168.1.5.47257 > 192.168.1.1.473: F 0:0(0) win 1024 (ttl 48, id 31728) 4500 0028 7bf0 0000 3006 8b89 c0a8 0105 84 >>> NEW TECH Der Werkzeugkasten c0a8 0101 b899 01d9 0000 5001 0400 6e1a 0000 20:00:48.813153 > 192.168.1.5.47257 > 48, id 56669) 4500 0028 dd5d 0000 3006 c0a8 0101 b899 0297 0000 5001 0400 6d5c 0000 20:00:48.813188 > 192.168.1.5.47257 > 48, id 23854) 4500 0028 5d2e 0000 3006 c0a8 0101 b899 05b2 0000 5001 0400 6a41 0000 0000 0000 0000 192.168.1.1.663: F 0:0(0) win 1024 (ttl 2a1c c0a8 0105 0000 0000 0000 192.168.1.1.1458: F 0:0(0) win 1024 (ttl aa4b c0a8 0105 0000 0000 0000 Was man hier nicht sieht, sind die RESET-Meldungen, die von den überprüften Ports zurückgeschickt werden. Dieser Ansatz wird von vielen Crackern benutzt, um ein Zielobjekt auszukundschaften, insbesondere weil er wesentlich schwerer zu erkennen ist als der Schalter -sT. Der Schalter -sS sendet SYN-Pakete, um festzustellen, ob ein Port (oder eine Gruppe von Ports) geöffnet ist. Dieser Scan wird normalerweise als »HalfopenScan« bezeichnet. Der Name ergibt sich aus der Vorgehensweise: Nmap schickt ein SYN-Paket an einen Port. Wenn der Port offen ist, dann antwortet er mit einem SYN/ACK-Paket. Wenn dieses Paket wiederum von Nmap empfangen wird, dann schickt Nmap einen RESET. Aus diesem Grund ist, wenn man »halb offene« Pakete verschickt, die Chance, entdeckt zu werden (theoretisch) geringer. Viele Cracker verwenden diesen Ansatz, um offene Ports aufzufinden, obwohl manchmal derlei Aktivitäten protokolliert werden (tatsächlich sollten die meisten Firewalls und Erkennungssysteme heutzutage solche Versuche aufzeichnen). Der letzte Schalter, den ich hier besprechen möchte, ist -sX. Bei diesem Paket setzt Nmap u.a. die Flags FIN, URG und PSH. Unter normalen Umständen ist dies keine gewöhnliche Flagkombination; eine Zusammensetzung wie etwa FIN, URG und ACK wäre normal, nicht aber FIN, URG und PSH. Der Grund für eine solche Kombination ist dennoch offensichtlich: Hiermit lassen sich einige ältere Firewalls und Schutzsysteme umgehen. Was das mit Reconnaissance zu tun hat? Nmap ist einfach ein tolles Tool dafür. Dank all seiner Schalter und Optionen erschwert es einem Firewall-Administrator oder einem Schutzsystem die korrekte Erkennung aller möglichen Scans erheblich. TIPP Sie haben Blut geleckt? Mehr zu Nmap finden Sie unter www.insecure.org. hping2 Ein anderer exzellenter Portscanner zum Auskundschaften ahnungsloser Opfer ist hping2. Hierbei handelt es sich wahrscheinlich um eines der besten Tools, >>> NEW TECH 85 Kapitel 3 • Hacker und Cracker denn es ist sehr weit reichend zu konfigurieren. Tabelle 3.1 ist die Ausgabe der Onlinehilfe von hping2 und zeigt viele der Optionen, die für das Tool verfügbar sind. TIPP Mehr Informationen zu hping2 finden Sie unter http://www.kyuzz.org/antirez/hping2.html. Parameter hping2-Host Optionen -h -v -c -i -n -q -I -V -D -z -Z Modi Default -0 -1 -2 -9 IP -a -t -N -W -r -f -x -y -g -m -o -G --help Show this help Show version Packet count Wait (uX for X microseconds, for example, -i u1000) Numeric output Quiet Interface name (otherwise, default routing interface) Verbose mode Debugging info Bind Ctrl+Z to ttl (default to dst port) Unbind Ctrl+Z -H --ipproto --version --count --interval --numeric --quiet --interface --verbose --debug --bind --unbind default mode --rawip --icmp --udp --listen --spoof --ttl --id --winid --rel --frag --morefrag --dontfrag --fragoff --mtu --tos --rroute TCP RAW IP mode ICMP mode UDP mode Listen mode Spoof source address ttl (default 64) id (default random) Use win* id byte ordering Relativize id field (to estimate host traffic) Split packets in more frag. (can pass weak acl) Set more fragments flag Set dont fragment flag Set the fragment offset Set virtual mtu; implies --frag if packet size > mtu Type of service (default 0x00); try --tos help Includes RECORD_ROUTE option and display the route buffer Set the IP protocol field, only in RAW IP mode Tabelle 3.1: Liste der Optionen von hping2 86 >>> NEW TECH Der Werkzeugkasten Parameter hping2-Host Optionen ICMP -C -K --icmptype ICMP type (default echo request), try --icmptype help ICMP code (default 0) Display help for other ICMP options --icmpcode --icmp-help UDP/TCP -s -p -k -w -O -Q -b -M -L -F -S -R -P -A -U -X -Y --baseport --destport --keep --win --tcpoff --seqnum --badcksum --setseq --setack --fin --syn --rst --push --ack --urg --xmas --ymas --tcpexitcode TS -d -E -e -j -J -B -u -T --data --file --sign --dump --print --safe --end --traceroute Base source port (default random) [+][+]<port> destination port(default 0) Ctrl+Z inc/dec Keep still source port winsize (default 64) Set fake TCP data offset (instead of tcphdrlen / 4) Show only TCP sequence number Send packets with a bad IP checksum Set TCP sequence number Set TCP ack Set FIN flag Set SYN flag Set RST flag Set PUSH flag Set ACK flag Set URG flag Set X unused flag (0x40) Set Y unused flag (0x80) Sse last tcp->th_flags as exit code Data size (default is 0) Data from file Add 'signature' Dump packets in hex Dump printable characters Enable "safe" protocol Tell you when --file reached EOF and prevent rewind (Implies --bind) traceroute mode Tabelle 3.1: Liste der Optionen von hping2 (Forts.) Bereits aus dieser Hilfedatei ist ersichtlich, wie weit reichend hping2 zu konfigurieren ist. Ein Cracker kann praktisch jedes einzelne Bit im TCP/IP-Header modifizieren und damit bei den Scantechniken wirklich kreativ werden. Auch erlaubt das Tool dem Cracker, Daten in das Paket zu integrieren, die er selbst gebastelt hat. Das heißt, er kann beliebigen Code auch heimtückischster Art einfügen – etwa um Pufferspeicher zum Überlauf zu bringen oder Systeme mit Trojanern zu infizieren – und die Pakete dann auf das Netzwerk loslassen. Wenn Sie hping2 nicht haben, sollten Sie es unbedingt herunterladen und ausgiebig testen. Übrigens: Die nächste Generation, hping3, wird scriptfähig sein und über verbesserte Ausgabeoptionen verfügen. >>> NEW TECH 87 Kapitel 3 • Hacker und Cracker Es gibt eine Menge weiterer Portscanner in freier Wildbahn, die wir hier nicht alle behandeln können. Portscanner sind für Cracker nicht nur ein Tool, das an die Türen von Computernetzwerken klopft, sondern sie erleichtern die Ermittlung der im Zielnetzwerk verwendeten Betriebssysteme und Dienste. Mit solcherlei Informationen ausgestattet, kann der Cracker dann mit seinen bevorzugten Utilities in das Netzwerk eindringen. Computerfachleute können und müssen solche Programme benutzen, um die Sicherheit von Systemen einschätzen zu können: Der Systemadministrator sollte die Chance haben, Sicherheitslücken zu entdecken, bevor dies ein potenzieller Angreifer tut. Passive Betriebssystemidentifikation Der folgende Abschnitt enthält Anmerkungen zur Kunst der passiven Betriebssystemidentifikation. Die passive Betriebssystemidentifikation ist eine Methode, die sowohl unter Crackern als auch unter Sicherheitsfachleuten zunehmend populärer wird. Sie gestattet die Identifikation des Betriebssystems durch die Analyse des TCP/IP-Stapels. Ein Cracker kann sich nicht besser tarnen als mit dieser Vorgehensweise, denn er benötigt lediglich einen Paket-Sniffer und etwas Zeit und muss keine seltsamen Datenpakete an das Zielobjekt senden, um herauszufinden, mit welchem Betriebssystem er es zu tun hat. Fast alle Betriebssysteme haben Standardeinstellungen, und darunter natürlich auch TCP/IP-Standardeinstellungen. Nehmen wir mal Linux (Kernel 2.2): Wenn Sie einen Blick auf den Inhalt des in Listing 3.3 abgebildeten Verzeichnisses /proc/sys/net/ipv4 werfen, werden Sie eine Vielzahl von Parametern entdecken, die Standardeinstellungen enthalten, die das System für seine tägliche Arbeit benötigt. Das Listing zeigt die TCP/IP-Parameter von Linux. Listing 3.3: Das Verzeichnis /proc/sys/net/ipv4 Conf icmp_destunreach_rate icmp_echo_ignore_all icmp_echo_ignore_broadcasts icmp_echoreply_rate icmp_ignore_bogus_error_responses icmp_paramprob_rate icmp_timeexceed_rate igmp_max_memberships ip_always_defrag ip_autoconfig ip_default_ttl ip_dynaddr ip_forward ip_local_port_range ip_masq_debug ip_no_pmtu_disc 88 >>> NEW TECH Der Werkzeugkasten ipfrag_high_thresh ipfrag_low_thresh ipfrag_time neigh route tcp_fin_timeout tcp_keepalive_probes tcp_keepalive_time tcp_max_ka_probes tcp_max_syn_backlog tcp_retrans_collapse tcp_retries1 tcp_retries2 tcp_rfc1337 tcp_sack tcp_stdurg tcp_syn_retries tcp_syncookies tcp_timestamps tcp_window_scaling Schauen wir uns ein paar dieser Parameter einmal näher an, um zu sehen, was diese bewirken und wie sie sich auf das Betriebssystem auswirken: ip_default-ttl: Dieser Parameter setzt den TTL-Standardwert auf 64. Er kann auf einem Linux-Rechner durch Eingabe von echo 128 >> /proc/sys/ net/ipv4/ip_default_ttl geändert werden. ■ ip_forward: Zwar ermöglicht dieser Parameter nicht direkt die passive ■ ■ ■ ■ ■ Erkennung des Betriebssystems, aber er hat trotzdem starke Auswirkungen auf die Betriebssystemsicherheit. Standardmäßig hat ip_forward den Wert »0«, d. h., die IP-Weiterleitung ist deaktiviert; wenn Sie jedoch den Wert »1« zuweisen, wird die Weiterleitung aktiviert, und der Computer darf sogar Pakete von einer Schnittstelle zu einer anderen weiterleiten, was wieder sicherheitsrelevante Fragen aufwerfen kann. ip_local_port_range: Dieser Parameter bezeichnet den Ausgangsportbereich, der von Linux verwendet wird. Standardmäßig ist hier der Bereich zwischen 1024 und 4999 eingetragen. Das ist gut zu wissen, wenn Sie feststellen wollen, ob ein Paket regulär ist oder nicht. tcp_sack: Dieser Parameter teilt dem Betriebssystem mit, ob es den Selective Acknowledgement-Standard nach RFC 2883 unterstützt. Da Linux diesen Standard tatsächlich unterstützt, hat der Parameter den Wert »1«. tcp_timestamps: Dieser Parameter teilt dem Betriebssystem mit, ob es Zeitstempel unterstützt. Auch hier hat der Parameter den Wert »1«, weil Linux Zeitstempel standardmäßig unterstützt. tcp_window_scaling: Dieser Parameter teilt dem Betriebssystem mit, ob es die Skalierungsfunktion für Sende- und Empfangspuffer (Fenster) des TCP/IPStapels unterstützt. Der Wert bei Linux ist »1«. >>> NEW TECH 89 Kapitel 3 • Hacker und Cracker TIPP Neben den oben angesprochenen Punkten lässt sich auch über ICMP (Internet Control Message Protocol) eine Menge über einen Computer oder ein Netzwerk herausfinden. Beinahe jeder Rechner in einem Netzwerk beherrscht dieses Protokoll (zumindest teilweise), um auf Fehlermeldungen und Netzwerkprobleme reagieren zu können. Zum Beispiel werden hier Meldungen erzeugt, wenn ein Rechner nicht erreichbar ist oder wenn die Daten langsamer an einen Rechner geschickt werden sollen, weil er sie nicht schnell genug annehmen bzw. verarbeiten kann. ICMP hat allerdings auch eine hohe sicherheitstechnische Relevanz. Mehr dazu erfahren Sie unter http://www.sys-security.com. Auf dieser Site finden Sie auch ein ICMPbasiertes Fingerprinting-Programm für Betriebssysteme. Listing 3.3 zeigt einige Parameter an, die mit der passiven Betriebssystemidentifizierung in Zusammenhang stehen können. Auch wenn wir hier nur über Linux gesprochen haben, so haben doch alle Betriebssysteme ihren jeweiligen Satz mit Standardeinstellungen. Ein gutes Beispiel ist hier etwa Windows: Windows 98, NT und 2000 verwenden alle einen TTL-Wert von 128. Sehen wir uns kurz ein paar andere Betriebssysteme und ihre TCP/IP-Einstellungen an: ■ ■ ■ Microsoft (Windows 98, NT) Paketgröße (nur Header): 44 Bytes (Standard) SYN- oder SYN|ACK-Pakete: setzen automatisch das Don't Fragment- und das MSS-Flag (Maximum Segment Size) TTL: 128 Microsoft (Windows 2000) Paketgröße (nur Header): 48 Bytes (Standard) SYN- oder SYN|ACK-Pakete: setzen automatisch die Flags Don't Fragment, Maximum Segment Size, Selective Acknowledgment sowie zwei NOPs TTL: 128 Linux (Red Hat 6.2) Paketgröße (nur Header): 60 Bytes (Standard) SYN- oder SYN|ACK-Pakete: setzen automatisch die Flags Don't Fragment, Maximum Segment Size, Selective Acknowledgment, NOPs, Timestamp und Window Scaling (gilt für das erste SYN- oder SYN|ACK-Paket; Linux reagiert dann je nach Typ des Computers, der die erste SYN-Anfrage stellte) TTL: 128 (TTL: 255 bei RESET-Paketen) Mit diesem Wissen können Sie Betriebssysteme ganz einfach identifizieren, indem Sie den Netzwerkverkehr überwachen. Sie müssen allerdings bedenken, dass Ihre Analyse nutzlos ist, wenn der Systemadministrator oder ein Cracker einen oder mehrere dieser Parameter geändert hat. Aus diesem Grund ist die passive Betriebssystemidentifizierung nicht hundertprozentig zuverlässig – aber wenn man das so sieht, was ist dann schon hundertprozentig zuverlässig? Listing 3.4 zeigt zwei Pakete, mit deren Hilfe wir das Betriebssystem schnell ermitteln können. 90 >>> NEW TECH Exploits und die SANS-Hitliste Listing 3.4: Betriebssysteme identifizieren 15:59:52.533502 > my_isp.net.1100 > 134.11.235.232.www: S 325233392:325233392(0) win 32120 <mss 1460,sackOK,timestamp 88950 0,nop,wscale 0> (DF) (ttl 64, id 505) 4500 003c 01f9 4000 4006 0522 xxxx xxxx 860b ebe8 044c 0050 1362 aaf0 0000 0000 a002 7d78 7887 0000 0204 05b4 0402 080a 0001 5b76 0000 0000 0103 0300 16:00:14.188756 >my_isp.net.1105 > 134.11.235.232.www: R 346737591:346737591(0) win 0 (ttl 255, id 544) 4500 0028 0220 0000 ff06 860e xxxx xxxx 860b ebe8 0451 0050 14aa cbb7 0000 0000 5004 0000 973c 0000 In Listing 3.4 sind zwei Pakete abgebildet, ein SYN- und ein RST-Paket. Bei näherer Betrachtung des SYN-Pakets fallen folgende Aspekte auf: Der TTL-Wert beträgt 64. Die Parameter mss, sackOK, nop und wscale sind ebenso gesetzt wie das dfFlag. Achten Sie auch auf die Headergröße (3C, also 60 Bytes). ■ Schauen Sie sich jetzt den Ausgangsport an. Der Port 1100 befindet sich im Standard-Portbereich zwischen 1024 und 4999. All diese Anzeichen lassen nur einen Schluss zu: Wir haben es hier mit Linux zu tun. Sehen wir uns noch kurz das RST-Paket an. Der TTL-Wert beträgt 255. Wenn Red Hat Linux ein RST-Paket sendet, dann weist es standardmäßig einen TTL-Wert von 255 zu, während beim Aufbau einer Verbindung der TTL-Wert 64 verwendet wird. Ein anderes Kennzeichen von RST-Paketen von Linux ist ihre Größe; normalerweise ist ein Red Hat-Paket 60 Bytes groß; wenn hingegen das RST-Flag gesetzt ist, dann beträgt die Paketgröße lediglich 40 Bytes. Und was hat das alles mit Reconnaissance zu tun? Nun, wenn ein Cracker irgendeine der aufgeführten Methoden verwendet, kann er sehr wertvolle Informationen über ein Computernetzwerk erhalten. Hierzu gehören die Zuweisungen in diesem Netzwerk, IP-Adressen, der Grad der Sicherheitsimplementierungen und die Feststellung verschiedener Betriebssysteme. ■ ■ 3.3 Exploits und die SANS-Hitliste In diesem Abschnitt geht es um Exploits – das sind Programme, die von Crackern ausgeführt werden und Schwachstellen in der Systemsicherheit ausnutzen. Außerdem werden wir einen Blick auf die Hitliste mit den zwanzig schwerwiegendsten Sicherheitslücken im Internet werfen, die die SANS-Gruppe aufgestellt hat. 3.3.1 Exploits Wenn Sie herausfinden wollen, welche Tore geöffnet und welche geschlossen sind, dann ist die Reconnaissance von größter Wichtigkeit. Der nächste Schritt des Crackers besteht aber nun darin, tatsächlich in das Computernetzwerk einzudringen. Dies tut er, indem er Schwachstellen in Betriebssystemdiensten ausnutzt. >>> NEW TECH 91 Kapitel 3 • Hacker und Cracker Den richtigen Exploit zu finden, kann einem ganz schön Kopfzerbrechen bereiten – es gibt so unglaublich viele davon. Exploits sind nicht alle gleich, sondern in der Regel von einem bestimmten Betriebssystem abhängig. Nur weil es einen Drucker-Exploit für Linux gibt, heißt das noch lange nicht, dass dieser unter Solaris läuft; umgekehrt gilt das gleiche. TIPP Wenn Sie immer über die neuesten Exploits und Sicherheitslücken informiert sein wollen, dann schreiben Sie sich in die BUGTRAQ-Mailingliste ein (http://online.securityfocus.com/cgi-bin/sfonline/subscribe.pl) oder werfen Sie einen Blick in die Archive (http://online.securityfocus.com/ archive/). Damit ich Ihnen besser erklären kann, was genau ein Exploit eigentlich ist und wie er aussieht, führe ich an dieser Stelle das Ausgabelisting eines Exploits sowie einige Pakete auf, die damit in Zusammenhang stehen. Dieser Exploit bezieht sich auf den Line Printer Daemon von Red Hat Linux (in der aktuellen Version von RedHat wurde die entsprechende Sicherheitslücke jedoch geschlossen). Hier also die Listings, versehen mit ein paar Anmerkungen: +++ www.netcat.it remote exploit for LPRng/lpd +++ +++ +++ +++ +++ +++ +++ +++ Exploit information Victim: 192.168.1.25 Type: 0 - RedHat 7.0 - Guinesss Eip address: 0xbffff3ec Shellcode address: 0xbffff7f2 Position: 300 Alignment: 2 Offset 0 +++ Attacking 192.168.1.25 with our format string +++ Brute force man, relax and enjoy the ride ;> Aus der Zeichenkette Type 0 - RedHat7.0 - Guiness können wir ersehen, dass der Exploit den Line Printer Daemon unter Red Hat 7.0 attackiert. Wollen Sie mal sehen, wie dieser Angriff für tcpdump aussieht? 18:34:19.991789 > 192.168.1.5.2894 > 192.168.1.25.printer: S 4221747912:4221747912(0) win 32120 <mss 1460,sackOK,timestamp 4058996 0,nop,wscale 0> (DF) (ttl 64, id 11263) 4500 003c 2bff 4000 4006 8b4e c0a8 0105 c0a8 0119 0b4e 0203 fba2 c2c8 0000 0000 a002 7d78 8bb1 0000 0204 05b4 0402 080a 003d ef74 0000 0000 0103 0300 18:34:19.993434 < 192.168.1.25.printer > 192.168.1.5.2894: S 397480959:397480959(0) ack 4221747913 win 32120 <mss 1460,sackOK,timestamp 393475 4058996,nop,wscale 0> (DF) (ttl 64, id 3278) 4500 003c 0cce 4000 4006 aa7f c0a8 0119 c0a8 0105 0203 0b4e 17b1 13ff fba2 c2c9 92 >>> NEW TECH Exploits und die SANS-Hitliste a012 7d78 5ee7 0000 0204 05b4 0402 080a 0006 0103 003d ef74 0103 0300 18:34:19.993514 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 1 win 32120 <nop,nop,timestamp 4058996 393475> (DF) (ttl 64, id 11264) 4500 0034 2c00 4000 4006 8b55 c0a8 0105 c0a8 0119 0b4e 0203 fba2 c2c9 17b1 1400 8010 7d78 8dac 0000 0101 080a 003d ef74 0006 0103 18:34:19.999662 < 192.168.1.25.printer > 192.168.1.5.2894: P 1:31(30) ack 1 win 32120 <nop,nop,timestamp 393476 4058996> (DF) (ttl 64, id 3279) 4500 0052 0ccf 4000 4006 aa68 c0a8 0119 c0a8 0105 0203 0b4e 17b1 1400 fba2 c2c9 8018 7d78 3e5b 0000 0101 080a 0006 0104 003d ef74 6c70 643a 203a 204d 616c 666f 726d 6564 2066 726f 6d20 6164 6472 6573 730a 18:34:19.999686 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 31 win 32120 <nop,nop,timestamp 4058997 393476> (DF) (ttl 64, id 11265) 4500 0034 2c01 4000 4006 8b54 c0a8 0105 c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141e 8010 7d78 8d8c 0000 0101 080a 003d ef75 0006 0104 18:34:20.000863 < 192.168.1.25.printer > 192.168.1.5.2894: F 31:31(0) ack 1 win 32120 <nop,nop,timestamp 393476 4058997> (DF) (ttl 64, id 3280) 4500 0034 0cd0 4000 4006 aa85 c0a8 0119 c0a8 0105 0203 0b4e 17b1 141e fba2 c2c9 8011 7d78 8d8b 0000 0101 080a 0006 0104 003d ef75 18:34:20.000878 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 32 win 32120 <nop,nop,timestamp 4058997 393476> (DF) (ttl 64, id 11266) 4500 0034 2c02 4000 4006 8b53 c0a8 0105 c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141f 8010 7d78 8d8b 0000 0101 080a 003d ef75 0006 0104 18:34:20.049095 > 192.168.1.5.2894 > 192.168.1.25.printer: P 1:424(423) ack 32 win 32120 <nop,nop,timestamp 4059002 393476> (DF) (ttl 64, id 11267) 4500 01db 2c03 4000 4006 89ab c0a8 0105 c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141f 8018 7d78 54c5 0000 0101 080a 003d ef7a 0006 0104 4242 f0ff ffbf f1ff ffbf f2ff ffbf f3ff ffbf 5858 5858 5858 5858 5858 5858 5858 5858 5858 252e 3137 3675 2533 3030 246e 252e 3133 7525 3330 3124 6e25 2e32 3533 7525 3330 3224 6e25 2e31 3932 Schauen wir doch mal, was hier passiert. Wir sehen zunächst, dass die Hosts 192.168.1.5 und 192.168.1.25 eine Verbindung herzustellen versuchen – ganz nach dem typischen Muster mit Threeway Handshake. In der nächsten Sequenz stellen wir dann fest, dass 192.168.1.5 versucht, den Exploit gegen 192.168.1.25 einzusetzen. Zum guten Ende verschiebt dann 192.168.1.5 >>> NEW TECH 93 Kapitel 3 • Hacker und Cracker 423 Datenbytes auf 192.168.1.25. Der Exploit macht eine Weile so weiter, bis er schließlich in der Lage ist, eine Brute-Force-Attacke zu reiten. Nach Abarbeitung des Exploits erhielt ich von 192.168.1.25 eine Shell als Root und konnte von nun an tun und lassen, was ich wollte. Exploits sind die Eintrittskarte, mit der Cracker in ein System gelangen. Um sich gegen sie zu schützen, müssen Sie Ihre Betriebssysteme mit den entsprechenden Patches aktualisieren – das gilt für alle Systeme! 3.3.2 Die Top 20 von SANS Die von der SANS-Gruppe herausgegebene Top 20 der schwerwiegendsten Sicherheitslücken im Internet ist eine Liste mit denjenigen Exploits, die am häufigsten in Computernetzwerken aufzufinden sind. Was diese Liste so wertvoll macht, ist die Tatsache, dass die SANS-Gruppe hierzu auch eine Aufzählung der zugehörigen CVE-Einträge (Common Vulnerabilities and Exposures, häufig auftretende Sicherheitslücken und Schwachstellen) herausgibt, sodass Betroffene sich bei Bedarf besser informieren können. Diese Liste wurde von der SANS-Gruppe mithilfe zahlreicher Sicherheitsfachleute und der Sicherheitsgemeinde im Internet zusammengestellt. TIPP Die CVE-Datenbank finden Sie unter http://www.cve.mitre.org/. Weitere Informationen zur Top 20 der SANS-Gruppe können Sie über http:// www.sans.org/topten.htm abrufen. Die erste Bedrohung stellt die Standardinstallation von Betriebssystemen dar, die eine Menge Probleme verursachen kann. Im System können beispielsweise Default-Kennwörter implementiert sein; wahrscheinlich sind die neuesten Sicherheits-Patches noch nicht vorhanden, und es ist stark anzunehmen, dass nicht benötigte Dienste ausgeführt werden, die aus Sicherheitsgründen eigentlich abgeschaltet werden sollten. Der zweite Exploit ist die Verwendung schwacher Kennwörter. Muss ich dazu noch etwas sagen? Bei jeder von mir durchgeführten Risikoanalyse treffe ich auf diese Schwachstellen. Wenn Sie ein Kennwort wählen, beachten Sie die folgenden einfachen Vorgaben: ■ ■ ■ Achten Sie darauf, dass das Kennwort mindestens acht Zeichen lang ist. Stellen Sie sicher, dass es sich um eine Kombination aus Ziffern, Sonderzeichen und Buchstaben handelt. Wählen Sie ein Kennwort aus, das nicht im Wörterbuch steht. Es bietet sich häufig an, über das Betriebssystem oder eine Drittanbieterlösung Kennwortrichtlinien zu implementieren. Geeignet hierzu ist z.B. das Programm Password Bouncer (http://www.passwordbouncer.com). Weitere Informationen zu diesem Thema finden Sie in Kapitel 14, »Kennwortsicherheit«. 94 >>> NEW TECH Exploits und die SANS-Hitliste TIPP Anmerkungen zur Stärke von Kennwörtern finden Sie zudem unter http:// www.cert.org/tech_tips/passwd_file_protection.html. Das nächste Problem stellt sich, weil immer wieder versäumt wird, rechtzeitig vollständige Sicherungen durchzuführen. Die Backups müssen zudem regelmäßig auf Funktionsfähigkeit überprüft werden – eine Empfehlung, die nur die wenigsten Unternehmen beherzigen. Ein weiterer Pferdefuß ist eine große Anzahl offener Ports. Betrachten Sie jeden Port als potenzielle Einbruchsmöglichkeit in Ihr System. Aus diesem Grund sollten nur solche Ports geöffnet sein, die auch wirklich benötigt werden. Die nächste Sicherheitslücke sind falsch konfigurierte Firewall-Regeln. Hierzu finden Sie umfassende Informationen in den Kapiteln 10, »Firewalls«, und 23, »Router, Switches und Hubs«. Die SANS betont ferner, dass eine schlechte Protokollführung (»Logging«) ein Problem darstellen kann. Sie sollten Ihr System überprüfen und sicherstellen, dass Sie alles protokollieren, was Sie beim Auftreten eines sicherheitsrelevanten Vorfalls wissen müssen. Außerdem ist zu beachten, dass Ihre Protokolle so gespeichert werden, dass Cracker sie nicht löschen oder verändern können. Auf Platz 7 in der SANS-Rangliste stehen »anfällige« CGI-Programme. Diese werden schon seit Jahren verwendet und sind die Hauptursache für das Eindringen in »prominente« Websites (d.h. Sites großer Firmen und bedeutender Institutionen), was immer wieder für viel Aufsehen sorgt. Diese Art von Sicherheitslücke will und will nicht verschwinden; sogar im Jahr 2002, wo das Problem schon jahrelang bekannt ist, findet man im Programm Bugzilla noch immer ein solches »offenes Tor«. Viele CGI-Programme lassen nach der Installation nämlich anfällige Beispielprogramme zurück und ermöglichen es heimtückischen Benutzern, an Administratorrechte zu kommen. Mit diesen Privilegien kann der Angreifer dann tun und lassen, was er will (z.B. die Website verändern). Ich habe nachfolgend ein paar Links aufgeführt, über die Sie an weitere Informationen zu CGI-Angriffen gelangen können. Diese Liste ist nicht vollständig; falls Sie befürchten, dass Sie ein potenzielles Opfer sein könnten, suchen Sie bitte auch selbstständig nach weiteren Informationen. TIPP Sie finden Hinweise zu CGI-Angriffen unter http://www.cert.org/advisories/ CA-1997-24.html, http://www.cert.org/advisories/CA-1996-11.html, und http://www.cert.org/advisories/CA-1997-07.html. Exploits unter Windows Die SANS listet auch eine Reihe Windows-spezifischer Probleme auf. Hier wären zunächst einmal die Unicode-Sicherheitslücken zu nennen. Unicode ist quasi eine erweiterte Form des ASCII-Zeichensatzes, mit dem Sie Texte in fast >>> NEW TECH 95 Kapitel 3 • Hacker und Cracker allen Sprachen dieser Welt schreiben können (im Gegensatz dazu ist ASCII auf einige wenige europäische Sprachen beschränkt). Mithilfe des Unicode-Zeichensatzes und ein paar Tricks kann ein Cracker Ihren IIS-Server knacken. Die Lösung dieses Problems ist vergleichsweise einfach, denn Sie müssen lediglich die aktuellen Patches für den IIS aufspielen. Weiterhin zu nennen ist ein Pufferüberlauf durch ISAPI-Erweiterung. Pufferüberläufe werden in Kapitel 26, »Sprachen, Erweiterungen und die Entwicklung sicherer Anwendungen« ausführlich beschrieben. Dieser Bug ist bei verschiedenen Microsoft-Produkten zu finden; auch hier ist es am besten, die neuesten Sicherheits-Patches zu installieren. Der dritte Microsoft-spezifische Exploit auf der Liste sind RDS-Sicherheitslücken (Remote Data Service) im IIS. Auch hier müssen Sie lediglich aktuelle Patches aufspielen. TIPP Weitere Informationen zu den RDS-Sicherheitslücken finden Sie unter http:// www.wiretrip.net/rfp/p/doc.asp?id=29&iface=2. Der nächste Exploit ist die globale Dateifreigabe über die NetBIOS-Ports 135 bis 139 – das wahrscheinlich größte Sicherheitsproblem, das ein Benutzer haben kann, der über ein Kabelmodem oder eine DSL-Leitung mit dem Internet verbunden ist. Die meisten Benutzer verstehen das Konzept der Dateifreigabe nicht und lassen sie infolgedessen aktiviert. Auch Napster ist eine heikle Angelegenheit. Zwar ist Napster auf der SANS-Site nicht aufgeführt, aber die Idee dahinter bedingt eine Freigabe von Verzeichnissen, und am Ende haben Sie möglicherweise mehr von Ihrer Festplatte freigegeben, als Ihnen lieb ist. Auf der SANS-Site finden Sie einschlägige Lösungen für diese Probleme; generell sei aber empfohlen, die Anzahl der Freigaben zu minimieren, Kennwörter zu verwenden und den Zugriff zu beschränken. Sie sollten außerdem den Registrierungsschlüssel RestrictAnonymous auf Hosts implementieren, die mit dem Internet verbunden sind und in eigenständigen oder nicht vertrauenswürdigen Domänenumgebungen stehen. Das fünfte Windows-spezifische Problem sind anonyme Anmeldungen. Cracker können sich an Systemen anmelden und Informationen über diese Systeme abrufen, ohne sich anmelden zu müssen. Dieses Problem lässt sich minimieren, indem man einige bestimmte Registrierungsschlüssel editiert (Hinweise hierzu finden Sie auf der SANS-Site); wenn Domänencontroller vorhanden sind, lässt es sich jedoch nicht vollständig eliminieren. Das nächste Problem ist die von Windows aus Gründen der Abwärtskompatibilität standardmäßig verwendete schwache Verschlüsselung, die zudem von den meisten Benutzern noch nicht einmal benötigt wird. Leider ist die Lösung dieses Problems sehr komplex; möglicherweise müssen Sie sich hierzu von allen Windows 9x-Clients verabschieden. 96 >>> NEW TECH Exploits und die SANS-Hitliste HINWEIS Die NSA hat eine Reihe empfehlenswerter Schriften zur Absicherung von Windows 2000 veröffentlicht. Diese finden Sie unter http://nsa2.www. conxion.com/win2k/download.htm. Exploits unter Unix Der erste Unix-spezifische Exploit betrifft die Verwendung anfälliger RPCs (Remote Procedure Calls, Fernprozessaufrufe). Mithilfe von RPCs können CProgramme Prozeduren, die auf anderen Rechnern liegen, über das Netzwerk aufrufen. Die meisten Hersteller bieten inzwischen Patches an, um die RPCs auf das Nötigste zu beschränken. Nichtsdestoweniger gebe ich Ihnen an dieser Stelle den Ratschlag: Wenn Sie sie nicht brauchen, dann schießen Sie sie ab. Führen Sie zu diesem Zweck den Befehl ps-ef|grep rpc aus, suchen Sie die Prozesskennung (PID), und starten Sie dann kill –9 PID. Bei den meisten Unix-Systemen können Sie die RPC-Dienste auch gleich beim Systemstart deaktivieren, indem Sie nämlich die Startdatei (in /etc/rc.d/) von S (Startdatei) auf K (Kill) setzen. Mit dem Befehl rpcinfo –p finden Sie heraus, welche RPC-Programme ausgeführt werden. TIPP Weitere Informationen über RPC-Angriffe finden Sie unter http://www.cert. org/incident_notes/IN-99-04.html. Auf dem nächsten Platz stehen sendmail- und MIME-Angriffe. Diese Sicherheitslücken basieren auf dem Überlauf von Pufferspeichern und auf Weiterleitungsstrategien, die den sofortigen Zugriff auf das Stammverzeichnis ermöglichen. Es gibt mehrere Möglichkeiten, diese Problembereiche abzusichern. Zunächst einmal müssen Sie natürlich die korrekten Patches für Ihre sendmail/mail-Server aufspielen. Wenn bei Ihnen keiner dieser Dienste benötigt wird, können Sie sie auch deaktivieren (das passiert analog zu der oben für die RPCs beschriebenen Vorgehensweise). TIPP Mehr Informationen zu sendmail-Sicherheitslöchern finden Sie unter http:// www.cve.mitre.org/cgi-bin/cvekey.cgi?keyword=sendmail; die neueste Version von sendmail kann bei http://www.sendmail.org heruntergeladen werden. Das nächste in der Liste aufgeführte Problem betrifft BIND. BIND ist ein von DNS-Servern zur Adressauflösung verwendetes Programm, das im gesamten Internet eingesetzt wird. In den letzten paar Jahren wurde eine ganze Reihe von Sicherheitslöchern in den verschiedenen BIND-Versionen aufgedeckt. Jeder, der mit BIND arbeitet, muss sicherstellen, dass er immer die aktuellste Version samt aller Patches verwendet, um möglichst alle bekannten Sicherheitslöcher zu >>> NEW TECH 97 Kapitel 3 • Hacker und Cracker schließen. Wenn Sie die entsprechenden Datenbanken überprüfen, werden Sie feststellen, dass im Zusammenhang mit BIND alle paar Monate eine neue Sicherheitslücke entdeckt wird. Das vierte auf der Site von SANS beschriebene Unix-Problem betrifft die rBefehle. Diese Befehle umgehen die normalen Authentifizierungsmethoden und sollten deaktiviert werden. Weitere Informationen hierzu finden Sie in Kapitel 21, »Unix«. SANS listet auch den Line Printer Daemon als Bedrohung auf. Durch Übertragung einer großen Anzahl von Druckaufträgen ist es möglich, entweder einen DoS herbeizuführen oder aber in das System einzubrechen. Auch hier gilt: Spielen Sie immer die neuesten Patches auf. Der sechste Unix-Exploit bezieht sich auf Anfälligkeiten von sadmind und mountd und betrifft eine Vielzahl unterschiedlicher Unix-Versionen. TIPP Mehr Informationen zu sadmind- und mountd-Sicherheitslöchern finden Sie unter http://www.cert.org/advisories/CA-99-16-sadmind.html oder http:// www.cert.org/advisories/CA-1998-12.html. Der letzte Unix-Exploit der SANS-Hitliste schließlich sind Default-SNMPCommunity-Strings, die die Werte »public« oder »private« haben. In Verbindung mit schwachen Kennwörtern lassen sich solche Sicherheitslücken bereits durch einfachste Administrationsmaßnahmen steuern. TIPP Weitere Informationen zu SNMP und den Community-Strings finden Sie unter http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp. htm#xtocid210315. Denken Sie immer daran, dass dies nicht die einzigen Sicherheitslücken im Internet sind. Ein Cracker kann zu jeder Zeit irgendeinen (neuen) Exploit aus dem Ärmel schütteln. 3.4 Fazit In diesem Kapitel haben wir eine Menge Themen abgedeckt, darunter die passive Betriebssystemidentifikation, Social Engineering, diverse Tools und die SANS-Hitliste. Das Ziel des Kapitels war es, Ihnen ein Verständnis für die Denk- und Vorgehensweise eines Crackers zu vermitteln, der es auf ein Netzwerk abgesehen hat. Die Cyberkriminalität ist auf dem Vormarsch, weswegen der Schutz Ihrer Privatsphäre und Ihrer Daten eine zunehmend größere Herausforderung darstellt. Das Wissen darum, wie ein Hacker oder Cracker arbeitet, 98 >>> NEW TECH Fazit kann bei der Abwehr solcher Leute eine große Hilfe sein. Oder, wie es der Sicherheitsexperte Bruce Schneier einmal formuliert hat: »Sicherheit ist kein Produkt, sondern ein dauerhafter Vorgang«. Mit welchen Produkten auch immer Sie arbeiten, vergessen Sie niemals, die aktuellsten Patches aufzuspielen und alle Dienste zu deaktivieren, die Sie nicht benötigen. >>> NEW TECH 99