Sicherheit in Netzen

Prof. Jürgen Plate
Dipl.-Ing. Jörg Holzmann

2 Gefahren im Netz

2.1 Computerviren

Der Begriff des Computervirus wurde im Jahr 1984 durch den Programmierer Fred Cohen bei DEC geprägt, der als erster eine Abhandlung zu seiner prinzipiellen Funktionsweise veröffentlichte: "We define a computer-'virus' as a program that can 'infect' other programs by modifying them to include a possibly evolved copy of itself. With the infectionproperty, a virus can spread throughout a computer system or network using the authorizations of every user using it to infect their programs. Every program that gets infected may also act as a virus and thus the infection grows."

Diese Definition entspricht der Verhaltensweise eines sogenannten "Link-Virus", das auf ausführbaren Programmen arbeitet. Im Laufe der Evolution der Viren stellte sich jedoch heraus, das eine virenartige Verbreitung von Information auch auf vielerlei anderen Wegen möglich ist. Man geht heute von ca. 60000 verschiedenen Virenarten aus, die sich im Umlauf befinden.

Virus-Designer entwickeln laufend neue Techniken und zugleich zirkulieren Entwicklungswerkzeuge, die es Personen ohne Programmierkenntnisse ermöglicht, Mutationen (strains) zu erzeugen. Viren beschränken sich dabei nicht mehr auf die "Infektion" ausführbarer Programme, sondern befallen alle Dateien, die in irgendeiner Weise ausführbare Teile enthalten, also auch Word-Dokumente, Excel-Tabellen, E-Mails, Webseiten, usw. Es ist deshalb notwendig, die Virengefahr ernst zu nehmen. Sieht man dies im Zusammenhang mit der Möglichkeit, eigene Datenträger mitzubringen und sie im LAN des Unternehmens zu verwenden, ist dies ein weiterer Grund zur Aufmerksamkeit. Es ist deshalb wichtig, eine Antivirus-Politik zu formulieren. Die Antivirus-Politik des LAN hat primär das Ziel, eine Vireninfektion zu verhindern, Viren vor dem Ausbruch nachzuweisen sowie Bekämpfung und Wiederherstellung zu erleichtern, wenn das Unglück schon geschehen ist. Sie muß aber vor allem die Benutzer für die Gefahr sensibilisieren, so daß sie beispielsweise nicht auf jedes E-Mail-Attachment klicken (Man isst ja auch nicht jeden Pilz, den man im Wald findet.).

Bootsektor-Viren

Im ersten Sektor eines Datenträgers steht normalerweise ein Verweis, wo die Laderoutine für das Betriebssystem zu finden ist. Ein Bootsektor-Virus nistet sich in diesen Sektor ein, kopiert den ursprünglichen Bootsektor an eine andere Stelle. Bei einem Bootvorgang wird nun zunächst das Virus aktiviert. Anschließend wird der kopierte Bootsektor ausgeführt, der dann das Betriebssystem lädt. Auf diese Weise wird das Virus bei jedem Systemstart automatisch ausgeführt. Es bleibt resident im Speicher und infiziert jeden weiteren Bootsektor, den es finden kann. Zur Verbreitung ist es auf bootfähige Medien wie Disketten angewiesen. Bootsektor-Viren spielen daher heutzutage eine untergeordnete Rolle.

Link-Viren

Link-Viren verbreiten sich durch infizierte auführbare Programme, in die sich das Virus eingenistet hat. Beim Infizieren der Datei hängt sich das Virus meist hinter den ursprünglichen Programmcode an und schreibt vor diesen einen Sprungbefehl auf sich selbst. Beim Aufruf des modifizierten Programms wird also zunächst der Sprungbefehl auf den Viruscode vollzogen und dieser Code ausgeführt. Dieser kann nun seine Verbreitungs- und Schadensfunktion ausführen und startet nach deren Beendigung das eigentliche Wirtsprogramm.

Speicherresidente Viren

Speicherresidente Viren bleiben nach der Aktivierung als Prozeß im Speicher aktiv. Sie können sich damit auch nach Beendigung des infizierten Programms ausbreiten oder Schaden anrichten. Diese Eingenschaft wird meist mit den andern Vireneigenschaften kombiniert (z.B. bei Bootsektor-Viren, Tarnkappen-Viren).

Tarnkappen-Viren (Stealth-Viren)

Sie verbergen sich im Arbeitsspeicher, im Master-Boot-Record oder im Bootsektor. Sie benutzen unter anderem falsche Meldungen an Antivirusprogramme, um einem Viruscheck zu entgehen. Wenn eine infizierte Datei zur Bearbeitung geöffnet wird, wird sie vom speicherresidenten Tarnkappen-Virus desinfiziert und dann zur Bearbeitung freigegeben. Wird die bearbeitete Datei wieder geschlossen, infiziert sie der speicherresidente Teil wieder. Das Virus verschleiert natürlich auch sein Vorhandensein im Arbeitsspeicher des Systems.

Polymorphe Viren

Polymorphe Viren verhalten sich wie Link-Viren. Sie verschlüsseln und verändern aber mit jeder Infektion ihren eigenen Programmcode. Man kann diese Viren daher nur sehr schwer über eine Signatur erkennen. Dieser Typ gehört zur neueren Generation. Virusdesigner benutzen verschiedene "mutation engines" zum Generieren solcher Viren.

Makro-Viren

Makro-Viren infizieren und verbreiten sich nicht durch ausführbare Programme, sondern durch Datendateien wie Dokumente und Tabellen. Sie greifen dabei auf die umfangreichen Makro-Sprachen von Programmen wie Word oder Excel zurück. Diese Makro-Sprachen dienen normalerweise zur Automatisierung von Arbeitsabläufen oder zur Implementierung neuer Funktionen. Eines der ersten Viren dieses Typs war "Concept", das Word-Dokumente infizierte. Concept nutzt zur Aktivierung das Makro "AutoOpen", das beim Öffnen eines Dokuments ausgeführt wird und das Virus selbst startet. Danach infizierte es die globale Dokumentvorlage "NORMAL.DOT" und installierte weitere Makros wie "FileSaveAs". Das Infizieren der Dokumentvorlage aktivierte das Virus bei jedem Aufruf von Word, da immer zuerst die Makros der Dokumentvorlage ausgeführt werden. Das Makro "FileSaveAs" sogte für die Verbreitung, es kopierte das Virus beim Abspeichern eines Dokuments mit mit diesem Dokument.
Das Word-Virus "Melissa", das sich zusätzlich durch Outlook-Schnittstelle selbst per E-Mail verschicken kann ist nur ein Beispiel der Möglichkeiten, die man bei der Virenentwicklung ausnutzen kann.

Gegenmaßnahmen

Man kann mit verschiedenen Programmen ein System auf Virenbefall prüfen, Viren entfernen oder eine Infektion verhindern.

