05.02.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!