SATAN ist ein Werkzeug, insbesondere für System-Administratoren gedacht, das von Dan Farmer und Wietse Venema entwickelt und verbreitet wurde. Es läuft auf den gängigsten UNIX-Plattformen und benötigt unter anderem PERL 5.0 sowie einen WWW-Browser, wie Netscape, Mosaic oder auch einfach Lynx. Der Name SATAN ist ein Akronym und steht für Security Administrator Tool for Analyzing Networks was mit Werkzeug für Sicherheits-Administratoren zur Analyse von Netzwerken übersetzt werden könnte. Einmal gestartet, kann sich der Benutzer mittels einer sehr komfortablen Benutzerführung, wie mausgesteuerten Menüs, die Schwachstellen eigener oder per Netzwerk erreichbarer Systeme anzeigen lassen. Insbesondere letzteres hat im Internet zu heftigen Diskussionen und Kontroversen und nicht zuletzt deswegen zu einer hohen Bekanntheit von SATAN geführt. Tatsächlich deckt SATAN nur sehr oberflächliche Sicherheitslücken auf, die den meisten Systemadministratoren -und natürlich auch Hackern- eh' schon bekannt sind. Vielmehr liegt der Sinn von SATAN darin, noch unerfahrenen Administratoren erste Hinweise darauf zu liefern, was an ihrem System noch besser geschützt werden muss, um möglichen Hackern den allzu leichten Zugang zu verwehren. So liefert SATAN denn auch, nachdem Verwundbarkeiten des Systems aufgedeckt wurden, auch sogleich Lösungsvorschläge, um die Sicherheitslücken erfolgreich zu schließen.

SATANs Nutzen liegt den Autoren zufolge am ehesten bei den Administratoren, die sich für die Sicherheit ihres Systems verantwortlich zeichnen. Dennoch wird SATAN frei im Internet verteilt, um prinzipiell jedem Benutzer die Möglichkeit zu geben, sich davon zu überzeugen, dass sein System den wichtigsten Sicherheitsaspekten genügt. Denn, so die Philosophie der Autoren, alles was SATAN über ein Netzwerk herausfinden kann, kann auch ein normal begabter Eindringling erkennen und ausnutzen. Durch diese Politik der Veröffentlichung werden Sysops quasi dazu gezwungen, SATAN zumindest auf ihre eigene Netzwerke loszulassen, um damit möglichen Eindringlingen zuvorzukommen.

Dan Farmer ist Kalifornier und bezeichnet sich selbst als Computer-Spion. Bis zur Veröffentlichung von SATAN war er Sicherheitsberater bei SiliconGraphics, jedoch war nach der entstandenen Aufregung um SATAN dieser Gesellschaft das mit Dan Farmer verbundene negative Image offenbar zu gefährlich. Er wurde mit der Begründung entlassen, die Freigabe von SATAN sei nicht mit der Firmenpolitik von SiliconGraphics zu vereinbaren. Dennoch dürfte er sich mit seinem Bekanntheitsgrad in der Administratoren-Szene wohl keine großen Sorgen um die Zukunft machen müssen. Er lebt in San Francisco und schreibt die meisten seiner Programme unter UNIX in awk, perl, shell und C.Wietse Venema ist Kernphysiker und arbeitet an der Technischen Universität in Eindhoven, Niederlande. Sein Spezial-Gebiet ist neben diversen anderen das UNIX-Betriebssystem und das Schreiben von Sicherheitstools. Offenbar kennen sich die beiden über das Internet und liefern somit ein anschauliches Beispiel für ein erfolgreiches Projekt, das über die Kommunikationsmöglichkeiten dieses Mediums entstand und durchgeführt wurde. Dan selbst bezeichnet es als Glücksfall, dass er im Zeitalter der Elektronik lebt, was ihm wiederum erlaubt über diese Distanz mit Wietse zusammenzuarbeiten.

Wo krieg ich Satan her?

https://www.fish.com/satan/index.html Zudem liefert Xarchie oder ein ähnliches ftp-such-tool eine Vielzahl von ftp-Adressen in Europa, von denen SATAN bezogen werden kann. Hierbei sollte man darauf achten, die neuste Version von SATAN zu bekommen (Stand bei Erstellung dieses Dokuments: Version 1.1.1). Denn, so erkennt SATAN ab der Version 1.1, beinhaltet SATAN 1.0 noch selbst eine Sicherheitslücke. Wie bereits erwähnt, läuft SATAN auf einem beliebigen WWW-Browser und unter PERL 5.0 . Somit müssen diese Programme ebenfalls auf dem System lauffähig sein. PERL 5.001 ist jedoch noch nicht so weit verbreitet. SATAN benötigt jedoch diese Version, gibt aber auch selbst in seinen Begleitdokumenten diverse Stellen an, woher dieses Programmpaket bezogen werden kann. Da dieses Paket für Linux jedoch sehr neu ist, gab es weitere Schwierigkeiten. Denn in letzter Zeit vollzieht sich auf den Linux-Systemen der Wandel weg von den a.out-Binaries hin zu den Elf-Binaries. Da die Linux-Gemeinde der Meinung ist, daß zukünftig dieses Format unterstützt werden sollte, sind die neueren Distributionen alle auf dieses Format ausgelegt, während die etwas älteren Versionen noch auf dem alten Format laufen.+PERL 5.0 wird nun also, um diesen Wandel zu beschleunigen, nur als Elf-Binary ausgeliefert, wie annähernd alle neuen Binaries für Linux.