Ein zweckmäßiger Aufbau des lokalen Netzes ist eine Voraussetzung für einen hohen Grad an Sicherheit vor Virenangriffen. Eine konsequente Trennung von Daten- und ausführbaren Dateien hat große Bedeutung für die Sicherung vor Vireninfektionen und -ausbrüchen. Nur der Systemverwalter darf Schreibberechtigungen für Datenbereiche mit ausführbaren Dateien haben. Der Systemverwalter ist damit verantwortlich, die Software zu kontrollieren, ehe sie im LAN installiert wird. Datenbereiche mit Dateien, zu denen viele Benutzer Schreibberechti-gungen haben, müssen von ausführbaren Dateien freigehalten werden. Das hilft zwar nicht gegen Makro-Viren in Datendateien, hält jedoch viele Viren fern. Der zweite Vorteil einer solchen Trennung ist die schnelle Wiederherstellung eines Client- oder Serverrechners. Da sich die Programmbereiche nicht ändern (sollten), kann ein solcher Bereich schnell durch Einspielen eines Backups oder, falls der älteste Backup auch schon verseucht sein sollte, durch Neuinstallation restauriert werden.
Alle Netzlaufwerke werden regelmäßig auf Viren gescannt (mindestens wöchentlich). Lokale Festplatten werden täglich gescannt. Die Benutzer sind verpflichtet, Disketten zu scannen, ehe sie in ihren PC eingelesen werden. Alle Benutzer werden in den Gebrauch von Antiviruspro-grammen eingeführt, und es wird festgelegt, wann virusähnliche Probleme dem System-verwalter überlassen werden. Es gilt der Grundsatz "lieber ein Virusverdacht zu viel als einer zu wenig", damit die Benutzer ermutigt werden, bei einem Versacht sofirt Alarm zu schlagen.
Der Rechner des einzelnen Benutzers stellt einen Zugangsweg zum LAN dar und ist auch selbst verletzbar. Ein wichtiger Teil der vorbeugenden Arbeit ist die Benutzerdisziplin, die das Risiko von Vireninfektionen verringert. Programme unbekannter Herkunft und unbekannter Wirkung dürfen nicht ohne ein Virusscannen ausgeführt werden. Unbekannte Disketten müssen mit einem Antivirusprogramm kontrolliert werden, ehe sie ausgeführt oder auf Festplatte kopiert werden. Checken Sie regelmäßig Festplatten mit aktualisierten Antivirusprogrammen, und verwenden Sie ein residentes Antivirusprogramm, das den Rechner beim Start checkt.
Trotz ausgedehnter Sicherheitsmaßnahmen können Arbeitsstationen oder das lokale Netz von Viren angegriffen werden. In dem Maî wie LAN-Benutzer und -Verantwortliche sicherheitsbewuîter werden, werden Viren fortschrittlicher. Identifizieren Sie Ursprung und Art der Infektion. Wenn der Ursprung nicht unmittelbar festgestellt werden kann, ist es ausreichend, die Art der Infektion festzustellen. Suchen Sie den Schaden im Netz und identifizieren sie die betroffenen Rechner. Isolieren Sie eventuelle Schäden und soweit möglich die Quelle der Infektion. Entfernen Sie sofort infizierte Rechner vom Netz. Nehmen Sie kein Logoff vor, sondern ziehen Sie das Netzwerkkabel ab. Ein reguläres Logoff kann zur weiteren Verbreitung beitragen. Nur 100% desinfizierte PCs werden an das Netz angeschlossen. Wenn die Infektion nicht isoliert werden kann, ist es notwendig, das ganze Netz herunterzufahren, und die Festplatten in den Servern und Arbeitsstationen mit zwei oder mehr verschiedenen Virusscannern zu scannen. Nachdem die feindlichen Programme entfernt worden sind, wird ein Restore der verlorenen oder beschädigten Daten und auch der Boot- und Master-Boot-Sektoren vorgenommen.

Umgang mit Viren-Fehlalarmen - "HOAX"

Virenwarnungen, die die gesamte DV-Branche in Aufruhr versetzen und sich danach in Wohlgefallen auflösen, sind bereits seit einigen Jahren bekannt. Die vergeudete Arbeitszeit im Einzelfall kann mehr Schaden anrichten als ein real existierendes Virus. Im Fachjargon werden solche Fehlwarnungen als HOAX bezeichnet. Ein Hoax warnt vor großen Schäden bis hin zur totalen Rechnerzerstörung, und bittet darum, diese Warnung an alle Bekannten weiterzugeben Ein Hoax besitzt keinen internen Verbreitungsmechanismus. Stattdessen werden menschliche Schwächen für die Verbreitung ausgenutzt. Über den Lotus-Notes-Verbund oder anderen E-Mail-Anbindungen werden die vermeintlichen Virenwarnungen verteilt. die Wurzel des Hoaxproblems liegt darin, daß sich Warnmeldungen häufig schneller als die Viren verbreiten. Zudem ist der Einsatz eines Hoax wesentlich effektiver ist als die Programmierung eines realen Virus, da der Hoax von Virensuchprogrammen nicht erkannt wird und die Gutgläubigkeit und Sorglosigkeit der Nutzer zur Weiterverbreitung nutzt. Zur Herstellung wird statt tiefergehender Systemkenntnisse nur ein quasitechnisches Wissen benötigt. Der Kreis der Personen, die einen Hoax erzeugen können, ist damit wesentlich größer als der Kreis potentieller Virenprogrammierer.

Mit der Verteilung des Hoax beginnt eine Kettenreaktion, die häufig durch zwei Entwicklungen gekennzeichnet ist. Gutmeinende Nutzer fügen eigene Warnungen hinzu, andere nicht so gutmeinende Nutzer erweitern die beschriebene Gefahr noch durch selbst erdachte Szenarien. Somit unterliegen die Benachrichtigungen, die einen Hoax charakterisieren Änderungen. Daher kann ein Hoax in verschiedenen Variationen existieren und so mehr als einmal durch ein Netz rollen. So gab es zum Beispiel im Jahr 1996 die Warnung vor einem angeblichen "Penal"-Virus. Für einen aufmerksamen Beobachter der Szene war klar, daß diese Warnung identisch war mit einer früheren, die vor dem nicht existenten "Penpal"-Virus warnte. Nachdem also auf irgendeine Art und Weise das "p" entfernt wurde, suchte sich auch diese Hoax-Variation ihren Weg durch das Internet. Oft sind auch genaue Anweisungen in den Warnungen enthalten, wie man das Virusprogramm beseitigen kann, beispielsweise durch Löschen einer bestimmten Daten. Der gutgläubige Benutzer, der dieser Anweisung folgt, schädigt erst dadurch sein System und macht es gegebenenfalls unbenutzbar.

Wenn man die Hoax-Nachrichten der letzten Jahre betrachtet, lassen sich gemeinsame Faktoren erkennen. Normalerweise besteht ein Hoax aus einer Kombination der folgenden Faktoren:

Wenn eine Nachricht als Hoax erkannt wird, sollten folgende Schritte unternommen werden:

2.2 Würmer

Computer-Würmer sind Programme, die sich selbst über ein Rechnernetzwerk verbreiten könnn. Es gibt sie in verschiedenen Ausprägungen, beispielsweise solche, die auf Netzwerk-Prozessen basieren oder Würmer, die sich selbst per E-Mail verschicken können (I-love-you, Goner, Sircam oder Nimda). Es lassen sich grob zwei Gruppen unterscheiden:

Wer wissen will, wie intelligent E-Mail-Viren heute sind, der kann sich die vier Artikel bei Heise Security durchlesen. Sie sind nicht nur echt witzig geschrieben, sondern auch echt interessant:

http://www.heise.de/security/artikel/59611

Gegenmaßnahmen

Würmer nutzen normalerweise mehrere bekannte Schwachstellen in Kombination aus. Sobald Schwachstellen bekannt sind und auf einschlägigen Mailinglisten oder Websites der bekannten CERTs auftauchen, muss umgehend gehandelt und diese beseitigt werden. Unnötige Systemdienste, die allgemein wenig benutzt werden und daher tendenziell mehr Fehler enthalten können, sollte man deaktivieren. Intrusion-Detection-Systeme (IDS) können gegen verdächtiges Verhalten von Prozeß-Würmern helfen. Gerade gegen E-Mail Würmer gibt es mehrere wirksame Mittel. Zum einen kann man, sofern man darauf nicht angewiesen ist, das jeweilige Makro-System, auf dem der Wurm basiert deaktivieren. Ein Filtersystem, welches eingehende E-Mail auf verdächtige Anhänge überprüft und natürlich ständig auf dem neuesten Stand gehalten werden muß, kann das Unheil schon im Vorfeld verhindern. Oft hilft auch gesunder Menschenverstand. Wenn man zum Beispiel von einem bekannten E-Mail Kontakt plötzlich in einer fremden Sprache und mit seltsamem Betreff angeschrieben wird, ist es sicher nicht verkehrt, die E-Mail mit einer gewissen Vorsicht handzuhaben.

