Lauschangriff in VoIP-Netzen

Vorsicht beim Rufaufbau! Unter Umständen hört der Angerufene schon während des Klingeltons mit, was der Anrufer sagt. Mit der Telefonanlagen-Software Asterisk kann man das sogar selbst ausprobieren.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 10 Min.
Von
  • Marco Di Filippo
  • Daniel Bachfeld
Inhaltsverzeichnis

Das Early-Media-Merkmal ermöglicht es, Angerufenen bereits während des Aufbaus der Verbindung Audioinformationen zu übermitteln. Es ist eigentlich dafür gedacht, individuelle Besetztzeichen, Ansagen wie "Kein Anschluss unter dieser Nummer", "Teilnehmer ist vorübergehend nicht erreichbar", aber auch Preisansagen von CallByCall-Anbietern zu senden. Dies hat für den Nutzer den Vorteil, dass ihn diese Informationen nichts kosten - denn allein der Versuch, eine Telefonverbindung aufzubauen, wird üblicherweise nicht berechnet. Der Zähler tickt erst ab dem Moment, zu dem beide Teilnehmer aktiv verbunden werden.

In den meisten Fällen wird Early Media nur in Richtung des Anrufers eingesetzt, jedoch werden auch bereits die Sprachdaten vom Anrufer zur angerufenen Anlage übertragen. Damit kann der Anrufer Sprachbefehle oder MFV-Töne (Mehrfrequenzverfahren) zur Aktivierung von Systemen oder für interaktive Sprachantworten (Interactive Voice Response, IVR) senden. Mit Asterisk kann man diese Daten hörbar machen. So können dann während der Rufphase geäußerte Bemerkungen, etwa zu einem Kollegen über den "dämlichen Kunden, der sich über den Tisch ziehen lässt", aufgezeichnet werden, ohne das Telefon abzuheben. Weitere Informationen zu dieser Schwachstelle sind im Artikel "Vorgespräch" in c't 11/09 auf Seite 166 zu finden.

Für eine Testinstallation benötigt man ein Nutzerkonto bei einem SIP-Anbieter, der ein PSTN/VoIP-Gateway betreibt, das Early Media in beide Richtungen erlaubt, beispielsweise Sipgate. Ein Konto dort ist kostenlos, lässt sich online einrichten und verwalten und man bekommt eine Festnetznummer aus dem eigenen Ortsnetz zugeteilt - auf Wunsch sogar aus einem fremden Ortsnetz. Für Anrufe von Außen fallen keine weitere Telefonkosten an; nur für Gespräche nach Draußen berechnet Sipgate Gebühren.

Für die Installation haben wir Ubuntu 8.10 verwendet. Die Hardwareansprüche von Asterisk selbst sind minimal, sodass es sich ohne Probleme auf einem bereits bestehenden Server parallel betreiben lässt. Um die Schwachstelle in Early Media nachzuvollziehen, benötigt man Asterisk ab Version 1.4.1, da erst seit dieser Version die Funktion "Chanspy" mit der Option "Whisper" zur Verfügung steht. In den Ubuntu-Repositories steht Version 1.4.17 bereit. Für die Installation genügt folglich sudo apt-get install asterisk, alle erforderlichen Bibliotheken und Codecs werden vom Paketmanager nachgeladen. Anschließend startet Asterisk automatisch.

Damit der Asterisk-Server hinter einem NAT-Router aus dem Internet beziehungsweise von Sipgate erreichbar ist, ist eine Forwarding-Regel für den SIP-Port 5060 erforderlich. Da einige DSL-Router wie der W701V der T-Com eigene VoIP-Software enthalten, ist dieser Port bereits belegt und lässt sich auch nicht weiterleiten. In diesem Fall muss man seine SIP-Kommunikation auf einen anderen Port verschieben, beispielsweise Port 5061. Steht der Server zu Hause, ist es zudem sinnvoll, die öffentliche IP-Adresse des Anschlusses einem Domain-Namen eines dynamsichen DNS-Anbieters zuzuordnen, etwa dyndns.org.

Die folgenden Konfigurationsbeispiele sollen nur das Problem demonstrieren. Sie führen nicht zu einer funktionierenden Telefonanlage mit der man auf normalen Wege Gespräche von Außen entgegennehmen kann. Dreh und Angelpunkt der Asterisk-Konfiguration sind die Dateien /etc/asterisk/sip.conf und /etc/asterisk.extensions.conf. sip.conf regelt alles rund um die Netzwerkkonfiguration und die verwendeten Codecs:

[general]
context=default
allowoverlap=no
bindport=5061
bindaddr=0.0.0.0
srvlookup=yes
qualify=no
disallow=all
allow=ulaw
allow=ilbc
allow=alaw
allow=g729
allow=gsm
allow=slinear
register => Sipgate-ID:Passwort@sipgate.de/Sipgate-ID
externhost=meinedomain.dyndns.org
nat=yes

Die Option bindport ist standardmäßig auf Port 5060 gesetzt. Wenn der DSL-Router mit diesem Port Probleme hat (s.o), muss man ihn wie im Beispiel auf Port 5061 setzen. Mit den Angaben in register meldet sich der Asterisk-Server am Sipgate-Server an. Die Sipgate-ID ist dabei die zugewiesene siebenstellige Nummer und das dazugehörige Passwort (nicht zu verwechseln mit den bei der Anmeldung vergebenen Daten). ID und Passwort sind im Sipgate-Konto des Anbieters einsehbar. Als [externhost] trägt man seine beim dynamischen DNS-Provider angelegte Domain an. Durch das Setzen der Option nat=yes weiß Asterisk, dass auf dem Weg zum SIP-Gateway ein NAT-Router steht.

Zusätzlich enthält sip.conf Angaben zu den Nutzer-Konten, mit denen sich sowohl die Nebenstellen als auch der SIP-Provider an der Asterisk-Anlage anmelden können. Ohne eine Anmeldung des Sipgate-Gateways wären nur abgehende Gespräche möglich. Für abgehende Gespräche muss man ein Gebührenkonto bei Sipgate einrichten und aufladen, andernfalls teilt einem eine Ansage mit, dass dieser Dienst nicht verfügbar ist.

[sipgate]
type=friend
insecure=invite
nat=yes
username=Sipgate-ID
fromuser=Sipgate-ID
fromdomain=sipgate.de
secret=Passwort
host=sipgate.de
qualify=yes
canreinvite=no
dtmfmode=rfc2833
context=default

[100]
type=peer
username=100
secret=test
host=dynamic
disallow=all
allow=ulaw
allow=alaw
dtmfmode=rfc2833
context=default

[200]
type=peer
username=200
secret=test
host=dynamic
disallow=all
allow=ulaw
allow=alaw
dtmfmode=rfc2833
context=default