_________________ ___________ / _____/\_ ___ \\_ _____/ / \ ___/ \ \/ | __) \ \_\ \ \____| \ \______ /\______ /\___ / \/ \/ \/ The German Computer Freaks www.gcf.de Since 1997 /\ / \ ________________________________________________________________________/ # / Gefahren im Netzwerk Paper \ / (c) Mathias 'DNode' Pelka / GCF (01.11.2002) \/ Inhalt: 1.0 Das Uebliche 1.1 Um was es geht 1.2 An wen dieser Text gerichtet ist 1.3 An wen nicht 2.0 Preaventivmassnahmen 2.1 Planung des Netzwerkes 2.2 Firewall/Router 2.3 Intrusion Detection Systems 2.3.1 Honeynets 2.4 Kernelerweiterungen 2.5 Netzwerk Penetration Tools 2.5.1 Portscanner 2.5.2 Sniffer 2.6 Viren und Trojanische Pferde, aktive Elemente auf http Seiten 3.0 Schlusswort 1.0 Das Uebliche ================ 1.1 Um was es geht ---- Dieser Text beschreibt wie man ein System von aussen, sprich Netzwerk und Internet abdichten kann, worauf man achten muss, und falls doch ein Blackhat in das System eingedrungen sein sollte; wie man seine Spuren wiederherstellt - um damit dem Taeter auf die Spur zu kommen. Dieser Text beschreibt keine Angriffstechniken sondern nur wir man sich vor davor schuetzen kann und wie sie wirken. 1.2 An wen dieser Text gerichtet ist ---- An Leute die lesen koennen, Leute die das Thema intressiert und solche denen einfach nur langweilig ist. 1.3 An wen nicht ---- Leute die zwei Desktop Firewalls benutzen und meinen sie seinen damit besonders sicher. *sick* 2.0 Preaventivmassnahmen ======================== 2.1 Planung des Netzwerkes ---- Um ein Netzwerk sicher zu machen sollte man direkt bei der Plaunug anfangen. Zuerst sollte man sich die Frage stellen was das Netzwerk fuer einen Zweck hat, was fuer Dienste angeboten werden sollen, ob ein Router vorhanden sein soll, ob es sich um ein VPN handelt und so weiter. Dann kommt die Frage der groesse des Netwerkes. Sollen nur zwei Rechner miteinandern verbunden werden? Oder sollen ein paar Rechner mehr zusammengeschlossen werden. Fuer ein Heimnetzwerk sollte ein Klasse C Netzwerk voellig ausreichen - um es einfacher zu machen haben sich schlaue Koepfe Gedanken ueber die IP Range gemacht. Fuer ein privates Klasse C Netz sollte die Range 192.168.0/255 benutzt werden - man muss sich allerdings nicht zwingend daran binden. Die Geschwindigkeit des Netzwerkes ist auf den Bedarf zurueckzufuehren. Da heutzutage 100MBit Netzwerkkarten nicht viel teurer als 10MB Karten sind sollte man hier allerdings schon zu den 100MBit Karten greifen. 2.2 Firewall/Router ---- Ein Firewall uebernimmt einfach gesagt das Blocken von bestimmten Ports. Generell wird ein Firewall nur auf Rechnern mit Zugang zu einem Unsicheren Netz installiert, also in der Regel auf Routern die von einem Netz ins andere leiten. Ein Firewall nimmt Packete von aussen auf, checkt sie mit seinen Regeln ab und entscheidet ob sie durch kommen oder ob sie verworfen werden. Diese Regel koennen unterschiedlicher Natur sein, so kann ein bestimmter Port verworfen werden z.B. kann man so SSH innerhalb des Netzwerkes anbieten, aber wenn sich jemand versucht von aussen einzuloggen kann der Firewall es blocken. Unter Linux benutze ich 'ipchains' oder 'iptables'. Firewall Support muss in der Regel im Kernel expliziet aktiviert werden, dort koennen dann auch weitere Module eingebunden werden wie Network Address Resolution (NAT, Masquerading) Portforwarding und einige weitere speziele (IP6 Support z. B.). NAT ist ein intresante Konstrukt. Es ermoeglicht das Rechner im Netzwerk mit ihrer LAN IP Addresse in andere Netze koennen, so ist es z. B. moeglich in einem Heimnetzwerk mit oben genannten IP Range von 192.168.0/255 ins Internet kommen koennen ohne das es zu konflikten kommt, da IP Addressen immer eindeutig sein mueesen. Beim NAT werden die Packete im Router so veraendert das das andere Netz denkt es kommt von einer gueltigen Addresse aus dem eigenen Netz - was es ja auch tut - Router besitzen naemlich mindestens zwei Adressen - eine fuer das zu maskierende Netz und eine fuer das andre Netz. Application Level Firewalls sind wohl unter dem Begriff Proxy gelauefiger, wird in den Datenstrom zwischen Client und Server geschaltet und "spielt" in Richtung Client den Server und stellt gegenueber dem Server den Client da. Ein grosser Vorteil stellt die Fehlertoloranz da, wenn z. B. der Proxy falsch konfiguriert ist unterbindet er im Zweifelsfall die Kommuniktation. Unschaetzbar auch die Moeglichkeit die IP Addresse des maskiereten Rechners zu verbergen, auch wenn man nicht 100% anonym ist, da auch der Proxy logmeachnismen enhaelt. Portforwarding dient dazu um einen Request auf einen Port auf einen bestimmten Rechner im eigenen Netzwerk weiterzuleiten z. B. der Router wird auf Port 80 angesprochen - auf dem Router laeuft aber kein HTTP Dienst, der Router leitet jetzt anhand einer Internen Regel auf einen bestimmten Rechner im eigenen Netzwerk um, und der Request wird bearbeitet. So vielfaeltig diese Moeglichkeiten sind, das gefahrenpotential ist ebenfalls enorm. Erstens ist ein Firewall ebenfalls ein Angriffspunkt, das heist bei schlechter oder falscher Konfiguration oder schlimmstenfalls bei einem Programmierfehler kann der Firewall kompromittiert werden, desweiteren kann es passieren das User die meinen sie seinen durch einen Firewall geschuetz nun leichtsinnig werden - es ist wie beim Auto und beim Airbag die Leute verlassen sich dadrauf und werden leichtsinnig, schliesslich kann ihnen nichts passieren - der Airbag passt ja auf. Ein Firewall ist sicher eine gute Einrichtung aber sie ist nur Teil des gesamten Netzwerksicherheitskonzeptes. 2.3 Intrusion Detection Systems ---- Intrusion Detection Systems (IDS) sind Programme um ein Angriff auf einen Rechner zu erkennen und gegenenfalls Gegenmassnahmen einzuleiten z.B. indem sie dem Adminstrator eine SMS auf das Handy schicken oder den Rechner vom Netz nehmen. Ein IDS ist ein umfangreiches Software Packet das bereits mit einer grossen Anzahl an bekannten Angriffsarten ausgeliefert wird, bzw. mit dem Wissen ueber den Verlauf eines solchen Angriffes. So ist z.B. der Portscan ein sicheres Zeichen dafuer das man diese IP im Auge behalten sollte, eine Massnahme waere es hier bereits die entsprechende IP in /etc/hosts.deny zu vermerken. Oder ueber RIPE den Provider rauszubekommen, oder falls der Administrator schlecht gelaunt sein sollte einen Ping Of Death schickt falls es sich um einen armen verweichlichten Windows 95a User handelt *scnr*. Auch wenn ein Portscan bereits ein Anzeichen dafuer ist das jemand in das System einsteigen moechte ist nicht jeder Provider bereit gegen solche Benutzer vorzugehen, ausserdem kann es auch ein Zufall sein. Sollte der User aber etwas Verstand besitzen wird er zwischen Portscan und Angriff eine gewisse Zeit verstreichen lassen, da man sonst leicht mistrauisch wird. Das IDS kann in der Regel aber noch weit mehr als einfache Portscans erkennen. Wann immer ein Computer versucht sich auf einen Port zu verbinden wird das IDS Aktiv. Es ueberwacht die uebermittleten Daten und versucht die 'hartnaeckigkeit' des User zu bestimmen. 20 Verbindungen auf die Ports 21/22/23 sind doch etwas auffaellig. Auch hier wieer kann der Administrator verschiedene Regel bestimmt haben um in einen solchen Fall Gegenmassnahmen einzuleiten. Falls auf der anderen Maschine ein ungepatchter IIS 5.0 laeuft kann er mittels des Unicodes Bugs den Festplatteninhalt anloeschen *g*. 2.3.1 Honeynets ---- Da sich in einem Normalen Netzwerk viele User mit vielen Rechnern tuemmeln, faellt dementsprechend viel Netzwerkverkehr an. Nun hat ein Adminstrator weit mehr zu tun als 500MB Logfiles zu durchwuehlen, die Suche nach etwas verdaechtigen faellt aus wie die Suche nach der sprichwoertlichen Suche nach der Nadel im Heuhaufen. Deswegen kann man auf die Idee mit den Honeypots, normale Rechnersysteme die dem Blackhat eine Angriffsflaeche dienen. Da aber ein Hacker, hat er erstmal Kontrolle ueber ein System mehr will, hat man mehrere Honeypots zusammengeschlossen und bildet ein sogenanntes Honeynet. Ein Honeynet ist ein Rechnerverbund mit normalen Betriebsystemen die nicht weiter veraendert wurden, ausser das akutelle Patche eingespielt wurden damit der Hacker nicht mistrauisch wird.. Vergleichen kann man Honeypots mit Gehegen fuer Wilde Tiere im Zoo, man kann sie beobachten aber die Tiere fuehlen sich heimisch (auch wenn die meisten wohl lieber in Freiheit waeren) und man kann diese Gehege veraendern. Honeypots dienen dazu, etwas ueber die Tools und die Vorgehensweise eines Hackers herauszufinden. Ein Honeynet besteht in der Regel aus meheren Teilen, den Honeypots, einer Zugriffskontrolle und einer Datensammlung. Die Zugriffskontrolle wird durch zwei Firewalls geregelt. Die erste dient dazu ausgehende Verbindunen zu ueberwachen und zu filtern damit der Blackhat nicht das Honeynet zu weiteren Angriffen im Internet benutzen kann. Und die zweite wird im Bridge Modus betrieben und ist damit nicht sichtbar fuer jemanden von aussen. Sie dient nur dem Managment und der Datenprotokollierung. Fuer den Blackhat ist das aber nicht weiter wichtig da er nur den ersten Firewall wahrnimmt. Die Zweite Firewall leitet die Daten dann an das Administrative Netzwerk weiter, wo die Daten analysiert werden koennen. 2.4 Kernelerweiterungen ---- Kernelerweiterungen bringen den Kernel neue Funktionen bei. So sind z. B. Access Control List (ACL) unter Linux standartmaesig nicht im Kernel enthalten. Ein Patch mit dem ich sehr gute Erfahrungen gemacht habe ist der von grsecurity (www.grsec.com), er bietet einige intressante Features die den Rechner sicherer machen koennen. Zum Beispiel einen Buffer Overflow Schutz. Programme die einen Buffer Overflow enthalten werden vom Kernel terminiert bevor der Bug ausgenutz wird. Es ist also im eigentlich Sinn ein Schutz von den Registern um Manipulationen zu vermeiden desweiteren wird der Stack einer hoeheren kontrolle unterworfen. Sollte ein Prgramm nun versuchen ueber den Rand eines Buffer zu schreiben wird er vom Kernel terminiert. Desweiteren bietet 'grsec' ein rudimaentaeres ACL Subsystem. Kernelerweiterungen koennen so geschrieben werden das bestimmte Programme nicht mehr im Prozesstree auftauchen, z.B. um einen zusaetzlichen Logmeachnismus zu verstecken, falls ein Angreifer Access auf das System erhaelt und sich Zugang zu einem priviligtieren Account verschaft wird er zuerst versuchen die Spuren seines Eindringens zu verschleiern, er wird den Syslog manipulieren und falls er von draussen kommt seine Host maskieren. Erst wenn er glaubt das er sicher ist wird er mit seinem eigentlichen Ziel weitermachen. Da aber immernoch ein Versteckter Logmeachnismus laueft und er nichts davon weis wird er denken das er sicher ist. Kernelerweierungen sind aber auch anderer Natur sein und teil eines root Kits sein. So fuegen einige root Kits Kernel Module ein um sich eine Hintertuer offenzuhalten. Da sich der Backdoor direkt im Kernel befindet kann er sich naturgemaess sehr gut Tarnen, und man kommt ihn nur sehr schwer auf die Schliche. 2.5 Netzwerk Penetration Tools ---- Solche Tools, sind dafuer gedachte das Netzwerk zu testen, um bekannte Fehler in sichtbar zu machen, bekannte beispiele dafuer sind 'sort' und 'satan', sie Scannen das Netzwerk auf bekannte Fehlerquellen und veraltete Dienste. 2.5.1 Portscanner ---- Der bekannteste Portscanner unter Unix/Linux ist wohl 'nmap', sein Funktionsumfang geht weit ueber die gewoehnlicher Scanner hinaus, er kann das Betriebsystem anhand des TCP/IP Stacks erkennen, kann nach Ports scannen auch wenn der Rechner ICMP Packete blockt. Ein Blick in die Manpage hilft hier aber generell weiter - vorallen weil ich keine Lust habe die jetzt zu uebersetzen ^^. 2.5.2 Sniffer ---- Ein Sniffer ist ein Programm mit dem man den Netzwerkverkehr ueberwachen und abhoeren kann, in einen LAN installiert ist so moeglich den kompletten Verkehr abzuhoeren. Das kann Vorteile haben z.B. um rauszufinden ob jemand verdaechtige Verbindungen unterhaelt, oder ob ein Programm versucht 'nach hause zu telefonieren' ob es dabei um ein Trojanisches Pferd handelt oder einfach nur um laestige Spyware. So hoch der nutzen ist, er birgt auch gefahren. Da es moeglich ist das jemand die kompletten Verkehr abhoert, koennen so auch Passwoerter abgehoert werden z. B. die von telnet, ftp oder die Tools der r* Serie (rlogin, rhost u.s.w.) bei ftp Uebertragungen ist es sogar moeglich den uebermittelten Dateien abzufangen. Aus diesem Grund sollte in jede Art von Netzwerk auf Verschluesselte Protokolle gesetzt werden. SSH ist bei weitem besser geeignet als Telnet oder gar rlogin ausserdem ist es moeglich ftp uebertragungen durch SSH zu tunneln desweiteren sollten E-Mails mit PGP signiert werden. 2.6 Viren und Trojanische Pferde, aktive Elemente auf http Seiten ---- Viren sind kleine Computerprogramme die diesen schaedigen, sie verbreiten sich meistens durch das ausfuehren von Infizierten Programmen wodurch neue Infiziert werden, aber was hat der Virus davon? Deshalb bestehen Viren meistens aus zwei Teilen; einer Verbreitungs- und einer Schadensroutine. Die Verbeitungsroutine bestand bei 'antiken' Viren darin sich auf anderen Dateien zu uebertragen, das heute nicht anders, aber zusaetzlich kommt das Internet hinzu. Das heist der Virus wird versuchen weitere Rechner zu infizieren damit er mehr Schaden anrichten kann. Es gibt aber auch speziele Viren die nur auf ein bestimmtes Computersystem abgestimmt sind, sie sind aber sehr selten anzutreffen. Nach der Schadensroutine kann der Virus vestimmmt werden. wenn es sich um einen Wurm handelt wird er versuchen so viele Dateien zu infizieren um das Computersystem unertraeglich langsam zu machen. Oder halt das 'uebliche' das Loeschen von bestimmten Dateien oder das Formatieren der Festplatte. Viren versuchen so frueh wie moeglich Aktiv zu werden, das heist sie Infizieren Programmen und 'hoffen' das es ein Programm ist das zu allererst gestartet wird, das macht die Enternung des Virus recht schwer. Einige Viren installieren sich im Master Boot Record und werden als Boot Virus bezeichnet. Sie werden bereits vor dem Starten des Betriebsystems aktiv und sind deshalb besonders schwer zu erkennen. Eine Entfernung des System sollte daher von aussen erfolgen, das heist, von einer sauberen Bootdiskette oder von einer CD-ROM. Der Versuch den Virus aus dem laufenden System zu entfernenen ist unter umstaenden nicht moeglich, da sich der Virus um Speicher aufhalten koennte und nach der Saueberung wieder Dateien infizieren koennte. Trojanische Pferde sind eignetlich auch Viren nur halt kommen sie getarnt heran, sie geben an etwas anderes zu sein als was sie Wirklich sind. Aktive Inhalte auf Webseiten sind solche die ActiveX Elemente, Java oder Javascript verwenden. Die zunehmende Komplexitaet des Webbrowser wird diese Entwicklung beschleunigen. Ich als stolzer Opera / Mozilla User verfuege nicht ueber ActiveX Elemente - gute Seiten kommen in der Regel ohne aus, und da ActiveX weit schaedlicher ist als der Nutzen (Das ActiveX Applet kann den Rechner komplett uebernehmen, Software installieren und Dateien loeschen) wird es auch weiterhin nur ein Schattendasein fuehren. Weit schlimmer ist das Vorhaben Dokomente in Unicode und XML zu Kodieren es dort gibt bereits Proof Of Conzept Exploite die Fehlerhafte Implikationen ausnutzen koennen. 3.0 Schlusswort =============== Falls Du Fragen oder Anregungen haben solltest zoegere nicht mir eine Mail zu schicken. dnode@gcf.de Desweiteren bedanke ich mich bei den ueblichen Verdaechtigen.