Die Problematik von Würmern wird nochmals in Kapitel 2 behandelt und auf Gefahren, die speziell die Anwenderseite betreffen, wird in Kapitel 7 eingegangen.

2.3 Hacker und Cracker

Wie kann jemand in den Rechner eindringen? Um in einen fremden Rechner einzudringen gibt es etliche Möglichkeiten. Einige davon sollen in den folgenden Abschnitten zur Sprache kommen. Wie schon erwähnt, kommen Eindringlinge von innen wie von außen. Die Gefahren für offene EDV-Systeme können mit einem Wort, 'hacking' und 'Hacker' ausgedrückt werden.

Hacker sind vor allem durch die technische und intellektuelle Herausforderung motiviert. Es ist sehr selten die Rede von rationell kriminellem Verhalten, da Risiko und Anforderungen an Ressourcen (Zeit, Ausrüstung, Anzahl der Teilnehmer) den Umfang der greifbaren Ausbeute übersteigt. In amerikanischer Terminologie wird mit folgenden Hackerprofilen gearbeitet, die ein besseres Bild davon geben, welche Motive hinter der Hackeraktivität liegen.

Gefährliche Hacks sind durch folgende Schritte gekennzeichnet:

  1. Erlangung des Zugangs zum System
  2. Etablieren eines Supervisor- oder Superuser-Status
  3. Einrichtung einer Hintertür zum System (trapdoor)
  4. Löschen aller Spuren
Das Ziel ist ganz einfach, Zugang zum System und genügend Kontrolle zu erlangen, um eine Hintertür einrichten zu können. Die Hintertür soll später einen ungehinderten Zugang ermöglichen, um das betreffende System als Sprungbrett in andere zu benutzen. Je effektiver die Spuren gelöscht werden, desto schwieriger ist es, den Hack aufzudecken und passende Gegenmaßnahmen zu ergreifen.

2.4 Schadensformen im Netz

Allgemeine Schädigung durch Eindringlinge

Aber auch ohne in den Server einzudringen, kann jemand Ihnen im Internet Schäden zufügen.

Allgemeine Schädigung im Internet

2.5 Paßwort raten, 'social engineering'

Die größte Sicherheitslücke ist nach wie vor der Benutzer selbst. Paßwörter werden aufgeschrieben (klassisches Beispiel: der Zettel, der unter der Tastatur klebt) oder sie sind aus dem persönlichen Umfeld entnommen (Vornamen von Frau, Mann, Kindern, Hund, die eigene Telefonnummer, die Automarke usw.). Selbst das Paßwort 'geheim' wird immer noch angetroffen. Auch 'Joshua' aus dem Film 'War Games' war eine Zeit sehr beliebt. Übertroffen wird das nur noch von '1234567' oder 'qwertz'. Wer sich ein kompliziertes Paßwort nicht merken kann, sollte es mit den Anfangsbuchstaben eines Merksatzes versuchen. So ergibt z. B. 'Fest gemauert in der Erden steht die Form aus Lehm gebrannt' (Schiller: Lied der Glocke) das Paßwort 'FgidEsdFaLg'. Es gibt übrigens Paßwort-Knackprogramme, die einfach und brutal das Rechtschreibwörterbuch, Namenslisten usw. verwenden, um Paßwörter durch Probieren herauszufinden.

Es gibt immer noch Benutzer, die ihr Paßwort freiwillig preisgeben. Grundsätzlich gilt, daß weder der Systemadministrator noch irgend jemand sonst in der Firma oder beim Provider jemals Ihr Paßwort wissen müssen. Also cool bleiben, selbst wenn der Anrufer den Untergang aller Daten prophezeit, wenn er nicht sofort das Passwort erfährt.

Es geht aber aus in der Gegenrichtung. Der Systemverwalter bekommt am Montag im Morgengrauen einen Anruf: "Hier ist Direktor Rübenkürzer. Ich komme nicht mehr ins System. Sie müsssen sofort mein Passwort auf 'Whiskas' setzen!". Der Sysadmin stottert "Jawoll!" und tut wie befohlen. Drei Wochen später kommt Rübenkürzer aus dem Urlaub und findet unter seinen Account eine Pornobildersammlung vor.

2.6 Sicherheitslücken des Betriebssystems

Bis auf wenige Ausnahmen (z. B. FTP-Server, WWW-Server) sind bei PCs unter DOS, Windows 3.1x oder OS/2 keine Maßnahmen zur Sicherheit notwendig, da an PCs in der Regel keine Anwendungen gestartet sind, die Kontaktaufnahme von außen akzeptieren. Denn nur dann hat ein Eindringling eine Angriffsmöglichkeit.
Problematischer sind hier schon Unix, Novell Netware, Windows 95, 98, ME oder Windows NT, da hier prinzipiell Zugriff von außen möglich ist, wenn eigene Netzdienste angeboten werden, z. B. die Freigabe der Platte über NFS oder auch Fax-, Modem- oder Druckerserverprogramme. Bei der Wahl eines Serverbetriebssystems sollten daher Sicherheitsaspekte im Vordergrund stehen und nicht die (scheinbar) leichte Bedienbarkeit. So haben beispielsweise Viren bei DOS- oder Windowsrechnern leichtes Spiel, weil sie alle Programme auf der Platte befallen können. Bei Systemen mit Zugriffsrechten für Dateien (Unix, Novell Netware, Windows NT und 2000 etc.) können sie meist nur die Programme eines Benutzers verseuchen. Je nach System gibt es unterschiedliche Methoden ein System zu manipulieren: Auf einige der obengenannten Typen wird im Kapitel 7 noch näher eingegangen.

Neben diesen "von außen" kommenden Gefahren gibt es auch noch Probleme, die durch das Betriebssystem selbst oder durch seine Administration hervorgerufen werden. Dazu einige Beispiele:

2.7 Angriffe über das Netz

TCP/IP wurde vor etwa 20 Jahren entwickelt. Es ist ein ungesichertes Netzwerkprotokoll und wurde ursprünglich zu akademischen Zwecken entworfen. Sicherheitsfragen waren kaum Bestandteil der Entwurfskriterien. Fehlertoleranzeigenschaften kollidieren mit Sicherheitsanforderungen.
Heute haben wir das Internet als weltweiter Rechnerverbund mit Millionen von Benutzern. Häufig sind alle Rechner einer Organisation an das Netz angeschlossen, auch die mit sensiblen Daten. Aus dem Netz gewonnene Informationen sind Grundlage für Unternehmensentscheidungen und Firmen pflegen Geschäftsbeziehungen via Internet.
Für Benutzer und Administratoren von Netzwerken oder Einzelrechnern mit Internetzugang wird es immer wichtiger, sich mit der Sicherheit ihrer Rechner zu befassen. Die hier beschriebenen Sicherheitslücken und Angriffsmethoden bilden die Grundlage der meisten Attacken in heutigen TCP/IP-Netzwerken. Oft werden bei Angriffen mehrere der beschriebenen Methoden kombiniert.

Typische Angriffe nach Statistiken des CERT

JahrAngriffe
1988
  • Passwörter
  • bekannte Sicherheitslücken
1993
  • Protokollschwächen (rexd, tftpd)
  • Analyse von Quelldateien
  • ICMP-Angriffe
  • AnonFTP-Mißbrauch
