|
Zu Beginn jedes Sicherheitsprozesses steht die Schwachstellen-
und Bedrohungsanalyse. Dies erfordert allerdings genaues
Wissen über potentielle Gefahren. Deshalb möchten wir in diesem
Kapitel eine Übersicht vermitteln.
|
Um den Begriff der Systemanomalie beschreiben zu können, muss
man sich über zwei Verhaltensweisen klar werden:
-
normales Systemverhalten:
Alle Systemkomponenten (Hardware + Software) erfüllen die an sie gestellten Erwartungen
unter bestimmten Rahmenbedingungen.
-
anormales Systemverhalten:
Die Abweichung vom normalen Systemverhalten bezeichnet
man als anormales Systemverhalten
Schwierig gestaltet sich die Einordnung in eine dieser
Kategorien, viele Nutzer können aufgrund ihrer geringen
Kenntnisse zu Fehlentscheidungen gelangen. Anormales
Systemverhalten ist das sichtbare Resultat von Anomalien.
Anders ausgedrückt:
Als Anomalien bezeichnet man Veränderungen an
Hard- und/oder Software bzw. deren Konfiguration, die
durchaus schwere Schäden nach sich ziehen können.
Man unterscheidet Systemanomalien erster, zweiter und
dritter Art:
Systemanomalien der ersten Art
Anormales Verhalten kann durch eine Vielzahl an Faktoren
hervorgerufen werden. Wenn dieses Verhalten weder
beabsichtigt noch spezifiziert oder gar durch
gewollte Systemveränderungen hervorgerufen
wurde, handelt es sich um
Systemanomalien erster Art. Dazu zählen insbesondere
Umwelteinflüsse wie Überspannung durch Blitzschlag
oder Übertragungsfehler. Zu den Anomalien der ersten Art
gehören aber auch menschliche Fehler, die zum Beispiel
bei der Programmierung auftreten und durch Angreifer
ausgenutzt werden können (z.B. Pufferüberläufe).
Systemanomalien der zweiten Art
Bei diesen Anomalien wurden Komponenten
(Betriebssystemmodule, Softwareklassen, Bibliotheken,
Hardwarekomponenten, ...)
absichtlich durch zusätzliche, schädliche Funktionen
erweitert. Bekannte Vertreter sind Trojanische Pferde,
die das Systemverhalten nach den Wünschen des Angreifers
manipulieren.
Systemanomalien der dritten Art
Aus Anomalien zweiter Art entstehen durch die Erweiterung um
Funktionen zur Reproduktion Systemanomalien dritter Art. Dazu
gehören Bakterien (Ausbreitung begrenzt auf lokales System),
Viren und Computerwürmer.
|
Ein Computervirus ist ein Stück Selbstreplizierende Software,
die sich jedoch immer in ein ausführbares Wirtsprogramm
oder eine Systemkomponente hineinmogelt und auf einem
beschreibbaren Medium abgespeichert ist.
Viren stellen für Linux (noch) keine Bedrohung dar. Trotzdem
gibt es bereits welche, und nicht nur das, man findet sogar
eine Anleitung zum Schreiben von Viren.
Bekannteste Vertreter der Linux-Viren sind: Bliss, Staog, Telf, SIILOV.
Gegenmaßnahmen sind einerseits Virenscanner, z.B.
und andererseits der Vergleich der Signaturen beim
Installieren von Software, welche natürlich ausschließlich
von vertrauenswürdigen Stellen stammen darf. Besonders
vorsichtig sollte man als Superuser root agieren, aber das
versteht sich ja von selbst.
|
Würmer sind im Gegensatz zu Viren eigenständige Programme,
die sich ebenfalls selbst replizieren können. Schon vor mehr als
drei Jahrzehnten traten einzelne Exemplare auf Großrechnern auf.
Diese wurden liebevoll "Kaninchen" genannt, weil sie sich so schnell
vermehrten. Sie reproduzierten sich im Hauptspeicher und stahlen
somit anderen Nutzern wertvolle Ressourcen. Sie wurden aber
auch für nützliche Zwecke wie dem Einsammeln von Informationen
eingesetzt, heute würde man solche Programme dann doch lieber
als Vorfahren Mobiler Agenten ansehen.
Einer der bekanntesten Schädlinge war der Morris Wurm (1988),
welcher zwischen 2000 und 6000 Internetrechner lahm legte.
Das war ein sehr großer Teil des damaligen Internet. Anfällig
waren neben BSD-Unix-Systemen auch alle DEC-Rechner und
SUN3-Systeme. Computer mit "UNIX System V" als Betriebssystem
waren "nur" anfällig, wenn mit Sendmail, fingerd und rexec
eine Kompatibilität zu BSD bestand. Der Entwickler des Wurmes,
Robert Tappan Morris Jr, wurde zu 10.000 Dollar, 3 Jahren
Haft und 400 Stunden gemeinnütziger Arbeit verurteilt.
Zusätzlich musste er die 150.000 Dollar Gerichtskosten tragen.
Man sieht, dass Computerwürmer ein wesentlich größeres
Gefahrenpotential als Viren darstellen, gerade auch im Hinblick
auf breitbandige Internetzugänge im privaten Bereich. Einen
gezielten Schutz gegen Würmer gibt es nicht, man sollte
versuchen, sein System so sicher wie möglich zu gestalten
und kontinuierlich Sicherheitsupdates durchzuführen.
|
Der Begriff des trojanischen Pferdes stammt aus der griechischen
Sagenwelt (Odyssee des Homer).
Nach der vergeblichen Belagerung der Stadt Troja boten
die Griechen ein riesiges hölzernes Pferd als Friedensgeschenk
an. Nachdem dieses Holzpferd in die Stadt geschafft worden war,
sprangen aus dem Inneren des Pferdes dutzende Soldaten und griffen
die Stadt aus dem Hinterhalt an. Nur so gelang es den Griechen
die Stadt zu erobern.
Genauso hinterhältig sind trojanische Pferde im Computerbereich.
In durchaus nützliche Programme (wie z.B. lsmod) werden
schädliche Funktionen eingebaut und durch den getäuschten
Benutzer selbst aktiviert. Dabei muss der Schaden nicht gleich
im Zerstören von Daten liegen, manchmal wird auch einfach nur
die Ausgabe wichtiger Informationen unterdrückt. Einige
Trojanische Pferde nisten sich direkt im Kernel ein (als Modul)
und könnten mit lsmod sichtbar gemacht werden. Um dies zu
verhindern, manipulieren trojanische Pferde das Programm lsmod
derart, dass es den Eindringling nicht anzeigt.
Es gibt dutzende Varianten, die hier niemals alle behandelt
werden können. Als Schutzmaßnahmen kommen vor allem
Einbruchserkennungssysteme zum Einsatz, insbesondere
Hostbasierte Intrusion Detection Systeme. Des weiteren
sollte man ausschließlich vertrauenswürdige Software
installieren und vorher die digitale Signatur (Fingerprint)
vergleichen.
|
Als Sniffer bezeichnet man ein Programm (oder ein Gerät),
welches den Netzwerkverkehr abhört, protokolliert und in
einer menschenlesbaren Form ausgibt.
Gefährlich sind Sniffer vor allem beim Austausch von
unverschlüsselten Nachrichten wie Passwörtern,
Kreditkartennummern und vertraulichen Dateien.
Sniffer nutzen den Promiscuous Mode einer
Netzwerkschnittstelle und empfangen so alle auf dem Netz
übertragenen Daten, egal für wen diese bestimmt sind.
Weder Sender noch Empfänger merken etwas von dieser
Spionage.
Sicherheitsmaßnahmen: Vertrauliche Daten wie Kennwörter
oder Kreditkartennummern sollten stets über
verschlüsselte Verbindungen übertragen werden (https, ssh).
Durch sichere Netzwerktopologien (z.B. durch Trennung der
Netzwerksegmente mittels Router, Switch, Bridge)
und den Einsatz von Paketfiltern zur logischen
Trennung kann man das Blickfeld eines potentiellen
Sniffers stark einschränken. Um einen Sniffer
ausfindig zu machen, fragt man an allen Rechnern des
Netzwerkes den Status der Netzwerkkarte mit ifconfig
ab. Das ist die einfachste Lösung. Es gibt aber auch
AntiSniffer Werkzeuge wie beispielsweise
SniffDet, oder
kommerzielle Produkte wie AntiSniff.
|
Unter Spoofing versteht man das Erschleichen von Vertrauen
unter Vorgabe einer falschen Identität. Im Computerbereich
unterscheidet man:
-
IP-Spoofing (Vorgabe einer falschen IP-Adresse)
Gegenmaßnahme: Paketfilter
-
DNS-Spoofing (Einstreuen einer falschen IP-Namenszuordnung
ins DNS-Kommunikationssystem - Cache pollution)
Gegenmaßnahme:
digitale Unterschriften beim Austausch von DNS-Einträgen
-
ARP-Spoofing (Einstreuen einer falschen
IP-MAC-Adressenzuordnung im Ethernet; Überschreiben durch
Push-Technik)
Gegenmaßnahme: Ersetzen des ARP-Cache durch eine in
einer Datei gespeicherten Liste
-
RIP-Spoofing (Umleiten der Datenströme durch Einstreuen
falscher Routing-Informationen)
Gegenmaßnahme: Setzen des
entsprechenden Kernelparameters
-
WWW-Spoofing (URL Rewriting, man in the middle
attack)
Gegenmaßnahme: Kontrolle der Zertifikate verschlüsselter
Verbindungen
Der bekannteste Fall ist wohl die Kevin Mitnick Attacke, die
1994 auf das Netz des Sicherheitsexperten Tsutomu
Shimumura stattfand. Mitnick begann seinen Angriff mit mehreren
Verbindungsanfragen an den rlogin Port des Servers seines
Opfers, diese Anfragen besaßen allerdings gefälschte interne
IP-Adressen. Aufgrund dieser Last brach der Server zusammen.
Nachdem Kevin Mitnick die TCP-Sequenznummerngenerierung
analysiert hatte, konnte er unter Vorgabe der Identität des
zusammengebrochenen Servers eine TCP-Verbindung aufbauen
und den Zugang für zukünftige Angriffe weit öffnen.
Kevin Mitnick wurde verhaftet und bekam 1999 eine
Haftstrafe von 48 Monaten (er saß aber schon zu diesem
Zeitpunkt mehrere Jahre in Untersuchungshaft). Im
Januar 2000 wurde er mit der Auflage entlassen, dass er
drei Jahre lang (also bis Januar 2003) weder
Computer noch Mobiltelefon oder ähnliche Gerätschaften
benutzen durfte.
Spoofing ist ein wichtiger Bestandteil der meisten
Einbruchsversuche. Durch die Angabe einer falschen Identität
können fremde Verbindungen entführt (Hijacking) oder beendet
werden, und das Nachvollziehen eines Einbruchs /
Einbruchversuchs
gestaltet sich äußerst schwierig. Deshalb wird dieses Thema
zukünftig in einem gesonderten Kapitel behandelt werden.
|
Als Scanning bezeichnent man den Versuch, möglich viele
oder gar alle Rechner eines Netzwerkes zu verifizieren.
Dies beinhaltet vor allem auch die Bestimmung der darauf
laufenden Dienste. Folgende Informationen sind Ziel eines
solchen Angriffs:
- IP-Adressen von Rechnern (die ans Internet angeschlossen sind)
- TCP/UDP Portnummern
- Systemarchitektur (x86, PowerPC, Sparc)
- Betriebssystem (Kernelversion, Windowsversion)
Dem geht meist die Erstellung eines System- oder
Netzwerkprofiles voraus, in dem allgemeine Informationen
wie geographischer Standort, Namen, Telefonnummern,
IP-Adressen (Bereiche) und Dienste wie DNS-Server,
Mail-Server oder Web-Server festgehalten werden.
Security Scanner bieten feinere Techniken zum Ausspionieren
sicherheitsrelevanter Informationen eines Systems. Zu den
damit gewonnenen Informationen zählen zum Beispiel:
- Benutzer- und Gruppennamen
- Schwachstellen, welche ausgenutzt werden können
- Routing-Tabellen
- SNMP-Informationen
|
Das Ziel dieses Angriffes besteht darin, herauszufinden, welche
Rechner des Opfernetzwerkes (eines bestimmten IP-Bereiches)
gerade aktiv sind. Dies ist möglich durch
- ICMP-Echo-Anfragen (Ping, Broadcast)
- UDP /TCP Sweeps
Beides kann durch Kernelparameter bzw. Paketfilter verhindert
werden.
|
Wenn nach einem erfolgreichen Online-Check die aktiven
Rechner bekannt sind, wird der Angreifer meist die
angebotenen Dienste mittels Port-Scanning ermitteln.
Dazu bedient er sich oftmals der TCP SYN Scan Methode,
bei der eine TCP-Verbindung nur angefragt aber nicht
aufgebaut wird. Deshalb sind solche Attacken nur schwer
zu finden und werden sehr selten in Logfiles protokolliert.
Eine "Weiterentwicklung" sind die so genannten
Stealth Scans, die auch Paketfilter passieren und
trotzdem im Netzwerkverkehr unentdeckt bleiben. Sie
missachten einfach das Three Way Handshake Protokoll
und interpretieren die Antworten der Opferrechner. Zu
den Stealth Attacken gehören:
- XMAS Scan
- Null Scan
- Syn/Ack Scan
- Fin Scan
Port-Scans können durch Port-Scan-Detektoren erkannt werden,
zu den wichtigsten zählen: Scanlogd
PortSentry
Natürlich gibt es auch wieder Möglichkeiten, diese Detektoren
zu umgehen, darauf wollen wir an dieser Stelle nicht eingehen.
Einen Hinweis zum Schluss: Theoretisch kann ein Angreifer
einen Port-Scan-Detektor dazu benutzen, durch einen gefälschten
Scan-Angriff (Vortäuschung eines Angriffs vom Gateway-Rechner
--> Spoofing) den Opferrechner vom externen Netz zu trennen.
|
Der Netzwerk-Scanner nmap unterstützt zahlreiche
Angriffspraktiken zum Scannen von einzelnen Rechnern oder ganzen
Netzwerken. Er bietet auch viele nützliche Funktionen für einen
sinnvollen Einsatz. Denkbar wären beispielsweise die Überwachung
der offenen Ports aller Netzwerkrechner oder
das automatische Auslösen eines Alarms, wenn ein neuer Rechner
ans Netz angeschlossen wird. Mit nmap und den zahlreichen
Möglichkeiten wird sich ein eigenständiges Kapitel beschäftigen.
|
Systemschwachstellen sind meist an das verwendete Betriebssystem
gebunden, deshalb sind Informationen darüber für den Angreifer
äußerst wertvoll.
Viele Dienste wie z.B. telnet, ssh oder www geben
auch nicht autorisierten Benutzern Betriebssysteminformationen.
Sie können dies einfach nachvollziehen:
user@linux $
telnet ip-opfer 80
Trying 217.72.195.42... Connected to ha-42.web.de. Escape character is '^]'.
user@linux $
get
http/1.0 400 Bad Request Date: Wed, 19 Jan 2000 15:33:21 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Connection: close ....
|
Aus der vorletzten Ausgabezeile ist ersichtlich, dass
es sich um einen Linux Rechner mit Red Hat handelt.
Es gibt mittlerweile einige
Betriebssystemerkennungsprogramme wie queso oder nmap.
|
Darunter versteht man eine Technik, um Informationen von
Netzwerken hinter einer Firewall zu erlangen. David
Goldsmith und Michael Schiffmann haben diese Technik im
Oktober 1998 veröffentlicht.
Firewalking benutzt traceroute, das eigentlich
entwickelt wurde, den Weg einer Verbindung aufzuzeigen.
Duch die Angabe eines Ausgangs- bzw Zielport können auch
Firewalls passiert werden.
|
Mit Inverse Mapping Techniken können Informationen über
solche Rechner und Netzwerke erhalten werden, die als
unerreichbar gelten (z.B. Rechner eines internen Netzwerkes).
Beispiel ftp-Bounce-Attacke:
Der Angreifer benutzt einen normalen ftp-Client und
verbindet sich mit dem ftp-Server des Opfers. Er benutzt
den ftp-Port-Befehl um die IP-Adresse und die Portnummer
des anzugreifenden Dienstes anzugeben. Der Angreifer
sendet nun in Kommandos, die der angegriffene Dienst
versteht, in Form von Dateien an den ftp-Server
und dieser leitet die Kommandos einfach an den verbundenen
Dienst. Wenn der ftp-Server hinter der Firewall
steht, sind durch diese Methode auch Scans des
internen Netzwerkes möglich.
|
|
Die wohl am häufigsten auftretende Schwachstelle sind
Programme, die Pufferüberläufe (Buffer Overflows) ermöglichen.
Diese Programme werden zu einer gefährlichen Bedrohung, wenn
sie unter privilegierten Rechten ablaufen. Ein Angreifer kann
durch das Ausnutzen dieser Schwachstelle beliebigen
Programmcode zur Ausführung bringen, und zwar mit den
selben Privilegien wie die des fehlerhaften Programms. Wenn
also beispielsweise der Web-Server apache unter root Rechten
ablaufen würde und eine solche Schwachstelle existiert,
so kann ein Angreifer dem System den denkbar größtmöglichen
Schaden zufügen.
Schutzmaßnahmen für Programmierer und Entwickler:
-
Sichere Programmierung, Einsatz von "Source Code Security Analyzer" zur Feststellung möglicher Fehler
-
Libsafe ersetzt unsichere C-Funktionen (z.B. sprintf, strcp, gets)
durch Bibliotheksfunktionen
-
Openwall-Patch: nichtausführbarer Stack Array-Grenzüberwachung
|
Angriffe mit dem Ziel, ein System oder einen Dienst lahm zu legen,
bezeichnet man als DOS-Attacken. Oftmals handelt es sich um
Netzwerkdienste, die beim Trennen der Netzverbindung nicht mehr
nutzbar sind. Es werden entweder Schwachstellen im System (Rechner,
Übertragungsprotokolle, ...) ausgenutzt oder begrenzte
Systemressourcen (z.B. Bandbreite) aufgebraucht, um eine
Dienstverweigerung zu erreichen.
Manchmal geht es auch darum, sicherheitsrelevante Systeme
(z.B. IDS, Loghosts) in einen instabilen Zustand zu versetzen
und somit Einbruchsversuche zu ermöglichen. Prinzipiell
werden DOS-Attacken in zwei Arten untergliedert: hostbasierte
Denial of Service Attacken und netzwerkbasierte Denial of
Service Attacken. Eine besonders gefährliche Weiterentwicklung
der letztgenannten sind verteilte DOS-Attacken (Distributed
Denial of Service). Das Opfer wird hierbei von mehreren
(manchmal sogar tausenden) Rechnern angegriffen.
Hostbasiert
Wenn der Angreifer bereits Zugang zum System besitzt, kann er
mit meist sehr einfachen Mitteln das System handlungsunfähig
machen. Dazu gehören beispielsweise
|
- Plattenplatz aufbrauchen (Sicherheitsmaßnahme: quota)
- Arbeitsspeicher / CPU Reserven aufbrauchen (Sicherheitsmaßnahme: ulimit)
- Hardwarefehler ausnutzen (Sicherheitsmaßnahme: neuer Kernel)
Netzwerkbasiert
Die größere Gefahr geht im Allgemeinen von netzwerkbasierten
DOS-Attacken aus. Diese sind schwerer nachvollziehbar, und ein
Angreifer benötigt im Zweifelsfall nicht einmal einen direkten
Zugang zum Opfernetzwerk. Zu diesen DOS-Attacken gehören:
|
Die Speicherkapazität auf Mailservern ist sehr begrenzt, der
Plattenplatz wird sehr schnell aufgebraucht. Außerdem können
durch sehr große Mails die Netzwerkressourcen (Bandbreite)
sehr schnell aufgebraucht werden.
Ein Angreifer generiert pro Sekunde 100 Brodcast-Anfragen. Wenn
angenommen 150 Rechner im Subnetz aktiv sind und deshalb
antworten, müssen 15.000 Antwortpakete übertragen werden. Der
Rechner, der diese Anfrage gestellt hat, ist mit den Antworten
hoffnungslos überlastet und verliert im Extremfall seine
Netzverbindung (meist in Kombination mit Spoofing).
Gegenmaßnahmen können beispielsweise durch die Limit Option
im Paketfilter oder durch das Herausfiltern von ICMP Paketen
realisiert werden.
Auch die Netzwerkmodule des Kernels sind nicht vor Angriffen
gefeit. So kann beispielsweise durch eine SYN-Flood-Attacke
der Netzwerkpuffer zum Überlaufen gebracht werden.
Kernelparameter bieten einen guten, meist ausreichenden Schutz.
DOS-Angriffe auf TCP/IP-Ebene
|
Durch Massenanfragen werden Schwachstellen im IP-Stack
ausgenutzt. Die Schwachstellen lassen sich nur bedingt
beseitigen, sodass solche Angriffe meist als DDOS Attacken
durchgeführt werden. Zu solchen Attacken zählen:
- IP-Fragmentangriff (teardrop, newtear, bonk)
- IP-Bombing (meist als DDOS-Attacke)
- SYN-Flood Attacken (massenhafte Verbindungsanfragen)
|
Während bei normalen netzwerkbasierten DOS-Attacken
viele Anfragen von einem Angriffsrechner ausgehen,
kommen bei verteilten DOS-Attacken (Distributed Denial of
Service = DDOS) sehr viele Computer zum Einsatz, die
simultan einen DOS-Angriff auf einen Opferrechner
durchführen. Ein DDOS-Angriff wird zentral kontrolliert,
es gibt also einen oder mehrere Server (so genannte
Master), die viele Clients (auch einfach als Daemons
bezeichnet) kontrollieren.
|
ddos.png
|
Diese Angriffe sind erst seit 1999 bekannt. Die
dokumentierten Angriffe gingen meistens von vier
Softwaretools aus:
- trinoo (englische Infos auf CERTwww.cert.org/incident_notes/IN-99-07.html)
- TFN Tribe Flood Network (englische Infos auf CERT)
- stacheldraht (basiert auf trinoo und TFN)
- shaft
Die zu ergreifenden Schutzmaßnahmen sind
-
Einbruchserkennungssysteme (IDS)
-
Paketfilter (ICMP-Filterung, Pakete > 9 Byte)
-
Verhinderung eines Einbruchs durch Kombination von
Sicherheitsmaßnahmen wie kontinuierliche Aktualisierung der
Software, Einsatz von Proxies, Paketfiltern, Einbruchserkennung
und Gegenmaßnahmen bei erfolgreichem Angriff.
|
Root Kits sind Softwarepakete, in denen meist skriptbasierte
Werkzeuge enthalten sind. Diese haben zum Ziel,
- verschiedene Angriffsformen anzubieten,
- Angriffe zu verschleiern sowie
- Hintertüren einzubauen.
Ein solcher automatisierter Angriff dauert typischerweise drei
bis fünf Sekunden und erfordert keinerlei Fachwissen.
Wie läuft ein Angriff mit einem Root Kit ab?
Nach dem Ausnutzen einer Schwachstelle, durch die ein
beliebiger Maschinencode zur Ausführung gebracht werden kann,
steht dem Angreifer eine Ausführungsumgebung mit root-Rechten
(daher der Name) zur Verfügung. Diese Privilegien werden
benutzt, um auf dem angegriffenen System eine Hintertür zu
installieren, die dem Angreifer in Zukunft jederzeit
Administratorrechte verschafft. Abschließend werden
sämtliche Spuren des Angriffs aus den Log-Dateien entfernt.
Präventive Maßnahmen sollten bevorzugt zum Einsatz kommen,
da erfolgreiche Einbrüche äußerst schwer zu finden
und zu beseitigen sind. Bekannte Root Kits können mit
chkrootkit gefunden werden.
|
|
|