Debian enthält verschiedene Tools zur Erkennung von Eindringlingen, die Sie vielleicht dazu benutzen wollen, Ihr lokales System zu verteidigen (wenn Sie wirklich paranoid sind oder Ihr System wirklich kritische ist) oder um andere Systeme im gleichen Netzwerk zu verteidigen.
Beachten Sie immer, dass Sie, um Ihre System-Sicherheit mit einer dieser Tools wirklich zu verbessern, einen Alarm-und-Antwort-Mechanismus brauchen Benutzen Sie also keinen Eindringlings-Erkennung, wenn sie niemanden alarmieren werden (d.h. verschwenden Sie nicht Ihre Zeit damit, Dinge zu konfigurieren, die Sie später nicht benutzen werden).
Die meisten Eindringlings Erkennungs Tools werden entweder auf Syslog protokollieren oder E-Mails, über einen bestimmten erkannten Angriff, an den Root-User senden (die meisten können umkonfiguriert werden, um stattdessen einem anderen User E-Mails zu schicken). Ein Administrator muss sie passend konfigurieren, so dass falsche Positivmeldungen keinen Alarme auslösen, und so diesen Alarmen die notwendige Aufmerksamkeit geschenkt wird. Alarme können auf einen laufenden Angriff hindeuten und wären - sagen wir mal einen Tag - später nicht mehr nützlich, da der Angriff dann bereits erfolgreich beendet worden sein kann. Stellen Sie also sicher, dass es eine passende Regelung über die Behandlung von Alarmen gibt, und das technische Maßnahmen zur Handhabung statt finden.
Eine Interessante Quelle für Information ist CERT's
Intrusion Detection Checklist
Snort
ist ein flexibler Packet Schnüffler oder logger, der
Angriffe durch Nutzen einer Angriffs-Signatur-Bibliothek erkennt. Es erkennt
eine breite Palette von Angriffen und Tests, wie zum Beispiel
Speicher-Überläufe, stealth Port scans, CGI Angriffe, SMB Tests und vieles
mehr. Dies ist in Tool, das auf jedem Router installiert werden sollte, um ein
Auge auf Ihrem Netzwerk zu haben. Installieren Sie es einfach mit
apt-get install snort, folgen Sie den Fragen und beobachten Sie
die logs.
Debians Snort kommt mit vielen eingeschalteten Sicherheits Checks, die Sie vielleicht haben möchten, jedoch sollten Sie das Setup anpassen, um bestimmte Dienste auf Ihrem System zu berücksichtigen. Sie möchten vielleicht auch zusätzliche Tests speziell für Ihre Dienste nutzen.
Sie können snort
sowohl dazu benutzen, eine
Netzwerk-Eindringlings-Erkennung für viele Hosts in Ihrem Netzwerk zu
etablieren, als auch um Angriffe gegen Ihren eigenen Host zu erkennen.
Es gibt noch andere Tools, die dazu benutzt werden können, Netzwerk Angriffe zu
erkennen (sogar einfacherere). Portsentry
ist ein anderes
interessantes Paket, dass Sie warnen kann, wenn jemand Ihre Seite scannt.
Andere Tools, wie ippl
oder iplogger
erkennen
außerdem bestimmte IP (TCP und ICMP) Angriffe, auch wenn Sie keine
fortgeschrittenen Techniken zur Erkennung von Netzwerk Angriffen haben (was
snort kann).
Sie können jedes dieser Tools mit dem idswakeup
Programm testen.
Hierbei handelt es sich um einen Falsch-Positiv Generator, der NIDS mit einer
Auswahl der üblichen unter Debian verfügbaren Angriffs-Signaturen alarmiert.
Tiger
ist ein bewährtes Eindringlings Erkennungs Tools, dass seit
der Woody Distribution auf Debian portiert wurde. Tiger bietet Tests von
allgemein üblichen Dingen, in Bezug auf Einbrüche, Tests der Passwort-Stärke,
Dateisystem Probleme, kommunizierende Prozesse.... Die Debian Version umfasst
neue, Debian spezifische Tests: md5-Summen von vorhandenen binaries, und Test
auf installierte und verwundbare Pakete. Die standard Installation lässt
tiger
jeden Tag einmal laufen und einen Report erstellen, der an
den Superuser geschickt wird. Die erstellten Reports können Informationen zu
einer geglückten Kompromittierung geben.
Protokoll-Analyse Tools, wie zum Beispiel logcheck
können
zusätzliche benutzt werden, wenn Sie angepasst wurden, um Eindring-Versuche zu
erkennen. Siehe Nutzen und anpassen
von logcheck, Abschnitt 4.11.1.
Außerdem kann jeder der Dateisystem-Integritäts-Checker (siehe Prüfen der Integrität des Dateisystems, Abschnitt 4.16.3) können sehr nützlich sein, um Anomalien in einer abgesicherten Umgebung zu erkennen. Ein erfolgreicher Eindringling wird mit höchster Sicherheit Dateien auf dem lokalen Dateisystem verändern, um die lokalen Sicherheits Regelungen zu umgehen, Trojaner zu installieren, eigene User zu erstellen... solche Sachen können mit ihnen erkannt werden.
FIXME: This section needs to cover how these specific patches can be installed in Debian using the kernel-2.x.x-patch-XXX packages.
Es gibt einige Kernel-Patches, die die System-Sicherheit signifikant erhöhen. Hier sind einige davon aufgezählt:
/tmp
,
Einschränkungen von /proc
, die Behandlung spezieller Datei
Deskriptoren, nicht-ausführbarer Teil des User-Stack und noch mehr. Homepage:
http://www.openwall.com/linux/
http://www.lids.org
http://acl.bestbits.at/
http://trustees.sourceforge.net/
http://www.kerneli.org
http://www.immunix.org/subdomain.html
http://ramses.smeyers.be/useripacct
.
http://www.freeswan.org
LKM (Loadable Kernel Modules) sind Dateien, die nachladbare Teile des Kernels enthalten. Sie werden dynamisch in den Kernel geladen und führen bestimmte Aufgaben aus. Unter GNU/Linux werden sie dazu benutzt, die Funktionalität des Kernels zu erweitern. Wenn Sie LKMs benutzen, genießen Sie einige Vorteile. Wie wir gesehen haben, können Sie dynamisch nachgeladen werden, ohne dass der Kernel neu kompiliert werden muss. Sie können bestimmte Geräte-Treiber (oder Dateisysteme) und Treiber für andere Hardware, wie Sound- oder Netzwerk-Karten, enthalten. Aber manche Cracker können LKMs für Root-Kits (knark oder adore) benutzen, um auf GNU/Linux Systemen Hinter-Türen zu installieren.
LKM Root-Kits können Prozesse, Dateien, Verzeichnisse und sogar Verbindungen
verstecken, ohne den Quellcode irgendeines Binaries verändern zu müssen. Zum
Beispiel kann ps
Prozess Informationen aus /proc
beziehen, ein bösartiges LKW kann den Kernel untergraben, so dass er einen
bestimmten Prozess vor dem procfs verheimlicht. So kann noch nicht einmal eine
selbst erstellte, unangetastete Kopie des ps
Binary alle Prozess
Informationen korrekt auflisten.
Die Sucharbeit kann einfach und schmerzlos sein, oder schwierig und ermüdend, ganz abhängig von der Maßnahme, die Sie benutzen. Es gibt zwei Verteidigungs-Maßnahme zur Sicherheit bei LKMs, die pro-aktive, und die reaktive.
Der Vorteil dieser Verteidigung ist, dass hier verhindert wird, dass einige LKM Root-Kits dem System schaden. Die meist genutzte pro-aktive Verteidigung ist es, das Ziel zuerst zu erreichen, also ein LKM zu laden, das dazu da ist, das System vor Schaden durch ein böswilliges LKM zu schützen. Eine andere Maßnahme ist es, dem Kernel Fähigkeiten zu entziehen, und so das System sicherer zu machen. Zum Beispiel können Sie dem Kernel die Fähigkeit entziehen, Kernel-Module zu laden oder zu entfernen.
Sie können auf Debian Systeme einige Pakete finden, die Pro-aktive-Tools enthalten:
kernel-patch-2.4-lsm
- LSM ist das Linux Security Modules
framework
lcap
- Eine benutzerfreundliche Schnittstelle, um dem Kernel
Fähigkeiten zu entziehen (Kernel-basierte Zugriffs-Kontrolle), um das
System sicherer zu machen. Führen Sie lcap CAP_SYS_MODULE [9] aus, um sogar als Root-User keine
Module mehr laden zu können. [10]
Wenn Sie diese vielen Möglichkeiten auf Ihrem GNU/Linux System nicht brauchen, möchten Sie vielleicht die Unterstützung für ladbare Module während der Kernel Konfiguration abschalten. So werden LKM Root-Kits vermieden, aber Sie können keinen modulare Kernel benutzen. Beachten Sie auch, dass durch das Abschalten der nachladbaren Module der Kernel überladen werden kann. Manchmal ist dies nicht notwendig.
Um die Unterstützung für nachladbare Module abzuschalten, setzen Sie einfach
CONFIG_MODULES=n in .config
.
Der Vorteil reaktiver Verteidigung ist, dass das die System Ressourcen weniger überlädt. Sie funktioniert durch das Vergleichen von einer Tabelle für System-Aufrufe mit einer bekanntermaßen sauberen Kopie (System.map). Der augenscheinliche Nachteil ist, dass der Systemadministrator erst davon erfährt, wenn das System bereits kompromittiert wurde.
Die Entdeckung von Root-Kits vollbringt unter Debian chkrootkit
.
Das Programm Chkrootkit
prüft Anzeichen von Root-Kits auf dem lokalen System und stellt fest, ob der
Computer mit einem Root-Kit infiziert ist.
Sie können auch KSTAT
(Kernel Security
Therapy Anti Trolls) von S0ftproject group benutzen. KSTAT prüft den Bereich
des Kernel-Speichers (/dev/kmem
) auf Informationen über den Ziel
Host, einschließlich der Installation von ladbaren Kernel-Modulen.
FIXME: Add info on how to compile the kernel w/o lkm support?
Dies ist wahrscheinlich der instabilste und lustigste Abschnitt, da ich hoffe, dass manche der "Wow, das klingt verrückt" Ideen realisiert werden. Nachfolgend einer Liste von ein paar Ideen — abhängig von Ihrem Standpunkt aus können Sie sie für genial, paranoid, verrückt oder sicher halten — um Ihre Sicherheit schnell zu erhöhen. Unbeschädigt werden Sie sie aber nicht überstehen.
/bin
, /sbin/
,
/usr/bin
, /usr/sbin
und /usr/lib
(und
ein paar andere von den üblichen Verdächtigen) und gehen Sie freizügig mit
chattr +i command
um. Machen Sie dies auch mit den Kernel
Dateien. Nun mkdir /etc/.dist/
, und kopieren Sie alles von
/etc/
an abwärts dort hinein (ich mach das in zwei Schritten,
indem ich ein /tmp/etcdist.tar
benutze, um Rekursionen zu
vermeiden). (Optional können Sie auch einfach nur ein
/etc/.dist.tar.gz
erstellen) -- und markieren Sie alles als
"immutable".
Der Grund für all dies ist, den Schaden zu begrenzen, den Sie anrichten können,
wenn Sie als root eingeloggt sind. Sie können keine Dateien mit einer
fehlgeleiteten Umleitung überschreiben, und Sie werden Ihr System nicht durch
ein fehl-platziertes Leerzeichen im rm -fr
Kommando unbenutzbar
machen (Sie können aber Ihren Daten immer noch einigen Schaden zufügen —
aber Ihre Bibliotheken und Programme sind sicherer).
Dies macht auch verschiedene Sicherheits- und Denial-of-Service Exploits entweder unmöglich oder weitaus schwieriger (da viele von ihnen darauf beruhen, Dateien durch die Aktionen von SUID Programmen, die isn't providing an arbitrary shell command, zu überschreiben).
Die einzige Unbequemlichkeit dabei ist es, wenn Sie irgendetwas bauen und ein
make install
auf verschiedene System-Binaries machen. Auf der
anderen Seite verhindert dies auch, dass make install
Dateien
überschreibt. Wenn Sie vergessen, das Makefile zu lesen und die Dateien, die
überschrieben werden sollen mit chattr -i zu behandeln (und die Verzeichnisse,
in denen Sie neue Dateien erstellen wollen) - schlägt das make fehl, Sie müssen
nur das chattr Kommando ausführen und make neu aufrufen. Sie können diese
Gelegenheit gleich dazu benutzen, Ihre alten bin's, libs oder was-auch-immer in
ein .old-Verzeichnis zu sichern, oder umzubenennen, oder sie zu tarnen, oder
sowas.
Beachten Sie, dass dies Sie auch daran hindert, die Pakete Ihres Systems zu
aktualisieren, da die Dateien aus den Paketen nicht überschrieben werden
können. Also möchten Sie vielleicht einen Mechanismus, der das immutable-Flag
auf allen Dateien deaktiviert, bevor Sie ein apt-get update
ausführen.
FIXME: More Content specific to Debian needed.
Wenn Sie wollen (und es implementieren können und ihm Zeit widmen können), können Sie einen vollen Honeypot mit einem Debian GNU/Linux System aufsetzen. Sie haben alle benötigten Werkzeuge, um einen allumfassendes Honeynet aufzubauen (d.h. das Netzwerk, der Honeypot ist lediglich ein falsche Server): Die Firewall, das Netzwerk Eindringlings-Erkennungs-System, und den falschen Server. Seien Sie aber vorsichtig, Sie müssen ziemlich sicher sein, dass Sie rechtzeitig alarmiert werden (siehe Die Wichtigkeit von Logs und Alarmen, Abschnitt 4.11), so dass Sie geeignete Maßnahmen einleiten können und die Kompromittierung, sobald Sie genug gesehen haben, beenden können.
syslog-ng
um die Logs des Honeypot zu dem fern-Syslog einer
Server-Maschine zu schicken.
snort
um allen eingehenden Netzwerk Verkehr auf den Honeypot mit
zuschneiden und Angriffe zu erkennen
osh
das Sie dazu benutzen können, um eine eingeschränkte Shell mit
Protokoll zu bauen (siehe den Artikel von Lance Spitzner weiter unten)
dtk
, wenn Sie das Honeynet
auch als Eindringlings-Erkennungs-Dienst benutzen wollen.
tct
), um nach dem Angriff eine Analyse durchzuführen.
Sie können mehr über das Aufstellen von Honeypots in Lanze Spitzners
exzellentem Artikel To
Build a Honeypot
(aus der Know your Enemy Serie) oder David Raikow's
Building
your own honeypot
lesen. Außerdem ist das Honeynet Project
dem Aufstellen
von Honeypots und der Analyse von Angriffen auf sie gewidmet. Dort gibt es
wertvolle Informationen über das aufsetzen von Honeypots und die Analyse der
Resultate eines Angriffs (sehen Sie sich den Contest an).
Anleitung zum Absichern von Debian
2.5 (beta) 31 mayo 2004Sat, 17 Aug 2002 12:23:36 +0200jfs@computer.org