1994
  • Internet-Sniffer
  • sendmail-Angriffe
  • Trojaner für Systemprogramme
  • groß angelegte Scans (z.B. Portnummern)
  • NFS-Angriffe
1995
  • IP-Spoofing für r-Kommandos
  • Angriffe auf WWW-Server (httpd)
1996
  • Denial-Of-Service-Angriffe (ECHO)
  • Lücken in Java und in Webbrowsers
  • DNS-Manipulationen
  • Analyse von SUID-Programmen
danach
  • TCP-Hijacking
  • Denial-Of-Service als Waffe
  • Internet-Commerce-Angriffe

Überblick über die Schichten der TCP/IP-Netzwerkprotokolle:

Application Layer
Schichten 5 - 7

WWW, E-Mail, etc.

Transport Layer
Schicht 4

TCP, UDP

Network Layer
Schicht 3

IP

Data Link Layer
Schichten 1 - 2

LLC, Hardwareinterface


Diese Schichten entsprechen in etwa dem OSI-Schichtenmodell, wobei hier allerdings immer mehrere Schichten des OSI-Modells zu einer Schicht zusammengefaßt wurden. Im Folgenden sollen nun die Sicherheitslücken in den einzelnen Schichten des Protokolls genauer betrachtet und die darauf basierenden Angriffsstrategien untersucht werden.

Security im Data Link und Network Layer

Sniffing

Wie schon weiter oben gezeigt, lassen sich Daten abhören. Im lokalen Netz gelangen die Datenpakete an alle Rechner. Normalerweise werden Daten, die nicht an einen bestimmmten Rechner adressiert sind, von diesem verworfen. Genau an dieser Stelle setzen die Sniffing-Attacken an. Statt die fremden Daten zu verwerfen, kann man diese Daten speichern und eventuell weiter verwenden. So ist es z.B. möglich durch einen entsprechenden Filter eine komplette Verbindung zu protokollieren. Auf diese Weise kann ein Angreifer auch an Passwörter gelangen, wenn diese unverschlüsselt über das Netzwerk übertragen werden.
Das gilt natürlich auch für IP-Verbindungen. Bei vielen Betriebssystemen gehören entsprechende Programme zum Lieferumfang, da sie für den Test und die Fehlersuche in Netzen notwendig sind (z. B. tcpdump). Da auch die Paßworte beim Telnet- oder FTP-Login im Klartext weitergegeben werden, besteht die Möglichkeit, daß jemand an diese Information kommt.
Zum "Erschnuppern" der Daten dienen Programme, die man "Sniffer" nennt. Eigenschaften: Sie dienen den "bad guys" zum Bekannte Vertreter sind "SniffIt", "Etherload", "Netman", "LinkView" oder "LANWatch". Es folgen nun Beispiele für den Einsatz von Sniffern:

Abhören von Passwörtern
Im Beispiel loggt sich ein Benutzer mit dem Namen testuser und dem Paßwort geheim ein.

$ ./sniffit -p 23 -A . -t lx1-lbs 

