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) or um andere Systeme im gleichen Netzwerk zu verteidigen.
Beachten Sie immer, dass Sie, um Ihre System-Sicherheit mit einerm dieser Tools wirklich zu verbessern, einen Alarm-und-Antwort-Mechanismus brauchen, also benutzen Sie keinen Eindringlings-Erkennung, wenn Sie niemanden akarmieren werden (d.H. verschwenden Sie nicht Ihre Zeit damit, Dinge zu konfigurieren, die Sie später nicht benutzen werden).
Die meisten Eindringlings Erkennungs Tolls werden entweder auf Syslog protokollieren oder Emails, über einen bestimmten erkannten Angriff, an den Root-User senden (die meisten können umkonfiguriert werden, um stattdessen einem anderen User Emails 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 Masnahmen 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 Pallete von Angriffen und Tests, wie zum Beispiel
Speicher-Überläufe, stealth Port scans, CGI Angriffe, SMB Tests und
vieles mehr. Dies iste 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 Services auf Ihrem System zu berücksichten. Sie möchten vielleicht auch zusätzliche Teste speziell für Ihre Services 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 ausserdem 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-Positv Generator, der NIDS mit
einer Auswahl der üblichen unter Debian verfügbaren
Angriffs-Signaturen alarmiert.
Tiger
ist ein bewährtes Eindringlings Erkennungs Toools, 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ärje, 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 Komprimitierung
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.
Ausserdem 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, geniesen Sie einige Vorteile. Wie wir gesehen haben können Sie dynamisch nachgeladen werden, ohne dass der Kernel neu compiliert werden muss, Sie können bestimmte Geräte-Treiber (oder Dateisysteme) und Treiber für andere Hardware, wie Sound- oder Netzwerkkarten, enthalten. Aber manche Cracker können LKMs für Root-Kits (knark oder adore) benutzen, um auf GNU/Linux Systemen Hintertü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 veheimlicht.
So kann noch nicht einmal eine selbsterstellte, unangetastete Kopie des
ps
Binary alle Prozess Informationen korrekt auflisten.
Die Sucharbeit kann einfach und schmerzloss sein, oder schwierig und ermüdend, ganz abhängig von der Massnahme, die Sie benutzen. Es gibt zwei Verteidigungsmassnahmen zur Sicherheit bei LKMs, die proaktive, und die reaktive.
Der Vorteil dieser Verteidigung ist, dass hier verhindert wird, dass einige LKM Root-Kits dem System schaden. Die meist genutzte proaktive Verteidigung ist es, das Ziel zuerst zu erreichen, also ein LKM zu laden, das dazu da ist, das System vor Schaden durch ein bösswilliges LKM zu schützen. Eine andere Massnahme 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 Proaktive-Tools enthaölten:
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 brauche, 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 nicht mehr modulare Kernel benutzen. Beachten Sie auch, dass durchd as 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 is die System Resourcen weniger überlädt. Sie funktioniert durch vergleichen Tabelle für System-Aufrufe mit einer bekanntermassen sauberen Kopie in einer Date (System.map). Der augenscheinliche Nachteil ist, dass der Systemadministrator erst davon erfährt, wenn das System bereits kompromitiert 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, einschliesslich 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
Schitten, indem ich ein /tmp/etcdist.tar
benutze um Rekursionen zu
verweiden). (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 fehlplaziertes Leerzeichen im rm -fr
Kommando unbenutzbar machen (Sie können aber Ihren Daten immernoch 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 das make install
Dateien
überschreibt. Wenn Sie vergessen, das Makefile zu lesen und die Datein,
die überschrieben werden sollen mit chattr -i zu behandeln (und die
Verezichnisse, 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-Verzeichniss zu sichern, oder
unzubennenen, oder sie zu taren, oder sowas.
Beachten Sie, dass dies Sie auch daran hindert, die Pakete Ihres Systems
upzugraden. Da die Dateien aus den Paketen nicht überschrieben werden
können. Also möchten Sie veilleicht 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-Erkennungssystem, 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 Massnahmen einleiten können und die Komprimitierung 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
mitzuscheiden 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-Service 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. Ausserdem 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) 14 febrero 2004Sat, 17 Aug 2002 12:23:36 +0200jfs@computer.org