|
| |
Einführung
in die Sicherheit von Linux
2000 (C)opyrights by Marc
Ruef <marc.ruef@computec.ch>
Immer wieder tauchen in den Medien
Artikel auf, die von bösartigen Crackern berichten, die irgendwelche
vernetzten Computer-Systeme negativ beeinträchtigt haben. Viele nicht
versierte Linux-Administratoren wissen im ersten Moment jedoch gar nicht
erst, wo sie denn für die Erhöhung der Sicherheit des eigenen
Systems ansetzen sollen. Dieser Text soll als kurze Einführung in
die hochkomplexe Thematik der Sicherheit unter Linux dienen.
Grundlagen
Gefahren für ein Computer-System
können grob in zwei Kategorien unterteilt werden: Zum Einen entstehen
Sicherheitslücken dank fehlerhafte Konfigurationen, zum anderen durch
unsauber programmierte Software. Das Risiko einer Bedrohung durch die erste
Fehlerquelle kann mit individuellen Schulungen und Weiterbildung degeneriert
werden. Da die Welt der Datenströme seit ihren Anfangstagen in der
Anarchie versinkt, gewinnt schlussendlich der erfahrenere Administrator,
der seine Umgebung bestmöglich im Griff hat. Gegen das Risiko einer
Kompromittierung des eigenen Systems durch fehlerhafte Software kann in
gewissem Masse durch das Publizieren der Quelltexte vorgegangen werden.
So bleibt es einem sicherheitsbewussten Administrator überlassen,
ob er nach Einsicht des Sourcecodes genügend Vertrauen in die inspizierte
Software legen möchte. Da für das Verständnis der Quellen
ein hohes Mass an Wissen der genutzten Programmiersprache (vorzugesweise
C und Perl) und oft viel Zeit von Nöten ist, müssen viele Systemverwalter
in der Hitze des Gefechts blind ihr Schicksal in die Hände der Programmierer
legen.
Gefahrenquellen
Jeder Zugriff auf ein System
setzt es einem möglichen Risiko durch unerlaubte oder unerwartete
Aktionen aus. Exponentiell schnellt diese Gefahr in die Höhe, sobald
eine Netzanbindung ins Spiel kommt. Obwohl die Medien aufregende Angriffe
über das Internet in ihrer Profitgier gerne etwas aufplustern, so
finden in Tat und Wahrheit die meisten Attacken durch lokale Benutzer oder
aus dem eigenen Netzwerk statt. Trotzdem ist nicht zu vergessen, dass bei
einer Verbindung zum Internet jeder Mitbenutzer des weltweiten Datennetzes
zum potentiellen Angreifer wird.
Da bei der Entstehung von Netzwerken
sehr wenig Energie und Zeit für die Implementierung von Vorteilen
für die Sicherheit der Architekturen vorgenommen wurde, existieren
seit jeher löchrige Methoden für alltägliche Prozeduren,
die nur sehr schwer zu ersetzen oder verbessern sind. Beliebt sind in dieser
Hinsicht besonders Angriffe auf die eigentlich sauber durchgeführte
Login-Sequenz von Linux. Da kein tiefgründiges Wissen erforderlich
ist und genügend Tools zur Automatisierung solcher Angriffe existieren,
werden sie mit Vorliebe von Gelegenheits-Crackern ausgeführt. Erfolgreich
verlaufen diesbezüglich erschreckend oft sogenannte Wörterbuch-Attacken,
da viele User aus Bequemlichkeit reguläre Begriffe des Alltags als
Passwort zu nutzen pflegen. Dabei werden der Reihe nach die Einträge
aus herkömmlichen Wörterbüchern als Passwort-Angabe versucht.
Konnte schlussendlich doch kein Erfolg dieser Angriffs-Form verbucht werden,
so setzen viele Angreifer auf die langwierige Brute-Force-Attacke, bei
jener alle möglichen Buchstabenkombinationen als Passwort ausprobiert
werden: Früher oder später wird der Angriff im Gutfall für
den Cracker enden... Der Schutz der Daten und die Authentifizierung des
Benutzers durch sein geheimes individuelles Passwort mag auf den ersten
Blick als sicher erscheinen, doch so verblasst er relativ schnell wieder
während eines hartnäckigen Angriffs durch bösartige Kreaturen.
Des Weiteren wird seit jeher bei normalen
Datenverbindungen (z.B. Telnet und FTP) die Kommunikation mehr oder weniger
im Klartext geführt. So ist es nicht verwunderlich, wenn ein Angreifer
durch ein geschickt plazierten Sniffer sehr schnell an vorteilhafte Informationen
(z.B. Passwörter und Mail-Daten) kommt. Dabei wird vom Cracker einfach
der vermeintlich interessante Datenverkehr, der ihn eigentlich nichts anzugehen
hat, im Geheimen mitprotokolliert und ausgewertet. Der Weg zur ultimativen
Kontrolle über das betroffene System wird dann zum Spaziergang...
Einem feindlich gesinnten Geist
kann nur durch kryptographische Verfahren (z.B. SSH und PGP) die Stirn
geboten werden. Wo immer sich solche zusätzlichen Mauern erstellen
lassen, soll dies im Sinne der Beteiligten entstehen. Das Abfangen des
Datenverkehrs ist dann im Gegensatz zur Deociderung desselbigen ein Kinderspiel.
Es existieren weitere fortgeschrittene
Techniken zur Untergrabung der Sicherheit eines Systems. Werden Authentifikationen
anhand der IP-Adresse eines Hosts vorgenommen, so können durch IP-Spoofing
Kompetenzen vorgetäuscht werden. Daneben existieren Angriffe auf Routing-Informationen..................
Fehlerhafte Konfigurationen
Linux biete schier unendliche
Einstellungsmöglichkeiten, doch wer sich nicht gut mit der hockomplexen
Materie auskennt, der dürfte sich relativ schnell im Gewirr der oft
unüberschaubaren Konfigurationen verlieren. So können zu laxe
Zugriffsrechte auf sensible Daten besonders bei Freigaben über das
Netzwerk (z.B. NFS und Samba) ein System leicht ausbeutbar machen.
Fehlerhafte Konfigurationen können
jedoch auch einen Cracker für ihn elementare Meldungen bezüglich
des Systems überlassen: Unnütze Auskunftsdienste (z.B. finger)
und überflüssige Zugriffsmöglichkeiten (z.B. FTP und HTTP)
lassen den Angreifer schnell an die begehrten Informationen (z.B. eingerichtete
Benutzer und eingesetzte Software) kommen, die ihm einen ersten Schritt
ins System überhaupt erst ermöglichen werden - Ein System kann
erst angegriffen werden, wenn einem die Eckdaten bekannt sind.
Besonders begehrte Schwachstellen sind
Default-Passwörter. Der Hersteller pflanzt bei der Erstellung seiner
Software oft eine kleine Hintertür für Notfälle in Form
eines inoffiziellen Passwortes ein. Solche Standart-Passwörter werden
in der Cracker-Szene jedoch oft schnell weitergereicht, und so wird vielen
von ihnen ohne grössere Probleme der Eintritt in geschützte Systeme
ermöglicht werden. Am besten löscht oder ändert man sofort
die Default-Logins, damit keine Schlupflöcher bestehen bleiben können.
Wer für die Betreuung eines
Hosts verantwortlich ist, der sollte stets bestens über die eingesetzte
Software unterrichtet sein. Besonders wichtig ist diese Botschaft für
alle Administratoren, die sich mit der Konfiguration einer Firewall herumschlagen
müssen. Eine Firewall ist in keinem Fall ein Allheilmittel, vor allem
nicht, wenn sie sich in unbeholfenen Händen befindet. Die Sicherheit
eines Systems wird schlussendlich massgeblich von der Kompetenz des Betreibers
beeinflusst und ein Blick in das Handbuch ist nie als verkehrt anzusehen.
Fehlerhafte Software
Benutzer können sich manchmal
selbst erweiterte Rechte verleihen, was auf fehlerhaft und schlampig programmierte
Software zurückzuführen ist. Das Gefahrenpotential steigt ins
Unermessliche, wenn das Produkt selbst ein hohes Mass an Rechten einfordert
oder vererben kann. Besonders beliebt gegen solche Programme sind Bufferoverflows,
bei denen der Puffer eines Programms so überschrieben wird, dass man
in den Besitz von erweiterten Rechten kommt. Dadurch lassen sich zum Beispiel
geschützte Dateien einsehen, überschreiben oder eine Shell mit
Root-Rechten hinzaubern. Gefährlich werden Pufferüberläufe
bei Server-Software, die über das Internet ansprechbar ist. Neue Meldungen
über erfolgreiche Bufferoverflow-Attacken machen in der Cracker-Szene
praktisch täglich und relativ schnell die Runde, so wird es nur eine
Frage der Zeit, bis der erste vermeindlich erfolgreiche Angriffsversuch
auf das eigene System gefahren wird.
Eine andere Sicherheitslücke
kann durch Race-Conditions geöffnet werden. Dabei verändert ein
Programm bewusst die Zugriffsrechte auf eine Datei, um manipulativ jene
modifizieren zu können. Wird nun das Zeitfenster zu gross angesetzt
oder das Zurücksetzen der Permissions vergessen oder verhindert, können
Angreifer die gelockerten Zugriffsrechte zum eigenen Vorteil ausnutzen.
Ein ähnliches Problem wie das der
Race-Conditions tritt bei Symlinks zu Tage. Viele Programme mit einer grossen
Macht nutzen von allen les- oder schreibbare verlinkte Dateien. Das Ausnutzen
der dadurch entstehenden grösseren Befehlsgewalt bleibt dann nur noch
dem findigen Angreifer überlassen.
Destruktive Angriffe in höchstem
Masse werden DoS-Attacken genannt. Das Akronym "DoS" steht in diesem Zusammenhang
für "Denial of Service" und bezeichnet die Kunst bzw. den Unsinn des
Unzugänglichmachens einer Ressource. In einzelnen Fällen kann
ein Server-Daemon eines Systems bezwungen, oder gleich das gesamte System
heruntergerissen werden. Die Ursache für den Erfolg dieser oft gesehenen
Angriffs-Form ist auf fehlerhafte Reaktionen von Systemen auf angeblich
unvorhersehbare Aktionen zurückzuführen. Grösserer Beliebtheit
verschafften sich in den vergangenen Monaten DDoS-Attacken (Distributed
Denial of Service). Bei dieser Angriffsform werden mehrere Hosts in einem
Netzwerk manipulativ für einen sehr grossflächigen Angriff auf
ein einzelnes Gerät missbraucht. Die Durchschlagkraft solcher Aktionen
ist enorm, wie die Schlagzeilen (Stichwörter "Yahoo" und "Ebay") der
vergangenen Monate sehr imposant verdeutlichten.
Die Entwickler der Software versuchen
beim Bekanntwerden einer Lücke stets so schnell wie möglich mit
Patches und Bugfixes zu reagieren. Es empfiehlt sich deshalb ein wachsames
Auge auf die aktuellen bekannten Schwachstellen in der eingesetzten Software
zu haben (z.B. Security-Seiten im World Wide Web), und gegebenenfalls mit
der Installation der zur Verfügung gestellten Updates zu reagieren.
Um die Gefahren durch schlechte Konfigurationen und fehlerhafte Software
möglichst klein zu halten, sollte man bestmöglich auf nicht zwingend
erforderliche Elemente verzichten: Das Deinstallieren der besagten Pakete
gilt als die sauberste Lösung für solche Fälle.
Es gibt aber auch die Möglichkeit,
dass Software von Dritten zur Korrumpierung des Systems modifiziert oder
entwickelt wurde. Diese Machwerke unterscheidet man zwischen Viren und
trojanischen Pferden. Viren sind unter Linux eigentlich kein erwähnenswertes
Thema, da die System-Architektur ein Ausbreiten der sich selber reproduzierenden
Codezeilen nur begrenzt zulässt. Gefährlicher wird es, wenn man
auf das Thema der trojanischen Pferde zu sprechen kommt: Ein trojanisches
Pferd ist in der Computer-Welt ein Programm, welches sich einer zuvor definierten
Aufgabe annimmt, jedoch im Hintergrund, meist ohne das Wissen des Initiators,
zusätzlich das System unerlaubt beeinflusst. Dies kann das Ausspähen
von Passwörtern oder Einrichten einer Hintertür sein.
Programme sollte man bestmöglich
vor der Compilierung einer genauen Studie des Quelltextes unterziehen,
um eventuelle verborgene Funktionen gar nicht erst eine Start-Chance zu
gewähren. Das Beziehen von Software über das Internet sollte
stets direkt vom Hersteller geschehen, um eine Einschleusung von korruptem
Programmcode durch Dritte zu umgehen. Eine Checksumme zur Verifizierung
eines komplett unangetasteten Programms sollte erwünscht oder gar
Pflicht sein. Aktuelle Viren-Scanner können zudem in gewissem Masse
gefährlich erscheinende Sequenzen oder auffällige Zeichenketten
aufspüren, um vor der effektiven Ausführung des Programms zu
warnen.
Fazit & Schlusswort
Die Vorteile der hohen Komplexität
und Funktionalität von Linux sind gleichzeitig seine Schwächen.
Der Besitz von gesundem Menschenverstand und einer gehörigen Portion
Wissen sowie Erfahrung ist in erster Linie der beste Schutz für das
eigene System. Zwar lassen sich dadurch Mängel von Programmierfehlern
in der System- und Sicherheitsarchitektur nicht verhindern, doch
ist man dabei mit einem schnellen Reagieren durch Updates meist gut beholfen.
Zusätzlich sollte man das aktuelle System auf bekannte Schwachstellen
prüfen. Die langwierige und nervenaufreibende daraus entstehende Arbeit
kann einem von Security-Scannern (z.B. SAINT und NESSUS) abgenommen werden.
Sicherheit ist ein stetiger Kampf, den es nicht zu verlieren gilt...
Zusätzliche und weiterführende
Security-Links
| E |
AntiCode |
http://www.anticode.com/ |
| D |
AREAsec |
http://www.aerasec.de/security/ |
| E |
Astalavista |
http://astalavista.box.sk/ |
| D |
Computec |
http://www.computec.ch/ |
| D |
Computer Security |
http://www.computer-security.de/ |
| D |
Kryptocrew |
http://www.kryptocrew.de/ |
| E |
PacketStorm |
http://packetstorm.securify.com/ |
| E |
Rootshell |
http://www.rootshell.com/ |
| E |
SecuriTeam |
http://www.securiteam.com/ |
| E |
Security Focus |
http://www.securityfocus.com/ |
| E |
Security Bugware |
http://oliver.efri.hr/~crv/security/ |
| E |
UUSRback |
http://www.ussrback.com/ |
| |
Ihr Name: Besucher (nicht angemeldet).
Online: 1 aktive User.
|
|
Anmelden | Abmelden |
|
|
Benachrichtigen bei Änderungen: |
|
|
|
|
Antivirus-Infos: |
|
|