Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
»priviligierte Ports« definiert wurden, <strong>und</strong> alle Dämonen mit Supervisor-Rechten starten<br />
mußten. Vielfach wurden diese Restriktionen aufgeweicht, <strong>und</strong> inzwischen ist es möglich,<br />
daß Dämonen mit minimalen Rechten als User auf den privilegierten Ports laufen.<br />
Wrapper können den Zugriff <strong>für</strong> bestimmte IP - Nummern sperren, <strong>und</strong> Dämonen mit<br />
Userrechten starten. Betrachtet man z.B den »smapd«, einem Wrapper aus dem TIS<br />
FWTK, der sich zwischen Kernel <strong>und</strong> Mailerdämon setzt, so basiert dieser auf einem<br />
klaren Konzept: Der »smapd« läuft zwar mit Administratorrechten, ist aber so klein <strong>und</strong><br />
übersichtlich, daß es möglich war, diesen sicher zu programmieren. Er nimmt die Daten<br />
entgegen <strong>und</strong> leitet diese an einen Mailer-Dämon weiter, der dann »nur« mit minimalen<br />
Rechten läuft. Gelingt einem Angreifer ein »buffer overflow«, so ist es möglich, daß<br />
Programme mit minimalen Userrechten gestartet werden. Man geht dabei davon aus, daß<br />
ein User auf einem UNIX-Betriebssystem keinen Schaden anrichten kann. Auch ist das<br />
Starten eines Netzwerksniffers mit Userrechten nicht so einfach möglich, da hierzu Zugriff<br />
auf RAW SOCKETS erforderlich ist. Diese Möglichkeit ist aber nur dem »root« User<br />
zugestanden. Nun lehrte die Erfahrung, daß es sehr wohl möglich ist, mit Tricks sich vom<br />
User zum Superuser zu befördern. Das gelingt durch Ausnutzung einiger der vielen<br />
internen Fehler von UNIX. Kein Hersteller hat es inzwischen geschafft, diese Probleme<br />
zuverlässig in den Griff zu bekommen. Die chroot() Umgebung begrenzt<br />
Dateizugriffsrechte auf ein Unterverzeichnis. Der Zugriff auf übergeordnete Verzeichnisse<br />
bleibt verwehrt. So erhoffte man sich, daß wenn ein Dämon, der mit minimalen<br />
Userrechten in einer »chroot()« Umgebung gestartet wird, daß ein Angreifer höchstens in<br />
einem begrenzten Bereich <strong>und</strong> mit minimalen Rechten sein Unwesen treiben kann. Diese<br />
Maßnahmen haben sich hervorragend bewährt, <strong>und</strong> halten die allermeisten erfahrenen<br />
Angreifer schon fern. Einige findige Experten haben auch dagegen ein Mittel gef<strong>und</strong>en:<br />
Sie kopieren den Befehl »mknod«, »mkfifo« <strong>und</strong> »mount« in die »chroot()« Umgebung<br />
hinein, legen das Device, z.B. /dev/kmem an, welches der aktiven Festplatte entspricht<br />
<strong>und</strong> »mounten« dieses. Dieses ist das RUNTIME- Abbild des Systemkernels in das<br />
Filesystem eingeblendet. Mit einem Editor <strong>und</strong> Suchfunktionen kann man so nach<br />
unverschlüsselten Paßworten im gesamten RAM-Bereich suchen lassen. Dieser Trick<br />
funktioniert neben UNIX auch unter NT. In anderen Fällen war es möglich, bestimmte<br />
Dämonen durch einen DoS Angriff »abzuschießen« <strong>und</strong> statt dessen ihren eigenen zu<br />
starten, der Paßworte genau dann entführt, wenn jemand mit gültigem Paßwort sich<br />
authentifiziert. Mit diesen können sich Angreifer von außerhalb normal einloggen. Es soll<br />
aber nicht verschwiegen werden, daß diese Tricks nur unter <strong>LINUX</strong> gut dokumentiert sind.<br />
Entscheidend <strong>für</strong> die Wirksamkeit dieser Maßnahmen sind die Sicherheitsmechanismen<br />
des Kernels, <strong>und</strong> hier gibt es gravierende Unterschiede. FreeBSD, OpenBSD <strong>und</strong> NetBSD<br />
besitzen (in den neuesten Versionen) einen äußerst restriktiven Sicherheitsmechanismus.<br />
So können z.B. einfache User niemals Supervisorrechte erlangen. Es ist auch nicht<br />
selbstverständlich, daß ein Administrator-Account beliebig Zugriff auf Logfiles hat. Erreicht<br />
wurde dieses u.a. dadurch, daß erweiterte Rechte eingeführt wurden, z.B »append only« -<br />
Files. D.h auch wenn jemand Administrator - Rechte besitzt, kann er niemals Logfiles<br />
verändern, oder Paßworte verändern. Er könnte jedoch ohne Probleme weitere Accounts<br />
hinzufügen, jedoch keine löschen. Ohne diese Sicherheits -Mechanismen ist ein Dämon,<br />
der in einer chroot() Umgebung <strong>und</strong> mit nur minimalen Userrechten läuft, ein<br />
Sicherheitsrisiko. Das betrifft insbesondere <strong>LINUX</strong> - Server. Bei anderen<br />
Betriebssystemen sind diese Eigenschaften in den jeweiligen »trusted« Varianten der<br />
Betriebssysteme bekannt (Trusted Solaris, Trusted Xenix....) Diese verfügen neben diesen<br />
Eigenschaften auch über erweiterte Logging-Funktionen. Unter NT 3.50 (nicht 3.51 oder<br />
4.0) existiert eine C2-Zertifizierung. Diese hat keinen Aussagewert bezüglich möglicher<br />
»buffer overflows«<br />
Wieviele buffer overflows können in einem Programm auftreten?<br />
Genaugenommen liegt es an der Sorgfalt der Programmierer, überlange Strings bei der<br />
Übergabe von Daten heraus zu filtern. Man darf aber nicht vergessen, daß schon ein<br />
einfacher Dienst (pop3) eine größere Zahl von Befehlen unterstützt. Die veröffentlichten<br />
exploits beziehen sich immer nur auf einen Befehl. Wie bei dem qpopper passiert, wurde<br />
kurz nachdem QUALCOMM das Problem beseitigt hatte, ein neuer exploit veröffentlicht.<br />
Es ist unbedingt damit zu rechnen, daß stets neue buffer overflows entdeckt werden. Da<br />
einige Dämonen auch Informationen an andere weiterleiten (DNS oder POP3 an<br />
MAILSERVER), so ist es auch möglich, daß eingeschleuste Informationen, z.B. im Mail-<br />
Erstellt von Doc Gonzo - http://kickme.to/plugins