Auf LINUX ist SATAN immer noch nicht lauffähig. Zum Glück gibt es aber mittlerweile einen speziellen Patch, der hierbei Abhilfe schafft. Der Patch ist leider undokumentiert und etwas ungewöhnlich in der Handhabung, nach etwas herumtüfteln lässt sich dann endlich SATAN installieren.

Installation, Konfiguration und Start

Wenn endlich alle benötigten Programme und Patches verfügbar sind, ist die Inbetriebnahme von SATAN selbst sehr leicht. In der Folge -in Kurzform- eine Übersicht über die benötigten Schritte:

# tar -zxf satan-X.X.tar.gz
$ zcat satan-X.X.diff.gz |  patch
$ cd satan-X.X
$ reconfig
$ vi Makefile
$ make linux
$ ./satan &

Die Arbeitsweise vom Satan

Überaus interessant gestaltet sich die Arbeitsweise von SATAN. Die Benutzung erfolgt mittels HTML-Seiten und einem WWW-Browser, wie beispielsweise Netscape. Dabei ist die Kombination von HTML-Seiten und PERL-Skripten der eigentliche Clou. Bisher waren die meisten Tools für System-Administratoren unter UNIX sehr benutzerunfreundlich. Fast alle waren lieblos und rein technisch wirkende, auf reinem ASCII-Zeichensatz basierende Hilfsprogramme. Aufgrund vieler Optionen und Manuals, die umständlich nachgeschaut werden mussten, wurden sie nur von erfahrenen UNIX-Benutzern richtig verstanden. Eine leichte Besserung trat dann mit Programmen auf, die eine farbige Pseudo-Grafik --vergleichbar beispielsweise mit den BTX-Seiten der Telekom oder Videotext-Seiten-- verwendeten. Diese Programme verwendeten beispielsweise GROFF oder NCURSES um eine halbwegs annehmbare Ein- und Ausgabe zu erzeugen. Insbesondere hier zeigt SATAN völlig neue Wege auf. Die Standard-Seiten von SATAN, die also nicht auf gewisse Programmabläufe reagieren müssen, sind simple HTML-Seiten. Ein Beispiel hierfür ist das Control-Panel, das beim Aufruf von SATAN angezeigt wird. Der ausgewählte WWW-Browser zeigt uns hier ein einfaches Dokument an, auf dem einige Referenzen zu finden sind. Wenn man diese Referenzen per Mausklick aufruft, befinden sich dahinter:

  • Weitere statische (lokale) HTML-Seiten wie z.B. Hilfetexte-,

  • HTML-Seiten im WWW (global) wie z.B. die WWW-Seiten der Autoren- oder aber

  • von SATAN aufgrund des Programmablaufes generierte HTML-Seiten. Diese Standard-Seiten reichen für die meisten Informationen zu SATAN völlig aus, so geben sie beispielsweise Hilfen zur Arbeitsweise von SATAN, bis hin zu kompletten Tutorien, wie bestimmte Sicherheitslücken, die SATAN entdeckt hat, zu beseitigen sind.

Perl generierte HTML - Seiten

Alles weitere, was durch statische Seiten nicht abgedeckt werden konnte, wird durch PERL-Skripte erledigt: dabei erzeugt ein PERL-Skript, dass über den Umweg von Referenzen in einer HTML-Seite angestoßen wird, eine Ausgabe in einen Datenstrom, der vom WWW-Browser dann als HTML-Seite interpretiert wird. Genauer gesagt, wird dieser Datenstrom vom Hauptprogramm auf den Port 1036 geführt. Der Browser wird veranlasst, diesen Port abzuhören, interpretiert die dort ausgegebenen Daten als die Antwort eines vermeintlichen http-Dämons und gibt somit die Texte in entsprechender Form aus.

# print <<EOF
<HTML>
<HEAD>
<title>SATAN</title>
<LINK REV="made" HREF="mailto:satan\@fish.com">
</HEAD>
<BODY>
<H1>
...
<UL>
<dt><IMG SRC="dots/blackdot.gif" ALT="*">
<A HREF="$HTML_SERVER/running/satan_run_form.pl">
<STRONG> SATAN Target selection</STRONG></A>
<p>
<dt><IMG SRC="dots/blackdot.gif" ALT="*">
<A HREF="satan_documentation.HTML">
<strong> SATAN Documentation</strong></A>
<p>
</UL>
<HR>
</BODY>
</HTML>
EOF

