Solyaris #3: FAQ / Motivation

| | Comments (0) | TrackBacks (0)
Hier eine FAQ, warum ich mich entschieden habe ein Rootkit zu entwickeln.

Was ist ein Rootkit?

Auf Wikipedia steht: Ein Rootkit ist dafür da, Root zu behalten. (1)
Es stellt also erstens Möglichkeiten bereit, auf ein System zuzugreifen, z.B. per Network Backdoor, oder ein Lokales Backdoor zur Rechteerhöhung. Zweitens soll es dem Angreifer seine Präsenz auf dem System verbergen, indem es Prozesse, Dateien und Netzwerkverbindungen versteckt. Drittens kann es noch Tools beinhalten, welche den Angreifer unterstützen, z.B. Log Cleaner oder Password Sniffer.

Es ist also ein Werkzeug, um mit dem kompromitierten System arbeiten zu können.


Was sind die Ziele von Solyaris?

Stealth.

Alle bisherigen Rootkits verstehen unter Stealth, dass sie sich möglichst nicht lokal entdecken lassen. Diese Gebiet ist gut erforscht und sehr interessant, aber es wird wohl immer möglich sein, Kernel Rootkits zu entdecken.
Aber: wer lässt schon regelmässig einen rootkitchecker auf seinen Servern laufen?

Wie sieht es aber mit der Kommunikation des Backdoors des Rootkits aus? Diese könnte einfach entdeckt werden, wenn ein Host anfängt, Packete an nicht offenen Ports zu empfangen oder Packete zu senden, welche der Firewall blockt und loggt.
Die Lösung heisst Covert Channels, also das übertragen von Daten über bestehende Kanäle, die eigentlich nicht dafür gedacht sind. Zusätzlich sollte nicht nur ein Covert Channel benutzt werden, sondern möglichst viele auf einmal (Channel Hopping)

Usability.

Es gibt viele Rootkits, aber keines scheint wirklich aktuell, benutzerfreundlich, stabil und einfach brauchbar zu sein. Gewünschte Features wären hier noch: Encryption, Authentifizierung, Packet Forwarding, guter Client.
Was Metasploit für Exploits ist, soll Solyaris für Rootkits werden.


Was sind spezifische Features von Solyaris?

Snaut

Rheya ist ein Kernel Rootkit. Kernel programming ist aber mühsam, nur schon das auflisten aller Dateien eines Verzeichnisses bräuchte hunderte Zeilen Code.
Andere Rootkits umgehen das mit Syscall Proxying/Forwarding, oder eigenen VM's.
Ich habe mich entschieden, einfach eine Userspace Komponente zu integrieren, welche ich Snaut getauft habe. Snaut ist ein normaler Prozess, wird vom Kernel Rootkit versteckt, welcher auch über ein Chardevice mit ihm kommuniziert.

Der Client kann dann entweder mit Rheya kommunizieren, und das Rootkit dadurch konfigurieren und rudimentäre Funktionen ansteuern.
Oder er redet mit Snaut, indem er Rheya veranlasst, die Daten zu Snaut zu forwarden. Da Snaut im Userspace läuft, kann man durch ihn jegliche gewünschte Funktionalität implementieren, ohne durch den Kernelspace eingeschränkt zu sein.

Covert Channel Hopping

Die Kommunikation soll so versteckt wie möglich stattfinden. Solyaris wird so entwickelt, dass die Kommunikation mit Rheya genau so wie ganz Normaler Traffic aussieht. Es ist sogar so, dass das Backdoor nur über Covert Channels anzusprechen ist, der legetimate Channel muss also vorhanden sein!
Das Bedeutet: Falls Solyaris auf einem Webserver installiert wird, wird der HTTP Covert Channel verfügbar, ist es auf einem DNS Server installiert, der DNS Covert Channel etc.
Siehe auch: Protocol Hopping Covert Channels


Vielleicht werde ich später noch ausführlichere Artikel über diese Themen schreiben.

(1) Die Englische Wikipedia hat es wieder mal falsch

0 TrackBacks

Listed below are links to blogs that reference this entry: Solyaris #3: FAQ / Motivation.

TrackBack URL for this entry: http://www.broken.ch/mt/mt-tb.cgi/8

Leave a comment

About this Entry

This page contains a single entry by dobin published on September 5, 2008 9:57 PM.

Solyaris #2 was the previous entry in this blog.

Solyaris #4: Covert Channels; Verbindungslose Protokolle is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages