10.7 Bewertung der Möglichkeiten von Intrusion Detection Sy
Transcription
10.7 Bewertung der Möglichkeiten von Intrusion Detection Sy
Praktikum IT-Sicherheit 288 06/30-19:53:49.682603 ls -l 10.50.181.1/ total 12 drwx-----drwxr-xr-x -rw------- 2 root 4 root 1 root root root root 4096 Jun 30 19:51 . 4096 Jun 30 19:51 .. 339 Jun 30 19:51 TCP:2395-1080 more 10.50.181.1/TCP\:2395-1080 [**] SCAN Proxy attempt [**] 06/30-19:51:53.246758 10.50.181.1:2395 -> 10.50.187.55:1080 TCP TTL:63 TOS:0x0 ID:18765 IpLen:20 DgmLen:60 DF ******S* Seq: 0x1C5C5853 Ack: 0x0 Win: 0x3EBC TcpLen: 40 TCP Options (5) => MSS: 1460 SackOK TS: 55651528 0 NOP WS: 0 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ls -l 10.50.187.55/ total 20 drwx-----drwxr-xr-x -rw-------rw-------rw------- 10.7 2 4 1 1 1 root root root root root root root root root root 4096 4096 347 359 339 Jun Jun Jun Jun Jun 30 30 30 30 30 19:51 19:51 19:51 19:51 19:51 . .. TCP:3128-1229 TCP:6000-2132 TCP:8080-1255 Bewertung der Möglichkeiten von Intrusion Detection Systemen IDS stellen eine Ergänzung der vorhandenen Sicherheitsstruktur dar. Sie fügen zusätzliche Schichten an Sicherheit hinzu und helfen, Angriffe auf die vorhandene Sicherheitsinfrastruktur zu erkennen und diese unter Umständen auch zu verhindern. Mittels der Protokolldaten eines Intrusion Detection Systems ist ein Administrator im nachhinein in der Lage, den Vorfall zu rekonstruieren und das Problem in der Sicherheit zu beheben. Da in ein IDS Protokolldaten von verschiendenen Systemen zusammen geführt werden können, kann man sich einen Überblick verschaffen, was auf den einzelnen Systemen los ist. Verteilte Angriffsmuster sind so zu erkennen. Benutzeraktivitäten können komplett verfolgt werden. Hat sich ein Angreifer durch Erraten eines Passworts Zutritt zu einem Praktikum IT-Sicherheit 289 System verschafft, so können unerlaubte Aktivitäten auf dem System erkannt werden. Erfolgte der Zugriff von Intern oder über eine unbekannte Hintertür, so ist dieser Angriff am Firewall nicht erkennbar. Ein entsprechend platziertes IDS sollte die Unregelmäßigkeiten aber erkennen. Es ist aber zu bedenken, daß ein IDS nicht das Allheilmittel für alle Sicherheitsprobleme darstellt. IDS sind nur als Unterstützung der Sicherheitspolitik gedacht. Für die Sicherung der Server, die Sensibilisierung der Mitarbeiter und den Einsatz von geeigneten Authentisierungsmechanismen ist nach wie vor zu sorgen. Ebenso ersetzt ein IDS niemals einen qualifizierten Administrator. Nur ein geeigneter Administrator kann das IDS nicht nur bedienen, sondern auch benötigte Änderungen und Anpassungen vornehmen. Ebenso kann keine vollständig automatische Bewertung von Vorfällen erfolgen. Auch Intrusion Detection Systeme haben Schwachstellen, die ausgenutzt werden können. 10.8 Verhalten bei einem erkannten Einbruch Werden anhand von Protokolldaten Anzeichen für einen Angriff erkannt, so muß man auf diesen Fall vorbereitet sein. Obwohl die wenigsten Angriffe erfolgreich sind und auch bei geglückten Angriffen keine übereilten Reaktionen erfolgen sollten, muß eine Verhaltensstrategie festgelegt werden, mithilfe der eine vorgegeben Checkliste abgearbeitet werden kann. Somit wird der Gefahr von Panikaktionen vorgebeugt. In [Fuhr 98] wird als Tip zur Erkennung von Angriffen folgendes angegeben: Um einen Angriff auf einen Rechner zu erkennen, können die folgenden Anzeichen verwendet werden. Wenn diese auf einem Rechner gefunden werden, sollten auf jeden Fall alle anderen auch kontrolliert werden: • Verbindungen von und zu ungewöhnlichen Rechnern. • Ungewöhnliche Login-Zeiten. • Programme mit unnötigen Rechten (z.B. SUID, SGID-Programme, etc.). • Intregritätsverletzungen. • Angriffsprogramme (z.B. Netzwerksniffer wie tcpdump oder Programme für Wörterbuchangriffe wie z.B. Crack). • Unnötige Dienste. • Veränderungen an der Passwortdatei oder den Zugriffsrechten. • Versteckte Dateien (unter Unix z.B. mit .. , sprich Punkt Punkt Leerzeichen, zu erzeugen). Die folgenden Punkte sollten vorab geklärt und das daraus resultierende Verhalten geplant werden: Praktikum IT-Sicherheit 290 1. Erkennung des Angriffs: Anhand der Art und Weise, wie ein Angriff erkannt wird, ändert sich das Vorgehen, was passieren soll. Ist ein unerfahrener Administrator mit der Überwachung der Protokolldaten betraut, so sollte er nicht über mögliche erste Schritte alleine entscheiden, da es so zu Unverhältnismäßigkeiten in den Reaktionen kommen kann. 2. Erste Bewertung des Angriffs und Festlegung des Verhaltens: Zuerst muß die Schwere des Angriffs und somit die Gefährdung des zu schützenden Netzes bewertet werden. Daraus resultieren dann die zu treffenden Maßnahmen, die aber vorab konsequent beschrieben und in all ihren Folgen abgeschätzt sein müssen. Ist dem Anschein nach nur ein System kompromittiert, so kann es ausreichen, nur dieses System vom Netz zu trennen. Stellt sich aber heraus, daß mehrere Systeme betroffen sind, oder sogar die Integrität des Firewallsystems gefährdet ist, so kann es Sinn machen, den kompletten Internetzugang abzuschalten. Dazu muß bereits in der Planungsund Realisierungsphase eines Internetzugangs und aller anderer Systeme beachtet werden, daß auch von nicht so hoch qualifiziertem Personal im Notfall die Abschaltung vorgenommen werden kann. D.h. die Beschriftung von Rechnern und Kabeln muß eindeutig sein. Ebenso muß geplant werden, wie im Falle eines Angriffs kommuniziert wird, um dem Angreifer keinen Hinweis auf seine Entdeckung zu geben. Es müssen alle Anwender generell darüber informiert sein, daß eine Abschaltung des Internetzugangs im Notfall erfolgen kann. Dies kann anhand der in Anhang A.6 beschriebenen Benutzerrichtlinie geschehen, um den Unmut von Mitarbeitern möglichst gering zu halten. Soll ein Angreifer zurückverfolgt und ausgespäht werden, so empfiehlt sich der Einsatz eines sogenannten Quarantänerechners, auch Honeypot genannt. Auf diesem Rechner werden dem Anschein nach sehr wertvolle Daten und große Sicherheitslöcher zur Erleichterung des Angriffs bereitgestellt. Während nun der Angreifer versucht, dieses System zu erstürmen und sich die Daten zieht, kann durch den Administrator das Ausspähen des Vorgehens und eine Rückverfolgung des Angreifers erfolgen. 3. Genauere Analyse und Bewertung der Fakten: Bislang wurde die unmittelbare Gefahr verringert, so daß nun eine genauere Analyse vorgenommen werden kann. Diese Phase kann je nach Schwere des Angriffs einige Stunden bis hin zu Monaten dauern und sollte nicht alleine von dem zuständigen Systemadministrator vorgenommen werden. Das Hinzuziehen von externem Sachverstand ist ratsam: z.B. Revisor und andere Administratoren. Auch wird empfohlen, den Hersteller und evtl. auch Mitarbeiter eines CERTs 52 hinzuzuziehen. War der Angriff so gravierend, daß ei52 Computer Emergency Response Team: Unter diesem Namen existieren weltweit ca. 70 Gruppen, deren Aufgabe es ist, Anwendern bei einem Sicherheitsvorfall zu helfen. Sie werden häufig auch als Incidence Response Team (IRT) bezeichnet. Eine weitere Aufgabe ist es, Fehler in Programmen und Betriebssystemen zu analysieren, zusammen mit den Herstellern Lösungen oder Patches zu erarbeiten und diese zusammen mit den entsprechenden Warnmeldungen zu verteilen. Viele CERTs sind im Forum of Incidence Response and Security Team (FIRST) (Informationen zu den Mitgliedern finden Sie unter [fir 02]) zusammengeschlossen. Praktikum IT-Sicherheit 291 ne Strafanzeige oder personelle Konsequenzen in Betracht gezogen werden, so muß von Anfang an auf eine genaue und lückenlose Dokumentation der durchgeführten Aktivitäten Wert gelegt werden. Für diese Aufklärungsphase müssen dem verantwortlichen Administrator genügend Zeit, Hilfsmittel und Personal zur Verfügung stehen, um falls nötig, alle Protokolldaten des betroffenen Rechners und eventuell auch von anderen Rechnern einsehen und bewerten zu können. Besteht die Wahrscheinlichkeit, daß der Angriff von einer anderen Organisation aus erfolgt ist, so sollte Kontakt zu den verantwortlichen Stellen dort aufgenommen werden, um gemeinsam den Vorfall zu rekonstruieren. Es ist fraglich, ob der zuständige Administrator des angreifenden Systems miteingeschaltet werden sollte, da dieser in die Vorfälle verstrickt sein könnte. Gemeinsam kann festgestellt werden, ob das angreifende System nur als Sprungbrett benutzt wurde. D.h. der Angreifer hat zuvor schon diese Systeme eingenommen, um von ihnen aus weitere Angriffe zu fahren und seine Identität zu verschleiern. Alle diese Maßnahmen setzen voraus, daß die rechtlichen Grundlagen geschaffen worden sind, um Protokolldaten auswerten zu dürfen (siehe auch Kapitel 2.5). 4. Sicherstellung von Beweismaterial: Wenn möglich sollte vor einer Veränderung eine komplette Kopie des Systemzustandes der angegriffenen Maschinen gemacht werden, damit diese später als Beweismittel verwendet werden kann. Mit diesen Backups können Analysen auch auf anderen Geräten durchgeführt werden, während das betroffene Gerät nach Beseitigung des Schadens wieder eingesetzt werden kann. Es ist empfehlenswert, die Daten auf ein Read-Only Medium zu speichern, damit kein Verdacht der Verfälschung aufkommen kann. Die so erzeugten Datenträger müssen mit Datum, Uhrzeit, Name des betroffenen Systems und Name der Person, die das Medium erzeugt hat, versehen werden. Ebenso sollten alle Telefongespräche mitprotokolliert werden, die zu diesem Thema geführt wurden. Auch sollte dokumentiert werden, wie das System wieder in seinen Betriebszustand überführt wurde. 5. Wiederherstellung eines sicheren Zustandes: Oft dienen kompromittierte Systeme nur dazu, einen Ausgangspunkt für weitere Angriffe zu schaffen. Somit werden meistens Programme auf den Systemen installiert, die ein späteres Zurückkommen des Angreifers durch einfache Hintertüren erlauben. Ist durch einen Integritätschecker feststellbar, welche Dateien und Programme verändert oder neu installiert wurden, kann sich die Wiederherstellung auf die betroffenen Dateien beschränken. Sind keine Integritätschecker eingesetzt worden, so stellt sich die partielle Wiederherstellung des Systems als äußers schwierig dar. Oftmals muß in solchen Fällen das System komplett neuinstalliert werden. Das trifft ebenfalls zu, wenn bei den gemachten Backups nicht klar ersichtlich ist, welches Backup noch sauber und welches schon durch den Angriff verseucht ist. Grundsätzlich sollten die Backups immer deutlich mit Datum und Maschinenname gekennzeichnet sein. Ebenso sollten die Datenträger auch leicht auffindbar sein. Bei der Wiederherstellung von Systemen sollte großer Wert darauf gelegt werden, daß die Lücken und Fehler, durch die der Angriff ermöglicht wurde, ausgemerzt werden, da sonst der nächste Angriff nicht lange auf sich warten läßt. Praktikum IT-Sicherheit 292 Sind die ausgenutzten Schwachstellen erkannt, so sollte eine eindeutige Signatur dieses Angriffs in die Datenbank der automatischen Protokollauswertung aufgenommen werden. 6. Ausführliche Dokumentation und abschließende Bewertung des Vorfalles: Zusätzlich zur ausführlichen Dokumentation der Tätigleiten und Fakten für die rechtliche Verfolgung ist eine Dokumentation der verwendeten Schwachstellen unerlässlich. Somit können die Hersteller die entdeckte Schwachstelle durch einen Patch entschärfen. Mit Hilfe der so erstellten Dokumentation der Vorgehensweise können im nachhinein Verbesserungen in der Handlungsweise vorgenommen werden. Praktikum IT-Sicherheit 10.9 Praktische Aufgaben 10.9.1 Tripwire 293 1. Laden Sie sich das RPM Paket für Red Hat 7.x von http://www.tripwire.org/ herunter und installieren Sie es, nachdem Sie überprüft haben, das das Programm siggen auf Ihrem Rechner existiert. 2. Ändern Sie das mitgelieferte Policyfile so ab, daß • die Verzeichnisse von Tripwire definiert sind, • Sie auf Ihrem Rechner nur /etc überwachen • die Wertigkeiten der zu überwachenden Files und Verzeichnisse festgelegt sind, • die Tripwire-Binaries überwacht werden, • die Tripwire-Konfigurationsfiles überwacht werden und generieren Sie das von Tripwire einzulesende Policyfile. 3. Initialisieren Sie die Datenbank mit dem derzeitig gültigen Stand. 4. Ändern Sie eines der in /etc/ beheimateten Konfigurationsfiles ab, fügen Sie ein Testfile innerhalb eines Unterverzeichnisses von /etc hinzu. Starten Sie nun einen Integritätscheck. Was sehen Sie? 5. Der so erzeugte Stand soll anhand des erzeugten Berichtes als Ist-Stand in die Integritätsdatenbank aufgenommen werden. 6. Machen Sie die vorher gemachten Änderungen rückgängig und ändern Sie die Datenbank anhand eines interaktiven Integritätschecks. 10.9.2 Snort 1. Installieren Sie Snort über YaST2. 2. Lassen Sie die Defaultkonfiguration unverändert und starten Sie Snort über das Startskript. 3. Lassen Sie von Ihrem Partnerrechner einen Nmap auf Ihre Maschine laufen. Was sehen Sie in den Logfiles? 4. Lassen Sie einen Nessusscan auf Ihre Maschine laufen. Was sehen Sie in den Logfiles? Praktikum IT-Sicherheit A 294 Anhang A.1 Boot- und Sicherungskonzept Jeder Gruppe stehen fünf Speicherplätze(Slots) für Backups zur Verfügung. Die Backups werden immer inkrementell (level 1) zum Defaultimage erstellt. Im folgenden werden die mit dem Backup/Restore Vorgang zusammenhängenden Befehle dargestellt. Im Normalfall sollte ein Aufruf der Befehle ohne Parameter ausreichend sein. • listbackups Aufruf: listbackups [SLOT] Funktion: Listet alle bereits erstellten Backups oder deren Inhalt auf. Parameter: SLOT Ist eine Ziffer zwischen 1 und 5, die eine Auswahl eines bestimmten Backups ermöglicht. Falls dieser Parameter angegeben ist, wird der Inhalt (also die Dateien) des in SLOT gesicherten Backups angezeigt. Ein Aufruf ohne Parameter listet die Belegung der Slots. • dobackup Aufruf: dobackup [SLOT] Funktion: Sichert die Daten auf dem Server. Parameter: SLOT ist eine Ziffer zwischen 1 und 5, die eine Auswahl eines bestimmten Backups ermöglicht. Die bereits vorhandenen Backups mit zugehörigen Slot Ziffern, erhält man über listbackups. Falls der Parameter angegeben ist, wird das Backup in dem gewählten Slot durch ein neues Backup ersetzt. Default Wert: nächster freier Slot oder, falls alle Slots belegt sind, ältester Slot. • dorestore Praktikum IT-Sicherheit Aufruf: dorestore [EXTMASK [SLOT]] Funktion: Stellt Backups wieder her. 295 Parameter: EXTMASK spezifiziert die zu extrahierenden Dateien. Default Wert: / SLOT Ist eine Ziffer zwischen 1 und 5, die eine Auswahl eines bestimmten Backups ermöglicht. Die bereits vorhandenen Backups mit zugehörigen Slot Ziffern, erhält man über listbackups. Default Wert: letztes gesichertes Backup. A.1.1 Beispiele dorestore stellt die Datei /etc/HOSTNAME aus dem Backup in Slot 3 wieder her. /etc/HOSTNAME 3 dorestore stellt die Datei /etc/HOSTNAME aus dem letzen gesicherten Backup wie/etc/HOSTNAME der her. dorestore A.1.2 stellt alle Dateien aus dem letzen gesicherten Backup wieder her. Anmerkungen Da die Befehle zentral auf dem Server verarbeitet werden und die Verbindung durch ssh verschlüsselt ist, benötigt man ein Passwort. Dieses Passwort ist gleich dem default rootPasswort auf den Rechnern. Beim ersten Aufruf eines dieser Befehle kann es sein, daß eine Anfrage kommt, ob man den ssh-Hostkey des Servers cachen möchte. Diese Frage einfach mit yes beantworten. Sollte jemand sein System soweit ”zerschießen”, daß die oben genannten Befehle nicht mehr korrekt ausgeführt werden können, so bitte einfach direkt an einen der Betreuer wenden. A.2 Kryptographisches Filesystem Auf allen Rechern befindet sich pro Gruppe ein verschlüsseltes Filesystem. Die Root-(/)Partition kann nur in Abhängigkeit vom richtigen Partitionspasswort erfolgreich gemounted werden. Standardmäßig ist das Passwort des kryptographischen Filesystems gleich dem bekannten root-Passwortes. Daher sollte sofort nach dem ersten Booten des Systems das Passwort sowohl für den root-Account, als auch für das Filesystem unverzüglich geändert Praktikum IT-Sicherheit 296 werden. Für das Ändern des Passwortes steht dem Benutzer der Befehl chcryptopw zur Verfügung. Zuerst wird der Benutzer aufgefordert, sein altes Passwort einzugeben und danach kann er durch zweimalige Eingabe des gewünschten neuen Passwortes die Änderung vollziehen. A.3 Rechtliches Strafgesetzbuch: • Unbefugte Datenbeschaffung (Art. 143) • Unbefugtes Eindringen in ein Datenverarbeitungssystem (Art. 143bis) • Datenbeschädigung (Art. 144bis) Zweites Gesetz zur Bekämpfung der Computerkriminalität: • Paragraph 202a: Ausspähen von Daten (1) Wer unbefugt Daten, die nicht für ihn bestimmt und die gegen unberechtigten Zugang besonders gesichert sind, sich oder einem anderen beschafft, wird mit Freiheitsstrafe bis zu drei Jahren oder mit Geldstrafe bestraft. • Paragraph 263a: Computerbetrug (1) Wer in der Absicht, sich oder einem Dritten einen rechtswidrigen Vermögensvorteil zu verschaffen, das Vermögen eines anderen dadurch beschädigt, daß er das Ergebnis eines Datenverarbeitungsvorgangs durch unrichtige Gestaltung des Programms, durch Verwendung unrichtiger oder unvollständiger Daten, durch unbefugte Verwendung von Daten oder sonst durch unbefugte Einwirkung auf den Ablauf beinflußt, wird mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe bestraft. • Paragraph 303a: Datenveränderung (1) Wer rechtswidrig Daten löscht, unterdrückt, unbrauchbar macht oder verändert, wird mit Freiheitsstrafe bis zu zwei Jahren oder mit Geldstrafe bestraft, • Paragraph 303b: Computersabotage (1) Wer eine Datenverarbeitung, die für einen fremden Betrieb, ein fremdes Unternehmen oder eine Behörde von wesentlicher Bedeutung ist, dadurch stört, daß er 1. eine Tat nach Paragraph 303a Abs. 1 begeht oder 2. eine Datenverarbeitungsanlage oder einen Datenträger zerstört, beschädigt oder unbrauchbar macht, beseitigt oder verändert, wird mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe bestraft. Praktikum IT-Sicherheit 297 Bundesgesetz über den Datenschutz (DSG) vom 19. Juni 1992 Verordnung zum Bundesgesetz über den Datenschutz (VDSG) vom 14. Juni 1993 Art. 3 definiert folgende Ausdrücke zum Thema Datenschutz: • Personendaten (Daten): alle Angaben, die sich auf eine bestimmte oder bestimmbare Person beziehen. • Betroffene Personen: natürlich oder juristische Personen, über die Daten bearbeitet werden. • Besonders schützenswerte Personendaten: Daten über 1. Die religieusen, weltanschaulichen, politischen oder gewerkschaftlichen Ansichten oder Tätigkeiten. 2. Die Gesundheit, die Intimsphäre oder die Rassenzugehörigkeit. 3. Massnahmen der sozialen Hilfe. 4. Administrative oder strafrechtliche Verfolgungen und Sanktionen • Persönlichkeitsprofil: eine Zusammenstellung von Daten, die eine Beurteilung wesentlicher Aspekte der Persönlichkeit einer natürlichen Person erlaubt • Bearbeiten: jeder Umgang mit Personendaten, unabhängig von den angewandten Mitteln und Verfahren, insbesondere das Beschaffen, Verwenden, Umarbeiten, Bekanntgeben, Archivieren oder Vernichten von Daten • Bekanntgeben: das Zugänglichmachen von Personendaten wie das Einsichtgewähren, Weitergeben oder Veröffentlichen • Datensammlung: jeder Bestand von Personendaten, der so aufgebaut ist, das die Daten nach betroffenen Personen erschließbar sind • Bundesorgane: Behörden und Dienststellen des Bundes sowie Personen, soweit sie mit öffentlichen Aufgaben des Bundes betraut sind • Inhaber der Datensammlung: private Personen oder Bundesorgane, die über den Zweck und Inhalt einer Datensammlung entscheiden • Formelles Gesetz: 1. Bundesgesetze und referendumsplichtige allgemeinverbindliche Bundesbeschlüsse 2. Für die Schweiz verbindliche Beschlüsse internationaler Organisationen und von der Bundesversammlung genehmigte völkerrechtliche Verträge mit rechtsetzendem Inhalt. Praktikum IT-Sicherheit 298 • Grundsätze 1. Personendaten dürfen nur rechtmäßig beschafft werden. 2. Ihre Bearbeitung hat nach Treu und Glauben zu erfolgen und muß verhältnismäßig sein. 3. Personendaten dürfen nur zu dem Zweck bearbeitet werden, der bei der Beschaffung angegeben wurde, aus den Umständen ersichtlich oder gesetzlich vorgesehen ist. A.4 Grundlagen von TCP/IP Netzwerken Bitmaskenlänge 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Dezimalformat HEX-Format Bitmaske 0.0.0.0 128.0.0.0 192.0.0.0 224.0.0.0 240.0.0.0 248.0.0.0 252.0.0.0 254.0.0.0 255.0.0.0 255.128.0.0 255.192.0.0 255.224.0.0 255.240.0.0 255.248.0.0 255.252.0.0 255.254.0.0 255.255.0.0 255.255.128.0 255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 255.255.255.254 255.255.255.255 00 80 c0 e0 f0 f8 fc fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00000000.00000000.00000000.00000000 10000000.00000000.00000000.00000000 11000000.00000000.00000000.00000000 11100000.00000000.00000000.00000000 11110000.00000000.00000000.00000000 11111000.00000000.00000000.00000000 11111100.00000000.00000000.00000000 11111110.00000000.00000000.00000000 11111111.00000000.00000000.00000000 11111111.10000000.00000000.00000000 11111111.11000000.00000000.00000000 11111111.11100000.00000000.00000000 11111111.11110000.00000000.00000000 11111111.11111000.00000000.00000000 11111111.11111100.00000000.00000000 11111111.11111110.00000000.00000000 11111111.11111111.00000000.00000000 11111111.11111111.10000000.00000000 11111111.11111111.11000000.00000000 11111111.11111111.11100000.00000000 11111111.11111111.11110000.00000000 11111111.11111111.11111000.00000000 11111111.11111111.11111100.00000000 11111111.11111111.11111110.00000000 11111111.11111111.11111111.00000000 11111111.11111111.11111111.10000000 11111111.11111111.11111111.11000000 11111111.11111111.11111111.11100000 11111111.11111111.11111111.11110000 11111111.11111111.11111111.11111000 11111111.11111111.11111111.11111100 11111111.11111111.11111111.11111110 11111111.11111111.11111111.11111111 00 00 00 00 00 00 00 00 00 80 c0 e0 f0 f8 fc fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 c0 e0 f0 f8 fc fe ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 c0 e0 f0 f8 fc fe ff Anzahl IP-Adressen 16777214 8388606 4194302 2097150 1048574 524286 262142 131070 65534 32766 16382 8190 4094 2046 1022 510 254 126 62 30 14 6 2 - Tabelle 14: Netzmasken Tabelle 14 listet alle möglichen Netzmasken in verschiedenen Notationen auf. In der letzten Spalte ist die maximale Anzahl der im Netz verwendbaren IP-Adressen angegeben. Zu beachten ist, daß für die Subnetz-Bildung nur Masken mit einer Länge von 8 bis 30 Praktikum IT-Sicherheit 299 Bits möglich sind. Alle anderen Masken (0 bis 7, 31 und 32 Bit) können jedoch für die Konfiguration der Routen sinnvoll sein, z.B. Maskenlänge 0 für die Default-Route oder Länge 32 für eine Host-Route (Route zu einer einzelnen IP-Adresse). A.5 A.5.1 Dienste in TCP/IP Netzwerken Wissenswertes zum Thema FTP Der Kommandoaufruf des FTP-Clients lautet ftp [ -v ] [ -d ] [ -i ] [ -n ] [ -g ] [ host ] Wird beim Programmaufruf der gewünschte Kommunikationspartner (host) mit angegeben, so wird sofort versucht, eine Verbindung zu diesem Rechensystem aufzubauen. Ist der Versuch erfolglos, so wird in den Kommandomodus umgeschaltet. Der Prompt ftp> erscheint immer auf dem Bildschirm, wenn ftp-Kommandos eingegeben werden können. ftp verfügt über einen help-Mechanismus, über den sämtliche, auf dem jeweiligen System verfügbare Kommandos mit Kurzerklärungen abfragbar sind. Nachfolgend werden wesentliche Kommandos, nach Funktionalität gruppiert, vorgestellt. Kommandos können soweit verkürzt eingegeben werden, als sie noch eindeutig erkennbar sind. Nicht alle ftp-Implementierungen unterstützen alle ftp-Kommandos. help [ kommando ]: zeigt kurze Informationen zu dem angegebenen Kommando. Wird das Kommando weggelassen, zeigt dieser Aufruf eine Liste der zulässigen Kommandos. open host: öffenen einer Verbindung zu einem fernen Host. Je nach angewähltem System werden Benutzerkennung und Passwort abgefragt. user user-name [ password ]: Eingabe von Benutzerkennung und Passwort. Aufruf einer (eingeschränkten) Shell auf dem lokalen System. Für Dateiübertragung relevante Kommandos wie mkdir, mv, cp, etc sind absetzbar. Verlassen wird diese Shell mit ’exit’. lcd [directory ]: Wahl des lokalen Directories für die Dateiübertragung. pwd: Anzeige des aktuellen Directories auf dem entfernten System. cd: remote-directory Wahl des aktuellen Directories auf dem entfernten System. cdup: Wechsel in das nächsthöhere Directory auf dem entfernten System. dir [ remote-directory [ local-file ] ] und ls [ remote-directory [ local-file ] ]: Ohne Optionen erfolgt eine Anzeige der Einträge des entfernten aktuellen Directories. Dabei liefert dir ausführliche und ls eine knappe Praktikum IT-Sicherheit 300 Information bezüglich des Directory-Inhalts. Bei Angabe des remote-directory erfolgt die Anzeige der Einträge des entfernten Directories. Wird local-file angegeben, erfolgt eine Umlenkung der Directory-Anzeige in die Datei local-file auf dem lokalen System. mdir remote-files [ local-file ] und mls remote-files [ local-file ]: Anzeige von Dateien aus dem entfernten aktuellen Directory und Abspeicherung in eine lokale Datei. mkdir directory-name: Einrichten eines neuen Directories directory-name auf dem entfernten System. rmdir directory-name: löscht das Directory directory-name auf dem entfernten System. rename [ from ] [ to ]: Umbenennen einer Datei auf dem entfernten System von from nach to. delete remote-file: löschen der Datei remote-file auf dem entfernten System. mdelete remote-files: löschen mehrerer Dateien remote-files auf dem entfernten System. put local-file [ remote-file ] und send local-file [ remote-file ]: Dateiübertragung der Datei local-file vom lokalen zum entfernten System. Wird remotefile nicht angegeben, so wird auch auf dem Zielsystem der Dateiname local-file verwendet. append local-file [ remote-file ]: überträgt die Datei local-file vom lokalen System an das entfernte System und hängt diese am Ende der Datei remote-file an. Wurde remote-file nicht angegeben, wird die Datei ans Ende der Datei local-file auf dem entfernten System angehängt. mput local-files: Dateiübertragung einer Dateigruppe namensgleich vom lokalen zum entfernten System. get remote-file [ local-file ] und recv remote-file [ local-file ]: Dateiübertragung einer Datei remote-file vom entfernten System zum lokalen System. Wird local-file nicht mitangegeben, so erhält die Datei auch auf dem lokalen System den Dateiname remote-file. mget remote-files: Dateiübertragung einer Dateigruppe namensgleich vom entfernten zum lokalen System. ascii und type ascii: Die Dateiübertragung findet im ASCII-Code statt. Gegebenenfalls werden bei Binärdateien Zeichen verändert (z. B. die Zeilenendedarstellung ans Zielsystem angepaßt) oder Zeichen verfälscht. Praktikum IT-Sicherheit 301 binary und type image und type binary: Die Dateiübertragung findet transparent statt. case: Mit diesem Schalter läßt sich einstellen, ob Dateinamen beim Empfangen (get, recv, mget) von Großbuchstaben in Kleinbuchstaben übersetzt werden sollen. glob: Mit diesem Schalter läßt sich einstellen, ob bei den Kommandos mdelete, mget und mput bei Dateinamen, die Metazeichen enthalten, diese Metazeichen übertragen werden oder nicht. (’off’ keine Metazeichenbehandlung). ntrans [ inchars [ outchars ] ]: Definition und Aktivierung einer Übersetzungstabelle für Dateinamen, wenn beim Dateiübertragungsauftrag (Senden und Empfangen) keine Zieldateinamen angegeben werden. Zeichen eines Dateinamens, die in inchars zu finden sind, werden durch das positionsgleiche Zeichen in outchars übersetzt. Ist inchars länger als outchars, so werden die korrespondenzlosen Zeichen von inchars aus dem Zieldateinamen entfernt. prompt: Mit diesem Zeichen wird bei Mehrdateienübertragung gesteuert, ob jede zu übertragende Datei extra quittiert werden muß oder nicht. verbose: Wenn der ’verbose’-Modus eingeschaltet ist, erhält man für jede übertragene Datei den Dateinamen auf dem lokalen und entfernten Rechner, sowie die Datenmenge und die dafür benötigte Übertragungszeit angezeigt. bell: Dieser Schalter bewirkt, daß je nach Stellung am Ende jedes Dateiübertragungsauftrages ein akustisches Signal ertönt oder nicht. status: Anzeige der aktuellen logischen Schalterstellungen sowie des Verbindungszustandes. close und disconnect: Beendigung einer aktiven Verbindung. quit: Beendigung des Programmes ftp. bye: Beendigung einer aktiven Sitzung und des Programmes ftp. Die optionalen Parameter beim ftp-Kommando setzen logische Schalter für den ftpProgrammlauf. Im Kommandomodus sind die Einstellungen jederzeit wieder änderbar. -v verbose-Schalter einschalten. -d debug-Schalter einschalten. -i interactive-Modus für Mehrdateiübertragung einschalten. -n verhindert, daß FTP zum Beginn der Sitzung einen Login-Versuch unternimmt. -g glob-Schalter einschalten. Praktikum IT-Sicherheit 302 Die Dateiübertragung wird durch die Terminal ’interrupt’-Taste (üblicherweise Ctrl-C) abgebrochen, was einen sofortigen Abbruch zur Folge haben soll. Nicht alle Kommunikationspartner verstehen die Abbruchaufforderung und dann wird dennoch die gesamte Datei übertragen. Ein kleines Beispiel für eine FTP Verbindung sieht man in Abbildung 76: A.5.2 Wissenswertes zum Thema SSH Das Softwarepaket SSH besteht aus mehreren Kommandos und Konfigurations-Dateien, die im Folgenden näher beschrieben werden. Übersicht über die Kommandos: • ssh: Einloggen bzw. Ausführen von Kommandos (Ersatz für telnet, rlogin und rsh) • slogin: Alias für ein ssh ohne Kommando-Argument • scp: Kopieren von Dateien (modifiziertes rcp, das ssh für den Daten-Transfer verwendet) • ssh-keygen: Erzeugen eines Key-Paares (dient zur strengen Authentifizierung) • ssh-agent: Optionaler Authentifizierungs-Agent zur leichteren Handhabung von individuellen Secret-Keys • ssh-add: Steuerung des ssh-agent • make-ssh-known-hosts: Tool zum einfachen Sammeln von Public-Keys • sshd: Server-Dämon auf dem Remote-Rechner ssh als Ersatz von telnet und rlogin: • ssh [User-ID@] Remote-Host • Die User-ID muß nur dann angegeben werden, wenn die User-IDs auf der ClientWorkstation und dem Zielrechner unterschiedlich sind. ssh als Ersatz von rexec und rsh: • ssh [User-ID@] Remote-Host Befehl • Wenn der Befehl Wildcards (?, * usw.) enthält, muß er in Hochkommata eingeschlossen werden, damit diese auch wirklich erst auf dem Zielrechner aufgelöst werden. Praktikum IT-Sicherheit 303 ftp ftp.debian.org Connected to ftp.debian.org. 220 saens.debian.org FTP server (vsftpd) Name (ftp.debian.org:boadmin): anonymous 331 Please specify the password. Password: 230 Login successful. Have fun. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. debian debian-archive lost+found 226 Directory send OK. 36 bytes received in 0.011 seconds (3.26 Kbytes/s) ftp> cd debian 250 Directory successfully changed. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. README README.CD-manufacture README.mirrors.html README.mirrors.txt README.non-US README.pgp dists doc indices ls-lR ls-lR.gz ls-lR.patch.gz pool project tools 226 Directory send OK. 175 bytes received in 0.0089 seconds (19.14 Kbytes/s) ftp> lcd /tmp Local directory now /tmp ftp> bi 200 Binary it is, then. ftp> mget README.pgp mget README.pgp? y 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for README.pgp (17180 bytes). 226 File send OK. local: README.pgp remote: README.pgp 17180 bytes received in 0.74 seconds (22.77 Kbytes/s) ftp> quit 221 Goodbye. Abbildung 76: FTP zu ftp.debian.org Praktikum IT-Sicherheit 304 scp als Ersatz von rcp und ftp: • Um eine Datei von der lokalen Workstation zu einem entfernten Zielrechner zu übertragen: scp Datei [User-ID@] Remote-Host: [Datei | Directory] • Um eine Datei von einem entfernten Rechner auf die lokale Workstation zu kopieren: scp [User-ID@] Remote-Host: Datei Datei | Directory Es ist möglich, durch die Angabe von Wildcards (z. B. *.txt) mit einem Befehl mehrere Dateien zu kopieren. In diesem Fall muß für das Zielsystem ein bereits existierendes Verzeichnis angegeben werden, in das die Dateien kopiert werden sollen. Die Angabe einer Zieldatei ist dann nicht möglich. Um ganze Verzeichnisse rekursiv zu kopieren, kann man die Option -r verwenden: scp -r Directory [User-ID@] Remote-Host: [Directory] scp -r [User-ID@] Remote-Host: Directory Directory Gibt man die User-ID nicht explizit an, wird diejenige genommen, unter der das scpKommando auf der lokalen Workstation abgesetzt wird. Alternativ kann in einer lokalen ssh-Konfigurationsdatei $HOME/.ssh/config für jeden Zielrechner eine User-ID definiert werden, die defaultmäßig genommen wird. Fragen und Antworten zur SSH: • Informationen über den ssh-Verbindungsaufbau: Mit der Option -v wird ssh/scp im ’Verbose Mode’ aufgerufen. Hierdurch werden Informationen ausgegeben, die zur Problemanalyse hilfreich sein können. • Wieso fragt ssh nach dem Passwort auf dem Zielrechner statt nach der RSAPassphrase? Es gibt drei Gründe: 1. Der öffentliche Schlüssel wurde $HOME/.ssh/authorized keys bzw. gelegt. nicht auf dem Zielrechner in $HOME/.ssh/authorized keys2 ab- 2. Das Heimatverzeichnis des Benutzers auf dem Zielrechner hat zu viele Rechte. In der Standardkonfiguration erwartet ssh, daß Schreibrechte nur für den Owner gesetzt sind. Sobald sie auch für andere gesetzt sind, schaltet ssh auf Validierung über Passwort zurück. 3. Die Verwaltung der Benutzerdaten auf dem Zielrechner läuft über DCE. In diesem Fall hat man keine Möglichkeit, die RSA-Authentisierung zu nutzen. • Man erhält die Warnung ’Host key not found from the list of known hosts’. Man sollte sicherstellen, daß die Datei /etc/ssh known hosts existiert und auf dem aktuellen Stand ist. Beim ssh-Zugang zu einem anderen Rechner muß man beim ersten Login über ssh darauf vertrauen, daß der HostKey, den der Zielrechner anbietet, korrekt ist. In jedem Fall kann der Login-Prozeß mit yes fortgesetzt werden. Der HostKey Praktikum IT-Sicherheit 305 wird dann automatisch in die Datei $HOME/.ssh/known hosts eingetragen, und die Meldung sollte beim nächsten Login über ssh nicht mehr erscheinen. Außerdem sollte man darauf achten, daß man den Zielrechner immer in derselben Form anspricht, da der Name zusammen mit dem HostKey in $HOME/_ ssh/known hosts eingetragen wird und der HostKey anschließend nur für diesen Namen bekannt ist. • Man erhält die Warnung ’HOST IDENTIFICATION HAS CHANGED! ...’ Man sollte die Verbindung durch die Eingabe no zunächst einmal abbrechen. Erkundigen Sie sich bitte beim jeweiligen Administrator, ob der HostKey wirklich geändert wurde. Ist dies der Fall, sollten Sie den bestehenden Eintrag für die Maschine aus der Datei $HOME/.ssh/known hosts löschen, damit der aktuelle HostKey beim nächsten Login an die Datei angefügt werden kann. Wichtige Informationsquellen zur SSH: • Manpages zur SSH (ssh, sshd, scp, ssh-key-gen, etc. ) • http://www.lrz-muenchen.de/services/security/ssh/ • http://www.ssh.com/ • http://www.openssh.org/ A.5.3 Wissenswertes zum Thema WWW WWW Allgemein In diesem Zusammenhang noch ein Hinweis: Alles was man beim Surfen im WWW auf dem Bildschirm sieht, ist in den lokalen Rechner übertragen worden und kann natürlich auch dauerhaft abgespeichert werden (File-Menü des Browsers, Menüpunkt ’Save as...’). Ebenso lassen sich die Bilder abspeichern (beim Netscape-Browser Mauszeiger auf das Bild ziehen, rechte Maustaste drücken). Wie kommt man zu interessanten Informationen? Es gibt drei Möglichkeiten: 1. Durch Empfehlung von Bekannten (Es können auch Informationen aus den News sein). Jemand sagt also zu Ihnen: ’Probiere mal: http://www.uni-muenchen.de/’. Das tippen Sie dann ins Adreßfenster des Browsers und schon landen Sie auf dem entsprechenden Computer, der Ihnen die gewünschte Information serviert. 2. Durch Netsurfen. Sie starten einfach irgendwo. Klicken Sie auf einen der Links und Sie werden auf einem Server irgendwo in der großen weiten Welt landen. Die Chance ist groß, daß diese Web-Seite weitere Links enthält und so werden Sie von Australien bis Japan springen und dabei ein paar interessante Dinge entdecken. 3. Durch Suchen. Ähnlich wie bei Gopher gibt es etliche Server, die mit Suchmaschinen einen Index vieler, vieler WWW-Server anlegen. In diesem Index kann man dann nach Stichworten suchen. Praktikum IT-Sicherheit 306 Oft hat man schon eine recht große Anzahl an Bildschirmen und WWW-Schritten hinter sich, bis man an der gewünschten Stelle oder interessanten Information angekommen ist. Um sich einen relativ langen oder umständlichen Weg bis zu dieser Stelle ein zweites Mal zu ersparen, kann man solche Stellen im WWW in der persönlichen ’Hotlist’ eintragen. Ein weiteres Merkmal des WWW ist die Schreiboption. Damit ist es möglich, Formulare, z. B. Bestellscheine von Bibliotheken oder Anmeldungen für Konferenzen, auszufüllen und abzuschicken. Diese Formulare werden dann von Programmen auf dem Server-Rechner bearbeitet. Diese schicken dann die Antwort wieder als WWW-Dokument zurück. Java Mit Java hat SUN Microsystems etwas Neues geschaffen. Es können nun mit einer WWW-Seite nicht nur Text, Bilder, Sounds oder Animationen an den eigenen Rechner geliefert werden, sondern Programme, die lokal ablaufen. Statt beispielsweise ein Diagramm als Grafik zu senden, wird nun ein Diagramm-Zeichenprogramm mit den Daten geschickt. Um dann die Änderung der Daten kontinuierlich zu zeigen, müssen nun nur noch wenige Daten gesendet werden. Java ist eine richtige Programmiersprache, die an die Sprache C++ angelehnt ist. Wenn man im Browser eine Seite mit einem Java-Programm wählt, wird dieses Programm übertragen und dann von lokalen Browser ausgeführt. Der Ansatz für Java entstand noch unter der Prämisse, Java auf intelligenten Peripheriegeräten, z. B. beim interaktiven Fernsehen, einzusetzen. Eine logische Konsequenz daraus war der Wunsch nach Vereinfachung gegenüber existierenden Technologien und nach geringem Ressourcenverbrauch. C++ wurde daher schon recht früh als Programmiersprache verworfen. Um aber den Aufwand des Umstiegs für C-, Smalltalk- und Eiffel-Programmierer gering zu halten, lehnt sich Java zum Teil deren Konzepte an und legt die C++-Syntax zugrunde. Wichtige Unterschiede zwischen Java und C++ sind die Eliminierung der ’herkömmlichen’ Zeiger, der zusammengesetzten und der vorzeichenlosen Datentypen. Neu (zumindest gegenüber C++) sind ’sichere’ Arrays und vor allem ein Garbage Collector, der Speicherbereiche, die nicht mehr referenziert werden, automatisch freigibt. Die Java-Programme werden in ein kompaktes Format übersetzt, den Bytecode. Das ist an sich nichts neues, prinzipiell gab es das schon seit ca. 20 Jahren bei den BASIC-Interpretern der Heimcomputer. Im Java fähigen Browser ist dann ein Interpreter für diesen Bytecode enthalten. Der Interpreter überprüft den Bytecode vor der Ausführung auf unerlaube Zugriffe auf Ressourcen. Auf diese Weise sind zwei Ausführungsmodi möglich: Einem lokal gestarteten Java-Applet (so nennt man die Java-Programme) kann der Benutzer den Zugriff auf den Rechner erlauben. Aus dem Netz geladene Applets behandelt Java dagegen äußerst mißtrauisch. Sie sind quasi in den Interpreter eingesperrt und verwenden genau definierte und vom Benutzer kontrollierte Möglichkeiten, beispielsweise auf die Festplatte zu schreiben. Zusätzlich wird jedes Applet vor und während der Ausführung auf korrekte Benutzung der Methoden und Instanzvariablen, mißbräuchliche Benutzung von Objektreferenzen, Stack-Überläufe und Zugriffsbeschränkungen getestet. Auch das Überschreiben von als sicher akzeptierten Klassen aus der lokalen Klassenbibliothek durch potentiell gefährliche Praktikum IT-Sicherheit 307 Klassen aus dem Netz ist nicht ohne Erlaubnis des Benutzers möglich. Dies kann soweit gehen, daß der Benutzer jedes Laden einer externen Klasse bestätigen muß. Für grafische Oberflächen, Ein-/Ausgabe, mathematische Operationen und Netzwerkfunktionen existieren vordefinierte Klassen. Ein Java-Programmierer muß nicht gleich alles wissen, die Einarbeitungszeit ist unter Java viel kürzer als unter C++. Eine Beschränkung der Programmiersprache auf spezielle Anwendungsgebiete ist (theoretisch) nicht vorgegeben. Was die Entwicklung vollwertiger Stand-alone-Programme angeht, gilt für Java jedoch das gleiche wie für andere plattformübergreifende Bibliotheken: es ist nur der ’kleinste gemeinsame Nenner’ implementiert. Für Java-Code, der in einem Web-Browser ablaufen soll, dient die Klasse ’Applet’ als Ausgangspunkt. Im HTML-Code werden die Java-Klassen durch das <applet>-Tag eingebettet. ’Applet’ definiert als Superklasse für alle Applikationen, die in Browser eingebettet werden sollen, auch einen Eventhandler für Benutzereingaben. Die wichtigsten Methoden für ein Applet sind die Initialisierung, Aktivierung der Anzeige, Deaktivierung der Anzeige und das Terminieren. Der Programmierer definiert in diesen Methoden das Verhalten des Applets auf der Seite. Gemäß dem ’Java-Knigge’ sind Applets so zu programmieren, daß sie nur dann Rechenzeit beanspruchen, wenn die umgebende HTML-Seite angezeigt wird. Mit Java lassen sich auch komplette Bedienoberflächen programmieren. Die Möglichkeit, mit einem Mausklick ein Applet zu stoppen und wieder anzustarten, runden die Vorschriften ab. Um nicht den Browser mit der Interpretation des Applets zu blockieren und auch mehrere Applets simultan in einer HTML-Seite animieren zu können, sind Threads bereits Grundausstattung der Java-Laufzeitumgebung. Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser (für SUNs) und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter http://java.sun.com/. Die Entwicklertools für Java-Applikationen stecken noch in den Kinderschuhen und sind zwar mächtig in der Leistung, aber noch recht unkomfortabel in der Bedienung. In Java wurden zum einen erfolgreiche Konzepte aus bereits bestehenden Sprachen (z.B. C, C++, Smalltalk, Eiffel, Ada, Objectiv-C) übernommen, zum anderen neue Konzepte verwirklicht. Java ist eine junge Interpretersprache, die viele mächtige Konzepte in sinnvoller Weise integriert. Sie ist völlig objektorientiert, interpretiert, einfach, architekturneutral, portabel und sicher. Eine gute Performance kann durch Multithreading und optionalen Nativecode erreicht werden. Ausgiebige Kompilierzeitüberprüfungen und strikte Laufzeitckecks garantieren ein robustes und sicheres Verhalten der Applikationen. Sie kann somit neben der Möglichkeit des schnellen Prototyping als eine stabile Basis für verteilte und erweiterbare Systeme dienen. Die wesentlichen Gesichtspunkte sind: • Objektorientiert • Architekturunabhängig und portabel • Robustheit Praktikum IT-Sicherheit 308 • Multithreading • Garbage Collection • Sicherheit Java ist vollkommen objektorientiert. Jede objektorientierte Sprache sollte ein Minimum der folgenden Charakteristiken in sich haben: • Encapsulation: Informationen (bzw. Attribute und Methoden) werden gekapselt, d.h. konkrete Implementierung und Strukturen sind für den Anwender nicht sichtbar. Lediglich Funktionalität und Interface eines Objektes werden bekanntgegeben. • Inheritance: Subklassen ’erben’ Inhalte von Klassen • Dynamic binding: ermöglicht ein Maximum an Flexibilität zur Laufzeit All diese Anforderungen werden von Java in hohem Maße erfüllt. Es werden sogar zusätzlich weitere runtime-features geboten, die die Software-Entwicklung einfacher machen können. Wichtige Begriffe in diesem Zusammenhang, die auch in Java vorkommen, sind: Klassen: Definiert Attribute und Methoden Object : instanzierte Klasse Message: Aufruf einer Methode eines anderen Objektes Constructor: Methode, die die Initialisierung eines, einer Klasse instanzierten Objektes, vornimmt Destructor: Gegenstück zum Constructor. Access Control: Bei der Deklarierung einer Klasse können Attribute und Methoden mit verschiedenen Zugriffsleveln (public, protected, private, friendly) versehen werden. Abstract Methods: Methoden, die in einer Klasse deklariert werden, deren Implementierung aber erst in einer Subklasse erfolgt. Packages: Java-Konstrukt, das eine Sammlung von zusammengehörenden Klassen bildet. Wichtige Eigenschaften von Java • Objektorientierung • Multithreading Praktikum IT-Sicherheit 309 • Robustheit • Sicherheit • Erweiterbarkeit • Plattformunabhängigkeit Was Java hat: • import: vergleichbar dem IMPORT von Modula-2. • interface: ein geschickter Ersatz für die Mehrfachvererbung. • Garbage Collection • Verbesserte Ausnahmebehandlung • Wohldefinierte Klassenhierarchie Eigenschaften, die nicht von C oder C++ übernommen wurden: • In Java gibt es keine Präprozessor-Direktiven (wie z.B. #define) mehr. • Es gibt keine Headerfiles, dafür aber Interfaces, die die Definition anderer Klassen und deren Methoden beinhalten. • Multiple Inheritance wurde durch Interfaces ersetzt, die Methodendefinitionen von Klassen gleich setzt können. • Kein ’goto’-statement (definiert, aber nicht implementiert). • Kein Operator-overloading. • Keine Pointer. • Keine Typdefinitionen. • Keine Variante Records (union). • Keine generische Typen (templates). • Keine Mehrfachvererbung. • Keine vorzeichenlose Zahlentypen. • Keinen direkten Hardwarezugriff. Praktikum IT-Sicherheit 310 Durch die Verwendung von byte-code im Gegensatz zum Binärcode ist Java völlig architekturneutral. Java-Programme lassen sich auf allen Plattformen ausführen, auf welche die Virtual Machine portiert wurde. Portierungen werden durch die strikte Sprachspezifikation unterstützt. Java ist eine Sprache, die gedacht ist für robuste, zuverlässige und sichere Applikationen. Um dies zu erreiche,n wird ein striktes Compile-Time- Checking durchgeführt, das es ermöglicht, Syntaxfehler früh zu entdecken. Java ist eine sehr typorientierte Sprache. Viele C-Freiheiten, wie etwa implizite Deklaration von Funktionen, sind nicht erlaubt. Besondere Stützen der Robustheit sind die Abschaffung von Pointern, die Verwendung von echten Arrays, ein Speichermodell, das die unerlaubte Überschreibung von Speicherbereichen verhindert und strengere Casting-Regeln. Bereits bei der Konzeption von Java wurden grundlegende Überlegungen bezüglich der Sicherheit angestellt. Der Java-Compiler und das Laufzeitsystem integrieren mehrere Abwehrschichten gegen potentiell gefährlichen Code. Am wichtigsten ist sicherlich das Speicherallozierungs- und -referenzierungsmodell. Entscheidungen über die Speicherbelegung werden nicht vom Compiler (wie in C oder C++), sondern erst zur Laufzeit vorgenommen. Intern verwendet Java sogenannte ’handles’, die zur Laufzeit in physikalische Addressen aufgelöst werden. Dies geschieht sehr spät und z. T. auch abhängig von der Architektur, jedoch völlig transparent für den Programmierer. Was passiert, wenn gefährlicher Code auf einen Server generiert und zur Laufzeit auf dem Client ausgeführt wird? Obwohl der Java-Compiler beim Übersetzen das Einhalten von bestimmten Sicherheitsregeln garantiert, bleibt er natürlich machtlos, wenn Code-Fragmente zur Laufzeit on-the-fly gelinkt werden. Wie kann also das Laufzeitsystem dem hereinkommenden byte-code stream vertrauen, der vielleicht von einem nicht vertrauenswürdigen Compiler erzeugt wurde? Die Antwort ist einfach: Java traut dem Code nicht und unterwirft ihn deshalb dem byte-code-Verifizierungsprozeß. Dieser beinhaltet eine Reihe von sinnvollen, restriktiven Maßnahmen. Darunter sind einfache Typüberprüfungen, Ausklammerung von Pointern, Ausschluß von Stack-Über- und -Unterläufen, strikte Parameterüberprüfung, strikte Typkonvertierungen, Überprüfung der Speicherzugriffsrestriktionen. Weiter wird getestet, daß Objekte wirklich nur als solche verwendet werden. Daten- und Kontrollfluß vom Java-Quellcode bis zur Ausführung sieht in Abbildung 77. Trotz der ausgedehnten Verifizierungsprozeß bleibt Java (laut Sun) immer noch schnell genug, da der Java-Interpreter von jeder weiteren Überprüfung hinsichtlich der Sicherheit befreit ist und damit mit voller Geschwindigkeit arbeiten kann. Weitere Sicherheitsaspekte sind im Java Networking Package implementiert, welches es erlaubt verschiedene Sicherheitsebenen zu konfigurieren. Diese sind: • alle Netzwerkzugriffe sind verboten • Alle Netzwerkzugriffe sind erlaubt • Netzwerkzugriffe sind nur jenen Hosts erlaubt, von denen der Code importiert wurde Praktikum IT-Sicherheit 311 Abbildung 77: Dataflow Java • Netzwerkzugriffe sind auf Zugriffe außerhalb des Firewalls beschränkt, wenn der Code von dort kommt. Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser (für SUNs) und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter http://java.sun.com/. JavaScript JavaScript ist eine Script-Sprache mit begrenzten Fähigkeiten. Sie hat im Grunde mit Java nur einen Namensteil gemeinsam. Programmiersprache Java an. JavaScript ist jedoch anspruchsloser im Aufbau als Java, eingeschränkter in den Möglichkeiten und für andere Zwecke gedacht. JavaScript ist im Praktikum IT-Sicherheit 312 Gegensatz zu Java eine unmittelbare Ergänzung und Erweiterung zu HTML. JavaScript bietet sich für folgende Zwecke an: • Animation (z. B. Marquees = Lauftexte programmieren) und in WWW-Seiten einbinden. Dabei steht Ihnen nicht nur das Anzeigefenster zur Verfügung, sondern auch Dialogbereiche des WWW-Browsers, etwa die Statuszeile. • Projektsteuerung: Mit Hilfe von JavaScript lassen sich einige Lücken in HTML umgehen. So ist es mit Hilfe von JavaScript beispielsweise möglich, innerhalb eines FrameSets die Inhalte mehrerer Frame-Fenster gleichzeitig zu aktualisieren. • Formularüberprüfung: Überprüfen der Anwendereingaben in einem HTML-Formular während der Eingabe • Dynamische WWW-Seiten: Mit Hilfe von JavaScript läßt sich erreichen, daß sich WWW-Seiten während der Anzeige dynamisch verhalten. Beispielsweise: Wechsel eines Bildmotivs, wenn sich die Maus über das Bild bewegt. Text generieren: Zur Laufzeit HTML-formatierten Text generieren, z.B. das aktuelle Datum und die aktuelle Uhrzeit anzuzeigen. • Anwendungen: Mit Hilfe von JavaScript lassen sich einfache Anwendungen programmieren. Das können z.B. wissenschaftliche oder kaufmännische Taschenrechner sein. Auch einfache Spiele sind denkbar. JavaScript-Programme werden im Gegensatz zu Java-Programmen direkt in der HTMLDatei notiert. Sie werden auch nicht - wie Java-Programme - compiliert, sondern als Quelltext zur Laufzeit interpretiert, also ähnlich wie Batchdateien bzw. Shellscripts. Dadurch bleibt JavaScript unkompliziert für den Programmierer, doch kritisch für den Anwender. Das Interpretieren von Quellcode ist ungleich langsamer, als das Interpretieren von compiliertem Code. Deshalb ist JavaScript nur für kleine und einfache Programmabläufe sinnvoll. Da kein Compilierungslauf und somit keine Fehlerprüfung stattfindet, gibt es bei JavaScript auch keinen Schutz vor schweren Programmfehlern. Kleine Effekte, wie das bekannte Ändern des Erscheinungsbildes eines grafischen Elements, wenn die Maus darüber bewegt wird, lassen sich jedoch schnell realisieren. Wie einfach JavaScript sein kann, sieht man hier. <FORM> <INPUT TYPE=BUTTON VALUE="Klick mich oder ich beiss Dich!" OnClick="alert(’Ich w"urde sowas an Deiner Stelle nicht machen! Deine Platte wird jetzt gel"oscht!’)"> </FORM> Praktikum IT-Sicherheit 313 Satire: Wie selbstdokumentierend und selbsterklärend die Skripte sein können, zeigt folgendes, einer real existierenden Webseite entnommene, Skript: <SCRIPT> var F_A,F_B,F_CH,F_CL,F_DB,F_E,F_F,F_L,F_MT,F_MV,F_R,F_SE,F_SU,F_U,F_HR,F_MU,F_MD; function F_e(){} function F_n(){} function F_on(){} </SCRIPT> Beliebt sind auch die animierten Schaltflächen: <SCRIPT LANGUAGE="JavaScript"> <!-- hide from old browsers start = new Image(20,150); start.src = "start.gif"; start2 = new Image(20,150); start2.src = "start2.gif"; function HiLite(imgDocID,imgObjName){ document.images[imgDocID].src = eval(imgObjName + ".src") } // done hiding --> </SCRIPT> Das oben angeführte Skript ist ’brav’, es könnte aber in der Funktion HiLite beliebig viel Unsinn enthalten sein. Weitere Informationen und Beispielsammlungen zu JavaScript finden Sie im WWW: • JavaScript Authoring Guide: Die offizielle JavaScript-Dokumentation von Netscape (http://developer.netscape.com/docs/manuals/index.html) • JavaScript Examples: Interessante Beispielprogramme mit JavaScript (http://) • JavaScript Pro: Profi-Forum zum Thema JavaScript. Möglichkeit, selbst Fragen zu stellen. (http://) • Gamelan: Weltweit größte Sammlung von Java-Appletts und JavaScript-Beispielen (http://) Praktikum IT-Sicherheit 314 ActiveX Microsoft will mit eigener Internet-Technologie Standards setzen und hat, gewissermaßen als Konkurrent zu Java, seine Active-X-Technik entwickelt. Active-X ist eine Microsoft-Technik zur Erzeugung interaktiver Web-Seiten mithilfe von Controls, Skripts und Softwarepaketen, wie zum Beispiel Textverarbeitungen und Tabellenkalkulationen. Der Sinn von Active-X ist aus Sicht von Microsoft: • Applikationen in Web-Browser einzubinden • Den Web-Browser zur Schaltzentrale für Internet und Intranet zu machen Ein Active-X-Control ist ein kleines Windows-Programm, das sich nur mit Hilfe eines Web-Browsers ausführen läßt. Wenn Sie im Internet auf eine mit einem Active-X-Control ausgestattete Seite kommen, werden nicht nur Text und bunte Bilder angezeigt, sondern auch ein Programm auf Ihren Rechner geladen und ausgeführt. Im ungünstigsten Fall merken Sie gar nicht, daß ein Active-X-Control in eine Web-Seite eingebunden ist und automatisch ausgeführt wird, während Sie die Seite anschauen und sich in trügerischer Sicherheit wähnen. Die Active-X-Technologie besteht aus folgenden Komponenten: • Active-X-Controls: sind Elemente wie Schaltflächen, Listboxen, Bildlaufleisten usw., die auf Web-Seiten plaziert und dort benutzt werden können. Dadurch wird ein hoher Grad an Interaktion mit dem Anwender erreicht. • Active-X-Scripting • Active-X-Dokumente: werden mit sogenannten Skripts gesteuert. Skripts sind Programme, die in HTML-Seiten eingebaut und somit für jedermann lesbar sind. Skriptsprachen sindVisual-Basic-Script (VB-Script) und Java-Script. • Active-X-Conferencing: Sie funktionieren wie OLE-Verbunddokumente. Ein Browser (Container) kann zum Beispiel ein Excel-Sheet anzeigen (Excel ist dann der Server), ohne das man den Browser verlassen muß - sofern man Excel hat. Man kann so Dokumente ganz verschiedener Formate in das Netz posten und jeder, der auch den entsprechenden Server hat, kann sie betrachten. Damit wird aber der Nutzerkreis auf die Anwender von Microsoft-Produkten eingeschränkt und die gemeinsame Sprache des WWW, HTML, ausgegrenzt. • ActiveMovie: Zur Übertragung von Audio und Video-Daten über Netze gibt es ActiveMovie. ActiveMovie soll ermöglichen, daß die Audio- und Video-Daten nicht erst komplett auf den eigenen Rechner geladen werden müssen, bevor man sie abspielen kann (was unter Umständen ziemlich lange dauern kann), sondern die Übertragung erfolgt in Echtzeit. Voraussetzung ist natürlich, daß die Verbindung schnell genug ist. Praktikum IT-Sicherheit 315 Hinter einem Active-X-Control verbirgt sich also nichts anderes, als ein normales WindowsProgramm. Es kann also alles tun, was auch jedes andere Windows-Programm tun kann: Daten von Ihrer Festplatte übers Netz versenden, Viren installieren - oder einfach nur die Festplatte formatieren. Active-X-Programme sind also ein Risikofaktor und sollten nur unter bestimmten Voraussetzungen eingesetzt werden. Der Chaos Computer Club demonstrierte der Öffentlichkeit die Risiken von Active X: Die Hacker programmierten ein Active-X-Control, das der Finanz-Software Quicken einen Überweisungsauftrag unterjubelte. Der Auftrag wurde so gespeichert, daß er beim nächsten T-Online-Connect automatisch ausgeführt würde. Active-X-Programme laufen derzeit nur mit dem Microsoft Internet-Explorer ab Version 3. Damit Active-X-Controls mit einem Netscape-Browser funktionieren, muß man ein spezielles Active-X-Plug-in installieren. Beim Installieren von Active-X-Komponenten wird manchmal ein ’Zertifikat’ angezeigt. Wer Active-X-Programme schreibt, kann sich ein solches ’Zertifikat’ besorgen, das nach dem Laden der Webseite angezeigt wird. Dieses Zertifikat soll garantieren, daß das Active-X-Control wirklich im Originalzustand vorliegt. Gewährleistet wird das durch eine verschlüsselte Quersumme, die beim Herausgeber des Zertifikats hinterlegt ist und die mit der des Programms verglichen wird. Ein gültiges Zertifikat heißt jedoch keinesfalls, daß Sie einem Active-X-Control blind vertrauen können. Der bisher einzige Zertifizierer, Verisign Commercial Software Publishers CA, prüft nicht, was ein Active-X-Control auf einem Rechner anstellt, sondern nur, ob das Programm nach der Zertifizierung verändert wurde. Nachdem jeder sein Active-X-Control zertifizieren lassen kann, besteht auch die Möglichkeit, daß gefährliche oder schädliche ActiveX-Controls ein Zertifikat bekommen. Dabei muß nicht einmal böse Absicht des Programmierers im Spiel sein, denn ’Man soll nie Absicht vermuten, wo Dummheit als Begründung ausreicht’. Insofern hat das Zertifikat höchst zweifelhaften Wert. Wird auf einer Webseite ein Zertifikat angezeigt, hängt es davon ab, wo Sie sich befinden: Handelt es sich um eine renommierten Firma, können Sie ein zertifiziertes Active-XControl ohne großes Risiko installieren. Befinden Sie sich dagegen auf einer privaten oder halbprivaten Seite, sollten Sie auch mit zertifizierten Komponenten sehr vorsichtig sein. Programmierfehler können sich natürlich auch in Controls großer Unternehmen befinden. Wenn Sie schon massenhaft Active-X-Controls auf Ihrer Platte haben, hilft die Freeware ’ActiveXCavator’. Sie listet alle installierten Controls einschließlich diverser Dateiinformationen (Verzeichnis, Größe) auf und kann auch einzelne Controls löschen. Das Programm gibt es unter http://www.winmag.com/software/xcavate.htm. VRML Zur Beschreibung der WWW-Hypertext-Dokumente dient, wie erwähnt, eine Sprache namens HTML (HyperText Markup Language). Eine faszinierende Erweiterung für 3D-Grafiken ist die Beschreibungssprache VRML (Virtual Reality Modeling Language). Statt riesiger Animationsdateien werden auch hier nur Anweisungen geschickt, wie eine dreidimensionale Animation aussehen soll. Die so definierten Animationen werden dann auf dem lokalen Rechner erzeugt. Im Grunde ist dies keine grundlegende Neuerung, Praktikum IT-Sicherheit 316 denn jedes Raytracing-Programm arbeitet mit einer solchen 3D-Sprache. Die Software berechnet anhand der Beschreibung die jeweilige Szenerie und stellt sie grafisch auf dem Bildschirm dar. VRML wird derzeit speziell auf die Bedürfnisse von WWW und Internet zugeschneidert, verfügt daher über spezifische Fähigkeiten, etwa die Einbindung von HTML-Dokumenten in 3D-Szenen. Die Entwicklung von VRML begann im Frühjahr 1994. Der Name VRML wurde damals geboren, allerdings noch als ’Virtual Reality Markup Language’. Um nicht bei Null zu beginnen und statt dessen eine geeignete, bereits vorhandene 3D-Technologie zu nutzen, fiel die Wahl der Entwickler auf ’Open Inventor’ von Silicon Graphics (SGI). Open Inventor unterstützt 3D-Szenarien mit Polygonobjekten, verschiedenen Belichtungsmöglichkeiten, Materialien oder Texturen. Zudem stellte SGI noch eine erste VRML-Parser-Library zur Verfügung, die als Grundlage für die Implementierung von 3D-Viewern diente. Flash Derzeit letzter Endpunkt der Technik auf Webseiten ist Flash. Web-Entwickler verwenden Flash zum Erstellen von attraktiven, auf Browsergröße anpassbaren, extrem kleinen und kompakten Navigations-Oberflächen, technischen Illustrationen, LangformAnimationen und sonstigen faszinierenden Effekte für Websites und andere Web-aktivierte Geräte (wie WebTV). Flash-Grafiken und -Animationen werden mit Hilfe der Zeichenwerkzeuge in Flash oder durch Importieren von Vektor-Grafiken erstellt. Flash unterstützt nicht nur Vektorgrafiken, die im Gegensatz zu Pixelgrafiken (GIF, JPEG, PNG, BMP, usw.) bei einer Skalierung (Vergrößerung oder Verkleinerung) ihr exaktes Aussehen behalten. Alle in Flash 4 erstellen Grafiken erscheinen auf dem Bildschirm nahtlos und glatt. Dank dieser Anti-Aliasing-Technik wirken die Designs immer ganz genau so, wie von ihrem Entwickler beabsichtigt. Zusätzlich unterstützt Flash Streaming-Verfahren. Damit lassen sich Animationen aller Art in WWW-Seiten einbinden - und nicht nur ZeichentrickFilmchen oder Textanimation, sondern auch Navigationselemente wie Schaltflächen und Menüs. Zur Bildanimation können dann noch die passenden Sounds hinzugefügt werden. Vektorbasierte Flash-Sites werden bereits beim Herunterladen abgespielt und machen so ein unmittelbares Feedback möglich. Flash eignet sich auch für Produktpräsentationen und ähnliche Aufgaben. Die Animationen lassen sich auch in gängige Videoformate (AVI, MPEG) umsetzen. Cookies Cookies sind kleine Informationseinheiten, die beim Besuch einer Website zunächst im Arbeitsspeicher des heimischen Computers gespeichert werden. Unter Umständen werden diese Daten nach Verlassen des Webservers in Form einer Textdatei auf die lokale Festplatte geschrieben. Ein Cookie besteht aus einem Namen, einem Wert (Zeichenkette) und einer URL. Zudem besitzt ein Cookie eine Lebensdauer. Wird der Ausflug ins Netz beendet und der Browser geschlossen, werden alle Cookies, deren Lebensdauer noch nicht abgelaufen ist, in einer Praktikum IT-Sicherheit 317 Datei gespeichert. Man spricht dann von ’persistenten Cookies’. Zukünftig läßt sich dann mühelos verfolgen, wie oft genau dieser Anwender wiederkommt und was er tut. Ursprünglich wurden von Netscape die Cookies zur Erleichterung für den Anwender entwickelt. Sie sollten persönliche Informationen enthalten, die der Anwender beim nächsten Besuch eines Online-Angebots nicht mehr eingeben mußte, z. B. für den Zugriff auf Angebote, die eine Zugangskennung erfordern. Eine andere Anwendung wäre ein ’Einkaufskorb’. Da jeder Seitenabruf einen abgeschlossenen Kommunikationsvorgang darstellt, kann der Server nicht speichern, welche Waren ein Kunde schon in seinen Korb gelegt hat. Cookies bieten hier die Möglichkeit, den Inhalt des Einkaufskorbes beim Kunden zu speichern, bis die abschließende Bestellung durch eine Bestätigung erfolgt. Normalerweise lassen sich Cookies auch keiner spezifischen Identität zuordnen, sofern der Besucher nicht woanders seine Identität preisgibt. Unternehmen können mit Hilfe von Cookies Abrufprofile erstellen, z.B. für verläßliche Abrufprofile für Reichweitenuntersuchungen. Schließlich will man wissen, welche Seiten wie oft abgerufen werden. Daraus lassen sich u.a. Schlußfolgerungen für die weitere Gestaltung einer Website ziehen. Trotz zahlreicher Ansätze gibt es bislang noch kein genormtes Verfahren zur Bildung von Abrufprofilen. Grundsätzlich besteht die Möglichkeit zur Bildung von Abrufprofilen jedoch auch ohne Cookies - durch die Auswertung von Logbüchern, z.B. mit entsprechenden Monitoring-Tools. Problematisch wird es, wenn Cookies mit langer Lebensdauer eingesetzt werden. Durch persistente Cookies ist es möglich, einen Benutzer über mehrere Sessions hinweg zu identifizieren. Dadurch erhöht sich die Informationsmenge und die Zuordnung einer Personenidentität vereinfacht sich. Das ist ganz ohne Cookies nicht möglich. Mittlerweile gibt es eine Reihe von Shareware-Tools, mit denen sich Cookies auf dem Computer identifizieren und löschen lassen. Normalerweise befindet sich im Verzeichnisbaum des Browsers irgendwo eine Datei namens ’cookies.txt’. Auf UNIX-Systemen genügt es, die Leseberechtigung der Datei wegzunehmen. Auf Windows-Rechnern kann man den Inhalt der Datei löschen und sie dann auf ’Read-Only’ setzen. Letztendlich sind Cookies aber relativ harmlos. Anbieter, die in Ihrem WWW-Angebot Cookies verwenden, sollten einfach vorher auf deren Anwendung und den Zweck hinweisen. Dann weiß der Websurfer, woran er ist und wird auch weniger Vorbehalte gegen die Cookies haben. Weitere Informationen über Cookies findet man unter: http://www.cookiecentral.com/ http://www.netscape.com/newsref/std/cookie_spec.html Browser sicher machen Die aktuellen Web-Browser, Internet Explorer und Netscape Communicator, weisen zwangsläufig Sicherheitstücken auf, die es zu schließen gilt. Microsoft und Netscape bieten Updates über das Startmenü des Rechners an; es hat also wenig Sinn, einen Browser manuell sicher machen zu wollen, ohne vorher alle Updates installiert zu haben. Deshalb lohnt es sich, die Update-Web-Seiten der Hersteller ab und Praktikum IT-Sicherheit 318 zu aufzusuchen. In den Browsern Internet-Explorer 5.0 und Netscape Communicator 4.6 läßt sich so gut wie jedes Feature abschalten, welches den Rechner und seine Daten gefährden könnte. Dann allerdings geht im Web so gut wie nichts mehr. Aus diesem Grunde werden hier die einzelnen Features genauer beleuchtet. Internet Explorer Das Zonenkonzept des Explorers Microsofts Internet-Explorer differenziert seine Sicherheitseinstellungen nach Zonen: • Die Internet-Zone enthält grundsätzlich alle Sites. • Die Lokale Intranet-Zone umfaßt dagegen alle Computer, die mit einem lokalen Netzwerk verbunden sind. Dies nennt Microsoft bereits Intranet. • In der Zone für vertrauenswürdige Sites kann man Server angeben, denen man vertraut. • In Gegensatz dazu trägt man unter Zone für eingeschränkte Sites Server ein, die bekanntermaßen unsicher sind. Wer die Einstellungen unter dem Button Stufe anpassen nicht ändern will, der sollte es bei der Sicherheitsstufe Mittel belassen. In dieser Stufe fragt der Browser nach, ehe er Controls und Programme startet, die vom Anbieter kein Zertifikat erhalten haben. Der IE führt jedoch ohne Nachfrage bereits zertifizierte ActiveX-Controls aus. Wem diese Sicherheitsebene nicht genügt, der muß die verfeinerte Anpassung der einzelnen Stufen vornehmen. Die Einstellungen gelten nicht global, sondern nur für die jeweilige Zone. Gleichzeitig nehmen Sie verschiedene Sicherheitsoptionen wieder zurück, wenn Sie die Warnhinweise zu bestimmten Inhalten mit der Checkbox Den Hinweis für diese Zone nicht mehr anzeigen abschalten. Also alle Einstellungen nochmals aufsuchen und wieder aktivieren. Das Fenster Internetoptionen/Sicherheit im Internet-Explorer ermöglicht die dedizierte Wahl sicherer oder unsicherer Web-Seiten. Um Adressen derartiger Server einzugeben, wählen Sie zuerst deren Zone aus und klicken dann auf Sites: • Vertrauenswürdige Sites: Diese Einträge erhalten im Standard die Sicherheitsstufe Sehr niedrig. Die niedrige Sicherheit läßt mehr Aktionen zu und unterdrückt Warnfenster. Microsoft empfiehlt allerdings, für die Zone für vertrauenswürdige Sites das HTTPS-Protokoll zu verwenden, um sichere Verbindungen aufbauen zu können. Praktikum IT-Sicherheit 319 • Eingeschränkte Sites: Diesen Sites weist der IE standardmäßig die Sicherheitsstufe Hoch zu. Einer solchen Adresse ordnet der Browser prinzipiell nur minimale, sichere Operationen zu. Der Zugriff auf solche Server ist eingeschränkt - viele PlugIns werden aufgrund abgeschalteter Features gar nicht funktionieren. Java und ActiveX beim IE einstellen Der Internet-Explorer 5.0 bietet eine sehr feine Abstimmung der jeweiligen Sicherheitsstufen (Zonen, sichere/unsichere Sites). Man erreicht sie durch einen Klick auf das jeweilige Icon und auf den Button Stufe anpassen. Hier lassen sich alle Einstellungen anpassen: Hoch, Mittel, Niedrig und Sehr niedrig. Mit einem Klick auf Zurücksetzen lassen sich die Standardeinstellungen von Microsoft zurückholen. Die folgende Übersicht zeigt, was die einzelnen Menüpunkte und deren Einstellungen bewirken: • ActiveX-Controls und Plug-Ins: In diesem Bereich legt man fest, wie ActiveXSteuerelemente und ActiveX-Plug-Ins geladen, ausgeführt und über Scripts gesteuert werden können. Sollte man das ActiveX-Control von einer anderen Site laden als von der, auf der das Element verwendet wird, so schaltet der IE von sich aus auf die schärferen Sicherheitseinstellungen der beiden Sites um. ActiveX-Steuerelemente ausführen, die für Scripting sicher sind bestimmt, ob das Steuerelement mit einem Skript zusammenarbeiten kann. Die Einstellungen an dieser Stelle werden jedoch von IE ignoriert, falls die Option ActiveX-Steuerelemente initialisieren und ausführen, die nicht ’sicher’ sind auf aktivieren eingestellt ist. Letztere Option umgeht praktisch jede Sicherheitseinstellung und ist daher zu vermeiden. Mit ActiveX-Steuerelemente und Plug-Ins ausführen gibt man an, ob Controls und Plug-Ins in der ausgewählten Zone agieren dürfen. Sollten Sie diese Option abschalten, dann haben auch die weiteren Einstellungen zu ActiveX keine Bedeutung mehr. Beim Download von signierten ActiveX-Steuerelementen führt die Einstellung Fragen bei nicht vertrauenswürdigen Web-Seiten zu einer Warnmeldung. Download von unsignierten ActiveX-Steuerelementen Code, der keine digitale Signatur trägt, ist aus diesem Grunde möglicherweise gefährlich. Mit der Option Aktivierean schalten Sie die Sicherheit gegenüber diesen Elementen ab. Dann wird auch ActiveX-Steuerelemente ausführen, die für Scripting sicher sind ignoriert. Mit der Option Fragen hat man die Wahl, ob man ein solches Control oder Plug-In überhaupt laden will - oder nur mit bestimmten Parametern startet. Am sichersten ist die Einstellung Deaktivieren, denn sie erzwingt die Ablehnung des fremden Codes. • Java-Optionen: Benutzerdefiniert ermöglicht es dem Anwender, einige Einstellungen vor dem Download eines Java-Applets selbst vorzunehmen. Die Einstellung Niedrige Sicherheit ist ebenfalls, zumindest im Internet gefährlich, denn sie gibt allen Applets die Möglichkeit, jede Operation ungehindert zu starten. Microsoft sieht zwar, Praktikum IT-Sicherheit 320 wie Netscape, eine Sandbox für Java-Applets vor, doch deren Grenzen schaltet man mit dieser Einstellung ab. Mit Mittlere Sicherheit erreicht man einen Start der Java-Applets ausschließlich in der Sandbox. Die Option Benutzerdefiniert bietet weitere Einstellungen. Es erscheint der Button Java-Einstellungen. Unter anderem kann man definieren, was signierte und unsignierte Applets außerhalb der Sandbox unternehmen dürfen. Damit gleichen diese Optionen den Möglichkeiten von signierten Apptets im Netscape Communicator. • Benutzerauthentifizierung: Dabei geht es um vier Optionen: – Automatisches Anmelden: nur in der Intranetzone fordert es den Benutzer auf, seine User-ID und sein Passwort außerhalb des Intranets einzugeben. Dies geschieht allerdings einmalig, das heißt, weitere Zonenwechsel erfordern keine neuen Eingaben. – Anonyme Anmeldung: schaltet die HTTP-Authentifizierung dagegen ab. – Nach Benutzername und Kennwort fragen: erkundigt sich generell nach einer User-ID und einem Kennwort; Angaben, die der Internet-Explorer dann für die gesamte Zeit der Sitzung verwendet. – Automatische Anmeldung mit aktuellem Benutzernamen und Kennwort: bewirkt auf NT-Systemen, daß der aktuelle Username sowie das Passwort für die Prüfung der Zugriffsberechtigung auf den jeweiligen Internet-Server verwendet werden. • Cookies: Die Option Cookies pro Sitzung annehmen (nicht gespeichert) erlaubt prinzipiell, daß eine Web-Site Cookies für eine Sitzung auf dem Rechner unterbringt. Darin halten entsprechende Sites beispielsweise den Inhalt virtueller Einkaufswagen fest. Arbeiten Sie mit der Einstellung Aktivieren. Mit Fragen erreichen Sie einen Dialog, der die Ablehnung jedes einzelnen Cookie ermöglicht. Deaktivieren stoppt die Cookies. Cookies annehmen, die gespeichert sind läßt eine hartnäckigere Form der Cookies zu, jene die dauerhaft auf die Platte gelangen. Über die Einstellung Aktivieren lassen Sie dauerhaft gespeicherte Dateien zu, die der IE nicht anzeigt. Für die beiden anderen Optionen gilt das gleiche wie bei den temporär gespeicherten Cookies. Netscape Communicator Die Einstellungen des Communicators 4.6 sind wesentlich einfacher in der Bedienung. Darüber hinaus arbeitet der Communicator nicht mit ActiveXSteuerelementen. Auch Netscape hat eine Signierung von JavaScripts und Java-Applets entwickelt. Diese Zertifikate zeigen nicht nur, daß die Software von einem bestimmten Hersteller stammt, sie erlauben es dem Java-Programm auch, Aktionen außerhalb der sicheren Sandbox vorzunehmen. Dadurch kann es einem solchen Programm genauso wie beim IE gelingen, Inhalte der Platte auszuspionieren oder zu sabotieren. Die grundlegenden Einstellungen des Browsers in der Version 4.6 erreichen Sie recht Praktikum IT-Sicherheit 321 einfach über Bearbeiten/Einstellungen/Erweitert. Die dortigen Sicherheits-Optionen sind: Java aktivieren, JavaScript aktivieren und JavaScript für Mail und Diskussionsforen aktivieren. Parallel zur höchsten Sicherheitsstufe im InternetExplorer könnte man diese drei Optionen abschalten. Damit führt der Communicator Java nicht einmal in E-Mails aus. Daneben findet man im Communicator 4.6 den Menüpunkt Sicherheit. Das dortige Fenster aktiviert Passwörter und die programmeigene Kryptographie, kann jedoch auch Zertifikate aktivieren, mit denen ein Java-Code außerhalb der Sandbox im Dateisystem arbeiten kann. Eine weitere Gefahr sind Plug-Ins. Sie erweitern den Communicator um beliebige Funktionen, können aber auch immensen Schaden anrichten. Sie sollten sich zuerst anschauen, welche Zusätze derzeit bereits aktiv sind: Dazu klickt man auf Hilfe/Über Plug-Ins. Hier finden Sie im oberen Bereich auch einen Link zu Netscape, der zu den von Netscape angebotenen Plug-Ins führt. Dort gibt es derzeit knapp 180 Plug-Ins aus unterschiedlichsten Kategorien. Im Communicator ist es dem Anwender gestattet, Optionen der Sandbox zu ändern dem Applet oder Script jedoch nicht. Ohne das Zonenkonzept ist man darauf angewiesen, die fraglichen Einstellungen pro Script/Applet oder je Internet-Site vorzunehmen. Im Ordner \Netscape \Users \Benutzer gibt es eine Datei namens PREFS.JS, in der man eine Reihe von Einträgen vornehmen kann. Es handelt sich um eine reine Textdatei. Man kann sie also mit einem einfachen Editor, wie dem Notepad bearbeiten, nachdem man eine Sicherheitskopie des Originals angelegt hat. Ein Beispiel soll zeigen, was dort einzutragen ist: In seiner Grundeinstellung legt der Communicator HTML-Seiten, die über eine sichere Verbindung geladen wurden, nicht in seinem Seitenspeicher ab. Der Grund: Aus dem Cache können unbefugte Leute eine solche Seite herausholen und im Klartext lesen, was die Übertragung via SSL ursprünglich verhindern sollte. Mit der folgenden Zeile schaltet man die Speicherung einer Seite im Cache wieder ein: user pref(‘‘browser.cache.disk cache ssl´ ’,true); Eine ausführliche Anleitung finden Sie unter http://www.ufaq.org/. A.6 Ein Beispiel für eine Benutzerrichtlinie Allgemeines Im Netz des Unternehmens ABC existiert an einigen Arbeitsplätzen ein zunehmender Bedarf nach Anschluß an das Internet, welches als das größte weltweite Netz dem Benutzer schnellen Zugriff auf aktuelle Informationen ermöglicht. Als wesentliche Gefährdung gelten der Verlust von Daten sowie der Verlust der Verfügbarkeit des Unternehmensnetzes. Im Gegensatz zur Datenübertragung in einem lokalen Netz kann vom Anwender nicht umfassend beurteilt werden, welche Risiken er bei der Nutzung der Daten aus dem Internet eingeht. Praktikum IT-Sicherheit 322 Die Auswahl und die Anwendung von geeigneten Sicherheitsvorkehrungen wird vom Management in Verbindung mit den zuständigen Administratoren vorgenommen. Hierzu gehören der Einsatz systemtechnischer Maßnahmen und einige organisatorische Regelungen. Neben den restlichen (insbesondere strafrechtlichen und datenschutzrechtlichen) Bestimmungen gibt diese Benutzerordnung Hinweise, die zur Wahrung der Vertraulichkeit und Integrität der im Unternehmensnetz verarbeiteten, schutzbedürftigen Informationen unbedingt einzuhalten sind. Jeder Mitarbeiter ist selbst für die Sicherheit der von ihm verarbeiteten Daten verantwortlich. Er muß dafür Sorge tragen, daß alle technischen Maßnahmen, die zur Erreichung dieser Aufgabe dienen, eingesetzt werden. Dazu gehören z.B. Zugangs- und Zugriffskontrollmechanismen, Mechanismen zum Schutz vor ungewollten Veränderungen von Daten durch ausführbare Inhalte oder Computerviren. Die Benutzer werden bei Bedarf durch die jeweiligen IT-Betreuer in die Handhabung der zur Verfügung stehenden Anwendungen eingewiesen. Durch Unterschrift bestätigt jeder Mitarbeiter, der die angebotenen Dienste nutzen will, daß die dargestellt Regelung zur Kenntnis genommen wurde und bei Benutzung der Kommunikationsdienste angewendet wird. Jede Mißachtung und Nichteinhaltung der Regelungen gefährdet nicht nur die lokalen Daten, sondern es wird dadurch die Sicherheit aller Daten im Unternehmensnetz und das Netz als Ganzes gefährdet. Beschreibung der angebotenen Dienste Von den im Internet möglichen Diensten werden über den zentralen Internetzugang nur die folgenden bereitgestellt. Die dafür notwendigen Programme werden von den jeweiligen IP-Betreuern installiert. Die meisten Informationen im Internet lassen sich über sogenannte URLs (Uniform Resource Locators) ansprechen, Adressen, die das Protokoll und den genauen Ort der Information spezifizieren. Die URL http://www.dfn.de/ bedeutet also, daß HTTP (HyperText Transfer Protocol) benutzt werden soll und die Informationen auf dem Rechner mit dem Namen www in der Domain dfn (Deutsches Forschungsnetz) in Deutschland (de) liegen. Der Großteil der Dienste belastet das Internet und den Firewall. Deshalb sollte der Umgang mit den Programmen lokal geübt werden. Hilfestellungen hierfür erhalten Sie bei Ihrem IT-Betreuer. • WWW (World Wide Web): Mit Hilfe sogenannter Browser können Daten weltweit von WWW-Servern geholt werden. Hierbei handelt es sich um Texte, Bilder, Audiodateien oder Programme. Die Daten verweisen durch Links (besonders hervorgehobener Text) auf andere Daten, so daß z.B. durch einen Mausklick die Bedeutung eines Wortes angezeigt werden kann. Diese zusätzlichen Informationen können auf völlig unabhängigen Rechnern liegen. • FTP: Das File Transfer Protocol bietet die Möglichkeit, schnell größere Datenmengen zu übertragen. Ein häufiger Anwendungsfall ist das Abholen von Daten Praktikum IT-Sicherheit 323 von frei zugänglichen FTP-Servern mit Hilfe einer Gastkennung. Hierbei müssen als Benutzername z.B. anonymous und als Passwort die eigene E-Mailadresse (z.B. mustermann@test.de) eingegeben werden. Nach erfolgreicher Authentisierung können die gewünschten FTP-Befehle eingegeben werden. Bei größeren FTP-Servern empfiehlt es sich, zunächst ein Inhaltsverzeichnis zu laden und nach dem richtigen Pfad zu suchen (meist mit dem Befehlt ls -lR möglich). • Gopher: Bei Gopher handelt es sich um einen Internetdienst, der es dem Nutzer ermöglicht, Dateien und Server im Internet ausfindig zu machen. Dies ist mit Hilfe verschiedener Gopher-Server möglich, auf denen Informationen über Adressen, Datenbestände oder andere Informarionen zu Internetrechnern abrufbereit vorliegen. Neben diesen Informationen ist es aber auch möglich, Dateien abzuholen. • E-Mail: Dieser Dienst ermöglicht den Austausch von Nachrichten zwischen zwei oder mehreren Personen und entspricht einer herkömmlichen Postkarte. Im Internet wird das Protokoll SMTP verwendet. • Internetnews: Hierbei handelt es sich um Diskussionsforen, die sich mit den unterschiedlichsten Themen beschäftigen. Interessant für die Arbeit im Unternehmen dürften vor allem wissenschaftliche Foren sein und Themen, die sich mit Sicherheit in der IT beschäftigen. Im folgenden sind einige Hinweise aufgeführt, die Verhaltensweisen bzw. Umgangsformen für die Nutzung aufzeigen: 1. Es sollte beachtet werden, daß ein Newsartikel nach sehr kurzer Zeit von sehr vielen Menschen gelesen werden kann. Es müssen also mögliche kulturelle, politische oder andere Gegebenheiten in anderen Ländern berücksichtigt werden. 2. Bei Diskussionen ist besondere Zurückhaltung geboten, da der Absender user@firma.de in jeder versandten Nachricht enthalten ist. Von Diskussionen über politisch umstrittene Themen ist daher abzusehen. 3. Für Tests gibt es eigene Newsgruppen, also keine Newsartikel zu Testzwecken an andere Newsgruppen schicken. 4. Eine Newsgruppe sollte erst einige Zeit gelesen werden, bevor ein Artikel an die Gruppe geschickt wird. 5. Ein Artikel sollte nicht an zu viele verschiedene Newsgruppen gleichzeitig geschickt werden. 6. Eine Einschränkung auf eine kleine Anzahl von Newsgruppen, die gelesen und in denen diskutiert wird, erscheint sinnvoll. 7. Es sollten keine Fragen in einer Newsgruppe gestellt werden, bevor nicht alle anderen Informationsquellen ausgeschöpft worden sind. Dies sind z.B. Listen von FAQs (Frequently Asked Questions) oder Manuals. 8. Wenn sich die anderen Teilnehmer an einer Newsgruppe von Nachricht gestört fühlen (z.B. durch eine Frage, die schon zehnmal beantwortet wurde, oder durch Praktikum IT-Sicherheit 324 einen unstritenen Standpunkt), kann es zu sogenannten ’flames’ kommen. Dies sind ironische oder sogar beleidigende Antworten auf Ihre Nachricht. Ignorieren Sie dies, Sie erzeugen sonst nur noch mehr ’flames’. Besondere Risiken bei der Nutzung der Internetdienste Aus dem Anschluß des Unternehmensnetzes an das Internet resultiert eine Vielzahl von Bedrohungen. Die wesentlichen sind: • Der Verlust von Vertraulichkeit und Integrität der übertragenen Daten. Um dieser Gefahr zu begegnen, können Daten signiert und gegebenenfalls verschlüsselt übertragen werden. • Der Verlust von Vertraulichkeit und Integrität der lokalen Daten im Unternehmensnetz. Hier bietet der Einsatz eines Firewalls ein gewisses Maß an Sicherheit. • Verlust von Vertraulichkeit und Integrität der lokalen Daten durch Schadprogramme, die in Form von aktiven Inhalten (AktiveX, Java, usw.) als Anhänge von E-Mails oder innerhalb von Webseiten geladen werden. Bei Verwendung von Plug-Ins kann schon das Betrachten einzelner Seiten im WWW zur automatischen Ausführung von Programmen führen, ohne daß diese auf ihre Ungefährlichkeit hin untersucht worden wären. Um diese Gefahr zu verringern, sollten alle Sicherheitseinstellungen bei den verwendeten Browsern und E-Mailprogrammen eingeschaltet werden. Generell obliegt dem Mitarbeiter selbst die Verantwortung für die Nutzung und Kontrolle auf mögliche Schadfunktionen der empfangenen Daten. Im Zweifelsfall sollten die Daten dem zuständigen IT-Betreuer übergeben werden. • der Verlust der Verfügbarkeit des Zugangs oder einzelner Dienste (hohe Netzlast durch absichtliches Senden vieler E-Mails, Ausfall externer Kommunikationseinrichtungen). Dieser Gefährdung kann vorbeugend nicht begegnet werden. Voraussetzungen und allgemeine Regeln für die Benutzung Vor der Feigabe und Benutzung der Dienste ist die fachliche Notwendigkeit durch den Vorgesetzen schriftlich zu bestätigen. Es werden jeweils nur die Dienste freigeschaltet, die für die Erledigung der dienstlichen Aufgaben notwendig sind. Dienste, für die keine dienstliche Notwendigkeit mehr besteht, müssen umgehend bekanntgegeben und abgeschaltet werden. Die Nutzung der beschriebenen Dienste erfolgt ausschließlich zu dienstlichen Zwecken. • Der Zugang zum Internet ist nur während der Dienstzeit möglich. • Der Zugang darf nur von Arbeitsplätzen innerhalb des Unternehmens aus benutzt werden. Praktikum IT-Sicherheit 325 Die Installation, die fachliche Betreuung beim Benutzer und die Administration des zentralen Internetzugangs erfolgt durch die zuständigen Administratoren bzw. die IT-Betreuer. Es sind nur die installierten Programme in der vorhandenen Installation einzusetzen. Der Benutzer prüft eigenverantwortlich, ob die aus den öffentlichen Netzen gewonnenen Informationen frei von Viren oder anderen Schadprogrammen sind, im Zweifel muß der IT-Betreuer Hilfestellung leisten. In den öffentlichen Netzen, speziell im Internet, zur Verfügung gestellte Software, insbesondere Shareware, Freeware oder Public Domain Software, darf grundsätzlich nur nach Genehmigung durch den zuständigen IT-Betreuer installiert werden. Grundsätzlich ist beim Austausch von Informationen kenntlich zu machen, ob es sich um die persönlich Meinung des Absenders handelt oder ob die Äußerungen die Position des Unternehmens wiederspiegeln. Dazu ist eine spezielle Signatur zu verwenden. Jeder Mitarbeiter, der den Zugang nutzen möchte, muß dafür Sorge tragen, daß auf seinem Rechner alle Maßnahmen des IT-Grundschutzhandbuches des BSI eingehalten werden, die zur Sicherung seines Anschlußes beitragen. Sicherheitsrelevante Ereignisse Der Schutz von Vertraulichkeit und Integrität der Daten im lokalen Unternehmensnetzwerk oder auf einem der angeschlossenen Rechner hat oberste Priorität. Die ständige Verfügbarkeit des Zugangs kann deshalb nicht gewährleistet werden. Bei Angriffsversuchen kann es notwendig sein, den Zugang ohne vorherige Ankündigung und ohne Rücksicht auf laufende Benutzertätigkeiten abzuschalten. Des weiteren können Wartungs- und Administrationsarbeiten auch zu einer längeren Abschaltung führen. Bei Vorfällen auf lokalen Rechnern dürfen die Anwender keine eigenen Aufklärungsversuche oder ähnliches (z.B. Beseitigung von Computerviren) unternehmen, da dadurch wertvolle Spuren verwischt werden können. Vielmehr muß umgehend der zuständige IT-Betreuer benachrichtigt werden. Sanktionen Benutzer, die Sicherheitsverstöße begehen, ohne ersichtlichen Grund hohe Kosten verursachen, der Firma durch ihre Aktionen schaden oder andere Verstöße gegen diese Benutzerordnung begehen, können vom Administrator gesperrt werden. Protokollierung Es werden folgende Daten, die für die Benutzerverwaltung, Administration, Erkennung und Abwehr von mißbräuchlicher Nutzung oder von Angriffen notwendig sind, protokolliert und ausgewertet: Praktikum IT-Sicherheit 326 • IP-Adressen der Rechner • aufgerufene URLs • angesprochene E-Mailserver und Empfängeradressen • Datum und Uhrzeit der Aktionen Die Daten werden elektronisch gespeichert und aus administrativen Gründen vom Revisor sowie aus sicherheitstechnischen Gründen vom Administrator kontrolliert. Stichprobenartige Kontrollen durch das Management sind ebenfalls vorgesehen. Die Daten werden maximal drei Monate gespeichert. Die anfallenden Daten werden nicht zu Verhaltens- und/oder Leistungskontrollen verwendet.