........... ..!.."..'.....#..%....P......$.. .9600,9600....#.lx2-lbs:0.0....'..
PRINTER.lp.DISPLAY.lx2-lbs:0.0......XTERM........testuser..geheim..
Auch in diesem Fall verschafft Verschlüsselung Abhilfe. Die gleiche Session, aber mit Einsatz der Secure Shell:
SSH-1.5-1.2.26.....................K2...i....i#..B......;....?.H..v.{v5K.^....{
.t5.4.I..]....6VH..uN.p..E.u.....j.U&.\..N~...%kI.,....q..s..V.....(m...2.u...!
rL/......R.d......'.....1"#.$[. ..6.W.........g.v.j..e%.1..2..v.....#.....*..r.
......0xM....1..q..O.....pS@.._=.......$...ZJ...N&x..[..........L.........k...v
4.......v...}...fXI...Np7.....=$...%.s...iW".....$ID..g..i.

Mitlesen der Mail
Im folgenden Beispiel wird der komplette Mailverkehr eines Rechners (Port 25) namens lx1-lbs abgehört. Das ist von jedem beliebigen Rechner möglich, an dem der Datenstrom vorbeiläuft.

$ ./sniffit -p25 -t lx1-lbs

EHLO lx2-lbs.e-technik.fh-muenchen.de
MAIL From:<holzmann@lx3-lbs.e-technik.fh-muenchen.de> SIZE=299
RCPT To:<testuser@lx1-lbs.e-technik.fh-muenchen.de>
DATA
Received: from localhost (localhost [[UNIX: localhost]])
	by lx2-lbs.e-technik.fh-muenchen.de (8.9.3/8.9.3) id OAA01804
	for testuser@lx1-lbs.e-technik.fh-muenchen.de; Fri, 8 Oct 1999 14:11:12 +0200
From: Joerg Holzmann <holzmann@e-technik.fh-muenchen.de>
To: testuser@lx1-lbs.e-technik.fh-muenchen.de
Subject: Testmail
Date: Fri, 8 Oct 1999 14:07:04 +0200
X-Mailer: KMail [version 1.0.21]
Content-Type: text/plain
MIME-Version: 1.0
Message-Id: <99100814111100.01802@lx2-lbs>
Content-Transfer-Encoding: 8bit

Hallo lieber Testuser,

Vielen Dank fuer Ihren Beitrag zu unserem Sicherheitsforum. 
Wir werden Ihren Artikel in der neuen Ausgabe der FHM-Hackerpost
veroeffentlichen.
Abhilfe schaffen hier beispielsweise kryptographische Verfahren und Methoden.

ARP-Spoofing

Das ARP-Spoofing setzt auf dem ARP-Protokoll (ARP=Address-Resolution-Protocoll) auf und nutzt dabei aus, daß beim dynamischen Routing die Umsetzungstabellen von IP-Adressen auf die entsprechenden Hardwareadressen in bestimmten Abständen aktualisiert werden. Dynamische ARP Routen werden regelmäßig (nach einem bestimmten Zeitintervall) verworfen und der Rechner fordert von seinem Kommunikationspartner eine Bestätigung seiner IP- und Hardwareadresse an. An genau dieser Stelle setzt nun ein Angreifer an. In der Regel wird nun der Rechner, dessen Platz der Angreifer einnehmen will ausgeschaltet (dies kann z. B. durch einen der später beschriebenen "Denial-of-Service" Angriff geschehen), so daß er keine Anfragen mehr beantworten kann. Anschließend wird auf einen ARP request des "Opfers" gewartet. Da der eigentlich angesprochene Rechner keine Antwort senden kann, ist es dem Angreifer nun möglich einen gefälschten ARP reply an das "Opfer" zu schicken. Dieser trägt die falsche Adresse in seine ARP-Queue ein und verschickt alle folgenden Nachrichten statt an den eigentlichen Zielrechner an den Rechner des Angreifers.

Security im Transport- und Network-Layer

ICMP-Tunneling

Alle ICMP-Messages besitzen ein Datenfeld, dessen Bedeutung nicht festgelegt ist und das im Normalfall nicht benutzt wird. Damit bietet sich die Möglichkeit Informationen über ICMP-Messages zu verschicken, falls kein anderer Dienst dafür zur Verfügung steht. Es ist damit also möglich, Nachrichten aus einem Netzwerk, das z.B. hinter einem Firewall steht, "herauszuschmuggeln". Eine besondere Gefahr stellt das ICMP-Tunneling dar, weil ICMP oft als harmlos eingestuft wird und Firewalls die Pakete ungefiltert passieren lassen.

ICMP-Steuernachrichten lassen sich auch noch für andere Angriffe nutzen:

IP-Spoofing

Beim IP Spoofing wird die ungenügende Überprüfung des Kommunikationspartners unter TCP/IP ausgenutzt, um mit gefälschten IP-Adressen einem Rechner Informationen unterzuschieben. Oft werden diese Attacken benutzt, um falsche Routing-Informationen an ein System weiterzugeben. Aber auch bei einzelnen Verbindungen kann das Fälschen von IP-Adressen Anwendung finden, wie dies im nächsten Abschnitt beim Hijacking der Fall ist. Es sollen nun einige Möglichkeiten besprochen werden, die sich durch das IP Spoofing ergeben. Eine komplette Aufführung ist an dieser Stelle nicht möglich, da diese Gruppe von Security Attacks sehr umfangreich ist.

In einem LAN kommuniziert Arbeitsplatz A mit Arbeitsplatz B. Ein Angreifer (E) verwendet die Adresse von A und schleust Pakete ins LAN. Damit übernimmt er die Kommunikation E zu B. Das Problem sind die fehlende Authentizität von IP-Paketen und die Einschleusung zusätzlicher Pakete von außen durch die Fälschung von IP-Sendeadressen.

Route-Spoofing

Dabei werden falsche Routing-Informationen an Router weitergegeben, um eine Umleitung von Verbindungen auf den Agriffsrechner zu erreichen. Es existieren mehrere Ansatzmöglichkeiten, um eine solche Attacke durchzuführen. Im folgenden werden zwei dieser Möglichkeiten genauer beschrieben.

DNS Spoofing

Die im Internet übliche Umsetzung von Hostnamen in IP-Adressen über das Domain Name System (DNS) bietet eine weitere Möglichkeit falsche IP-Adressen an einen Rechner weiterzugeben. Damit ist beispielsweise folgende Attacke möglich:

Die falsche Nachricht, daß www.microsoft.com die Adresse 129.187.244.3 hat, wird vom Opfer-DNS ohne jegliche Prüfung übernommen. Es bieten sich weitere Möglichkeiten an:

Diese Art des Angriffs wird zum Beispiel verwendet, um Hompages zu "entführen". Dabei wird meist nur ein Eintrag im DNS "gefälscht", wodurch alle Benutzer, die den Hostnamen statt dessen IP-Adresse verwenden, auf einen falschen Server geführt werden.

Hijacking

Hijacking stellt eine Kombination der Sniffing- und Spoofing-Angriffe dar. Dabei werden bestehende Verbindungen zwischen zwei Rechnern "entführt", d. h. der Angreifer übernimmt die Stelle eines der Kommunikationspartner. Da bei einer solchen Übernahme keine Authentifizierung des Benutzers mehr durchgeführt wird, kann ein Angreifer großen Schaden anrichten.

TCP-Hijacking

Bei der Kommunikation vom Arbeitsplatz (A) mit dem Server (S) hört der Angreifer (E) mit, schaltet sich mit der Adresse von A ein und übernimmt die Sitzung von A. Das Problem ist die fehlende Authentizität und Integrität der IP-Pakete.
Beispiel: TELNET-Sitzung

Denial of Service-Attacks

Diese Gruppe von Angriffsstrategien dient dem Lahmlegen eines Rechners oder einzelner Funktionen ("Denial of Service": "Verweigerung des Dienstes"). Dabei wird in der Regel ausgenutzt, daß die Resourcen (Speicher, Rechenzeit, interne Tabellen, etc.) auf einem Rechner nur in begrenztem Maße vorhanden sind. Ein Denial-of-Service-Angriff versucht, auf dem angegriffenen Rechner eine der Resourcen zu überlasten, so daß dieser seinen regulären Aufgaben nicht mehr nachkommen und seine Clients nicht mehr bedienen kann. Denial-of-Service Attacks stellen eine wichtige Gruppe von Angriffen dar, da sie oft als Vorstufe zu einem wesentlich weiterreichenden Angriff dienen. Für Spoofing-basierten Angriffe kann es unter Umständen von Nutzen sein, wenn ein bestimmter Rechner im Netz ausgefallen ist. Eines haben fast alle Attacken gemein: Sie nutzen die Löcher von fehlerhaft implementierten TCP/IP-Software und schlecht administrierten Netzwerken aus.

Hacker-Angriffe über Ports

Der erste Schritt eines Hackers, Portscans, verraten, welche Dienste auf einem Rechner aktiv sind und geben so Hinweise auf Angriffspunkte. Alle TCP/IP-Dienste benutzen Ports. Verbindungen werden stets zwischen einem Port auf dem Quellrechner und einem Port auf dem Zielrechner hergestellt. Der Ziel-Port identifiziert gleichzeitig die Art des Dienstes. Als "wellknown" Ports sind beispielsweise 80 für WWW, 21 für FTP und 23 für Telnet festgelegt. Portscanner durchsuchen einen oder mehrere Rechner nach erreichbaren Diensten. Je nach Zweck des Portscans werden sowohl bekannte als auch unbekannte Ports untersucht. Die Erkennung offener Ports bedeutet auch die Erkennung laufender Services. Weiterhin kann man mit Portscannern Firewall-Konfigurationen testen oder Betriebssysteme erkennen.
Es gibt sogar Methoden, einen Portscan durchzuführen, ohne die eigene IP-Adresse preisgeben zu müssen:

Wie erkennt man einen Portscan?

Aufspüren mit netzwerkbasierten Intrusion Detection Systemen, durch Monitoring von Logfiles, mit nmap, netstat, lsof, nessus. Zum Beispiel können mit Hilfe von netstat aktive Verbindungen aufgelistet werden:
$ netstat
Aktive Internetverbindungen (ohne Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 www.ee.fhm.edu:www-http otdial-212-144-110:1090 VERBUNDEN
tcp        0      0 www.ee.fhm.edu:www-http otdial-212-144-110:1088 VERBUNDEN
tcp        0      0 www.ee.fhm.edu:www-http otdial-212-144-110:1094 VERBUNDEN
tcp        0      0 www.ee.fhm.edu:www-http otdial-212-144-110:1092 VERBUNDEN
tcp        0      0 www.ee.fhm.edu:www-http 212.123.104.2:61892     VERBUNDEN
tcp        0      0 www.ee.fhm.edu:www-http 212.123.104.2:61893     VERBUNDEN
tcp        1  47784 www.ee.fhm.edu:www-http niven.antares.de:44742  CLOSE_WAIT
tcp        0   6343 www.ee.fhm.edu:www-http niven.antares.de:44744  FIN_WAIT1
...


$ lsof | grep -v root
COMMAND     PID  USER   FD   TYPE DEVICE    SIZE   NODE NAME
bash      22644 plate  cwd    DIR   8,17    2048   2049 /home/plate
bash      22644 plate  rtd    DIR    8,2    1024      2 /
bash      22644 plate  txt    REG    8,2  475348  57124 /bin/bash
bash      22644 plate  mem    REG    8,2  148968  63290 /lib/ld-2.0.7.so
bash      22644 plate  mem    REG    8,2  500910  63289 /lib/libncurses.so.4.2
bash      22644 plate  mem    REG    8,2   65006  63296 /lib/libdl.so.2
bash      22644 plate  mem    REG    8,2 2475225  63293 /lib/libc.so.6
bash      22644 plate  mem    REG    8,2  113110  63299 /lib/libnss_compat.so.1
bash      22644 plate  mem    REG    8,2  106544  63298 /lib/libnsl.so.1
bash      22644 plate  mem    REG    8,2  167648  63302 /lib/libnss_files.so.1
bash      22644 plate    0u   CHR    3,0           3493 /dev/ttyp0
bash      22644 plate    1u   CHR    3,0           3493 /dev/ttyp0
bash      22644 plate    2u   CHR    3,0           3493 /dev/ttyp0
bash      22644 plate  255u   CHR    3,0           3493 /dev/ttyp0
...

Es gibt zwei verschiedene Arten von Portscan-Erkennungsprogrammen:
  1. Der Portscan-Detector nistet sich auf bestimmten Ports ein und registriert Verbindungsversuche. Diese Methode benötigt keine root-Rechte und ist Ressourcen schonend.SIe ist jedoch durch Stealth-Scans einfach zu umgehen und das System stößt schnell an die Grenze der maximal offenen Dateien
  2. Der Portscan-Detector snifft den gesamten Netzwerkverkehr auf einem Device mit und registriert verdächtige Pakete. Dieses Verfahren ist schwer zu umgehen aber Ressourcen fressend.
Eine Umgehung des Erkennungsmechanismus ist trotzdem möglich, z. B. durch stark fragmentierte Pakete (selbst die Header sind fragmentiert) oder durch Umgehung des Loggingmechanismus mittels Log-Floodging (Massen-Scans). Bekannte Scan-Erkennungsprogramme sind "Scanlogd" (http://www.openwall.com/scanlogd/) "Snort-Portscan-Preprocessor" (http://www.snort.org/) oder "Portsentry" (http://www.psionic.com/abacus/portsentry/).

Security im Application Layer

Der Application Layer bietet viele Möglichkeiten für Angreifer in ein (geschütztes) Netzwerk einzudringen. Die Sicherheitsprobleme hier sind sehr vielfältig und von den einzelnen Applikationen abhängig. Oft lassen sich Sicherheitslücken auf Fehler in Konzeption und Implementation der Applikationen zurückführen. Allerdings kann auch eine falsche oder ungenügende Konfiguration einer Applikation einem Angreifer Tür und Tor öffnen. In diese Gruppe gehören Viren und Trojanische Pferde.

Auf dieser Ebene kann ein Angreifer auch versuchen, allgemeine Informationen über seine 'Opfer' einzuholen. Eine erst Möglichkeit ist das Abscannen eines Netzes auf 'aktive' IP-Adressen, d. h. IP-Adressen, unter denen ein Rechner ansprechbar ist. Dazu genügt das ping-Kommando. Ein kleines Shell-Skript erledigt die Arbeit in Sekunden (unter Solaris liefert ping als Default nur 'xxx is alive.' oder 'xxx unreachable.'. Gegebenenfalls ist ping mit geeigneten Parametern zu versehen):

for VICTIM in `seq 1 254`
do
  ping 192.168.1.$VICTIM
done
Jetzt kennt der Angreifer alle in Frage kommenden Opfer (auch wenn sie keinen Nameservereintrag besitzen). Die nächste Stufe könnte der Einsatz eines Portscannes sein. Oder man sucht mal nach Benutzern auf dem Rechner.

Das geht mit dem finger-Kommando. Das finger-Kommando erlaubt es, Informationen über Benutzer zu erlangen, weshalb es aus Gründen des Datenschutzes oft auch gesperrt wird. Mit dem Kommando 'finger user@host' kann man sich über einen bestimmten Benutzer informieren. Die Ausgabe sieht beispielsweise folgendermaßen aus:

    Login: plate Name: Juergen Plate
    Directory: /home/plate Shell: /bin/sh
    No unread mail.
    On since Sun Nov 20 19:36 (MET) on ttyp3
    No Plan.
Die Informationen werden einigen Standarddateien des Rechners entnommen.
Eine weitere Möglichkeit bietet das 'fingern' eines anderen Hostrechners. Man erhält dann Information darüber, welche Benutzer eingeloggt sind. Zusammen mit einer Nameserveranfrage erhält man dann schon eine Liste von Mailadressen für Spam und eine Liste von Usernamen zum Angriff auf die einzelnen Accounts.

Nun sehen wir auf den offenen Ports mal nach, welche Version die Server-Dienste haben. Ist der Administrator nachlässig, findet sich vielleicht Software, für die schon eine Sicherheitslücke veröffentlicht wurde. Mit viel Glück findet ein Scriptkiddie sogar noch ein "Exploit", ein Programm, das die Sicherheitslücke demonstriert.
Das Ausspähen der Server-Dienste erfolgt einfach per Telnet auf die entsprechenden Ports. Das folgende Beispiel zeigt eine Untersuchung der Ports 23 (Telnet), 25 (Mail), 21 (FTP) und 80 (HTTP). Die Eingabe sind fett wiedergegeben:

plate@multimedia:~ > telnet victim 23
Trying 141.39.253.196...
Connected to victim.
Escape character is '^]'.
Connection closed by foreign host.
Der Telnet-Port ist also offen.
plate@multimedia:~ > telnet victim 25
Trying 141.39.253.196...
Connected to victim.
Escape character is '^]'.
220 victim.e-technik.fh-muenchen.de ESMTP Sendmail 8.9.3/8.9.3; Mon, 
8 Jul 2002 08:01:14 +0200
quit
221 victim.e-technik.fh-muenchen.de closing connection
Connection closed by foreign host.
Auf dem Opfer läft also Sendmail, Version 8.9.3. Der ist nicht mehr ganz neu!
plate@multimedia:~ > telnet victim 21
Trying 141.39.253.196...
Connected to victim.
Escape character is '^]'.
220-     Youre welcome on the FTP - Server
220-     victim.e-technik.fh-muenchen.de
220-
220-     Please try 'ftp' for anonymous login
220-
220 victim.e-technik.fh-muenchen.de FTP server (Version wu-2.4.2-academ[BETA-18]
    (1) Sun Apr 4 23:07:17 /etc/localtime 1999) ready.
quit
221 Goodbye.
Connection closed by foreign host.
Das läuft der Wu-FTP-Server, Version 2.4.2, der auch nicht mehr ganz neu ist. Außerdem sollte man es mal mit anonymem FTP probieren.
plate@multimedia:~ > telnet victim 80
Trying 141.39.253.196...
Connected to victim.
Escape character is '^]'.
GET /index.html HTTP/1.0
accept: */*

HTTP/1.1 200 O.K.
Date: Mon, 08 Jul 2002 06:02:39 GMT
Server: mod_perl/1.18 Apache/1.3.4 (Unix)  (SuSE/Linux) PHP/3.0.7
Connection: close
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

...

Connection closed by foreign host.
Hier erfahren wir sehr viel. Der Apache-Server mit der Version 1.3.4 ist auch nicht der jüngste. Zudem wird uns mitgeteilt, daß es sich um das Betriebssystem Linux handelt (Distribution von SuSE). An den Versionsnummern des Perl- und PHP-Moduls könnte man sogar die Version der Distribution ermitteln. Wenn man jetzt weitere Ports abklappert (POP3, IMAP, Finger, usw.) und die CERT-Advisories durchsieht, findet man sicher etliche Angriffspunkte auf das System.

Der whois-Dienst liefert Informationen über Netzteilnehmer, sofern sich diese bei einem Whois-Server haben registrieren lassen. Das kann man über ein Formular, netinfo/user-template.txt auf nic.ddn.mil, machen, das dann an registar@nic.ddn.mil geschickt wird). Das Kommando lautet:

    whois Namensangabe
wenn der voreingestellte Server verwendet wird. Mit Serverangabe lautet das Kommando:
    whois -h Serverrechner Namensangabe
Man erhält dann alle Angaben aus der Datenbank, die zur Namensangabe passen. Als Namensangabe kann entweder ein Userpseudonym (Login-Name) oder der "echte" Name, eventuell als 'Nachname, Vorname', angegeben werden. Bei grafischen Benutzerschnittstellen erfolgt die Parameterangabe über Dialogfelder und nicht in der Kommandozeile. Als Whois-Server können Sie 'whois.nic.de' oder 'whois.internic.net' angeben.
Durch die Angabe 'do Rechnerdomain' können Infos über die entsprechende Domain eingeholt werden. Ebenso kann man sich mit 'host Rechnername' über einzelne Computer oder mit 'net Netzwerknummer' über Netze informieren.
Fehlt das Whois-Kommando, öffnet man eine Telnet-Verbindung zu nic.ddn.mil und gibt 'whois' nach dem Prompt ein. Auf den Prompt 'Whois:' hin kann man interaktive Anfragen absetzen (z. B. das 'help'-Kommando).

Über das Common Gateway Interface, also über CGI-Scripts, können Attacken gestartet werden. Normalerweise erlaubt ein CGI-Script dem Benutzer einer Website, interaktive Prozesse vom Browser auszulösen, z. B. auf eine Datenbank zuzugreifen oder ein Formular vom Server auswerten zu lassen. Die Sicherheitslücken bei CGI-Programmen entstehen durch Fehlkonfiguration der Serversoftware und durch Fehler im Script selbst. Dazu ist es nicht notwendig, daß das Script von Haus aus dazu angelegt ist Schaden anzurichten. Oft reicht eine fehlende Sicherheitsabfrage, die unabsichtlich oder aus Bequemlichkeit nicht eingebaut wurde. Deshalb sollten bei CGI-Programmen grundsätzlich alle Eingaben als "böse" betrachtet werden. Zu bedenken ist auch, daß der Angreifer nicht unbedingt das entworfene Formular ausfüllen muß. Er kann seine Eingaben für das CGI-Programm auch direkt in der URL-Zeile des Browsers tätigen.
Ein weiterer Angriffspunkt ist die die Speicherung unerwünschter Daten auf dem Server. Dazu ein Beispiel: Viele Webseiten bieten Gästebücher an, in die jeder etwas eintragen kann. Der Hacker trägt neben "normalem" Text auch HTML-Code, z. B. eine URL, ein Javascript-Programm oder eine Referenz auf ein Active-X-Control ein. Leser des Gästebuches erleiden durch diese Teile der Seite Schaden - oder werden auch nur beleidigt. Es gab den Fall, daß irgendwelche "Spaßvögel" im Gästebuch von McDonalds Links auf Porno-Sites hinterlassen haben.
Um auch bei Fehlern in den Skripts möglichst wenig Angriffsfläche zu bieten, darf der WWW-Server nur unter einer Benutzerkennung mit möglichst wenig Rechten laufen (z. B. "nobody"). Auch die CGI-Programme dürfen nur unter geringen Rechten laufen, niemals als Root-Programme. Alle CGI-Scripte gehören in ein spezielles Verzeichnis, etwa "serverhost/cgi-bin", in das nichts anderes kommt.

Auf Gefahren, die speziell die Anwenderseite betreffen, wird in Kapitel 7 eingegangen.

Angriffe auf Gebäudeleitsysteme

Die Zeiten klassischer Verkabelungen, bei denen Schalter und Verbraucher über Stromleitungen verbunden wurden, sind teilweise schon vorbei. Gebäudeleitsysteme wie KNX, Industriebusse und "klassische" Vernetzung finden sich in unseren Gebäuden. Weit verbreitet ist sicherlich KNX (früher "EIB"), oft mit Anbindung des Gebäudes an die EDV. Welche Risiken birgt dieser Wandel? So ist das Hacking von Gebäudeleittechnik kein Einzelfall mehr so zum Beispiel im Jahr 2014 bei Google. Das Gebäudemanagement der Google-Zentrale in Sydney wurde gehackt. Die verwendete Software wurde nicht regelmäßig gewartet, so dass einige Sicherheitslücken entstanden waren, durch die ein Zugriff auf die Gebäudeleittechnik über eine Internetverbindung möglich wurde.

Eine hundertprozentige Sicherheit wird es nie geben, aber man kann versuchen, den IT­Sicherheitslevel individuellzu bestimmen und anzuheben. Was bedeutet das für den Alltag von Elektroinstallateuren, Architekten, Besuchern und Eigentümern moderner Gebäude? Oft spielt die Sicherheit bei der Planung und Installation von Gebäudeleitsystemen nur eine untergeordnete Rolle. In der Regel sind Funktion und Kosten die bestimmenden Faktoren. Oft fehl auch einfach das Bewusstsein, dass beispielsweise das Öffnen der Haustür per Smartphone und WLAN nicht nur das eigene Smartphone betrifft, sondern praktisch jeden Computer in Reichweite des WLAN. In der Gebäudeautomation existieren grundsätzlich zwei Angriffswege: Der Gebäudebus und die übergeordnete EDV.

KNX und Genossen

Die dezentralen Steuerungseinheiten sind über Bussysteme (z. B. KNX, CAN-Bus, BACnet) miteinander vernetzt. Auf der obersten Ebene der Gebäudeautomation wirkt die Gebäudeleittechnik. Die Datenkommunikation, die dort zusammenläuft, verbindet angrenzende Systeme auf der Basis von Ethernet und TCP/IP miteinander. Gerade diese Vernetzung begünstigt die Einwanderung von Sicherheitsrisiken in die einzelnen Bereiche. Wenn wir die Aufgaben der Systeme betrachten, egibt sich die folgende Aufteilung:

Die Sicherheit eines jeden Systems ist nahezu immer den Benutzerwünschen entgegengesetzt. Möchten wir beispielsweise von jedem Schalter aus jede Lampe steuern können, so kann prinzipiell auch ein Angreifer von diesem Schalter aus jede Lampe steuern. Befinden sich diese Lampen dann auch noch in unterschiedlichen KNX-Linien, braucht der Schalter für seine eigentliche Funktion natürlich auch Zugriff auf die anderen Linien, um die dort festgelegten Gruppenadressen erreichen zu können.

Da der KNX-Bus selbst kaum Sicherheitsmechanismen mit sich bringt und viele Sicherheitskomponenten derzeit eher Nischenprodukte sind, kann ein Angreifer in der Regel alle zur Verfügung stehenden Funktionen nutzen. Ein Angreifer verbindet sich nun üblicher Weise innerhalb der Linie. Er kann nun die volle Kommunikation belauschen und auch daran teilnehmen. Die einzelnen Komponenten einer Linie reagieren in der Regel auf alle Befehle, die an die jeweiligen Gruppenadressen gesendet werden. Damit ist der Angreifer in der Lage, alle Aktoren innerhalb seiner Linie zu kompromittieren. Häufig existieren auch Verbindungen zwischen den einzelnen Linien. Dies sind zentrale Gruppenadressen, die etwa bei einem Feuer- oder Einbruchsalarm ausgelöst werden. Dazu sind die Linien über die Linienkoppler verbunden. Diese Systemarchitektur erhöht die Tragweite von Angriffen auf Leitsysteme. Auch ist KNX nicht "eigensicher". Ein aggressives Timing eines Angreifers würde dazu führen, dass KNX-Installationen bzw. die entsprechenden Gebäude unbenutzbar werden. Das betrifft auch andere Standards oder Entwicklungen für das sogenannte Smart Home ( SZ vom 6. März 2015, "Als eine Glühbirne das Smart Home lahmlegte").

Sicherlich könnte bei der Installation ein Regelwerk erstellt werden, das die Kommunikation auf ein Minimum einschränkt. Solche Regeln müssen aber gewartet und aktuell gehalten werden. Doch selbst bei gepflegten und den Angreifer behindernden Filtern auf den Linienkopplern sind die Möglichkeiten eines Angriffes noch lange nicht erschöpft. So benötigt z. B. eine Visualisierung auch Zugriff auf die jeweiligen Linien und Unterlinien. Entsprechend müssen die jeweiligen Linienkoppler und deren Regelwerke dafür geöffnet werden. Insofern verfügen KNX und Genossen über einiges an Angriffsfläche. Es würde schon genügen, wie die Glübirne im SZ-Bericht den Bus mit sinnlosen Meldungen zu verstopfen. Auf dem Blog von Mark Semmler zeigt dies eindrucksvoll der Artikel KNX-Sicherheit: Draugr - Angriffe gegen KNX/EIB. Als Plattform für Draugr kommt ein Raspberry Pi zum Einsatz, der über das ROT-Modul von Busware mit dem KNX-Bus kommuniziert. Die Plattform ist kostengünstig, unauffällig und kann mit Hilfe eines Netzteils, PoE oder im Notfall auch über Batterien mit Strom versorgt werden. Die Kommunikation kann über WLAN oder UMTS ferngesteuert erfolgen.

Es gibt aber auch kommerzielle Systeme, die den Angriff auf den Gebäudebus demonstrieren. Die Firma Antago (www.antago.info) hat zwei System entwickelt:

Sicherheit der Leitsysteme

Wie schon erwähnt, verbindet die Anbindung an die klassische EDV das Gebäude mit allen gängigen Problemen der klassischen IT-Sicherheit. Beispielsweise kann ein Angreifer auch ohne die oben genannten Tools das Gebäude genau so fernsteuern, wenn er erfolgreich den Visualisierungs-Server kompromittiert. Ebenso lassen sich Linien auch mit Netzwerklinienkopplern verbinden. Dies bedeutet dann, dass die linienübergreifende Kommunikation durch das reguläre EDV-Netzwerk geschleust wird.

Gebäudeleitsysteme werden oft nur als Aufgabe der Elektroinstallateure und Architekten gesehen, die IT-Spezialisten bleiben aussen vor. Eine Kommunikation zwischen diesen drei Parteien findet nur dann statt, wenn der Visualisierungs-Server installiert wird. Daher müssen Elektroinstallateure oft sehr viel mehr Tätigkeiten im Bereich der EDV ausführen als ursprünglich vorgesehen. Oft haben sie (nicht nur unter Zeitdruck) nur die Funktion vor Augen. Die IT selbst hat mit den Leitsystemen häufig kaum etwas zu tun und weiss oft nicht, was dahinter steckt. Oft ist sich die IT auch nicht der eigentlichen Tragweite eines Angriffes bewusst. Denn wenn das Visualisierungs-System in der Lage ist, das Gebäude zu überwachen und zu steuern, kann dies auch eine eigeschleuste Schadsoftware.

Ein weiterer Punkt ist die Aktualität der eingesetzten Software. Um Angriffe auf Computer zu vermeiden, würde man ein "kassisches" EDV-System so aktuell wie möglich halten und regelmäßig Updates und Patches einspielen. Doch Gebäudesysteme sind in dieser Richtung eher geschlossene Komponenten und niemand kann oder will garantieren, dass die hier laufenden Programme nach einer Aktualisierung des Computers so einwandfrei wie zuvor arbeiten. So bleiben soche Systeme in der Regel auf ihrem ursprünglichen Softwarestand und es wird als Alternative versucht, diese Komponenten zu isolieren. Da eine solche Isolation aber auch bedeutet, dass der Zugriff und somit die Funktion erschwert wird, läßt sich dies dies häufig nur bedingt realisieren.

In der Standard-IT eingesetzten Sicherheitstechniken wie Virenscanner, Firewalls und IDS/IPS (Intrusion Detection System/Intrusion Prevention System) eignen auch für den Bereich der Gebäudeautomation, jedoch ist hier zusätzliches Know-how gefragt und der Betrieb der Lösungen ist oft zeitaufwendiger. Die genannten Systeme können Angriffe erkennen und Informationen über diese Angriffe speichern, benötigen jedoch einen hohen Aufwand an Pflege und natürlich die ständige überwachung der Protokolldateien. Auch deckt der Schutz natürlich nicht alle Angriffsszenarien ab. Bei der Planung sollten bereits die IT-Abteilung, die Architekten und die Elektroinstallateure an einem Tisch sitzen.

Noch weit mehr gilt dies für SCADA-Systeme, die über eine noch viel größere Tragweite verfügen als Gebäudeleitsysteme. SCADA-Systeme (Supervisory Control and Data Acquisition) steuern in der Regel Industrieanlagen, lassen sich aber ähnlich angreifen wie Gebäudeleitsysteme. In der Vergangenheit sind eine Vielzahl von Angriffen auf solche Systeme bekannt geworden, der bekannteste Fall war wohl "Stuxnet", ein Computerwurm, der im Juni 2010 entdeckt wurde. Das Schadprogramm wurde speziell für SCADA-Systeme der Firma Siemens (Simatic S7) konzipiert. Dabei wurde in die Steuerung von Frequenzumrichtern der Hersteller Vacon aus Finnland und Fararo Paya in Teheran eingegriffen.

Aber auch kleine Dinge könne die Sicherheit beeinträchtigen. Wie das folgende Bild eines Routers zeigt, ist das Passwort gleich einem Teil der MAC-Adresse. Die MAC-Adresse ist im LAN leicht zu ermitteln (z. B. über das ARP-Kommando). Ist der Eindringling erstmal im Netz (z. B. über einen Besucher- oder Wartungs-Zugang), kann er den Router umkonfigurieren und sich so einen dauerhafte Zugang von außen ermöglichen.

Fazit

Gebäudeleitsysteme und deren Sicherheit sind keine Frage der Zukunft mehr, sondern ein aktuelles Thema der IT und physischen IoT (Internet of Things)­Sicherheit. Der Schutz von Leitsystemen ist nicht pauschal zu leisten. Grundlegend baut ein "sicherer" Betrieb von Leitsystemen auf drei Säulen auf:

Um das zu erreichen, bedarf es dem Zusammenspiel aus IT und Gebäudetechnik, um gemeinsam sicherer zu werden.

Überblick Bedrohungen/Gegenmaßnahmen

 BedrohungAngriffMaßnahme
ICMP Eindringen, Denial-of-Service Redirect, TTL-Exceeded, Destination Unreachable, Ping-of-Death Authentisierung, Filtern, auf Router abweisen, Overflow abfangen
TCP Eindringen, Maskerade, Denial-of-Service Hijacking, Asynchrone State, IP-Spoofing, SYN-Flooding Übernahme privilegierter Rechte verhindern, Überwachung, Verschlüsselung, Authentisierung,Signatur, IP-Spoofing verhindern
UDP Eindringen, Maskerade, Denial-of-Service UDP-Spoofing, Flooding, echo, Ausnutzen privilegierter Ports Schutz auf Applikationsebene, chargen und echo filtern, Antworten auf echo filtern, Portnummern kleiner 1024 filtern
DNS Maskerade, Denial-of-Service IP-Spoofing, Sniffing, Penetration des DNS-Caches Splitten der DNS-Server, Inverse DNS-Anfragen filtern, IP-Spoofing verhindern
ARP Maskerade, Umleiten Fälschen von ARP-Antworten ARP-Tabellen fixieren, ARP-Request auf Firewalls abblocken
RIP Maskerade, Umleiten Loose-Source-Routing, RIP-Spoofing Filtern von Loose-Source-Routing-Paketen, Statisches Routen
SNMP Maskerade, Eindringen Abhören der Community-Strings Filtern, Verschlüsselung, nicht über Firewall zulassen
NIS/NIS+ Maskerade, Eindringen Umleiten, Dateidiebstahl, Brute-Force-Attacke Filtern, starke Authentisierung nicht über Firewall zulassen
FTP Maskerade, Eindringen, Manipulation, Informationsdiebstahl FTP-Hijacking, cwd, cdup, retr, stor, dele, list, nlist, site, syst, port Anonymous FTP Filtern, Rechteverwaltung, port durch pasv ersetzen, Zugriff nur auf ausgewählte Daten erlauben

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Jürgen Plate
Letzte Aktualisierung: 23. Sep 2011