Das SSH-Protokoll erfreut sich bei all denjenigen Administratoren großer Beliebtheit, die Unix- und Linux-Systeme über ein Netzwerk sicher verwalten möchten. Da SSH im Gegensatz zu Telnet seine Kommunikation verschlüsselt, lassen sich damit auch sensible Daten sorgenfrei übertragen. Doch was passiert, wenn ein Angreifer SSH nutzt, um seine Tätigkeiten zu verschleiern und sensible Daten auf Servern zu manipulieren?
Ein SSH-Proxy kann Unternehmen dabei helfen, die administrativen Zugänge zu schützenswerten
Systemen zu kontrollieren und gleichzeitig regulative Vorgaben zu erfüllen. Warum das notwendig ist
und wie es funktioniert, zeigt dieser Beitrag.
Grundsätzlich ermöglicht SSH den Aufbau einer sicheren, authentifizierten und verschlüsselten
Verbindung zwischen zwei Rechnern über ein unsicheres Netzwerk. Dadurch eignet sich das Protokoll
unter anderem als Ersatz für Rlogin, Telnet und Rsh, die jeglichen Netzverkehr inklusive
Kennwörtern unverschlüsselt übertragen. Zwar war das ursprüngliche Anwendungsgebiet von SSH das
sichere Anmelden an entfernten Rechnern – meistens über das Internet. Doch insbesondere die
überarbeitete Version SSH-2 beschränkt sich nicht mehr nur auf Terminalfunktionen. So lassen sich
mit SSH auch beliebige TCP/IP-Verbindungen tunneln. Dabei wird jeweils ein einzelner Port von einem
entfernten Server auf einen Client weitergeleitet oder umgekehrt, womit sich zum Beispiel eine
VNC-Verbindung absichern lässt. Auch für den verschlüsselten Filetransfer per SFTP (SSH File
Transfer Protocol) eignet sich das Protokoll. Heute hat SSH in der Systemadministration Telnet
weitgehend abgelöst und ist der De-facto-Standard für den sicheren Fernzugriff auf Unix- und
Linux-Server und Netzwerkhardware.
Des Administrators Freud wird gerade in besonders sicherheitsbewussten oder regulierten Branchen
schnell zu des Managements Leid. Der Finanzvorstand eines amerikanischen börsennotierten
Unternehmens nämlich muss beispielsweise nach dem Sarbanes Oxley Act (SOX) nachweisen können, dass
seine Finanzdaten akkurat sind und diese nicht modifiziert wurden. Andere Regularien wie der Health
Insurance Portability and Accountability Act (HIPAA) oder der Payment Card Industry Data Security
Standard (PCI) machen ähnliche Vorgaben zum Schutz persönlicher Daten und von
Kreditkarteninformationen.
Da vertrauliche Daten normalerweise von Unternehmen auf zentralen Servern gespeichert und über
spezielle Anwendungen verwaltet werden, erstellen diese Programme die notwendigen
Zugriffsprotokolle, um die regulativen Anforderungen an die Nachweisbarkeit von Datenänderungen zu
erfüllen. Allerdings können diese Anwendungen nur die legitimen Zugriffe auf die vertraulichen
Daten protokollieren. Wer aber mit Administratorrechten direkt auf die Datenbanken zugreift, kann
dort mit etwas Fachwissen alle gespeicherten Informationen an den Anwendungen und deren
Sicherheitsmechanismen vorbei manipulieren und anschließend seine Spuren aus den Server-Logs
entfernen. Andererseits brauchen Administratoren aber Superuser-Rechte, um ihre Server vernünftig
verwalten zu können.
Um das Dilemma zwischen notwendigen Administrationsrechten einerseits und Nachweisbarkeit der
Datenintegrität andererseits zu lösen, müssen Unternehmen also einen Weg finden, die Tätigkeiten
ihrer Administratoren transparent und nachvollziehbar zu machen. Ziel ist dabei nicht die
Überwachung der Mitarbeiter, sondern die nachvollziehbare Dokumentation der Aktivitäten an
sensiblen Systemen. Dies lässt sich technisch durch den Einsatz spezialisierter Proxys lösen – zur
Kontrolle und revisionssicheren Archivierung von SSH beispielsweise mithilfe eines SSH-Proxys wie
der Shell Control Box von Balabit.
Ein Proxy führt dabei selbst quasi eine Man-in-the-Middle-Attacke auf eine Datenverbindung
zwischen Administratorrechner und den zu administrierenden Systemen durch. Dabei terminiert der
Proxy eingehende Verbindungsanforderungen des Administrators zunächst selbst und baut parallel eine
eigene Verbindung zum gewünschten Zielsystem auf. Da bei SSH alle übertragenen Daten verschlüsselt
sind, kommt dem Proxy noch eine weitere Aufgabe zu: Er muss alle Daten zwischen SSH-Client und
Server zunächst entschlüsseln, prüfen, archivieren, wieder verschlüsseln und schließlich an das
Ziel weiterleiten. Von all dem bekommt der Administrator in der Regel jedoch nichts mit. Um dabei
einen revisionssicheren Audit-Trail zu erzeugen, muss der SSH-Proxy alle mitgeschnittenen Daten
zudem an einer zentralen Stelle abspeichern und dabei so verschlüsseln, dass selbst der
Proxy-Administrator auf die Audit-Daten keinen schreibenden Zugriff hat. Mithilfe eines so
genannten Audit Players können berechtigte Personen dann zwar jederzeit eine Administrationssitzung
nachvollziehen. Eine Manipulation der Aufzeichnung ist jedoch ausgeschlossen.
Da sich professionelle SSH-Proxies zudem transparent in ein Netzwerk integrieren, eignen sie
sich auch zur Kontrolle von externen Dienstleistern oder als Audit-Werkzeug für Honeypot-Systeme.
Hier stellen Sicherheitsspezialisten Server auf, die Angreifern besonders attraktiv erscheinen
sollen, jedoch mit gefälschten Daten gefüllt sind. Mithilfe eines SSH-Proxys lassen sich dann alle
Angriffsversuche auf diese Systeme aufzeichnen und jederzeit wieder abspielen, um neue Erkenntnisse
zur Absicherung der Systeme zu ermöglichen.
Intelligente Proxys können dabei noch mehr als lediglich den Datenverkehr bestimmter Protokolle
mitzuschneiden – denn wenn sie auch die Feinheiten eines Protokolls verstehen, also quasi dessen
Sprache sprechen, können sie viel differenzierter agieren und zum Beispiel unterschiedlichen
Personen bestimmte Tätigkeiten gestatten oder verweigern. So könnte ein intelligenter SSH-Proxy
etwa einem Administrator den Transfer von Dateien zum Zielsystem erlauben, anderen jedoch nicht. Da
sich diese Protokollanalyse eines Proxys auf OSI-Layer 7 abspielt, kann er auch bestimmte Kommandos
zulassen, während andere Kommandos grundsätzlich oder nur für bestimmte Personengruppen verboten
sind.
SSH-Proxies können zudem das Mehr-Augen-Prinzip bei der Serveradministration umsetzen.
Vier-Augen-Kontrollen sind etwa im Cockpit eines Flugzeugs üblich, um Fehler – unabsichtliche wie
vorsätzliche – eines Einzelnen durch eine zweite Person abzufangen. Dieses Verhaltensmuster setzt
ein Proxy folgendermaßen um: Ein Administrator möchte eine Tätigkeit auf einem Server durchführen.
Der SSH-Proxy terminiert den Verbindungsaufbau, baut aber noch keine Verbindung zum Zielsystem auf.
Erst wenn sich ein zweiter, autorisierter Administrator mit dem Proxy verbindet, stellt dieser die
Verbindung zum Server her. Beide Administratoren können dann gegenseitig ihre jeweiligen
Tätigkeiten kontrollieren.
Wer auf Grund regulativer Vorgaben die Integrität seiner Daten nachweisen muss oder will, kommt
im Bereich der Systemadministration kaum um den Einsatz eines SSH-Proxys herum. Wichtig ist, dass
sich der Proxy ohne Änderungen an bestehenden Systemen in das Netzwerk einfügt und alle
Audit-Trails so verschlüsselt, dass eine nachträgliche Manipulation ausgeschlossen ist. Da Proxies
dabei einen Single Point of Failure darstellen können, sollten sie – etwa als Appliance – redundant
auslegbar sein. Müssen neben Unix- und Linux-Servern auch Windows-Systeme geschützt werden, sollte
der Proxy auch das Remote Desktop Protocol (RDP) unterstützen.