Mumble/Murmur und Teamspeak

Transcription

Mumble/Murmur und Teamspeak
Hochschule für Technik, Wirtschaft und
Kultur Leipzig
Fakultät Informatik, Mathematik und Naturwissenschaften
Projektarbeit
Mumble/Murmur und Teamspeak Sicherheitsanalyse, Maßnahmen und
Angriffsszenarien
Autoren:
Marcel Graef
Marco Franke
Studiengang:
Medieninformatik Master
Lehrveranstaltung:
IT-Sicherheit (Aufbaukurs) WS 2012/13
Verantwortlicher Professor:
Prof. Dr. rer. nat. Uwe Petermann
Inhaltsverzeichnis
Inhaltsverzeichnis
1 Einleitung
1
2 Vergleich von Mumble/Mumur und TeamSpeak 3
2.1 Anwendungsgebiete . . . . . . . . . . . . . . . .
2.2 Funktionsweise und Protokolle . . . . . . . . . .
2.3 Das Channel- und Rechtesystem . . . . . . . . .
2.4 Authentifizierung und Verwaltung der Clients .
2.5 Sprachcodecs . . . . . . . . . . . . . . . . . . .
2.5.1 CELP . . . . . . . . . . . . . . . . . . .
2.5.2 Speex . . . . . . . . . . . . . . . . . . .
2.5.3 CELT . . . . . . . . . . . . . . . . . . .
2.5.4 Opus . . . . . . . . . . . . . . . . . . . .
2.6 Unterstützte Betriebssysteme . . . . . . . . . .
2.7 Lizenzmodelle . . . . . . . . . . . . . . . . . . .
2.8 Weitere Besonderheiten . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
4
5
6
6
7
7
7
8
8
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
11
11
11
12
13
13
13
13
14
14
15
15
15
16
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
3.1 Anforderungen und Schutzziele an Sprachkonferenzsysteme
3.1.1 Verfügbarkeit . . . . . . . . . . . . . . . . . . . . .
3.1.2 Vertraulichkeit . . . . . . . . . . . . . . . . . . . .
3.1.3 Verbindlichkeit . . . . . . . . . . . . . . . . . . . .
3.1.4 Weitere Anforderungen . . . . . . . . . . . . . . . .
3.2 Typische Angriffsarten . . . . . . . . . . . . . . . . . . . .
3.2.1 Computervirus . . . . . . . . . . . . . . . . . . . .
3.2.2 Wurm . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Trojaner . . . . . . . . . . . . . . . . . . . . . . . .
3.2.4 Exploit . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.5 Backdoor . . . . . . . . . . . . . . . . . . . . . . .
3.2.6 Rootkit . . . . . . . . . . . . . . . . . . . . . . . .
3.2.7 Denial of Service . . . . . . . . . . . . . . . . . . .
3.2.8 Spoofing . . . . . . . . . . . . . . . . . . . . . . . .
3.2.9 Sniffing . . . . . . . . . . . . . . . . . . . . . . . .
Marcel Graef & Marco Franke
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
Inhaltsverzeichnis
3.3
3.4
3.2.10 Port Scanning . . . . . . . . . . . .
3.2.11 Brute-Force-Angriff . . . . . . . . .
3.2.12 Man-in-the-middle-Angriff . . . . .
3.2.13 Phishing . . . . . . . . . . . . . . .
3.2.14 Hijacking . . . . . . . . . . . . . .
Bedrohungen der Sprachkonferenzsysteme
3.3.1 Mögliche Angriffsziele . . . . . . .
3.3.2 Verursacher . . . . . . . . . . . . .
3.3.3 Verletzung der Schutzziele . . . . .
Ermittlung der Schwachstellen . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
17
17
17
18
18
18
19
20
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von Sicherheitsmaßnahmen
22
4.1 Aufbau und Beschreibung der Untersuchungsumgebung . . . . . . . . . 22
4.2 Installation und Inbetriebnahme der Spachkonferenzsoftware . . . . . . 23
4.2.1 TeamSpeak 3-Server . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.2 TeamSpeak 3-Client . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.3 Murmur-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.4 Clients Mumble . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Sicherheitsmaßnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 Spachkonferenzsoftware . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.2 Konfiguration der Server . . . . . . . . . . . . . . . . . . . . . . 30
4.3.3 Sicherheitsrelevante Einstellungen des Betriebssystems . . . . . 31
4.3.4 Router und lokale Firewall . . . . . . . . . . . . . . . . . . . . . 33
4.3.5 Nutzerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.6 Mensch als Schwachstelle . . . . . . . . . . . . . . . . . . . . . . 38
5 Demonstration von Angriffsszenarien
5.1 Betrachtung des TeamSpeak 3-Server Query Interface
5.1.1 Aufbau des Testprogramm . . . . . . . . . . .
5.1.2 Untersuchung der Anti-Flood-Protection . . .
5.1.3 Brute-Force-Angriff auf das Query Interface .
5.2 TeamSpeak 3-Server Query Interface Exploit . . . . .
5.2.1 Funktionsweise von teamspeakrack . . . . . .
5.2.2 Einrichten einer Hintertür . . . . . . . . . . .
5.2.3 Null Pointer Dereferenzierung . . . . . . . . .
5.2.4 Server mit Textnachrichten fluten . . . . . . .
5.2.5 Weitere Möglichkeiten von teamspeakrack . .
5.3 Murmur Exploit für einen DoS-Angriff . . . . . . . .
6 Resümee und Ausblick
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
40
40
42
44
45
45
47
49
49
50
51
54
Marcel Graef & Marco Franke
Inhaltsverzeichnis
Literaturverzeichnis
56
Abbildungsverzeichnis
59
Tabellenverzeichnis
60
Abkürzungsverzeichnis
61
Eigenständigkeitserklärung
63
Marcel Graef & Marco Franke
iii
1 Einleitung
Die Nutzung von Sprachkommunikationsdiensten hat im letzten Jahrzehnt drastisch
zugenommen. Es gibt bereits zahlreiche Programme, die Sprachkonferenzen ermöglichen
- beispielsweise TeamSpeak, Mumble/Murmur, Skype oder Ventrilo. Ein Grund für
diese Entwicklung ist der Ausbau von DSL-Verbindungen sowie der Leitungskapazität
im Wide Area Network (WAN). Aber auch die Qualität der Sprachübertragung
von Sprachkonferenzsystemen über IP-Netzwerke hat deutlich zugenommen.
In dieser Arbeit werden zwei ausgewählte Sprachkonferenzsysteme untersucht. Dies ist
zum Einen das proprietäre TeamSpeak 3 und das quelloffene Mumble/Murmur. Die
Ähnlichkeiten und Unterschiede werden im Kapitel 2 aufgezeigt. Dabei wird neben
den grundlegenden technischen Details, Funktionsweisen und verwendeten Codecs auf
die Lizenzmodelle eingegangen. Letzteres spielt gerade für Unternehmen eine wichtige
Rolle.
Neben den technischen Eigenschaften der Sprachkonferenzsysteme ist vor allem die
Sicherheit von großem Interesse. Um diese in Kapitel 3 zu analysieren, werden in Abschnitt 3.1 die Anforderungen und Schutzziele von Nutzern der Sprachkonferenzdienste
aufgezeigt. Danach wird in Abschnitt 3.2 eine Übersicht typischer Angriffsarten gegeben.
Mit Hilfe dieser Angriffsarten können Angreifer Angriffsziele erreichen und stellen
somit eine Bedrohung für das Sprachkonferenzsystem dar. Diese werden in Abschnitt
3.3 analysiert und klassifiziert. Durch diese systematische Betrachtung ist es möglich,
Schwachstellen von Sprachkonferenzsystemen zu identifizieren.
Aufbauend auf diesen Erkenntnissen wird in Kapitel 4 eine Untersuchungsumgebung
aufgebaut und Maßnahmen zur Erhöhung der Sicherheit betrachtet und umgesetzt. Mit
Hilfe dieser Untersuchungsumgebung wird in Kapitel 5 aufgezeigt, dass die Sicherheit
durch Sicherheitsmaßnahmen erhöht werden kann, aber durch kleine Fehler schnell
beträchtliche Sicherheitsrisiken entstehen können.
Marcel Graef & Marco Franke
1
2 Vergleich von Mumble/Mumur und TeamSpeak 3
2 Vergleich von Mumble/Mumur und
TeamSpeak 3
In diesem Kapitel werden die wesentlichen Merkmale von TeamSpeak 3 und Mumble/Murmur vorgestellt. Dabei wird auf den grundlegenden Aufbau, funktionale Eigenschaften und vor allem auf die technischen Details wie Authentisierung, verwendete
Codecs, Protokolle und Formate der Sprachkonferenzsoftware eingegangen. Auch werden
die Lizenzmodelle von TeamSpeak 3 und Mumble/Murmur gegenübergestellt, da diese
eine wesentliche Rolle für Einrichtungen, Institutionen und Privatpersonen darstellen.
2.1 Anwendungsgebiete
Das Hauptziel von TeamSpeak 3 als auch Mumble/Murmur ist es, einen Sprachkonferenzdienst bereit zu stellen, welcher eine möglichst niedrige Latenzzeit besitzt und dabei
trotzdem eine störungsfreie und klare Audioqualität bietet. Aber auch die Datenrate soll
möglichst gering (<25 kbit/s) gehalten werden. Gerade durch Erfüllung dieser Ziele wird
die Software vor allem zur Kommunikation in Verbindung mit Online-Computerspielen
verwendet. Aber auch in Netzwerken und Systemen mit beschränkten Ressourcen wird
TeamSpeak 3 oder Mumble/Murmur eingesetzt. [TSo12g], [MuM12a]
2.2 Funktionsweise und Protokolle
Der Aufbau einer Kommunikationsverbindung wird mit einem klassischen Client-ServerModell, wie in Abbildung 2.1 dargestellt, realisiert. Dabei wird bei TeamSpeak 3 zwischen
dem so genannten TeamSpeak 3 Server und dem TeamSpeak 3 Client unterschieden.
Analog dazu bezeichnet Mumble den Client und Murmur den Server. Jeder Client, der
2
Marcel Graef & Marco Franke
2.2 Funktionsweise und Protokolle
sich auf einen Server verbindet, belegt einen so genannten Slot. Die Anzahl der Clients,
die sich mit einem Server verbinden können, ist damit auf die Anzahl der verfügbaren
Slots beschränkt. Mit dem Server verbunden, können sich die Clients gegenseitig sehen
und untereinander kommunizieren. Dabei gibt es die Möglichkeit zur Sprach- oder
Textkommunikation. [TSo12g], [MuM12c]
Abbildung 2.1: Schematische Darstellung des Client-Server-Modells von TeamSpeak 3
und Mumble/Murmur
Für den Verbindungsaufbau und zur Steuerung zwischen Client und Server verwenden
beide Anwendungen das verbindungsorientierte Transmission Control Protocol
(TCP), dies wird als Kontrollkanal bezeichnet. Für die Sprachübertragung wird das
User User Datagram Protocol (UDP) verwendet, da dies die Datenübertragung
nicht sichert und zu geringeren Verzögerungen führt. Die Nutzung und Standard Ports
dazu sind den Tabellen 2.1 und 2.2 zu zusammengefasst.
TeamSpeak 3
Dienst
Sprachübertragung
TCP Query
Nutzung
Standard-Port
TeamSpeak 3 Client
telnet ip port
9987 UDP
10011 TCP
Tabelle 2.1: Übersicht über die genutzten Standard-Ports von TeamSpeak 3 zu den
jeweiligen Diensten.
Als IP-Telefonie-Protokoll verwendet TeamSpeak 3 das Softwareeigene, nicht offen
Marcel Graef & Marco Franke
3
2 Vergleich von Mumble/Mumur und TeamSpeak 3
spezifizierte, TeamSpeak-Protokoll. Aus diesem Grund kann keine Aussage über die
Verschlüsselung der Daten gemacht werden. Das TeamSpeak-Protokoll ist zu keinem
anderen freien Protokoll wie SIP, H.323 und IAX kompatibel. Es existiert aber eine
quelloffene Protokoll Alternative namens soliloque-server, welches kompatibel zum
TeamSpeak-Protokoll ist. Das Mumble-Protokoll ist ebenfalls mit keinem anderen
Protokoll kompatibel, aber offen spezifiziert und damit für jeden einsehbar. [Cam10],
[Nat12a]
Mumble/Mumur
Dienst
Sprachübertragung
Steuerkanal
Nutzung
Standart-Port
Mumble
Mumble
64738 UDP
64738 TCP
Tabelle 2.2: Übersicht über die genutzten Standard-Ports von Mumble/Murmur zu den
jeweiligen Diensten.
Für die Verschlüsselung des Sprachkanals (UDP voice channel) wird der Advanced
Encryption Standard (AES) mit einer Schlüssellänge von 128 Bits im Offset
Codebook Mode (OCB) verwendet (OCB-AES128). Die Verschlüsselung des Steuerkanal (TCP control channel) ist durch den Einsatz des Verschlüsselungsprotokolls
Transport Layer Security (TLS), AES mit einer Schlüssellänge von 256 Bits
und dem Secure Hash Algorithm (SHA) gekennzeichnet (TLSv1-AES256-SHA).
[SH10], [TSo12c], [Cam10]
2.3 Das Channel- und Rechtesystem
In der Regel ist es nicht erwünscht, dass alle Clients, welche auf einen Server verbunden sind, mit einander kommunizieren. Um nicht für jede Konferenz einen eigenen
Server verwenden zu müssen, gibt es die Möglichkeit, Bereiche zu erstellen, in denen
sich die Konferenzteilnehmer zusammen schließen können. Diese Bereiche werden als
Channel bezeichnet. Jeder Client kann sich beliebig einem dieser Channel anschließen
und ausschließlich mit den darin befindlichen Clients kommunizieren. Auch ist der
Wechsel zwischen verschiedenen Channels jederzeit möglich. Die Channels können auch
in einander verschachtelt werden, woraus eine Hierarchie entsteht. Weiterhin kann man
zwischen öffentlichen und passwortgeschützten Channels unterscheiden. Ein weiterer
4
Marcel Graef & Marco Franke
2.4 Authentifizierung und Verwaltung der Clients
wichtiger Aspekt sind die komplexen Rechtesysteme, welche sich in TeamSpeak 3 und
Mumble/Murmur stark ähneln. Die Rechtevergabe wird dabei über Rechtegruppen
geregelt. Das heißt, die Rechte jedes Nutzers ergeben sich aus der Rechtegruppe, welcher
er zugeordnet ist. Jede Gruppe besitzt dabei einen Namen und eine Identifikationsnummer sowie die Rechte, die der jeweiligen Gruppe eingeräumt werden. Standardmäßig
sind die drei Gruppen Serveradmin, Normal und Gast vorhanden. Bei TeamSpeak 3
wird zusätzlich noch zwischen Server- und Channelgruppen unterschieden, wodurch es
möglich ist Rechtegruppen zu erstellen, welche den Gültigkeitsbereich auf bestimmte
Channel beschränken.
Mit Hilfe dieser Zugriffssteuerung durch die Rechtesysteme können die Server auf
verschiedene Szenarien angepasst werden. Denkbar ist beispielsweise die Konfiguration
für ein virtuelles Tutorium. Dafür wird eine Gruppe für die Tutoren erstellt, welche
das Recht haben zu Sprechen und eine Gruppe für die Teilnehmer, welche nur zuhören
dürfen. Zusätzlich können die Tutoren einzelnen Teilnehmern das Recht zum sprechen
geben oder wieder entziehen. Der Wunsch eines Teilnehmers zu Sprechen kann dabei
über den Channelchat erfolgen.
[TSo12e], [MuM12b]
2.4 Authentifizierung und Verwaltung der Clients
Bei TeamSpeak 3 und Mumble/Murmur authentifiziert sich ein Client nicht über einen
klassischen Login (bestehend aus Name und Passwort) auf einem Server. Bei einem
TeamSpeak 3 Server geschieht dies durch eine so genannte Identität. Diese ist durch eine
eindeutige ID beschrieben. Bei Mumble/Murmur erfolgt dies über Zertifikate. Dadurch
ist es für den Client möglich, sich an einem Server zu verschiedenen Zeitpunkten mit
unterschiedlichen Usernamen einzuloggen. Ein Client hat die Möglichkeit, mehrere dieser
Identitäten bzw. Zertifikate anzulegen. Zusätzlich kann der Zugriff auf einen Server
durch ein Serverpasswort geschützt werden, wenn beispielsweise keine Registrierung
erwünscht ist.
Die Informationen für registrierte Clients und deren Gruppenzugehörigkeiten werden
auf dem TeamSpeak 3 Server bzw. Murmur in einer Datenbank gespeichert. Dabei ist
es möglich, eine SQLite- oder MySQL-Datenbank zu verwenden. Die Verwaltung der
Marcel Graef & Marco Franke
5
2 Vergleich von Mumble/Mumur und TeamSpeak 3
Datenbank kann serverseitig direkt vorgenommen werden. Mit den benötigten Rechten
können bei TeamSpeak 3 und Murmur Einstellungen auch über die Client-Oberfläche
vorgenommen werden. Zusätzlich bietet der TeamSpeak 3 Server einen Telnet-basierten
Zugang zur Administration (bezeichnet als TCPQuery).
[TSo12f], [Nat12a]
2.5 Sprachcodecs
Ein weiterer wichtiger Aspekt in Bezug auf ressourcenschonende Datenübertragung sind
die verwendeten Sprachcodecs. Auch in diesem Punkt findet man bei TeamSpeak 3 und
Mumble/Murmur Parallelen. So verwenden beide Anwendungen die Sprachcodecs Speex
und Constrained-Energy Lapped Transform (CELT). In älteren Versionen von
TeamSpeak 3 wurden die Sprachcodecs Code-Excited Linear Prediction (CELP)
und Global System for Mobile Communications (GSM) verwendet, welche
aber in der aktuellen Version nicht mehr zu finden sind. Bei Mumble/Murmur findet
man zusätzlich den Sprachcodec Opus. Eine nähere Betrachtung in diesem Abschnitt
wird Aufschluss über Merkmale und Verwendung dieser speziellen Sprachcodecs geben.
2.5.1 CELP
Die grundlegende Technik für die genannten Sprachcodecs lieferte das 1985 veröffentlichte CELP Verfahren. Dies ist ein Segment-orientiertes Codierungsverfahren, welches
nach dem Analysis-by-Synthesis (AbS) Prinzip funktioniert. Mit Hilfe des Linear
Predictive Coding (LPC) Verfahrens werden die Audiosignale auf ein spezielles, der
menschlichen Sprache nachempfundenes Modell abgebildet. Dadurch ist es möglich, die
Audiosignale im Vergleich zu Puls-Code-Modulation (PCM) Repräsentation, stark
datenreduziert zu speichern bzw. zu übertragen. Daraus resultiert, dass das Verfahren
zur Komprimierung von Musik ungeeignet ist. [Bad10, S.162-163]
6
Marcel Graef & Marco Franke
2.5 Sprachcodecs
2.5.2 Speex
Mit dem Sprachcodec Speex wurde 2004 ein Codec veröffentlicht, welcher speziell in der
IP-Telefonie eingesetzt wird. Der Datenratenbereich liegt bei 2 bis 44 kbit/s bei einer
Abtastrate von bis zu 48 kHz. Je nach Abtastrate wird dabei eine Latenzzeit zwischen 20
und 40 ms erreicht. Der Grund für die erreichten Werte ist die Verwendung verschiedener
Verfahren und Methoden. Dabei werden die Kompressionsmethoden variable bit
rate (VBR) und average bit rate (ABR) verwendet, welche abhängig von den
Audiodaten unterschiedliche Bit-raten bei gleich bleibender Qualität erzeugen. Dieser
Effekt wird durch die Sprechpausenerkennung Voice Activity Detection (VAD)
und den Übertragungsmodus Discontinuous Transmission (DTX) weiter verstärkt.
[PHS94]
2.5.3 CELT
Im Dezember 2007 wurde der CELT (Constrained-Energy Lapped Transform) Sprachcodec veröffentlicht. Dieser Sprachcodec erzielt im Vergleich zum Speex eine geringere
Latenz von 5 bis 22,5 ms. Um dies zu erreichen, verwendet er eine höhere und konstante Datenrate von 32 bis 128 kbit/s. Zudem lässt sich durch die höhere Datenrate
eine größere Frequenzbandbreite abbilden, wodurch sich dieser Sprachcodec auch zur
Übertragung von Musik eignet. Durch ein integriertes Packet Loss Concealment
(PLC) Verfahren lassen sich verloren gegangene Daten überbrücken und sind somit für
den Empfänger kaum wahrnehmbar. Im Februar 2011 wurde die aktuelle Version 0.11.1
veröffentlicht. [PHC08]
2.5.4 Opus
Im Gegensatz zu TeamSpeak 3 bietet Mumble/Murmur zusätzlich Unterstützung
für den im September 2012 veröffentlichten Sprachcodec Opus. Dieser Codec vereint
verschiedene Technologien, unter anderen vom CELT Sprachcodec. Er deckt einen
großen Datenratenbereich von 6 bis 510 kbit/s mit einer maximalen Abtastrate von bis
zu 48 kHz, ab. Damit eignet er sich nicht nur für Sprache, sondern auch für Musik. Durch
die Verwendung der Kompressionsmethoden constant bit-rat (CBR) und VBR
unterstützt er konstante als auch variable Bit-raten. Auch wird das PLC Verfahren
Marcel Graef & Marco Franke
7
2 Vergleich von Mumble/Mumur und TeamSpeak 3
zur Fehlerüberbrückung verloren gegangener Datenpakete verwendet. Neben Stereo
unterstützt er bis zu 255 Kanäle. Anhand drei so genannter Modi kann der Codec je
nach Verwendung eingestellt werden. [PHO11]
2.6 Unterstützte Betriebssysteme
Neben technischen Details der Sprachkonferenzsoftware sind auch die unterstützten
Plattformen von Interesse.
TeamSpeak 3 unterstützt Windows, Mac OS X und Linux für den Einsatz von Server
oder Client. Für das Betriebssystem FreeBSD steht ausschließlich ein TeamSpeak 3
Server zur Verfügung. Der TeamSpeak 3 Client unterstützt des Weiteren Smartphones
mit den Betriebssystemen iOS oder Android. [TSo12b]
Mumble/Murmur steht ebenfalls für Windows, Mac OS X und Linux zur Verfügung.
Der Client Mumble unterstützt iOS und Android. Es steht auch eine Version für das
von Nokia entwickelte Betriebsystem Maemo zur Verfügung. [MuM12d]
2.7 Lizenzmodelle
Für den Betrieb eines Sprachserver sind die angebotenen Lizenzmodelle für Privatpersonen, Institute sowie besonders für Unternehmen von Interesse.
Bei TeamSpeak 3 wird zwischen fünf Lizenzmodellen unterschieden. Die Non-ProfitLizenz (NPL) steht zum Einen für nicht registrierte Nutzer zur Verfügung. Sie erlaubt
die Verwendung eines Servers mit maximal 32 Slots für nicht kommerzielle Zwecke.
Registrierte Nutzer können bis zu 10 Server mit maximal 512 Slots betreiben. Für
gewerbliche Unternehmen, welche TeamSpeak 3 Server vermieten, wird die gewerbliche
Lizenz für Autorisierte TeamSpeak Host Provider (ATHP) verwendet. Bei
gewerblichen Unternehmen, welche TeamSpeak 3 innerhalb eines gewerblichen Umfelds
nutzen, besteht zusätzlich die Möglichkeit, die jährliche Aktivierungslizenz (AAL) zu
verwenden. Möchten gewerbliche Unternehmen mit dem TeamSpeak 3 Software
Development Kit (SDK) Software entwickeln, kann die TeamSpeak 3 SDK Lizenz
erworben werden. [TSo12d]
8
Marcel Graef & Marco Franke
2.8 Weitere Besonderheiten
Mumble/Murmur steht zum Vergleich unter General Public License (GPL)
Version 2 lizenziert und verfügt damit über keine lizenzrechtlichen Einschränkungen.
[Nat12a]
2.8 Weitere Besonderheiten
TeamSpeak 3 und Mumble/Murmur bieten gleichermaßen weitere Besonderheiten. So
gibt es für das Sprechen die Möglichkeit, zwischen automatischer Sprachaktivierung oder
Sprachaktivierung durch Tastendruck (Push-To-Talk) zu wählen. Auch können in beiden
Anwendungen Einstellungen für Surround Sound vorgenommen werden. Damit ist es
möglich, Konferenzteilnehmer virtuell räumlich anzuordnen, um eine reale Konferenz
zu simulieren. Mit Hilfe so genannter Musikbots, welche virtuelle Konferenzteilnehmer
darstellen, ist es möglich, Musik in einem Channel abzuspielen. Diese können aber auch
verwendet werden, um Gespräche aufzuzeichnen. Die Möglichkeit des Aufzeichnens
steht für den TeamSpeak 3 und Mumble-Client zur Verfügung. [Nat12b], [TSo12a]
Marcel Graef & Marco Franke
9
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
3 Sicherheitsanalyse und Ermittlung
von Schwachstellen
Um Sicherheitsmaßnahmen für die Sprachkonferenzsysteme TeamSpeak 3 und Mumble/Murmur zu entwickeln, müssen bestehende Schwachstellen erkannt werden. Um
Schwachstellen zu erkennen, müssen zunächst in Abschnitt 3.1 Anforderungen an ein
Sprachkonferenzsystem und den damit verbundenen Schutzzielen der Nutzer diskutiert
werden. Danach wird in Abschnitt 3.2 eine Übersicht typischer Angriffe gegeben. Dies
ist wichtig, um Bedrohungen (Abschnitt 3.3) der Sprachkonferenzsysteme zu erkennen
und aufzuzeigen. Schließlich können daraus Schwachstellen (Abschnitt 3.4) ermittelt
werden. Darauf aufbauend können bei der Konzeption und Realisierung in einer Untersuchungsumgebung in Kapitel 4 geeignete Gegenmaßnahmen abgeleitet und umgesetzt
werden.
3.1 Anforderungen und Schutzziele an
Sprachkonferenzsysteme
Sowohl private Nutzer als auch Unternehmen verfolgen bestimmte Schutzziele und
Anforderungen. Besonders für Unternehmen sollte der Analyse von Schutzzielen und
Anforderungen eine große Beachtung beigemessen werden, da hier die Sicherheitsrisiken
schwerwiegende wirtschaftliche Folgen haben können. Die primären Schutzziele sind
Verfügbarkeit, Vertraulichkeit, Verbindlichkeit. [BSI04], [Bad10, S.446-448]
10
Marcel Graef & Marco Franke
3.1 Anforderungen und Schutzziele an Sprachkonferenzsysteme
3.1.1 Verfügbarkeit
Mit dem Schutz der Verfügbarkeit wird gewährleistet, dass alle notwendigen Verbindungsund Sprachdaten für den Anwender stets verfügbar sind. In diesem Zusammenhang
muss gesichert werden, dass die Funktionsweise der Sprachserver durch Angriffe, aber
auch durch Ausfall technischer Geräte (z.B. Stromversorgung) nicht beeinträchtigt
werden. [BSI04], [Bad10, S.446-448]
3.1.2 Vertraulichkeit
Unter der Vertraulichkeit versteht man den Schutz vor der ungewollten Preisgabe
von Informationen. Dies ist beispielsweise der Fall, wenn Gespräche von Unbefugten
abgehört oder aufgezeichnet werden. Um die Vertraulichkeit durch externe Angriffe
nicht zu verletzen, ist es notwendig, die Verbindungs- und Sprachdaten beim Austausch
zwischen Server und Client geeignet zu verschlüsseln. Aber auch ungewollte interne
Zugriffe auf diese Daten sind zu vermeiden. Das heißt, der Zugriff auf eine Konferenz
darf nur von berechtigten Personen erfolgen. [BSI04], [Bad10, S.446-448]
3.1.3 Verbindlichkeit
Unter Verbindlichkeit werden die Teilaspekte Authentizität, Integrität, Nicht-Abstreit
barkeit und Rechtsverbindlichkeit zusammen gefasst. Dabei wird durch technische
Maßnahmen versucht, die Echtheit empfangener Daten zu sichern.
Als Authentizität wird der Beweis der Echtheit verstanden. Es muss immer für alle
Daten die Herkunft eindeutig festgestellt werden können. Aber auch die Korrektheit
der angegebenen Herkunft muss stets gesichert sein. So muss Beispielsweise auch
sichergestellt werden, dass der Anrufende der ist, der er zu sein vorgibt.
Mit dem Schutz der Integrität ist der Schutz vor unbefugter Manipulation von Ver
bindungs- und Sprachdaten gemeint. Es muss gesichert sein, dass alle Verbindungsund Sprachdaten unverändert beim Empfänger eintreffen. Aber auch das Erkennen von
Manipulationen muss gewährleistet werden.
Wenn man zu einem späteren Zeitpunkt gegenüber einem Dritten (z.B. Gericht) be-
Marcel Graef & Marco Franke
11
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
weisen muss, dass Daten gesendet oder empfangen wurden, reicht die Integrität und
Authentizität meist nicht aus. Deshalb wird durch die Nicht-Abstreitbarkeit sichergestellt, dass der Versand und Empfang von Daten nicht abgestritten werden kann und
somit ist das Ziel der Rechtsverbindlichkeit erfüllt.
[BSI04], [Bad10, S.446-448]
3.1.4 Weitere Anforderungen
Bei der Verwendung von Sprachkonferenzsystemen werden neben den allgemeinen
Schutzzielen weitere Anforderungen der Leistungsfähigkeit des System gestellt. Die Anforderungen an ein System können als Quality of Service (QoS) zusammengefasst
werden und beinhalten Anforderungen aus Anwender- bzw. technischer Sicht.
Eine Anforderung aus Anwendersicht ist die Sprachqualität. Diese kann durch die
Wahl eines geeigneten Codecs realisiert werden, aber auch durch technische Probleme
(z.B. zu hohe Netzauslastung) oder Angriffe (z.B. Distributed Denial of Service) beeinträchtigt werden. Ebenso ist eine leichte Handhabung und Flexibilität im Einsatz der
Sprachkonferenzsysteme von Interesse.
Eine Anforderung aus technischer Sicht ist eine geringe Verzögerung (Delay) der
Sprachsignale. Damit ist der Zeitverzug zwischen dem Aussprechen beim Sender und
der Wiedergabe beim Empfänger gemeint. Des Weiteren ist das Auftreten von Jittern
unerwünscht. Diese entstehen, wenn netzbedingt die Übertragungszeiten zwischen
verschiedenen Paketen stark abweichen. Ab einer Differenz von etwa 50 ms ist dabei mit
Problemen in der Kommunikation zu rechnen. Ein solches Problem kann beispielsweise
die Verzerrung des hörbaren Sprachsignals sein. Aus verschiedenen Gründen (z.B.
zu hohe Lautstärke der Lautsprecher beim Empfänger) können Rückkopplungen des
eigenen Gesprochenen entstehen. In diesem Fall spricht man von unerwünschten Echos.
Durch geeignete Verfahren zur Echokompensation muss dem entgegengewirkt werden.
Durch Überlastung oder Fehler kann es dazu kommen, dass Pakete verworfen werden.
Dieser Paketverlust ist ebenfalls unerwünscht und sollte daher möglichst gering gehalten
werden.
[Bad10, S.116-121,191], [EE07, S.36-39]
12
Marcel Graef & Marco Franke
3.2 Typische Angriffsarten
3.2 Typische Angriffsarten
Um Bedrohungen spezifisch von Sprachkonferenzsystemen ermitteln zu können, ist es
notwendig, allgemeine Angriffsarten zu kennen. Grundlegend erben Sprachkonferenzsysteme alle Sicherheitsprobleme der IP-Welt und es kommen weitere hinzu.
3.2.1 Computervirus
Ein Computervirus ist eine Befehlsfolge, die sich an ein bestehendes Programm anhängt
(Infektion). Wird das infizierte Programm ausgeführt, werden auch die Befehlsfolgen des
Computervirus ausgeführt. Zusätzlich sind Computerviren in der Lage, sich selbstständig
zu verbreiten, d.h. sich selbst zu kopieren (Reproduktion). Computerviren können
Schäden, Fehlfunktionen und Störungen bewirken. Sie werden meist durch Weitergabe
infizierter Programme oder Dateien (z.B. als E-Mail-Anhang) verbreitet. [Bad10, S.454456]
3.2.2 Wurm
Im Vergleich zum Computervirus ist ein Wurm ein eigenständiges Programm, welches
sich über ein Netzwerk selbstständig verbreiten kann. Aber auch über Wechseldatenträger ist eine Verbreitung möglich. Zur Verbreitung kann ein Wurm beispielsweise
ein E-Mail-Programm verwenden, indem er sich automatisch an alle gespeicherten
E-Mail-Adressen als Anhang versendet. [Bad10, S.454-456]
Beispielsweise wurde mit Hilfe eines Instant-Messaging-Dienstes, welcher in der Sprachkonferenzsoftware Skype integriert ist, der Wurm Pykse verbreitet. Pykse führte dazu,
dass die infizierte Sprachkonferenzsoftware Skype nicht mehr für eingehende Anrufe
erreichbar war.
3.2.3 Trojaner
Trojanische Pferde sind Schadprogramme, welche sich in vermeintlich nützlichen Programmen verbergen. Sie können sich nicht selbst verbreiten und sind somit auf die
Marcel Graef & Marco Franke
13
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
Gutgläubigkeit der Nutzer angewiesen. In den meisten Fällen bauen Trojaner Verbindungen zum Angreifer auf und ermöglichen dadurch das Ausspähen sensibler Daten.
Auch Fernsteuerung befallener Systeme kann dadurch ermöglicht werden. Aus dem
Bereich von Sprachkonferenzsystemen ist beispielsweise der Trojaner FinSpy zu nennen. Dieser Trojaner ermöglicht unter anderem das Auslesen von Audiodaten, welche
durch Lautsprecher wiedergegeben oder von einem Mikrophon erfasst werden. [Bad10,
S.454-456]
3.2.4 Exploit
Bei einem Exploit handelt es sich um das Ausnutzen von Schwachstellen in einer Software
oder einem System. Diese Schwachstellen entstehen durch fehlerhafte Mechanismen,
welche bei der Entwicklung nicht berücksichtigt wurden. Diese Schwachstellen können
mit Hilfe eines speziell auf die fehlerhaften Mechanismen ausgerichteten Programms
ausgenutzt werden. Solche Fehler werden in der Regel erst im Live-Betrieb einer Software
oder einem System offengelegt und durch Nachbesserungen behoben. An dieser Stelle
wird klar, dass zwischen der Offenlegung und Behebung der Schwachstelle eine erhöhte
Gefahr für die Betreiber von Sprachkonferenzsystemen besteht. Ein Beispiel und dessen
Auswirkungen wird in Kapitel 5 erläutert und demonstriert. [Bad10, S.454-456]
3.2.5 Backdoor
Als Backdoor bezeichnet man Lücken, welche Angreifern unerwünschten Zugriff auf
ein System oder Ressourcen ermöglichen. Im Vergleich zu einem Exploit handelt es
sich dabei nicht um fehlerhafte Mechanismen in der Software oder einem System,
sondern um eine fehlerhafte Konfiguration. Dies können beispielsweise offene Ports
oder eine fehlende Zugriffssicherung sein. Solche können vor allem durch Unwissenheit
oder Unachtsamkeit der Nutzer entstehen. Aber auch Würmer, Trojaner oder Exploits
können solche Lücken auf einem System einrichten. [Bad10, S.454-456]
14
Marcel Graef & Marco Franke
3.2 Typische Angriffsarten
3.2.6 Rootkit
Ein Rootkit ist eine Sammlung von Dateien und Programmen, welche dem Angreifer
ermöglichen, Root-Rechte auf einem Rechner zu erlangen. Es setzt eine Schwachstelle
im System voraus und wird in der Regel zusammen mit Exploits verwendet. Auch
werden sie verwendet, um andere Schadprogramme vor Nutzern zu verbergen. [Bad10,
S.454-456]
3.2.7 Denial of Service
Bei Denial of Service (DoS) Attacken handelt es sich um Angriffe gegen die
Verfügbarkeit von Systemen oder Diensten, welche angeboten werden. Es wird durch
Überlastung des Systems oder der Software versucht, die Verfügbarkeit einzuschränken
oder komplett außer Kraft zu setzen. Dieser Angriff kann auch von mehreren Systemen
gleichzeitig durchgeführt werden. In diesem Fall spricht man von einem Distributed
Denial of Service (DDoS) Angriff. Dabei wird durch ständiges Senden von Anfragen
versucht, Systeme oder Dienste an ihre Belastungsgrenze zu bringen.
Dies kann beispielsweise bei einer TCP-Verbindung durch das ständige Senden von
SYN-Paketen erfolgen. Ein SYN-Paket ist ein Paket, in dem das SYN-Bit im Paketkopf
(TCP-Header) gesetzt ist. Dieses Paket wird von einem Client an einen Server gesendet,
um zu signalisieren, dass eine Verbindung über TCP aufgebaut werden möchte und somit
einen Verbindungsaufbau initiiert. Ist eine zu hohe Anzahl von Verbindungsanfragen
erreicht, kann der Dienst keine weiteren Verbindungen aufbauen und steht damit nicht
mehr oder nur noch eingeschränkt zur Verfügung.
[Bad10, S.454-456]
3.2.8 Spoofing
Unter Spoofing versteht man das Benutzen einer falschen Identität. Dieser Angriff erfolgt
durch Vortäuschung falscher Quelladressangaben. Dem kann durch eine gegenseitige
Authentifizierung entgegengewirkt werden. Man unterscheidet zwischen IP-, DNS- und
URL-Spoofing.
Marcel Graef & Marco Franke
15
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
Bei IP-Spoofing wird in einem IP-Paket die Quell-IP-Adresse ausgetauscht, um somit
einen anderen Kommunikationspartner vorzutäuschen. Bei DNS-Spoofing wird die
Zuordnung zwischen IP-Adresse und Rechnername verändert. Auch bei einer aufgerufenen Webseite kann die Quell-URL verfälscht werden. In diesem Fall spricht man von
URL-Spoofing.
[Bad10, S.454-456]
3.2.9 Sniffing
Als Sniffer bezeichnet man Programme, mit denen der Datenverkehr in Netzwerken
empfangen und aufgezeichnet werden kann. Besonders bei unverschlüsselten Daten kann
eine Auswertung dieser Daten sensible Informationen preisgeben. Beispielsweise stellt
die Software Wireshark ein sehr umfangreiches Werkzeug für diesen Zweck und darüber
hinaus dar.
3.2.10 Port Scanning
Mit einem Portscan wird gezielt nach offenen Ports an einem Rechner gesucht, um
Schwachstellen für Angriffe ausfindig zu machen. Dabei wird lediglich geschaut, ob
bestimmte Dienste auf dem System laufen, bei denen bekannte Schwachstellen vorliegen.
[Bad10, S.454-456]
3.2.11 Brute-Force-Angriff
Der Brute-Force-Angriff richtet sich an Schnittstellen, an denen sich Nutzer mit ihren
Logindaten (Benutzername und Passwort) bei einem Dienst oder System einloggen. Die
Logindaten sind gültig, wenn sie einem Benutzerkonto zugeordnet werden können. Bei
Angabe gültiger Logindaten wird der Zugriff auf den Dienst oder das System gewährt.
Der Angreifer versucht, unter Verwendung eines speziellen Programms gültige Logindaten zu finden. Das Programm sucht mit Hilfe einer erschöpfenden Suche so lange
nach Kombinationen von Logindaten, bis es eine gültige Kombination findet. Aufgrund
der vielen Kombinationsmöglichkeiten ist es mit dieser Methode oft nicht möglich, den
16
Marcel Graef & Marco Franke
3.2 Typische Angriffsarten
Angriff in einem realistischen Zeitfenster durchzuführen. Deshalb wird in den meisten
Fällen der Suchraum verkleinert. Man beschränkt sich beispielsweise auf einen bestimmten Benutzernamen und versucht, dazu das passende Passwort zu finden. Zusätzlich
kann der Suchraum durch so genannte Passwortlisten weiter verkleinert werden. In
guten Passwortlisten sind in der Regel mehrere hunderttausend bekannter und beliebter
Passwörter zusammengestellt.
Ein bekannter Vertreter eines Programms zur Durchführung von Brute-Force-Angriffen
ist THC-Hydra. Hauptmerkmal dieses Programms ist die hohe Anzahl unterstützter
Protokolle, wie beispielsweise HTTP, SSH, POP3 oder telnet. Auch bietet das Programm
Unterstützung für Brute-Force-Angriffe gegen die alte Version TeamSpeak 2.
3.2.12 Man-in-the-middle-Angriff
Der Man-in-the-middle (MITM)-Angriff stellt einen Angriff dar, bei dem der
Angreifer in einem Netzwerk zwischen den Kommunikationspartnern steht. Dabei liest
der Angreifer gezielt Datenpakete der Kommunikation mit, manipuliert diese oder
tauscht sie gänzlich aus.
3.2.13 Phishing
Phishing bezeichnet alle Vorgänge, bei denen sensible Daten von Nutzern erschlichen
werden. Zumeist handelt es sich dabei um das Ausnutzen der Gutgläubigkeit der Opfer,
indem falsche Identitäten vorgetäuscht werden. Beispielsweise sind das gefälschte Login
Bereiche, in denen die vom Nutzer eingegebenen Daten erschlichen werden. [Bad10,
S.454-456]
3.2.14 Hijacking
Als Hijacking bezeichnet man die Übernahme von Domänen oder Benutzerkonten. Nach
einer erfolgreichen Übernahme der Identität muss diese nicht mehr vorgetäuscht werden.
Ab diesem Zeitpunkt können alle Anfragen an diese Identität umgeleitet werden, um
Angriffe an weitere Kommunikationspartner durchzuführen. Zur Übernahme werden in
der Regel Phishing, Brute-Force- oder MITM-Angriffe verwendet. [Bad10, S.454-456]
Marcel Graef & Marco Franke
17
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
3.3 Bedrohungen der Sprachkonferenzsysteme
Um ermitteln zu können, welche Auswirkungen Bedrohungen für ein Sprachkonferenzsystem haben, muss analysiert werden, welche Ziele und Verursacher einer Bedrohung
existieren. Danach kann zusammengefasst werden, welche Schutzziele als Folge einer
Bedrohung, verletzt werden können. [Bad10, S.484-487]
3.3.1 Mögliche Angriffsziele
Die Ziele der Angreifer können in vier Kategorien zusammen gefasst werden. Dazu
gehört das Lauschen bzw. Abhören von Gesprächen, in denen sensible Informationen
ausgetauscht werden und somit an unbefugte Dritte gelangen können. Weiterhin ist
das Abfangen und Modifizieren von Daten ein Ziel. Dieses betrifft weniger die Sprachdaten einer Konferenz selbst; mehr wird dabei auf Daten, welche zur Steuerung oder
Administration der Sprachkonferenzsysteme selbst benötigt werden, abgezielt. Da bei
TeamSpeak 3 und Mumble/Murmur auch die Möglichkeit besteht, textbasiert zu kommunizieren, können auch diese Daten von Interesse sein, abgefangen oder modifiziert zu
werden. Aber auch die bloße Beeinträchtigung der Funktionsweise des Dienstes ist ein
beliebter Angriffspunkt. Gerade bei Unternehmen, welche auf die Kommunikation über
das Sprachkonferenzsystem angewiesen sind, ist diese Art der Sabotage problematisch.
Diese können beispielsweise die Kommunikation mit Kunden oder die Kommunikation
bei internen Geschäftsprozessen sein. Auch der Missbrauch der Dienste ist ein denkbares
Ziel. So können beispielsweise die Ressourcen der Sprachkonferenzsysteme für eigene
Gespräche missbraucht werden. [Bad10, S.484-487]
3.3.2 Verursacher
Die Verursacher einer Bedrohung können ebenfalls in vier Gruppen eingeteilt werden.
Die naheliegendste Gruppe sind externe Angreifer. Sie haben im allgemeinen keine
Verbindung zum Sprachkonferenzsystem selbst und müssen sich daher erst Zugriff
zum System verschaffen. Die nächste Gruppe sind Schadprogramme (Viren, Würmer,
Trojaner, Backdoors, ...). Sie gehen zwar von einem externen Angreifer aus, aber stellen
dennoch aufgrund ihres autonomen Handelns eine eigene Gruppe von Verursachern von
Bedrohungen dar. Die beiden letzten Gruppen sind interne und externe Nutzer. Diese
18
Marcel Graef & Marco Franke
3.3 Bedrohungen der Sprachkonferenzsysteme
beiden Gruppen besitzen von Vornherein Zugriff auf das Sprachkonferenzsystem und
können beispielsweise durch zu viele Rechte böswillige Ziele verfolgen. Aber auch durch
Fehlverhalten können unbeabsichtigte Schutzziele verletzt werden und stellen damit
eine potentielle Bedrohung dar. [Bad10, S.484-487]
3.3.3 Verletzung der Schutzziele
Mit den unter Abschnitt 3.2 erläuterten Angriffsarten können Versursacher ihre Angriffsziele erreichen. Jeder Verursacher (siehe Abschnitt 3.3.2) stellt dabei in Verbindung
mit einem Angriffsziel (siehe Abschnitt 3.3.1) eine Bedrohung dar, welche Schutzziele
verletzen kann. Diese sind in Tabelle 3.1 tabellarisch zusammengefasst.
Verursacher
Lauschangriff
Externe
Angreifer
Vertraulichkeit
Schadprogramme
Interne
Benutzer
Externe
Benutzer
Vertraulichkeit
Vertraulichkeit
Vertraulichkeit
Abfangen und
Modifikation
Integrität
Authentizität
Verfügbarkeit
Integrität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Dienstbeeinträchtigung
Integrität
Verfügbarkeit
Integrität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Dienstmissbrauch
Integrität
Authentizität
Verfügbarkeit
Integrität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Integrität
Authentizität
Verfügbarkeit
Tabelle 3.1: Mögliche Verletzungen bzw. Folgen, die sich aus den Bedrohungen durch
Verursacher und deren Ziele ergeben (Vgl. [Bad10, S.486])
Mit Hilfe dieser Zusammenstellung ist eine mehrseitige Betrachtung potenzieller Bedrohungen möglich und hilft dabei, Schwachstellen zu erkennen. Dabei wird deutlich, dass
neben externen Angreifern auch interne Nutzer kritisch betrachtet werden müssen. Diese
besitzen bereits Zugriff auf das interne Netzwerk oder das Sprachkonferenzsytem selbst
und können Angriffsziele verfolgen. Beispielsweise ist es denkbar, dass interne Benutzer
Daten abfangen und modifizieren. Dabei wird gleichzeitig die Integrität und Authentizität verletzt. Werden die Daten abgefangen und nicht mehr an das System gesendet,
so ist die Verfügbarkeit verletzt. Auch ein Missbrauch des Sprachkonferenzdienstes ist
denkbar. Beispielsweise durch das Ausnutzen zugesicherter Rechte, indem unbefugten
Marcel Graef & Marco Franke
19
3 Sicherheitsanalyse und Ermittlung von Schwachstellen
Nutzern Zugang auf den Sprachkonferenzdienst gegeben werden. Damit wird klar, dass
das Sprachkonferenzsystem nicht nur gegen Angriffe von außen geschützt werden muss,
sondern auch die interne Struktur (z.B. Netzwerk, Rechtevergabe) betrachtet werden
muss. [Bad10, S.484-487]
3.4 Ermittlung der Schwachstellen
Anhand der bisherigen Vorüberlegungen von Kapitel 3 können jetzt verschiedene
Szenarien abgeleitet und daraus resultierende Schwachstellen erarbeitet werden.
Als erste Schwachstelle ist die Sprachkonferenzsoftware selbst zu nennen. Dabei obliegen
sicherheitsrelevante Maßnahmen und die sichere Implementation dem Herausgeber
der Software. Dazu gehört auch die Verwendung geeigneter Protokolle, welche daher
ebenfalls als Schwachstelle anzusehen sind und vom Nutzer als solche betrachtet werden
muss. Eine weitere Schwachstelle ist die Konfiguration der Software. Dabei ist der
Herausgeber der Software zur Bereitstellung geeigneter Konfigurationsmöglichkeiten
verpflichtet. Auf der anderen Seite muss der Nutzer eine für den Anwendungszweck
geeignete Konfiguration vornehmen.
Neben der Konferenzsoftware ist das verwendete Betriebssystem eine weitere Schwachstelle. Dies ist vom Nutzer geeignet zu wählen und zu konfigurieren. Damit ist besonders
die durchdachte Vergabe von Rechten zu nennen.
Um Zugriff auf das Netzwerk und damit auf die Sprachkonferenzsoftware zu ermöglichen,
muss die Anbindung an das Netzwerk kritisch betrachtet werden. Daraus ergeben sich
der Router und die Firewall als weitere Schwachstelle.
Die wohl kritischste Schwachstelle stellen die Benutzer der Sprachkonferenzsysteme dar.
Es ist daher unumgänglich, auch diese in Abschnitt 4.3 detailliert zu betrachten.
In Tabelle 3.1 sind alle aufgezeigten Schwachstellen tabellarisch mit denkbaren Angriffsarten und den daraus resultierenden Folgen, im Sinne der Verletzung von Schutzzielen,
dargestellt.
20
Marcel Graef & Marco Franke
3.4 Ermittlung der Schwachstellen
Schwachstelle
Sprachkonferenzsoftware
Konfiguration
Betriebssystem
Router und Firewall
Angriffsart
Exploit
Brute-Force
Einräumen
zu vieler
Rechte
Computervirus
Wurm
Trojaner
Rootkit
Backdoor
(D)DoS
Portscanning
Phishing
Benutzer
Folge
Verletzung der
Vertraulichkeit,
Verfügbarkeit,
Authentizität
Verletzung der
Vertraulichkeit,
Verfügbarkeit,
Authentizität
Verletzung der
Vertraulichkeit,
Verfügbarkeit,
Authentizität
Verletzung der
Vertraulichkeit,
Verfügbarkeit,
Authentizität
Verletzung der
Vertraulichkeit,
Verfügbarkeit,
Authentizität
Tabelle 3.2: Mögliche Folgen die sich durch Ausnutzung einer Schwachstelle ergeben
können.
Marcel Graef & Marco Franke
21
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
4 Realisierung einer
Untersuchungsumgebung unter
Betrachtung von
Sicherheitsmaßnahmen
In diesem Kapitel wird beschrieben, wie eine Untersuchungsumgebung der beiden
Sprachdienste Mumble/Murmur und TeamSpeak 3 aufgebaut wird. Es wird für Mumble/Murmur und für TeamSpeak 3 in Abschnitt 4.2 beschrieben, wie die Installation
durchzuführen ist und welche Basiskonfiguration für den Betrieb notwendig sind.
4.1 Aufbau und Beschreibung der
Untersuchungsumgebung
Wie schon angedeutet, ist es für die Untersuchung von Netzwerkmanagementlösungen
nötig, eine Untersuchungsumgebung bestehend aus verschiedenen Rechnern aufzubauen.
In Abbildung 4.1 sind die involvierten Rechner dargestellt.
Der PC 1 fungiert im Weiteren als TeamSpeak 3- und Murmur- Server. Der Router mit
der Internet Protokoll (IP)-Adresse 192.168.1.1 spielt eine besondere Rolle, da
hier die Firewall und die Portweiterleitung entsprechend konfiguriert werden müssen.
PC 2 spiegelt hier einen Rechner im internen Netzwerk wider. Das grün und blau
hinterlegte Netzwerk der Abbildung 4.1 ist über eine Standard Digital Subscriber
Line (DSL)-Verbindung an das Internet angebunden und verfügt daher über keine
statische IP-Adresse. Damit PC 3 den Sprachdienst, der von PC 1 angeboten wird,
22
Marcel Graef & Marco Franke
4.2 Installation und Inbetriebnahme der Spachkonferenzsoftware
Abbildung 4.1: Schematische Darstellung der Untersuchungsumgebung
nutzen kann, wird der dynamischen externen IP-Adresse des Routers FritzBox 7240
über ein dynamisches Domain-Name-System (DynDNS) ein Fully Qualified
Domain Name (FQDN) zugewiesen. Diese Einstellung wird am Router vorgenommen.
4.2 Installation und Inbetriebnahme der
Spachkonferenzsoftware
4.2.1 TeamSpeak 3-Server
Der TeamSpeak 3-Server kann für verschiedene Betriebssysteme auf der offiziellen Website http://www.teamspeak.com/ unter der Rubrik Download heruntergeladen werden.
Hier wird ein Linux Server amd64 3.0.6.1 installiert. Der Quellcode von TeamSpeak 3
ist nicht frei zugänglich, weshalb Sicherheitslücken wesentlich langsamer offiziell aufgedeckt werden. Daher darf der TeamSpeak 3-Server niemals als Root gestartet werden.
Falls der Angreifer eine Sicherheitslücke in TeamSpeak 3 findet, hat er möglicherweise
root-Rechte. Das ist fatal. Es wird daher ein Benutzer teamspeak mit sudo adduser
teamspeak angelegt. Der Benutzer wird im Terminal mit su teamspeak gewechselt.
Das heruntergeladene Paket wird nun entpackt und mit ./ts3server_startscript.sh
Marcel Graef & Marco Franke
23
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
start wird der Server als teamspeak Benutzer gestartet. Es erfolgt eine Ausgabe des
Servers, wie sie in Abbildung 4.2 dargestellt ist.
Abbildung 4.2: Start des TeamSpeak 3-Servers mit Hilfe des Startskriptes. Beim ersten
Start werden das Administrator-Passwort und ein Token generiert.
Zur Kommunikation mit entfernten Teilnehmern, wie z.B. PC 3 aus Abbildung 4.1 wird
der Dienst von no-ip.org als Dynamic DNS genutzt. Der automatische Abgleich der
dynamischen IP-Adresse wird im Router FritzBox 7240 eingestellt. Des Weiteren muss
das Port 9987 UDP für den Sprachkanal im Router freigegeben werden.
4.2.2 TeamSpeak 3-Client
Die Installation des TeamSpeak 3 Clients gestaltet sich ähnlich. Da der TeamSpeak 3
Client eine proprietäre Software ist, kann sie nicht über die Paketverwaltung installiert
werden, sondern muss von der offiziellen Website http://www.teamspeak.com/ unter
der Rubrik Download heruntergeladen werden.
24
Marcel Graef & Marco Franke
4.2 Installation und Inbetriebnahme der Spachkonferenzsoftware
(a) Festlegung Nicknamen
(b) Mikrofoneinstellungen
(c) Mikrofontest
(d) Tastenkombination
(e) Einstellungen Sprachausgabe
(f) Channel hinzufügen
Abbildung 4.3: Installation und Einrichtung des TeamSpeak 3 Clients
Hier wird der Linux Client amd64 3.0.9.2 verwendet. Das Installationsscript TeamSpeak3Client-linux_amd64-3.0.9.2.run wird gestartet und es muss den Installationsschritten, die teilweise in Abbildung 4.3 visualisiert sind, gefolgt werden. Beim Installionsprozess wird ein Ordner mit den Konfigurations- und ausführbaren Dateien erstellt.
Marcel Graef & Marco Franke
25
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
Der Client kann durch Ausführung des darin enthaltenen Shell-Script ts3client_runscript.sh gestartet werden.
(a) Verbindung mit Server herstellen
(b) Teamspeak Client
Abbildung 4.4: Teamspeak 3 Client: Verbindung zu einem Server herstellen
Mit dem TeamSpeak 3 Client kann über das Menü Verbindungen und den Eintrag
Verbinden eine neue Verbindung erstellt werden. In dem Beispiel, welches in Abbildung
4.4 dargestellt ist, wird eine Verbindung als serveradmin zum Server mit der IPAdresse 192.168.1.100 hergestellt. Um Administrationsrechte zu erlangen, muss der
beim ersten Start generierte Berechtigungsschlüssel (Token, siehe Abbildung 4.2) noch
angegeben werden.
4.2.3 Murmur-Server
Der Sprachkommunikationsserver Murmur wird auf dem PC 1 (siehe Abbildung 4.1)
installiert. Auf dem PC 1 ist Ubuntu 12.04 (precise) in der 64-Bit Version mit dem
Kernel Linux 3.2.0-32-generic installiert. Murmur ist in den Paketquellen der genannten Ubuntu-Version enthalten und kann mit apt-get install murmur oder apt-get
install mumble-server und sudo dpkg-reconfigure mumble-server auf dem PC
installiert werden. Auch viele andere Distributionen enthalten in den Standardquellen
die benötigten Pakete. Falls dies nicht der Fall ist, können die Quelldateien auch unter
http://mumble.info/snapshot/ heruntergeladen und kompiliert werden.
Die grundsätzlichen Einstellungen des Murmur-Servers werden in der Konfigurationsda-
26
Marcel Graef & Marco Franke
4.2 Installation und Inbetriebnahme der Spachkonferenzsoftware
tei /etc/mumble-server.ini vorgenommen. Wie in Listing 4.1 dargestellt ist, ist das
Passwort zu setzen. Dabei ist zu kontrollieren, dass nur der Benutzer root Lese- und
Schreibrechte auf diese Datei hat, da diese Datei das Passwort im Klartext enthält.
1
# Password to join server
2
serverpassword=PASSWORD
Listing 4.1: Änderung des Murmur-Serverpassworts in mumble-server.ini
Der Server wird mit murmurd gestartet. Neu starten lässt sich der Server mit sudo
/etc/init.d/mumble-server restart
Des Weiteren müssen die Ports 64738 TCP für den Steuerkanal und 64738 UDP für
den Sprachkanal im Router freigegeben werden. Damit ist nach wenigen Einstellungen
der Server bereit für die Kommunikation.
Für den Betrieb eines Murmur-Servers ist es empfehlenswert, die Nutzer- und Gruppenrechte zu überprüfen. Einige Hinweise werden hierzu in Abschnitt 4.3.5 gegeben.
4.2.4 Clients Mumble
Das Paket mumble ist in den Paketquellen der meisten Linux-Distributionen enthalten
und kann mit sudo apt-get install mumble installiert werden. Beim ersten Start
sind diverse Grundeinstellungen über die Audioein- und -ausgabe vorzunehmen. Ein
Ablauf der vorzunehmenden Konfiguration ist in Abbildung 4.5 aufgezeigt.
Die Spacheinstellungen müssen mit großer Sorgfalt durchgeführt werden, da hiervon
der Benutzungskomfort abhängt. Des Weiteren ist es auch möglich, sich mit Mumble
per Zertifikat bei dem Server zu authentifizieren. Der Vorteil ist dabei, dass nicht mit
Passwörtern gearbeitet werden muss. Die Erstellung bzw. der Import eines solchen
Zertifikates kann am Ende der Konfiguration vorgenommen werden.
Marcel Graef & Marco Franke
27
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
(a) Audio-Einstellungen
(b) Audio-Einstellungen
(c) Spacheinstellungen
(d) Spacheinstellungen
(e) Qualitätseinstellungen
(f) Positionsabhängiges Audio
Abbildung 4.5: Schritte der Installation und Einrichtung von Mumble
Nun sind alle Einstellungen bezüglich Mumble für einen reibungslosen Betrieb vorgenommen worden und es kann eine Verbindung zum Server (192.168.0.100) hergestellt
werden. Dieser Schritt ist in Abbildung 4.6 visualisiert.
Ist die Verbindung korrekt aufgebaut, wird wie in 4.6 rechts dargestellt ist, eine
Willkommensnachricht vom Server an den Client gesendet.
28
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
(a) Client mit dem Server verbinden
(b) rechts im Bild: Der Channelviewer
zeigt die Nutzeraccounts, die mit dem Server verbunden sind; links im Bild: Nachrichtenverlauf zwischen Server und Client
Abbildung 4.6: Benutzung von Mumble
4.3 Sicherheitsmaßnahmen
In diesem Abschnitt werden die aufgezeigten Schwachstellen diskutiert und Maßnahmen gegen bestehende Bedrohungen erarbeitet. Dabei werden auch grundsätzliche
Betrachtungen und Handlungsempfehlungen des BSI einfließen.
4.3.1 Spachkonferenzsoftware
Bei der Sprachkonferenzsoftware als Schwachstelle selbst ist für die sichere Konzeption
und Implementation der Herausgeber verantwortlich. Darauf kann der Nutzer auf den
ersten Blick nur begrenzt Einfluss nehmen. Bei einer näheren Betrachtung wird aber
schnell klar, dass dieser einen wichtigen Beitrag zur Sicherheit leisten kann. Dabei wird
der erste große Unterschied zwischen TeamSpeak 3 und Mumble/Murmur deutlich. Da
der Quelltext von Mumble/Murmur für jeden frei einsehbar ist, kann jeder Nutzer mit
Programmiererfahrung den Quelltext analysieren und gegebenenfalls Sicherheitslücken
identifizieren. Diese sind dem Herausgeber der Sprachkonferenzsoftware mitzuteilen
und von diesem zeitnah zu beheben.
Zu den Aufgaben der Herausgeber gehört es ebenso, sicherheitsrelevante Mechanismen
in die Sprachkonferenzsoftware zu integrieren. Dazu gehören Mechanismen wie das
Protokollieren der Aktivitäten auf dem Sprachkonferenzsystem. So kann im Fall von
Sicherheitsverletzungen (z.B. unautorisierte Zugriffe) der Vorfall stets zurück verfolgt
werden. Auch der Einsatz geeigneter Protokolle und Verschlüsselungsverfahren ist vom
Marcel Graef & Marco Franke
29
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
Herausgeber zu berücksichtigen. Des Weiteren sind Möglichkeiten für sicherheitsrelevante
Konfigurationen bereit zu stellen. Dies spiegelt sich bei TeamSpeak 3 und Mumble/Murmur in den umfangreichen Rechtesystemen für die Gruppenverwaltung wider. Auch
der Einsatz von Maßnahmen zur Identifikation von Clients (siehe Abschnitt 2.4) spielt
dabei eine große Rolle. Diese waren beispielsweise in der alten Version TeamSpeak 2
nicht integriert. Dies führte zur Entstehung so genannter TeamSpeak-Client-Flooder.
Dies waren Programme, mit denen eine unbegrenzte Anzahl vermeintlicher Clients
auf einen TeamSpeak 2-Server verbinden konnten und somit die Anzahl von Clients
auf dem Server auf das Maximum brachten. Dadurch war der Zugriff weiterer Clients
nicht mehr möglich. Ferner sind Mechanismen einzubauen, um das übermäßige Senden
von Nachrichten (Spam) bei der textbasierten Kommunikation auf dem Server zu
unterbinden. Dies lässt sich unterbinden, indem das Senden von Nachrichten auf eine
maximale Anzahl für ein Zeitintervall vorgeschrieben wird. Diese Technik wird auch
gegen Brute-Force-Attacken eingesetzt.
Aber auch Nutzer ohne Programmiererfahrung können zur sicheren Implementation
beitragen. Nutzer können beim Auffinden von Fehlern (Bugs) den Herausgeber der
Software darüber informieren (anhand so genannter Bug Reports). Dazu stellen die
meisten Herausgeber Bereiche zur Verfügung, indem Bug Reports eingereicht werden
können. Bei TeamSpeak 3 und Mumble/Murmur sind speziell für diesen Zweck Bereiche
in den offiziellen Foren eingerichtet. Im Aufgabenbereich des Nutzers liegt auch das
Softwareaktualisierungen durchgeführt werden. Über neue Versionen kann sich auf den
offiziellen Webseiten informiert werden. Bei TeamSpeak 3 und Mumble/Murmur wird
jedoch auch beim Start der Software über neue verfügbare Versionen benachrichtigt.
4.3.2 Konfiguration der Server
Die Möglichkeit zur Konfiguration der Sprachkonferenzsoftware allein ist nicht ausreichend, wenn diese nicht geeignet eingesetzt werden. Die Einstellungen und Rechtevergabe sind dabei gründlich zu planen und stark einsatzabhängig. Grundsätzlich ist es
ratsam auf jedem Server nur genau einen Administrator mit allen Rechten einzurichten.
Lediglich für Moderatoren muss noch eine weitere Rechtegruppe angelegt werden. Diese
sind befugt, andere Clients vom Server zu bannen, neue Channel zu erstellen oder
Clients in andere Channel zu verschieben.
Handelt es sich um einen öffentlichen Sprachkonferenzserver, so ist der Zugang für jeden
30
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
Client zu ermöglichen, die Rechte auf dem Server als Gast aber minimal zu halten. So
dürfen Gäste lediglich das Recht erhalten, selbständig in dafür vorgesehene Channel
beizutreten, sprechen zu dürfen oder Textnachrichten senden zu können. Es ist aber
auch möglich, auf einem öffentlichen Server Channel einzurichten, dem ein Gast nicht
beitreten kann, wenn dies nicht erwünscht ist. Der Zugriff kann dann beispielsweise nur
durch einen Moderator, ein Passwort oder nur für auf dem Server registrierte Clients
erfolgen. Es ist auch möglich, eine Rechtegruppe für Moderatoren zu erstellen, deren
Wirkungsbereich sich nur auf spezielle Channel beschränkt.
Möchte man einen privaten Sprachkonferenzserver betreiben, beispielsweise in einem
Unternehmen zur internen Kommunikation, so ist der Zugriff auf den Server von vornherein zu unterbinden und nur für registrierte Clients oder mit Passwort zu ermöglichen.
Aber auch der interne Bereich ist, wie bei einem öffentlichen Sprachkonferenzserver,
geeignet einzurichten. Denn wie in Abschnitt 3.3.2 hervorgegangen, können auch interne
Nutzer können böswillige Ziele verfolgen oder eine Bedrohung darstellen. Auch hier gilt
eine Einsatz abhängige, gründliche Planung der Struktur.
Eine weitere wichtige Maßnahme ist die Verschlüsselung der Sprachdaten. Bei TeamSpeak 3 ist darauf zu achten, dass die Verschlüsselung standardmäßig deaktiviert ist.
Dies findet beispielsweise Anwendung, wenn die durch die Verschlüsselung verursachte
Latenz unerwünscht ist und es sich nicht um sensible Sprachdaten handelt. Grundlegend
ist eine Verschlüsselung immer zu empfehlen. Bei Mumble/Murmur hingegen ist die
Verschlüsselung immer aktiv und kann auch nicht deaktiviert werden.
Neben der Rechtevergabe und dem Setzen von Passwörtern ist es auf einen TeamSpeak 3-Server möglich, eine so genannte Blacklist zu verwenden. Damit können Verbindungen an den TeamSpeak 3 TCP-Query Dienst einzelner IP-Adressen oder ganzer
IP-Adressbereiche abgelehnt und damit von der Kommunikation mit dem Server ausgeschlossen werden.
4.3.3 Sicherheitsrelevante Einstellungen des Betriebssystems
In diesem Abschnitt werden die wesentlichen Dinge erläutert, wie ein Linux Server
(PC 1) sicherer gestaltet werden kann. Ein sehr wichtiger Teil des Sicherheitskonzepts
von Linux und auch Windows ab Version Vista ist, dass mit unterschiedlichen Privilegien
gearbeitet wird. Es ist extrem wichtig, dass kein Dienst als root bzw. Administrator
Marcel Graef & Marco Franke
31
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
gestartet wird oder dass ein Nutzer a priori Administrationsrechte besitzt. Bei Ubuntu
müssen die Administrationsrechte mit sudo angefordert werden und sind für 15 min
gültig. Um die Sicherheit zu erhöhen, soll dies auf 0 min herunter gesetzt werden. Damit
sind die Administrationsrechte nur für die eine Operation vorhanden. Zur Änderung
wird die Datei /etc/sudoers mit root-Rechten geöffnet und folgender Eintrag (siehe
Listing 4.2) geändert:
1
# Setzt das Timeout fuer sudo auf Null, der Standardwert ist 15 Minuten.
2
Defaults timestamp timeout = 0
Listing 4.2: Timeout für sudo unter Ubuntu auf Null setzen
Updates enthalten meist Verbesserungen von Software und Sicherheitsaktualisierungen.
In den Software-Paketquellen empfiehlt es sich, wichtige Sicherheitsaktualisierungen
automatisch stündlich zu aktualisieren. So können schnell Sicherheitslücken geschlossen
werden.
Abbildung 4.7: Dienste mit rcconf deaktivieren
Des Weiteren müssen Dienste, die nicht benötigt werden, deaktiviert werden. Dazu wird
das Programm rcconf installiert (sudo apt-get install rcconf dialog). Die Deaktivierung ist sehr davon abhängig, welche Aufgaben der Rechner (PC 1) übernehmen
soll. Es ist empfehlenswert, beispielsweise grup-common und bluetooth zu deaktivieren,
falls diese nicht benötigt werden (siehe Abbildung 4.7).
32
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
Neben den Diensten stellt jede Software auf dem Rechner ein potentielles Sicherheitsrisiko dar. Aus diesem Grund sind überflüssige Pakete z.B. über Synaptic zu entfernen.
Damit nicht die Möglichkeit besteht, dass sich Schadsoftware auf dem Rechner selbst
übersetzt, ist es ratsam, alle Compiler (gcc) zu entfernen. Auch die Java Virtual Machine
muss entfernt werden.
Es besteht unter Ubuntu und vielen anderen Distributionen auch die Möglichkeit,
die Sicherheit des Systems mit dem Programm Bastille Linux halb automatisch zu
verbessern. Es beinhaltet die Änderung von Dateirechten, Bootreihenfolge, Logging,
Remote-Login u.v.m.
[Spe11, S. 143-167], [BSB04], [Ubu12a], [Ubu12b]
4.3.4 Router und lokale Firewall
Bei den Sicherheitseinstellungen bezüglich einer Firewall müssen zwei Netzwerkkomponenten betrachtet werden. Dies ist zum Einen die FritzBox 7240 und der PC 1.
Da die Linux-Distribution der FritzBox nicht verändert wurde und keinerlei Software
Erweiterungen durchgeführt wurden, läuft wie üblich lediglich ein Network Address
Translation (NAT) Router mit Portfilter sowie Black- und Whitelists. NAT ist im
Router aktiviert und es sind lediglich die Ports für Murmur (siehe Tabelle 2.2) und
TeamSpeak 3 (siehe Tabelle 2.1) frei geschaltet. Die Pakete, die auf dem in den Tabellen
2.2 und 2.1 angegebenen Port an die FritzBox vom Internet ankommen, werden auf
den PC 1 weiter geleitet. Alle anderen Pakete, die vom Internet ohne eine Anforderung
vom internen Netz an die FritzBox ankommen, werden ignoriert.
Zum Thema einer lokalen Firewall gehen die Meinungen in der Literatur und in der
öffentlichen Diskussion sehr weit auseinander. In einem solchen Fall ist es wichtig, sich auf
die Fakten zu konzentrieren. Wenn der Rechner keinen Dienst anbietet, dann kann auch
über den Dienst nicht angegriffen werden. Die Gefahr, in den Kernel des Betriebssystems
einzubrechen, besteht dabei fort. Ein wichtiger Vorteil einer lokalen Firewall ist, dass
eine Entscheidung getroffen werden kann, welcher Prozess eine Kommunikation mit
dem Netzwerk führen darf. Mit iptables kann über INPUT - und OUTPUT - Ketten
entschieden werden, ob ein Paket von außen das System passieren und ob ein Paket
vom System nach außen gelangen darf.
Marcel Graef & Marco Franke
33
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
Um einen Überblick über bestehende Regeln des Systems zu erhalten, können diese
mit sudo iptables -L angezeigt werden. In Listing 4.3 ist das komplett kommentierte
Firewallskript für den Rechner PC 1 dargestellt. Nun ein paar wesentliche Erläuterungen
zu diesem Skript. Die Regel (0) im Listing 4.3 auf den Zeilen 6 und 7 ist gerade für
Ubuntu ganz wichtig, da viele Prozesse dieser Distribution zur Kommunikation InternetSockets verwenden. Aus diesem Grund muss der lokale Verkehr akzeptiert werden. Die
Regel (4) im Listing 4.3 auf Zeile 18 ist für den Fernzugriff über Secure Shell (SSH)
notwendig. um den Server von der Ferne zu managen. Zur Erhöhung der Sicherheit
kann auch statt der Regel (4) (Listing 4.3 Zeile 18) Regel (4a) aus Zeile 20 benutzt
werden. Damit kann nur von einem bestimmten Rechner auf den PC 1 über SSH
verbunden werden. Für einige Managementlösungen, ist ein Webserver notwendig. Um
auf die generierten Webseiten zugreifen zu können, wurde Regel (5) (siehe Listing 4.3
Zeilen 22 und 23) erstellt. Die Regeln (6) und (8) in den Zeilen 25 und 29 werden zur
Kommunikation über TeamSpeak 3 bzw. Murmur benötigt.
1
#!/bin/sh
2
# Diese Skript laed die Regel fuer die Firewall fuer einen Murmur− bzw.
TeamSpeak−Server
3
IPTABLES=”iptables”
4
REMOTE ACCESS=127.0.0.1
5
#(0) Akzeptiere lokalen Verkehr (Internet−Sockets)
6
$IPTABLES −A INPUT −i lo −j ACCEPT
7
$IPTABLES −A OUTPUT −o lo −j ACCEPT
8
#(1) Verwerfe alle nicht explizit akzeptierten Paket
9
$IPTABLES −P INPUT DROP
10
$IPTABLES −P OUTPUT DROP
11
#(2) Loesche alle Regeln in den INPUT− und OUTPUT−Ketten
12
$IPTABLES −F INPUT
13
$IPTABLES −F OUTPUT
14
#(3) Erlaube DNS Anfragen
15
$IPTABLES −A OUTPUT −p udp −−dport 53 −m state −−state NEW −j
ACCEPT
16
$IPTABLES −A OUTPUT −p tcp −−dport 53 −m state −−state NEW −j
ACCEPT
17
#(4) Erlaube neue SSH−Verbindungen (Administration)
18
$IPTABLES −A INPUT −p tcp −−dport 22 −m state −−state NEW −j
ACCEPT
19
34
#(4a) Empfehlung, wenn immer von einem bestimmten Host zugegriffen
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
wird
20
#$IPTABLES −A INPUT −p tcp −s $REMOTE ACCESS −−dport 22 −m
state −−state NEW −j ACCEPT
21
#(5) Erlaube neue HTTP−Verbindungen (Webinterfaces)
22
$IPTABLES −A INPUT −p tcp −−dport 80 −m state −−state NEW −j
ACCEPT
23
$IPTABLES −A OUTPUT −p tcp −−dport 80 −m state −−state NEW −j
ACCEPT
24
#(6) Erlaube neue TeamSpeak 3 Sprachuebertragung 9987 UDP
25
$IPTABLES −A INPUT −p udp −−dport 9987 −m state −−state NEW −j
ACCEPT
26
#(7) Erlaube neue telnet−Verbindung fuer TeamSpeak 3
27
$IPTABLES −A INPUT −p tcp −−dport 10011 −m state −−state NEW −
j ACCEPT
28
#(8) Erlaube neue Murmur Sprachuebertragung 64738 UDP Steuerkanal
64738 TCP
29
$IPTABLES −A INPUT −p udp −−dport 64738 −m state −−state NEW −
j ACCEPT
30
$IPTABLES −A INPUT −p tcp −−dport 64738 −m state −−state NEW −
j ACCEPT
31
#(9) Erlaube Antwortpakete und Fehlermeldungen fuer aufgebaute
Verbindungen
32
$IPTABLES −A INPUT −m state −−state ESTABLISHED,RELATED −j
ACCEPT
33
#(10) Erlaube aufgebaute Verbindungen nach aussen
34
$IPTABLES −A OUTPUT −m state −−state ESTABLISHED,RELATED −j
ACCEPT
Listing 4.3: Skript für eine lokale Firewall (PC 1) über iptables für Murmur und
TeamSpeak
Mit den Regeln in Listing 4.3 ist das Firewallskript (firewallMurmurTSSkript.sh) fertig
und muss nur noch bei jedem Bootvorgang gestartet werden. Es ist sinnvoll, das Skript
bei jedem Bootvorgang mit Netzwerkverbindung zu starten. Daher wird es ab Runlevel 3
gestartet. Das Firewallskript firewallMurmurTSSkript.sh wird in das Verzeichnis /etc/init.d/ kopiert. Mit chmod 755 /etc/inti.d/firewallMurmurTSSkript.sh wird
das Skript ausführbar gemacht. Es ist dabei zu kontrollieren, dass der Besitzer der Datei
firewallMurmurTSSkript.sh der Benutzer root ist. Nun muss noch ein Startlink erzeugt
werden. Dies kann mit den folgenden Befehlen in Listing 4.4 durchgeführt werden.
Marcel Graef & Marco Franke
35
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
1
# cd /etc/rc3.d/
2
# ln −s /etc/init.d/firewallMurmurTSSkript.sh S05firewallMurmurTSSkript
Listing 4.4: Erzeugung eines Startlinks zur Ausführung des Firewallskript im Runlevel 3
Die zwei Zeilen in Listing 4.4 sind für die Runlevel 4 und 5 zu wiederholen. Die SNummer (in Listing 4.4) definiert die Reihenfolge der zu startenden Dienste. Diese
Angabe ist für die Berücksichtigung der Abhängigkeiten von Diensten untereinander
gedacht. Hier wird diese Angabe genutzt, um die Firewall vor dem Start des Netzwerks
zu starten, damit keine Sicherheitslücke entsteht, die ein Angreifer ausnutzen könnte.
1
# sudo nmap −sT −p− 192.168.1.100
2
Starting Nmap 5.21 ( http://nmap.org ) at 2012−12−12 22:02 CET
3
Nmap scan report for localhost (127.0.0.1)
4
Host is up (0.0000060s latency).
5
Not shown: 65520 closed ports
6
PORT STATE SERVICE
7
22/tcp open|filtered ssh
8
25/tcp open|filtered smtp
9
53/tcp open|filtered domain
10
80/tcp open|filtered http
11
139/tcp open|filtered netbios−ssn
12
445/tcp open|filtered microsoft−ds
13
631/tcp open|filtered ipp
14
4949/tcp open|filtered unknown
15
6502/tcp open|filtered netop−rc
16
8118/tcp open|filtered privoxy
17
10011/tcp open|filtered unknown
18
17500/tcp open|filtered unknown
19
30033/tcp open|filtered unknown
20
38912/tcp open|filtered unknown
21
64738/tcp open|filtered unknown
22
23
Nmap done: 1 IP address (1 host up) scanned in 3.47 seconds
Listing 4.5: Ergebnis des Portscans mit nmap ohne lokale Firewall auf PC 1
Die Wirkungsweise der Firewall kann z.B. mit dem Network Mapper (nmap), einem
Programm zum Scannen von offenen Ports und darauf lauschenden Diensten, getestet
werden. Ohne den Einsatz einer Firewall konnte die Ausgabe in Listing 4.5 beobachtet
36
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
werden. Dabei wurde sudo nmap -sT -p- 192.168.1.100 aufgerufen. Der Parameter
-sT bewirkt, dass TCP geprüft wird. Soll das UDP getestet werden, muss -sU angegeben
werden.
Mit Firewall ist die Ausgabe (siehe Listing 4.6) deutlich kürzer.
1
# sudo nmap −sT −p− 192.168.1.100
2
Starting Nmap 5.00 ( http://nmap.org ) at 2012−12−12 22:06 CET
3
Interesting ports on adsd.fritz.box (192.168.1.100):
4
Not shown: 65531 filtered ports
5
PORT STATE SERVICE
6
22/tcp open ssh
7
80/tcp open http
8
10011/tcp open telnet
9
64738/tcp open unknown
10
MAC Address: 50:E5:49:49:63:71 (Unknown)
11
12
Nmap done: 1 IP address (1 host up) scanned in 135.58 seconds
Listing 4.6: Ergebnis des Portscans mit nmap mit lokaler Firewall auf PC 1
Ähnliche Ergebnisse konnten bei der Überprüfung von UDP beobachtet werden.
[Spe11, S. 82-141, S. 171-183]
4.3.5 Nutzerverwaltung
TeamSpeak 3-Server Der TeamSpeak 3-Server ist ohne weitere Konfigurationen
betriebsbereit. Wie bei Murmur/Mumble können über den Client auch einige administrative Einstellungen vorgenommen werden. Dazu wird sich am Client als serveradmin
angemeldet und es muss unter dem Menü Rechte I Berechtigungsschlüssel der Berechtigungsschlüssel (Token siehe Abbildung 4.2), der beim Ersten Start des Servers über
die Shell ausgegeben wurde, hinzugefügt werden. Nun müssen im Menü Rechte die
jeweiligen Rechte der Server-Gruppen und Channel-Gruppen überprüft und gegebenenfalls geändert werden. Es ist auf jeden Fall zu empfehlen, dass ausschließlich der
Server-Admin den Server administrieren darf. Normale Benutzer oder gar Gäste dürfen
dazu keine Rechte besitzen. Des Weiteren ist mit den Rechten zum Dateitransfer und zur
Mitgliederverwaltung sparsam umzugehen und die Erstellungsrechte hier dem Server-
Marcel Graef & Marco Franke
37
4 Realisierung einer Untersuchungsumgebung unter Betrachtung von
Sicherheitsmaßnahmen
Admin zu überlassen. Empfehlenswert ist hier, eine separate Moderatoren-Gruppe
anzulegen.
Murmur Nachdem der Server Murmur betriebsbereit ist, müssen dennoch die Gruppenberechtigungen überprüft werden. Zunächst ist mit sudo -i murmurd -ini /etc/mumble-server.ini -supw PASSWORD ein SuperUser -Passwort zu genieren. Nun kann
eine Verbindung über Mumble zum Server Murmur hergestellt werden. Dabei ist als
Benutzername SuperUser und das dazugehörige Passwort zu verwenden. Mit einem
Rechtsklick auf dem Hauptkanal und durch Betätigen von Bearbeiten wird das Gruppenund Berechtigungscenter geöffnet. Es ist wichtig, dass nur die Gruppe admin und evtl.
eine neu angelegte Gruppe moderator die Berechtigungen bearbeiten können. Bei der
Einstellung Selbst registrieren für die Gruppe all ist in diesem Zusammenhang zu
prüfen, ob dies wirklich erwünscht ist. Im Zweifelsfall ist dies zu deaktivieren.
4.3.6 Mensch als Schwachstelle
Neben den in diesem Kapitel erarbeiteten Maßnahmen technischer Natur müssen auch
Maßnahmen gegen die Schwachstelle Mensch erarbeitet werden. Dies hat den Grund,
dass der Mensch Informationen (z.B. Passwörter) besitzen muss, welche ihm Zugang
zum System gewähren. Ferner ist der Mensch angreifbarer hinsichtlich Täuschungen
und Manipulationen. So muss darauf geachtet werden, dass sensible Daten nicht an
unberechtigte Dritte gelangen.
Die erste Maßnahme ist die Wahl sicherer Passwörter. Es ist darauf zu achten, dass
die Passwörter möglichst lang (ca. 8 Stellen) sind und aus Buchstaben, Zahlen und
Sonderzeichen bestehen. Zusätzlich müssen stets unterschiedliche Passwörter gewählt
werden. Auch dürfen Passwörter und Logindaten nie auf auf dem PC gespeichert werden.
Es ist auch zu beachten, dass keine Logindaten an andere Personen weiter gegeben
werden, auch nicht auf Anfrage vermeintlicher Administratoren.
Ein weiterer Punkt ist das Herunterladen von Dateien oder Programmen. Es ist dabei
notwendig, genau zu prüfen, ob es sich um eine vertrauenswürdige Quelle handelt.
Über Instant Messenger oder E-Mail erhaltene Hyperlinks sind vor dem Anklicken bzgl.
ihrer Vertrauenswürdigkeit zu überprüfen. Beispielsweise kann die Dateiendung erste
Hinweise auf die Art der Daten geben. Auch bei E-Mail Anhängen ist Vorsicht geboten.
38
Marcel Graef & Marco Franke
4.3 Sicherheitsmaßnahmen
E-Mails dürfen generell nur im Textformat geöffnet werden, damit keine integrierten
Scripte ausgeführt werden.
Es ist wichtig, dass alle Nutzer des Sprachkonferenzsystems sorgfältig darauf achten,
alle erforderlichen Maßnahmen umzusetzen. Es bietet sich an dieser Stelle an, Verhaltensregeln zur Erhöhung der Sicherheit an die Nutzer zu tragen. In Unternehmen ist
die Durchführung spezieller Schulungen zu diesem Sachverhalt zu empfehlen.
Marcel Graef & Marco Franke
39
5 Demonstration von Angriffsszenarien
5 Demonstration von
Angriffsszenarien
In diesem Kapitel werden eine Reihe von Angriffsszenarien betrachtet. Es werden
Sicherheitsmechanismen auf ihre Funktionen getestet, beispielsweise die Anti-FloodProtection von TeamSpeak. Dabei werden mögliche Angriffsszenarien betrachtet und
praktisch durchgeführt.
5.1 Betrachtung des TeamSpeak 3-Server Query
Interface
In diesem Abschnitt wird untersucht, welche Angriffsmöglichkeiten das TeamSpeak 3Server Query Interface bietet. Dabei werden verschiedene Schutzmechanismen betrachtet
und bewusst manipuliert. Als Angreifer wird dabei PC 3 aus Abbildung 4.1 verwendet.
Um mit dem TeamSpeak 3-Server Query Interface automatisiert zu kommunizieren,
wird in einem ersten Schritt ein Testprogramm (siehe Listing 5.1) erstellt. Mit diesem
Testprogramm werden dann in Abschnitt 5.1.2 und 5.1.3 Angriffsszenarien betrachtet
und durchgeführt.
5.1.1 Aufbau des Testprogramm
Das Testprogramm wird die Aufgabe besitzen, automatisiert Daten zum TeamSpeak 3Server Query Interface zu senden und zu empfangen. Für diese Aufgabe wurde ein
Java-Programm geschrieben. Dieses ist in Listing 5.1 auszugsweise dargestellt. Als Erstes
wird mit Hilfe der Klasse Socket eine Verbindung von PC 3 zum TeamSpeak 3-Server
Query Interface des PC 1 hergestellt. Daten können während der Verbindung mit den
40
Marcel Graef & Marco Franke
5.1 Betrachtung des TeamSpeak 3-Server Query Interface
Variablen out an den Server gesendet und mit in vom Server empfangen werden. Im
dargestellten Testbereich in Listing 5.1 können die zu sendenden Query-Befehle mit
out.println() als String angegeben werden. Nach Abschluss der Befehlsfolge werden die
vom Server (PC 1) empfangenen Daten ausgegeben.
1
[...]
2
try {
3
testSocket = new Socket(”77.179.185.146”, 10011 );
4
out = new PrintWriter(testSocket.getOutputStream(), true);
5
in = new BufferedReader(new InputStreamReader(testSocket.
getInputStream()));
//### Testbereich ###
6
7
out.println(”hier Query−Befehl als String”);
8
9
10
//############
11
String line = null;
12
while( (line=in.readLine()) != null){
13
if(!line.equals(””))
14
System.out.println(”SERVER: ”+line);
}
15
[...]
16
17
} catch (IOException e) {
System.err.println(”ERROR: Server refuse the connection.”);
18
19
}
20
[...]
Listing 5.1: Aufbau Testprogramm
Kann die Verbindung nicht aufgebaut werden oder wird sie unterbrochen, so wird eine
Fehlermeldung ausgegeben. In einem Versuch wird durch Ausführen des Testprogramms
eine Verbindung vom PC 3 zum TeamSpeak 3-Server Query Interface von PC 3
hergestellt.
1
SERVER: TS3
2
SERVER: Welcome to the TeamSpeak 3 ServerQuery interface, type ”help”
for a list of commands and ”help <command>” for information on a
specific command.
Listing 5.2: Ausgabe des Verbindungstests mit dem TeamSpeak 3-Server Query Interface
Marcel Graef & Marco Franke
41
5 Demonstration von Angriffsszenarien
Die von der TeamSpeak 3-Server Query Interface empfangenen Daten sind in Listing
5.2 dargestellt. Daraus lässt sich entnehmen, dass eine Verbindung hergestellt werden
konnte.
5.1.2 Untersuchung der Anti-Flood-Protection
In diesem Szenario wird die Anti-Flood-Protection vom TeamSpeak 3-Server untersucht.
Diese dient dazu, die Anzahl der an das TeamSpeak 3-Server Query Interface gesendeten
Befehle für ein Zeitfenster zu limitieren und somit einem Missbrauch wie beispielsweise
dem Fluten mit Textnachrichten vorzubeugen.
In diesem Szenario wird davon ausgegangen, dass der Angreifer bereits Zugang zum
TeamSpeak 3-Server Query Interface besitzt. Ausgehend von dieser Situation möchte
der Angreifer den TeamSpeak 3-Server mit Textnachrichten fluten. Für diesen Zweck
wird im Testbereich des Testprogramms (Listing 5.1) die Befehlsfolge aus Listing 5.3
eingefügt. Um sich anzumelden, muss als Erstes der Befehl login verwendet werden.
Danach wird mit dem Befehl use der virtuelle Server ausgewählt. Jetzt kann mit Hilfe
einer Schleife eine beliebige Anzahl von Textnachrichten (hier numberOfMessages = 100)
an den Server geschickt werden.
1
//### Testbereich ###
2
out.println(”login serveradmin yI3K4DpO”);
3
out.println(”use 1”);
4
int numberOfMessages=100;
5
for( int i = 1; i <= numberOfMessages; i++ )
6
7
out.println(”sendtextmessage targetmode=3 msg=SPAMMSG Nr.”+i);
//############
Listing 5.3: TeamSpeak 3-Server Query Interface Login und Spam
Wird das Testprogramm ausgeführt, erhält man die im Listing 5.4 angegebene Ausgabe.
Daraus ist zu entnehmen, dass nach dem Senden der achten Nachricht die Anti-FloodProtection die Verbindung unterbricht.
Der TeamSpeak 3-Server Dokumentation ist zu entnehmen, dass die Anti-FloodProtection nur bei Verbindungen eingesetzt wird, deren IP-Adressen oder IP-Adress
bereiche nicht auf der Whitelist (query ip whitelist.txt) des TeamSpeak 3-Servers stehen.
Dabei sind Szenarien denkbar, in denen die IP-Adresse des Angreifers in die Whitelist
42
Marcel Graef & Marco Franke
5.1 Betrachtung des TeamSpeak 3-Server Query Interface
eingetragen wird. Zum Einen kann bei der Konfiguration des TeamSpeak 3-Servers
durch Unwissenheit wahllos von jedem Nutzer die IP-Adresse oder der IP-Adressbereich
eingetragen worden sein, da davon ausgegangen wurde, dass dies für den Zugriff auf
das Query Interface notwendig ist. Zum Anderen kann durch einen Tippfehler ein zu
großer IP-Adressbereich angegeben worden sein, in dem sich auch der Angreifer befindet.
Zusätzlich kann eine fehlerhafte Konfiguration der Anti-Flood-Protection dazu führen,
dass diese nicht wirkt.
1
SERVER: error id=0 msg=ok
2
SERVER: error id=0 msg=ok
3
SERVER: error id=0 msg=ok
4
SERVER: error id=0 msg=ok
5
SERVER: error id=0 msg=ok
6
SERVER: error id=0 msg=ok
7
SERVER: error id=0 msg=ok
8
SERVER: error id=0 msg=ok
9
SERVER: error id=0 msg=ok
10
ERROR: Server refuse the connection.
Listing 5.4: Verbindungsabbruch durch die Anti-Flood-Protection
Für weitere Tests wird daher die IP-Adresse von PC 3 in die Whitelist eingetragen.
Bei erneutem Durchführen der Befehlsfolge aus Listing 5.3 ist keine Verbindungsunterbrechung zu beobachten. Zur Veranschaulichung ist in Abbildung 5.1 die Wirkung als
Ausschnitt im TeamSpeak 3-Client dargestellt.
Abbildung 5.1: TeamSpeak 3 Server Query Interface Text Flut
Wie erwartet, kann die Anti-Flood-Protection, durch einen Eintrag in die Whitelist
gezielt deaktiviert werden. Aufgrund der daraus entstehenden Gefahren wird jedoch
davon abgeraten. In manchen Fällen kann es jedoch erwünscht sein (für z.B. Fernwartungen), IP-Adressen oder ganze IP-Adressbereiche auf die Whitelist zu setzen. Diese
Experimente zeigen, dass dabei sehr sorgfältig vorgegangen werden muss.
Marcel Graef & Marco Franke
43
5 Demonstration von Angriffsszenarien
5.1.3 Brute-Force-Angriff auf das Query Interface
In Abschnitt 5.1.2 wurde gezeigt, dass die Anti-Flood-Protection, wie erwartet, bei
Adressen, welche in der Whitelist stehen, die Anzahl gesendeter Befehle nicht beschränkt.
An dieser Stelle stellt sich die Frage, ob ein Angreifer ohne gültige Logindaten mit
deaktivierter Anti-Flood-Protection einen Brute-Force-Angriff auf das TeamSpeak 3Server Query Interface durchführen kann. Dies war beispielsweise bei TeamSpeak 2 mit
dem Programm THC − Hydra ([Hau12]) möglich. Der Testbereich im Testprogramm
(Listing 5.1) wird dafür mit der unter Listing 5.5 dargestellten Befehlsfolge ersetzt. Die
Befehlsfolge sendet mehrfach den login Befehl mit unterschiedlichen Passwörtern.
1
//### Testbereich ###
2
String[] pws = {”a”,”b”,”c”,”aa”,”ab”,”ac”,”bb”,”ba”,”bc”,”cc”,”ca”,”cb”};
3
for( String pw : pws){
out.println(”login serveradmin ”+pw);
4
5
}
6
//############
Listing 5.5: Brute-Force-Befehlsfolge, um ein TeamSpeak 3-Query Interface Login zu
erhalten
Nach Ausführen der Befehlsfolge erhält man die unter Listing 5.6 dargestellte Antwort von dem TeamSpeak 3-Server Query Interface. Dem ist zu entnehmen, dass das
TeamSpeak 3-Server Query Interface nach dem vierten fehlerhaften Loginversuch den
Angreifer für 10 Minuten verbannt.
1
SERVER: error id=520 msg=invalid loginname or password
2
SERVER: error id=520 msg=invalid loginname or password
3
SERVER: error id=520 msg=invalid loginname or password
4
SERVER: error id=3329 msg=connection failed, you are banned extra msg=
you may retry in 600 seconds
Listing 5.6: TeamSpeak 3-Server Query Interface Reaktion auf Brute-Force-Befehlsfolge
Damit hat sich herausgestellt, dass neben der Anti-Flood-Protection ein weiterer
unabhängiger Mechanismus existiert, welcher gegen Brute-Force-Angriffe vorbeugt.
Durch die Dauer der Verbannung sind bei einem einzigen angreifenden Rechner maximal
576 Passwörter pro Tag testbar. Das heißt, Brute-Force-Angriffe sind durchführbar,
werden jedoch stark beeinträchtigt. An dieser Stelle wird klar, wie wichtig die Wahl eines
44
Marcel Graef & Marco Franke
5.2 TeamSpeak 3-Server Query Interface Exploit
sicheren Passwortes ist. Denn je länger das Passwort ist und um so mehr verschiedene
Zeichen es beinhalten kann, um so mehr mögliche Passwörter sind bei einem Brute-ForceAngriff zu testen. Dadurch werden solche Angriffe in einem realistischen Zeitfenster
nicht mehr durchführbar.
5.2 TeamSpeak 3-Server Query Interface Exploit
Mit dem folgenden Szenario wird aufgezeigt, welche Auswirkungen das Ausnutzen einer
Sicherheitslücke mit Hilfe eines Exploit haben kann. Ausgangspunkt dieser Szenarien ist
die Missachtung oder Vernachlässigung der in Abschnitt 4.3.1 dargestellten Maßnahme,
die Sprachkonferenzsoftware stets auf der aktuellsten Version zu halten. Es sei an dieser
Stelle noch einmal gesagt, dass auch in einer aktuellen Version diese Art von Angriff
nicht ausgeschlossen werden kann, wie in Abschnitt 3.2.4 bereits angedeutet.
Für das Szenario wird die in Kapitel 4 aufgebaute Untersuchungsumgebung dahingehend
modifiziert, dass der verwendetet TeamSpeak 3-Server mit der Version 3.0.6.1 auf PC 1
durch die Version 3.0.0.0-beta23 ersetzt wird. Bis zu dieser Version ist durch die Verwendung eines von Luigi Auriemma geschriebenen C-Programms namens teamspeakrack
möglich [Aur10c], eine Schwachstelle auszunutzen. Das C-Programm steht als Quelltext (teamspeakrack.c) zur Verfügung. Als Angreifer wird PC 3 (siehe Abbildung 4.1)
verwendet.
Mit Hilfe von teamspeakrack ist es möglich, TeamSpeak 3-Server Query-Befehle auf
dem TeamSpeak-Server (PC 1) auszuführen, ohne einen authentifizierten Zugriff auf
das Query Interface zu besitzen. Zusätzlich verfügt das C-Programm über vorgefertigte
Angriffsszenarien in Form von Befehlssequenzen. Nach dem Start von teamspeakrack
werden, wie in Abbildung 5.2 zu sehen, alle Szenarien, die das Programm bietet,
aufgelistet.
5.2.1 Funktionsweise von teamspeakrack
Mit Hilfe von teamspeakrack wird eine Schwachstelle ausgenutzt, welche bei der Umstellung des TeamSpeak-Protokolls entstanden ist. TeamSpeak 3 verwendet UDP-Pakete
für acht verschiedene Aufgaben (8 Kanäle). Speziell der Kanal 2 wird für das Senden
Marcel Graef & Marco Franke
45
5 Demonstration von Angriffsszenarien
Abbildung 5.2: Verwendung und Optionen des TeamSpeak 3 Server Exploit
von Befehlen, zwischen dem TeamSpeak 3-Client und -Server verwendet. Das Problem
besteht darin, dass auch Query-Befehle welche über das UDP-Paket auf Kanal 2
gesendet werden, auf dem Server ausgeführt werden. Das heißt, um die Schwachstelle
auszunutzen, muss ein modifiziertes UDP-Paket über den standardmäßig geöffneten
Port 9987 an den Server gesendet werden. Dieses Paket wird so modifiziert, dass ein
Query-Befehl an den Server gesendet wird. Dieses Einschleußen von Query-Befehlen
wird auch als Bypass bezeichnet. Um dies zu testen, wird teamspeakrack zunächst mit
der Option 1 (siehe Abbildung 5.2) in einen Zustand versetzt, welcher die selben Möglichkeiten bietet, als wäre der Angreifer mit dem TeamSpeak 3-Server Query Interface
verbunden. Das heißt, der Angreifer kann mit teamspeakrack fortlaufend Query-Befehle
senden. Die dabei für den Angreifer zu sehende Oberfläche ist in Abbildung 5.3 zu sehen.
Da die Query-Befehle über ein UDP-Paket in den Server eingeschleust werden, können
lediglich Fehlermeldungen empfangen werden. Das heißt, man kann mit teamspeakrack
keine Informationen vom Server mit Hilfe von Query-Befehlen abfragen.
Es ist nun nicht mehr notwendig, sich mit Hilfe gültiger Logindaten über TCP Port 10011
Zugriff auf das TeamSpeak 3-Server Query Interface zu verschaffen, um Konfigurationen
bzw. Manipulationen auf dem TeamSpeak 3-Server vorzunehmen. Aufbauend auf dieser
Situation können jetzt gezielt Angriffe - basiert auf dem Senden von Query-Befehlen
- gegen den Sprachdienst durchgeführt werden. Die dabei möglichen Befehle können
dem TeamSpeak 3-Server Query Handbuch entnommen werden. Eine Reihe solcher
Möglichkeiten sind als Befehlsfolgen in das Programm integriert und können ausgeführt
werden.
46
Marcel Graef & Marco Franke
5.2 TeamSpeak 3-Server Query Interface Exploit
Abbildung 5.3: TeamSpeak 3 Server Query Interface Exploit
5.2.2 Einrichten einer Hintertür
Als nächstes wird gezeigt, wie eine Hintertür (Backdoor) auf dem TeamSpeak 3-Server
eingerichtet werden kann. Dafür wird ein administrativer Zugriff eingerichtet. Zunächst
wird sich als Nutzer mit dem TeamSpeak 3-Client von PC 3 zum Server (PC 1)
verbunden. Dabei ist der TeamSpeak 3-Client vorerst nur als Gast verbunden und
besitzt keine administrativen Rechte. Dies ist in Abbildung 5.4 im rot markierten
Bereich zu sehen.
Abbildung 5.4: Als Gast auf dem TeamSpeak 3 Server verbunden
Um jetzt Administrationsrechte zu erhalten, muss der Client der Gruppe der Serveradministratoren, welche durch eine Identifikationsnummer gekennzeichnet ist, zugeordnet
werden. Dafür wird mit dem C-Programm teamspeakrack der Server Query-Befehl aus
Listing 5.7 ausgeführten Syntax verwendet.
1
#servergroupaddclient sgid={groupID} cldbid={clientDBID}
Listing 5.7: Query-Befehl servergroupaddclient Syntax
Marcel Graef & Marco Franke
47
5 Demonstration von Angriffsszenarien
Die benötigten Informationen groupID und clientDBID können zwar nicht mit teamspeakrack
ermittelt werden, aber durch den verbundenen Client ist es möglich. Die groupID für
die richtige Servergruppe erhält der Angreifer im Menü Rechte unter dem Punkt
Channelgruppen im TeamSpeak 3-Client. In diesem Fall besitzt die Servergruppe der
Administratoren die groupID = 6. Die clientDBID erhält der Angreifer ebenfalls im
TeamSpeak 3-Client, indem er in der Channelübersicht auf den gewünschten Client
klickt. Aus Abbildung 5.4 geht aus dem blau markierten Bereich hervor, dass die
clientDBID = 2 ist. Der gesamte Befehl, der jetzt mit teamspeakrack abgesendet werden
muss, ist in Listing 5.8 angegeben.
1
>servergroupaddclient sgid=6 cldbid=2
Listing 5.8: Query-Befehle zur Zuweisung zu einer Gruppe
Ob der Vorgang erfolgreich war, kann dem TeamSpeak 3-Client entnommen werden.
Das Ergebnis ist in Abbildung 5.5 durch die rot markierten Stellen gekennzeichnet.
Abbildung 5.5: Gast mit vollen Administrationsrechten
Auf diese Weise wurde demonstriert, wie einem Gast Administrationsrechte zugesichert
werden können. Da bei einem Update der Sprachkonferenzsoftware, welche die Sicherheitslücke schließt, die Administrationsrechte für den vermeintlichen Gast bestehen
bleiben, wurde erfolgreich eine Hintertür eingerichtet. Es wird empfohlen, nach dem
Bekanntwerden und Schließen einer solchen Sicherheitslücke mit Hilfe von Backups oder
Sicherungspunkten das System auf einen früheren Zustand zurück zu setzen. Ist dies
nicht möglich, sollte die Rechtevergabe erneut durchgeführt werden.
48
Marcel Graef & Marco Franke
5.2 TeamSpeak 3-Server Query Interface Exploit
5.2.3 Null Pointer Dereferenzierung
Des Weiteren gibt es eine Reihe Query-Befehle, die aufgrund der Art und Weise, wie
teamspeakrack sie an den TeamSpeak 3-Server sendet, zum Absturz führen. Diese sind
in Listing 5.9 aufgezählt.
1
>banlist
2
>complainlist
3
>servernotifyunregister
4
>serverrequestconnectioninfo
5
>setconnectioninfo
6
>servernotifyregister event=server
Listing 5.9: Query-Befehle, die mit teamspeakrack zum Absturz führen
Der Grund für den Absturz bei Verwendung dieser Befehle ist, dass bei der Verarbeitung
der Befehle Informationen des Client, welcher den Befehl ausführen möchte, benötigt
werden. Da bei Verwendung von teamspeakrack keine ordnungsgemäße Verbindung
hergestellt wird, kann der TeamSpeak 3-Server den Befehl keinem gültigen Client
zuordnen. Dadurch entsteht bei der Abfrage, welcher Client dem Befehl zuzuordnen ist,
eine NullPointerException und der TeamSpeak 3-Server wird aufgrund dieses Fehlers
stillschweigend beendet.
5.2.4 Server mit Textnachrichten fluten
In diesem Szenario wird der TeamSpeak 3-Server mit Textnachrichten geflutet (Spam).
Für diesen Zweck wird der im Listing 5.10 aufgeführte Befehl verwendet.
1
#sendtextmessage targetmode={1−3} msg={text}
Listing 5.10: Query-Befehl sendtextmessage Syntax
In teamspeakrack wird dieser Befehl (5.10) mit Hilfe einer Schleife und zufällig generierten Nachrichten an den Server gesendet. Mit der Option 4 (siehe 5.2) kann diese
Befehlssequenz aufgerufen werden. In Abbildung 5.6 ist die Wirkung anhand des Nachrichtenfensters des TeamSpeak 3-Clients zu sehen. In der Abbildung ist ein Ausschnitt
der gesendeten zufällig generierten Nachrichten dargestellt.
Marcel Graef & Marco Franke
49
5 Demonstration von Angriffsszenarien
Abbildung 5.6: Auswirkung von Spam mit teamspeakrack im TeamSpeak 3-Client
Das Interessante ist, dass die Anti-Flood-Protection des TeamSpeak 3-Servers, d.h. die
Einschränkung der gesendeten Befehle pro Zeitintervall, nicht greift. Dies ist mit dem
Einschleusen der Befehle über die UDP-Pakete zu begründen. Dadurch werden die
IP-basierten Filter (Anti-Flood-Protection) des TeamSpeak 3-Server Query Interface
übergangen.
5.2.5 Weitere Möglichkeiten von teamspeakrack
Neben den bisher vorgestellten Möglichkeiten, den TeamSpeak 3-Server zu manipulieren,
bietet teamspeakrack weitere vorgefertigte Befehlssequenzen, welche durch die Optionen
1 bis 9 (siehe Abbildung 5.2) ausgewählt werden können.
Dazu gehört die Möglichkeit, die maximale Anzahl von Clients auf dem TeamSpeak 3Server mit Hilfe des unter Listing 5.11 aufgeführten Befehls auf Null zu setzen. Dadurch
ist es nicht mehr möglich, mit dem TeamSpeak-Client eine Verbindung mit dem
TeamSpeak 3-Server herzustellen.
1
>serveredit virtualserver maxclients=0
Listing 5.11: Query-Befehl zur Änderung der maximalen Anzahl von Clients auf dem
Server
Die bisher noch nicht betrachteten und vorgefertigten Optionen von teamspeakrack
(siehe Abbildung 5.2) ermöglichen es, ohne Kenntnisse diverser Identifikationsnummern
(z.B. clientID oder banID), alle Clients anzusprechen. Dabei werden Befehle, welche
die Angabe einer Identifikationsnummer benötigen, innerhalb einer Schleife ausgeführt.
Die dabei aufsteigende Schleifenvariable wird entsprechend als Parameter beim Aufruf
eines Befehls verwendet. So wird iterativ jede mögliche ID zusammen mit einem Befehl
verwendet. Die dafür zur Verfügung stehenden - in teamspeakrack implementierten Möglichkeiten sind:
• alle Clients vom Server werfen
50
Marcel Graef & Marco Franke
5.3 Murmur Exploit für einen DoS-Angriff
• alle Clients vom Server verbannen
• alle Banns auf dem Server aufheben und
• alle Clients auf dem Server anstupsen.
Die dabei verwendeten Befehle sind in Listing 5.12 aufgeführt.
1
#Client vom Server schmeissen
2
#Syntax: clientkick clid={clientID} reasonid={4|5}
3
#Client vom Server verbannen
4
#Syntax: banclient clid={clientID}
5
#Bann aufheben
6
#Syntax: bandel banid={banID}
7
#Client auf dem Server an stupsen
8
#Syntax: clientpoke clid={clientID} msg={Text}
Listing 5.12: Beispiel für Query-Befehle mit Parameter
Damit wurde gezeigt, welche verheerenden Auswirkung ein Exploit haben kann. Aus
dem Beispiel 5.2.2 ist hervorgegangen, dass durch eine Aktualisierung der Software
und somit die Schließung der bestehenden Sicherheitslücke nicht garantiert werden
kann, dass der TeamSpeak 3-Server keine Folgeschäden davon getragen hat. In diesem Fall wäre der Folgeschaden die in Abschnitt 5.2.2 eingerichtete Backdoor (siehe
Abschnitt 3.2.5). Es ist also zwingend notwendig, nach Bekanntwerden einer solchen
Sicherheitslücke das System genau zu prüfen. Falls möglich, sollte in diesem Fall das
System auf einen früheren Zustand zurück gesetzt werden. Dies kann beispielsweise
durch Wiederherstellungspunkte oder Backups erfolgen.
5.3 Murmur Exploit für einen DoS-Angriff
Bei dem Murmur-Server der Version kleiner 1.2.2 und Beta 1.2.3 wurde ein Exploit
durch Luigi Auriemma bekannt. Durch einen fehlerhaften Datentyp in der SQL-Abfrage
ist es möglich, den Sprachkonferenzserver Murmur aufgrund eines Fehlers beim Umgang
mit fehlerhaften SQL-Abfragen zum Beenden zu zwingen. Der Angreifer muss sich
dabei mit dem Server verbinden, um den Fehler auszunutzen. Das Demo Programm
von Luigi Auriemma generiert eine SQL-Abfrage. In der like Klausel sind fast alle
Marcel Graef & Marco Franke
51
5 Demonstration von Angriffsszenarien
Zeichen Unicode Transformation Format (UTF)-8 Zeichen, außer ein paar
wenige UTF-32 Zeichen. Diese SQL-Abfrage bringt den Server zum Absturz.
(a) Das Programm mumbleed wird mit der IP- (b) Der Mumble-Client ist mit dem MurmurAdresse des Murmur-Servers als Parameter auf- Server verbunden.
gerufen.
Abbildung 5.7: Murmur Exploit für einen DoS-Angriff: Kommandozeile und MumbleClient vor dem Angriff.
Um die Wirkungsweise des Exploits zu zeigen, wird der Murmur Server auf PC 1 mit der
Version 1.2.2 installiert. Das Paket ist unter http://pkgs.org/ubuntu-10.04/ubuntuuniverse-i386/mumble-server_1.2.2-1ubuntu1_i386.deb.html verfügbar und wird
als deb-Paket über die Paketverwaltung installiert. Auch das Programm zur Demonstration des Exploits mumbleed steht unter [Aur10a] als C-Programm zur Verwendung
bereit.
(a) Das Programm mumbleed wurde ausgeführt
und hat den Murmur-Server beendet.
(b) Der Mumble-Client ist nicht mehr mit dem
Murmur-Server verbunden.
Abbildung 5.8: Murmur Exploit für einen DoS-Angriff: Kommandozeile und MumbleClient nach dem Angriff.
Das Programm mumbleed wird, wie in Abbildung 5.7 dargestellt, mit der IP-Adresse
52
Marcel Graef & Marco Franke
5.3 Murmur Exploit für einen DoS-Angriff
(192.168.1.100) des Murmur-Servers (PC 1) als Parameter gestartet. Um die Auswirkungen des Programms mumbleed beobachten zu können, wird eine Verbindung zwischen
den Murmur-Server (PC 1) und des Mumble Clients (PC 2) hergestellt. Dem MumbleClient-Fenster (Abbildung 5.7) kann entnommen werden, dass eine Verbindung zum
Server hergestellt wurde.
Nachdem das Programm mumbleed ausgeführt wurde (siehe Abbildung 5.8), ist die
Verbindung zwischen Client und Server unterbrochen und kann nicht ohne ein erneutes
Starten des Murmur-Servers wiederhergestellt werden.
[Aur10b], [Aur10a]
Marcel Graef & Marco Franke
53
6 Resümee und Ausblick
6 Resümee und Ausblick
In Kapitel 2 wurden die Sprachkonferenzsysteme TeamSpeak 3 und Mumble/Murmur
hinsichtlich ihrer Grundfunktionalitäten untersucht und verglichen. Dabei sind viele
Parallelen zwischen den Sprachkonferenzsystemen hervorgegangen. Deshalb ist Mumble/Murmur als gleichwertige Alternative zu TeamSpeak 3 anzusehen. Im Punkt der
verwendeten Codecs (siehe Abschnitt 2.5) hat sich Mumble/Murmur mit dem Einsatz
von Opus sogar als zukunftsorientierter erwiesen. Den größten Unterschied bilden die
unterschiedlichen Lizenzmodelle. Besonders für kommerzielle Unternehmen scheint die
Wahl für den Einsatz von Mumble/Murmur aus Kostengründen attraktiver.
Aus Kapitel 3 ist hervorgegangen, welche Schwachstellen in einem Sprachkonferenzsystem existieren können. Es hat sich gezeigt, dass mit einer detaillierten Analyse
viele Schwachstellen aufgedeckt werden können, welche man erst durch eine nähere
Betrachtung von Schutzzielen, Angriffsarten und Bedrohungen erkennt. Dies soll vor
allem ein Appell an Unternehmen sein, welche dem Sicherheitsmanagement und der
damit verbundenen Analyse des Systems nicht ausreichend Bedeutung zumessen.
In Kapitel 4 wurde beispielhaft eine Testumgebung auf Grundlage der in Kapitel 3
identifizierten Schwachstellen aufgebaut und getestet. Dabei wurden zahlreiche Maßnahmen und Empfehlungen vorgestellt, welche die Sicherheit des Sprachkonferenzsystems
enorm steigern. Besonders hervorzuheben sind dabei Maßnahmen der Konfiguration des
Sprachkonferenzsystems selbst, des Betriebssystems und der Firewall. An dieser Stelle
ist auch noch einmal auf die Schwachstelle Mensch“ hingewiesen, welcher nur durch
”
einen bewussten und sicherheitsorientierten Umgang mit einem Sprachkonferenzsystem
entgegen gewirkt werden kann.
Abschließend wurden in Kapitel 5 eine Reihe Szenarien aufgezeigt, welche die Angreifbarkeit von Sprachkonferenzsystemen demonstrieren. Daraus ist hervorgegangen,
welche Auswirkungen die Missachtung von Sicherheitsmaßnahmen, wie beispielsweise
die Verwendung aktueller Softwareversionen, haben kann. Es wurde gezeigt, dass die
54
Marcel Graef & Marco Franke
Schwachstelle Mensch durch unachtsame Konfiguration oder die Verwendung unsicherer
Passwörter ein großes Sicherheitsrisiko darstellt.
Insgesamt wurde gezeigt, dass sowohl TeamSpeak 3 als auch Mumble/Murmur hohe
Sicherheitsstandards bieten, aber dennoch angreifbar sind. Da Mumble/Murmur im
Vergleich zu TeamSpeak 3 quelloffen ist und somit zur Identifikation von Sicherheitslücken einem größeren Personenkreis zur Verfügung steht, einen fortschrittlicheren
Codec verwendet und keinen lizenzrechtlichen Einschränkungen unterworfen ist, ist die
Verwendung von Mumble/Murmur zu empfehlen.
Marcel Graef & Marco Franke
55
Literaturverzeichnis
Literaturverzeichnis
[Aur10a]
Auriemma, Luigi: Murmur: QueryUsers SQLite database bug. http:
//aluigi.org/poc/mumbleed.zip. Version: 2010. – aufgerufen: 02.01.2012
[Aur10b]
Auriemma, Luigi: Murmur: QueryUsers SQLite database bug. http:
//aluigi.altervista.org/adv/mumbleed-adv.txt. Version: 2010. – aufgerufen: 02.01.2012
[Aur10c]
Auriemma, Luigi: teamspeakrack. http://aluigi.altervista.org/adv/
teamspeakrack-adv.txt. Version: 2010. – aufgerufen: 02.01.2012
[Bad10]
Badach, Anatol: Voice over IP: Die Technik. HANSER, 2010
[BSB04]
Barrett, D.J. ; Silverman, R.E. ; Byrnes, R.G.: Linux-SicherheitsKochbuch. O’Reilly Germany, 2004
[BSI04]
Projektgruppe E-Government im Bundesamt für Sicherheit in der Informationstechnik(BSI):
Sichere Kommunikation im E-Government.
https://www.bsi.bund.de/cae/servlet/contentblob/476846/
publicationFile/28062/4_SiKomm_pdf.pdf.
Version: 2004. –
aufgerufen: 29.11.2012
[Cam10]
Camboulive, Hugo:
An open source alternative to the Teamspeak server with protocol compatibility. https://github.com/Youx/
soliloque-server/wiki/TeamSpeak-protocol. Version: 2010. – aufgerufen: 25.11.2012
[EE07]
Evren Eren, Detken Kai-Oliver: VoIP Security. HANSER, 2007
[Hau12]
Hauser van:
THC-Hydra.
http://www.thc.org/thc-hydra/.
Version: 2012. – aufgerufen: 30.11.2012
56
Marcel Graef & Marco Franke
Literaturverzeichnis
[MuM12a] Das Mumble-Team:
Mumble offizielle Webpränz.
http://mumble.
sourceforge.net/. Version: 2012. – aufgerufen: 25.11.2012
[MuM12b] Das Mumble-Team: Mumble offizielle Webpränz: ACL. http://mumble.
sourceforge.net/ACL_Tutorial/Deutsch. Version: 2012. – aufgerufen:
25.11.2012
[MuM12c] Das Mumble-Team: Mumble offizielle Webpränz: FAQ. http://mumble.
sourceforge.net/. Version: 2012. – aufgerufen: 25.11.2012
[MuM12d] Das Mumble-Team: Mumble offizielle Webpränz: Installing. http://
mumble.sourceforge.net/Installing_Mumble. Version: 2012. – aufgerufen: 25.11.2012
[Nat12a]
Natenom: Natenom: Mumble Benutzerhandbuch. http://wiki.natenom.
name/mumble/benutzerhandbuch. Version: 2012. – aufgerufen: 25.11.2012
[Nat12b]
Natenom: Natenom: wiki. http://wiki.natenom.name/. Version: 2012. –
aufgerufen: 25.11.2012
[PHC08]
Xiph.Org Foundation: Celt Projekthomepage. http://celt-codec.org.
Version: 2008. – aufgerufen: 25.11.2012
[PHO11]
Xiph.Org Foundation: Opus Projekthomepage. http://opus-codec.org.
Version: 2011. – aufgerufen: 25.11.2012
[PHS94]
Xiph.Org Foundation: Speex Projekthomepage. http://www.speex.org.
Version: 1994. – aufgerufen: 25.11.2012
[SH10]
Stefan Hacker, Mikko R.: Mumble protocol 1.2.X reference (WIP).
(2010)
[Spe11]
Spenneberg, R.: Linux-Firewalls mit iptables & Co.: Sicherheit mit Kernel
2.4 und 2.6 für Linux-Server und Netzwerke. Pearson Deutschland GmbH,
2011
[TSo12a]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz. http://www.
teamspeak.com. Version: 2012. – aufgerufen: 25.11.2012
[TSo12b]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: Downloads.
Marcel Graef & Marco Franke
57
Literaturverzeichnis
http://www.teamspeak.com/?page=downloads. Version: 2012. – aufgerufen: 25.11.2012
[TSo12c]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: FAQ. http:
//www.teamspeak.com/?page=faq. Version: 2012. – aufgerufen: 25.11.2012
[TSo12d]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: Licensing Overview. http://sales.teamspeakusa.com/licensing.php. Version: 2012. –
aufgerufen: 25.11.2012
[TSo12e]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: Permissions
Guide. http://media.TeamSpeak.com/ts3_literature/TeamSpeak%203%
20Permissions%20Guide.txt. Version: 2012. – aufgerufen: 25.11.2012
[TSo12f]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: Support. http:
//support.teamspeakusa.com/index.php. Version: 2012. – aufgerufen:
25.11.2012
[TSo12g]
TeamSpeak Systems GmbH: TeamSpeak offizielle Webpränz: What
is TeamSpeak. http://media.TeamSpeak.com/ts3_literature/What%
20Is%20TeamSpeak.pdf. Version: 2012. – aufgerufen: 25.11.2012
[Ubu12a]
ubuntu Deutschland e.V.: Sicherheitskonzepte. http://wiki.ubuntuusers.
de/Sicherheitskonzepte. Version: 2012. – aufgerufen: 11.12.2012
[Ubu12b]
ubuntu Deutschland e.V.: sudo Konfiguration. http://wiki.ubuntuusers.
de/sudo/Konfiguration. Version: 2012. – aufgerufen: 11.12.2012
58
Marcel Graef & Marco Franke
Abbildungsverzeichnis
Abbildungsverzeichnis
2.1
4.1
4.2
4.3
4.4
4.5
4.6
4.7
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
Schematische Darstellung des Client-Server-Modells von TeamSpeak 3
und Mumble/Murmur . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Schematische Darstellung der Untersuchungsumgebung . . . . . . . . .
Start des TeamSpeak 3-Servers mit Hilfe des Startskriptes. Beim ersten
Start werden das Administrator-Passwort und ein Token generiert. . . .
Installation und Einrichtung des TeamSpeak 3 Clients . . . . . . . . . .
Teamspeak 3 Client: Verbindung zu einem Server herstellen . . . . . . .
Schritte der Installation und Einrichtung von Mumble . . . . . . . . . .
Benutzung von Mumble . . . . . . . . . . . . . . . . . . . . . . . . . .
Dienste mit rcconf deaktivieren . . . . . . . . . . . . . . . . . . . . . .
23
TeamSpeak 3 Server Query Interface Text Flut . . . . . . . . . . . . . .
Verwendung und Optionen des TeamSpeak 3 Server Exploit . . . . . .
TeamSpeak 3 Server Query Interface Exploit . . . . . . . . . . . . . . .
Als Gast auf dem TeamSpeak 3 Server verbunden . . . . . . . . . . . .
Gast mit vollen Administrationsrechten . . . . . . . . . . . . . . . . . .
Auswirkung von Spam mit teamspeakrack im TeamSpeak 3-Client . . .
Murmur Exploit für einen DoS-Angriff: Kommandozeile und MumbleClient vor dem Angriff. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Murmur Exploit für einen DoS-Angriff: Kommandozeile und MumbleClient nach dem Angriff. . . . . . . . . . . . . . . . . . . . . . . . . . .
43
46
47
47
48
50
Marcel Graef & Marco Franke
24
25
26
28
29
32
52
52
59
Tabellenverzeichnis
Tabellenverzeichnis
2.1
2.2
Übersicht über die genutzten Standard-Ports von TeamSpeak 3 zu den
jeweiligen Diensten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übersicht über die genutzten Standard-Ports von Mumble/Murmur zu
den jeweiligen Diensten. . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
3.1
Mögliche Verletzungen bzw. Folgen, die sich aus den Bedrohungen durch
Verursacher und deren Ziele ergeben (Vgl. [Bad10, S.486]) . . . . . . .
3.2 Mögliche Folgen die sich durch Ausnutzung einer Schwachstelle ergeben
können. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
19
21
Marcel Graef & Marco Franke
Abkürzungsverzeichnis
Abkürzungsverzeichnis
ABR average bit rate. 7
AbS Analysis-by-Synthesis. 6
AES Advanced Encryption Standard. 4
ATHP Autorisierte TeamSpeak Host Provider. 8
CBR constant bit-rat. 7
CELP Code-Excited Linear Prediction. 6
CELT Constrained-Energy Lapped Transform. 6, 7
DDoS Distributed Denial of Service. 15
DoS Denial of Service. 15
DSL Digital Subscriber Line. 22
DTX Discontinuous Transmission. 7
DynDNS dynamisches Domain-Name-System. 23
FQDN Fully Qualified Domain Name. 23
GPL General Public License. 9
GSM Global System for Mobile Communications. 6
IP Internet Protokoll. 22, 23, 26
LPC Linear Predictive Coding. 6
MITM Man-in-the-middle. 17
Marcel Graef & Marco Franke
61
Abkürzungsverzeichnis
NAT Network Address Translation. 33
NPL Non-Profit-Lizenz. 8
OCB Offset Codebook Mode. 4
PCM Puls-Code-Modulation. 6
PLC Packet Loss Concealment. 7
QoS Quality of Service. 12
SDK Software Development Kit. 8
SHA Secure Hash Algorithm. 4
SSH Secure Shell. 34
TCP Transmission Control Protocol. 3, 27, 37
TLS Transport Layer Security. 4
UDP User Datagram Protocol. 3, 24, 27, 37, 45, 46, 50
UTF Unicode Transformation Format. 52
VAD Voice Activity Detection. 7
VBR variable bit rate. 7
WAN Wide Area Network. 1
62
Marcel Graef & Marco Franke
Eigenständigkeitserklärung
Die vorliegende Arbeit wurde von uns mit größter Sorgfalt selbständig ohne Benutzung
anderer als den angegebenen Quellen erstellt. Textstellen, die wörtlich oder sinngemäß
übernommen wurden, sind als solche kenntlich gemacht.
Marco Franke
Marcel Graef & Marco Franke
Marcel Graef
Leipzig, den 24. Februar 2012
63