Wie wir an diesem kurzen Beispiel erkennen können, ist der erste Link ein weiteres PERL-Skript, das mittels Mausklick auf die Referenz aktiviert wird und eine weitere HTML-Seite erzeugt, wohingegen der zweite Link eine statische HTML-Seite im lokalen Filesystem darstellt.

Interaktion der eigenen Prozesse

In einem ,,normalen`` Programm genügt es jedoch i.A. nicht, einfach nur standardgefertigte Ausgaben zu vollziehen. Programme reagieren auf verschiedene Anweisungen des Benutzers, verschiedene Optionen können eingestellt werden, Ergebnisse wollen gespeichert werden. Im Falle von SATAN ist es beispielsweise möglich, die IP-Adresse eines zu scannenden Rechners mittels einer Bildschirmmaske anzugeben oder auf verschiedene Auswahl-Knöpfe zu klicken, um die Stufe des Scans (leicht, mittel, stark) zu bestimmen. Die Masken werden dabei wiederum von HTML zur Verfügung gestellt (sogenannte forms). Die Werte werden dann in globalen Variablen gespeichert und können auf diese Weise von den angesprochenen PERL-Skripten verarbeitet werden. Wir man hier sehen kann, stehen in SATAN auf pfiffige Weise sowohl ein Kontroll- fluß zwischen verschiedenen Unterprogrammen, als auch Variablen, die deren Ablauf beeinflussen und die Ergebnisse speichern zur Verfügung. Das Hauptprogramm ist eigentlich der WWW-Browser, der über die Links zwischen den einzelnen Seiten hin- und herschaltet.

Erkennen von Sicherheitslücken

Der Zweck von SATAN ist das Aufspüren und Beheben von Sicherheitslücken. Dazu muss SATAN als erstes mitgeteilt werden, welcher Rechner überhaupt untersucht werden soll. Dazu kann man in einer Bildschirmmaske einen beliebigen Rechnernamen angeben. Bevor man übrigens einen ,,fremden'' Rechner untersucht, darauf weisen die Autoren ausdrücklich hin, sollte man entgegenkommenderweise den Administrator dieses Rechners darüber in Kenntnis setzen und um Erlaubnis bitten. Sollte dies nicht geschehen, so könnte ein solcher Scan als durchaus unhöfliche, wenn nicht gar feindliche Aktion bewertet werden. Mittlerweile gibt es auch einige Mittel und Wege, um einem Systemadministrator sofort anzuzeigen, dass sein Unternetz gerade von SATAN ,,besucht'' wird. Genau wie SATAN ist dieser SATAN-Detektor frei im Internet erhältlich. Als nächstes kann man sich aussuchen, ob man nur den einen Zielrechner, oder das ganze Unternetz um diesen Rechner herum untersuchen möchte. Denn, selbst wenn ein Rechner für sich sicher ist, so ergeben sich durch unsichere Nachbarn im lokalen Netz dennoch Gefahren, auch für den sicheren Rechner.

Darüber hinaus bietet SATAN drei verschiedene Scan-Stufen an: Leicht, Mittel und Starker Scan.

  • ,,Leicht'' kratzt den Rechner nur sehr oberflächlich an und sollte kein weiteres Aufsehen erregen,

  • ,,Mittel'' könnte in logfiles erkannt werden (vermutlich je nach Konfiguration von syslogd ) und

  • ,Stark'' schließlich könnte gar Fehlermeldungen auf der Systemkonsole erscheinen lassen. Wie man auch hieran sieht, wäre es sicherlich sinnvoll den Admin des Rechners zu informieren, bevor man einen solchen Scan startet und hernach womöglich als feindlicher Hacker betrachtet wird. Nachdem also die Optionen des Scans ausgewählt wurden, startet man mittels Mausklick den Vorgang. Anschließend fängt SATAN an Daten zu sammeln, was einige Minuten pro zu durchforstendem Rechner in Anspruch nimmt, bei ganzen Subnetzen kann dies somit leicht in die Stunden gehen.

Beheben erkannter Sicherheitslücken

Auch ohne das Erkennen von Verwundbarkeiten kann sich der interessierte Benutzer jederzeit in der Dokumentation anschauen, welche Verwundbarkeiten SATAN derzeit bekannt sind, wieso diese Verwundbarkeiten darstellen und was ein Systemadministrator tun kann, um solche Verwundbarkeiten zu beseitigen. Zielgerichteter geht es in einem speziellen Fall, in dem eine Sicherheitslücke erkannt wurde. In einem solchen Falle kann man z.B. auf den Text klicken und bekommt daraufhin eine ausführliche Hilfeseite angezeigt, die diverse Informationen über diesen Punkt beinhaltet:

  • Zusammenfassung - benennt die Sicherheitslücke in kurzen Schlagworten

  • Auswirkung - was kann das Vorhandensein dieser Sicherheitslücke bewirken?

  • Hintergrund - ein wenig Hintergrundwissen als Dreingabe

  • Das Problem - eine genauere Aufschlüsselung der Auswirkungen

  • Behebung - zeigt, wie die Sicherheitslücke wirkungsvoll eliminiert werden kann

  • Weitere Tipps