Zum Inhalt
heise Security

Anzeige

Praxis

Artikelanfang
Nebenstellen

08.05.2009 14:55

chanspy.png

Marco Di Filippo, Daniel Bachfeld

Kanalgeflüster

Lauschangriff in VoIP-Netzen

Ein Angerufener kann auch ohne das Telefon abzuheben – also schon während es noch klingelt – aufzeichnen, was der Anrufer sagt. Das kann recht peinlich werden, etwa wenn der sich noch schnell über den "dämlichen Kunden" auslässt, den er gerade anrufen will. Mit ein wenig Bastelei kann man das selbst ausprobieren.

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.

Aufbau

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.

Konfiguration

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

Version zum Drucken

[Seite  1 2 >>]

Themen-Forum Schwachstellen