Command-and-Control-Server
Bei einem Command-and-Control-Server (C&C-Server) handelt es sich um einen Server, der dazu verwendet wird, Befehle an ein kompromittiertes System zu senden und es auf diese Art zu steuern. In den meisten Fällen wird ein solcher Server von Angreifern oder Cyberkriminellen betrieben, um unbemerkt Schadcode in das System des Opfers zu schleusen, Passwörter auszulesen, Daten zu stehlen oder zu manipulieren oder den betroffenen Rechner unbemerkt als Mitglied eines Botnetzes auszunutzen. Im Fall eines Botnetzes ist es dem Angreifer möglich, viele hunderte oder gar tausende infizierte Opfer gleichzeitig zu kontrollieren und über diesen Weg beispielsweise zentral gesteuerte DDoS-Angriffe durchzuführen oder einen Massenversand an Spam-Mails zu verursachen.
C&C-Server Architekturen
C&C-Server können in folgende Architekturen klassifiziert werden:
Sterntopologie:
Alle kompromittierten Clients sind um einen zentralen Server herum organisiert.
Abbildung 1: C&C-Server Sterntopologie
Die Sterntopologie stellt die einfachste Variante aller C&C-Server Architekturen dar. Sie kann auf unkomplizierte Art implementiert werden. Die Kommunikation zwischen C&C-Server und kompromittierten Client erfolgt auf direktem Weg, weshalb hier die geringsten Latenzen zu erwarten sind. Auf Grund der einfachen Implementierung ist diese Architektur aber auch am verwundbarsten. Da in jedem kompromittierten Client die Adresse des C&C-Servers hinterlegt werden muss, um die Verbindung zu initiieren, kann diese auch leicht von Dritten oder dem Opfer selbst entdeckt werden. Resultiert daraus der Kontrollverlust über den C&C-Server, ist das gesamte Netz und somit die Kontrolle über alle anderen kompromittierten Clients ebenfalls verloren. Es handelt sich um einen so genannten Single Point of Failure (SPOF).
Multi-Server-Topologie:
Mehrere C&C-Server sorgen für Redundanz.
Abbildung 2: C&C-Server Multi-Server-Topologie
Die Multi-Server-Topologie stellt eine Erweiterung der Sterntopologie dar. Um das Problem des SPOF zu beseitigen, werden hier mehrere C&C-Server betrieben, welche miteinander kommunizieren können und somit für Redundanz sorgen. Die kompromittierten Clients haben hier nicht nur die Adresse eines C&C-Servers hinterlegt, sondern eine Liste aller vorhandenen C&C-Server. Geht die Verbindung zu einem der Server verloren, wir automatisch eine neue Verbindung zum nächsten initiiert.
Hierarchische Topologie:
Erweiterung durch Proxy-Server zur Verschleierung der Herkunft des C&C-Servers.
Abbildung 3: C&C-Server Hierarchische Topologie
Die komplexeste Variante der C&C-Server Architekturen ist die hierarchische. Sie zeichnet sich dadurch aus, dass sie durch eine Ebene von Proxy-Servern erweitert wird. Diese fungieren als eine Art Zwischenhändler zwischen kompromittierten Client und C&C-Server. Da dem Client nur die Adresse des Proxy-Servers bekannt ist und dieser die Kommunikation zum C&C-Server weiterleitet, kann die Herkunft des C&C-Servers verschleiert werden. Dadurch ist diese Architektur besonders stabil und langlebig. Daraus resultiert allerdings der Nachteil von längeren Latenzen sowie eine kompliziertere Implementierung.
Kommunikationstechniken
Jeder kompromittierte Client muss eine Verbindung zum C&C-Server aufbauen, worüber fortlaufend die Kommunikation stattfindet. Zum Initiieren dieser Verbindung können unterschiedliche Kommunikationsprotokolle verwendet werden.
Internet Relay Chat (IRC)
Bei IRC handelt es sich prinzipiell um eine Internet-Chat-Lösung. Diese verwendet einen IRC-Channel (Gesprächskanal), der einer beliebigen Anzahl von Teilnehmern sogenannte Gesprächsrunden ermöglicht. Diese Funktionalität wird sich für die Command and Control-Struktur zu Nutzen gemacht. Sowohl der kompromittierte Client, als auch der C&C-Server verbinden sich mit dem IRC-Channel und können fortan miteinander kommunizieren und der C&C-Server kann seine Kommandos an den Client senden. Vorteil dieser Technik ist die einfache Implementierung. Nachteilig zu sehen ist, dass IRC für die Kommunikation TCP-Port 194 oder 6667 verwendet. Daher kann die Kommunikation relativ leicht entdeckt und unterbunden werden.
Webbasiert
Bei dieser Variante fungiert der C&C-Server als Webserver, mit welchem sich die kompromittierten Clients über das Internet verbinden. Diese Art der Implementierung ist ebenfalls relativ einfach, da lediglich ein Webserver betrieben werden muss, der zeitgleich das passende Webinterface für das Command-and-Control-Management hosten kann. Der große Vorteil gegenüber dem IRC-Protokoll ist, dass die Kommunikation über das HTTP-Protokoll auf TCP-Port 80 läuft. Somit ist die Kommunikation zwischen Webseitenaufrufen und Internetanwendungen getarnt und schwer zu entlarven.
Weitere Kommunikationsvarianten
Bei der Kommunikation mittels IRC und HTTP handelt es sich um die weit verbreitetsten Methoden. Es gibt darüber hinaus eine Vielzahl weiterer Varianten, die auf diese Prinzipien aufbauen. Dazu zählen Kommunikationen über das File Transfer Protokoll (FTP), Telnet, Instant Messaging Dienste wie bspw. Skype, sowie Kommunikationen über soziale Netze wie Facebook oder Twitter oder über cloudbasierte Dienste wie die Amazon Elastic Compute Cloud (Amazon EC2) oder die Google App Engine.
Wie werden die Opfer infiziert?
Die Clients müssen auf irgendeinen Weg kompromittiert werden, damit sie eine Verbindung zum C&C-Server initiieren. Hierfür gibt es verschiedene Szenarien.
Malware: Die häufigste Methode um Clients zu kompromittieren ist mittles Malware, insbesondere in Form von Viren. Dem Opfer wird das Installationsprogramm bspw. per Email geschickt oder er wird durch einen manipulierten Link zum Download verleitet. Führt das Opfer das Programm auf Grund von Unwissenheit oder versehentlich aus, ist das System infiziert und die Verbindung zum C&C-Server wird automatisch initiiert.
Eine Modifikation dieser Methode stellen die so genannten Remote Access Trojaner (RAT) dar. Hierbei handelt es sich um eine spezielle Art von Malware, die in einem als nützlich getarnten Programm versteckt ist. Das Opfer führt also eine Installationsdatei aus von der er denkt, es wäre ein legitimes Programm. In Wahrheit wird der RAT installiert, welcher die Verbindung zum C&C-Server aufbaut. Dies wird in diesem Zusammenhang auch als Backdoor bezeichnet.
Es besteht ebenfalls die Möglichkeit, dass diese Backdoor direkt von einem Angreifer auf einem System geöffnet wird. Dies geschieht durch immer wieder vorhandene Exploits in Betriebssystemen, Browsern oder Software. Es werden also gezielt Sicherheitslücken in diesen Anwendungen ausgenutzt, um das System des Opfers mit der Schadsoftware zu infizieren.
Alle Methoden haben die Gemeinsamkeit, dass sie möglichst unbemerkt vom Opfer ausgeführt werden.
Sicherheitsmaßnahmen
Aus technischer Sicht gibt es zwei Stellen, an denen Sicherheitsmaßnahmen implementiert werden können.
Zum einen ist dies der Client selbst. Hier ist dringend zu empfehlen, alle Softwareupdates für Betriebssystem, verwendete Programme insbesondere der Browser immer zeitnah durchzuführen um Exploits entgegenzuwirken. Außerdem sollte ein AntiVirus (AV) Programm verwendet werden, dessen Pattern-Updates ebenfalls immer aktuell zuhalten sind, um alle Virensignaturen prüfen zu können. Hiermit kann im besten Fall verhindert werden, dass die Schadsoftware auf dem Client installiert und er somit kompromittiert wird. Da diese Schadsoftware aber immer wieder modifiziert oder gar durch Codierung verschleiert wird, kann es durchaus passieren, dass der AV sie nicht erkennt.
Ein zusätzlicher Schutz auf Clientseite stellt die Verwendung eines Host Intrusion Prevention System (HIPS) dar (siehe auch Intrusion Detection System - IDS). Hiermit ist es möglich, gewisse Angriffsmuster zu erkennen und zu blockieren. Im konkreten Beispiel wäre das die Kommunikation zum C&C-Server, welche durch das HIPS unterbunden werden kann.
Die zweite Stelle, an der Sicherheitsmaßnahmen implementiert werden können, ist der Perimeter. Durch eine Firewall kann selektiert werden, welche Kommunikationsports nach außen geöffnet werden sollen. Standardmäßig sind immer alle Ports geöffnet. Wenn man weiß, dass man bspw. kein IRC nutzt, könnte man dies auf der Firewall blockieren und somit einen weiteren Angriffsvektor eliminieren. Ebenfalls wie am Client kann auch am Perimeter eine IPS betrieben werden. In diesem Fall spricht man von einem Network Intrusion Prevention System (NIPS). Ebenfalls mit dem Ziel das Angriffsmuster des C&C-Servers zu erkennen und zu blockieren. Sehr empfehlenswert ist zusätzlich der Betrieb eines Web-Proxy-Server. Dieser fungiert als Zwischenhändler zwischen LAN und Internet und hat dadurch besondere Möglichkeiten, die Clients zu schützen. Durch ihn besteht die Möglichkeit, bereits am Perimeter einen AV-Scan durchzuführen oder Kommunikationen zu IP-Adressen, die auf Grund von Command-and-Control-Aktivitäten auf einer Blacklist gelandet sind, zu sperren.
Zusätzlich gibt es einige nicht-technische Maßnahmen um sich zu schützen. Hierzu zählt in erster Linie die Nutzersensibilisierung.
Es wird dringend empfohlen:
- Keine Programme öffnen oder installieren, deren Herkunft man nicht vertraut.
- Keine Links verwenden, dessen Herkunft man nicht kennt.
- Keine Webseiten besuchen, die keine gesicherten Protokolle wie z.B. https verwenden.
- System nur mit Userrechten und nicht mit Admin-Rechten ausführen.
- Keine sensiblen Daten, insbesondere Passwortlisten auf dem Rechner speichern.
Literatur:
Crimeware: Understanding New Attacks and Defenses von Markus Jakobsson, Zulfikar Ramzan 2008
Botnetze: Aufbau, Funktion & Anwendung Matthis C. Laass 2011