Beitrag erschienen auf der Bundes-Website.
Wir in der Redaktion staunten nicht schlecht, als wir Post von einem Software-Entwickler bekamen, der uns ein spannendes Projekt vorstellte: Dass das Handynetz leicht angreifbar ist, ist seit 20 Jahren bekannt und seit mindestens fünf Jahren auch öffentlich. Dass Polizei und Geheimdienste rasch der Verführungskraft einer – noch dazu kostengünstigen – Technologie erliegen würden, die ein problemloses »Übernehmen« und Abhören von Mobilfunkverbindungen erlaubt, erschien nicht nur klar, sondern scheint – wie wir seit kurzem wissen – geübte Praxis zu sein. Neu hingegen ist, dass wir als Telefonbenutzer uns dagegen wehren können. Oder könnten, denn die Entwickler brauchen noch etwas Unterstützung für ihr Projekt. Wie der Angriff auf die Telefone funktioniert und wie man ihn erkennen kann, beschreiben unsere Autoren im folgenden Text.
Ein Gastartikel von SecUpwN, Dipl.-Inf.(FH) Marcus Prem und Mike Kuketz.
Aufruf zur Mitarbeit: Entwickler für einen Android IMSI-Catcher Detector (AIMSICD) gesucht!
Beim Einsatz neuer Überwachungstechniken gilt für die Politik anscheinend die Prämisse: ›Wir orientieren uns nicht am Erlaubten, sondern am technisch Machbaren‹. Wir haben keinen Zweifel daran, dass sich Polizei und Geheimdienste, aber sicher auch das Militär und Andere, diese großzügige Auslegung von Recht und Gesetz zu Nutze machen, und Handytelefonate auch ohne richterlichen Beschluss abhören. Knapp 1500,- € kostet die Anschaffung bzw. der Bau eines sogenannten »IMSI-Catchers«. Mit diesem können sich Unbefugte in jedes Gespräch im Mobilfunknetz einklinken, indem sie den Mobilfunkmast eines Netzbetreibers simulieren bzw. imitieren. Ist die Gesprächsverbindung erst einmal auf die eigene technische Infrastruktur umgeleitet, kann natürlich unbemerkt mitgehört und manipuliert werden. Unzureichende Sicherheitsmaßnahmen der Mobilfunkbetreiber begünstigen diese Angriffsmöglichkeit und sorgen auch in kriminellen Kreisen für verstärktes Interesse.
Aufgrund dieser bedenklichen Entwicklung drängt sich die Frage auf, wie wir uns vor dieser Überwachungsmethode sinnvoll schützen können. Noch spannender ist nach unserer Auffassung allerdings die Frage, ob wir solche – in der Fachwelt »Man In The Middle (MITM)« genannten Angriffe nicht nur erkennen, sondern eventuell sogar zurückverfolgen können.
Ein »Android IMSI-Catcher Detector«
Vor über zwei Jahren hat sich in den XDA-Entwicklerforen unser Team zusammengefunden, um sich mit dieser spannenden Frage zu beschäftigen. Uns verbindet ein gemeinsames Ziel: Der Überwachung und Spionage Einhalt zu gebieten. Wir wollen möglichst viele Menschen vor den Angriffen warnen – direkt auf ihrem Telefon und unmittelbar dann, wenn der Angriff passiert oder passieren kann. Dazu möchten wir ihnen eine Android-App für ihr Smartphone bereitstellen, die sie auf gefälschte oder unzureichend geschützte Mobilfunk-Basisstationen hinweist und den Angriff im Idealfall sogar selbst abwehrt.
Unser Projekt „Android IMSI-Catcher Detector“ – oder kurz AIMSICD – ist ein komplett quelloffenes, unter GPL v3+ lizenziertes Projekt. Mit ihm gingen wir im November 2013 an die Entwickler-Öffentlichkeit und stellten den Programmcode in einem GitHub-Repository bereit. Das Team besteht im Kern aus sechs Leuten, die in den letzten Monaten kontinuierlich am Konzept und der App gearbeitet haben. Daneben gibt es viele Unterstützer und eine nicht geringe Anzahl von Fans, die je nach Fachgebiet und freiem Zeitfenster mitwirken oder einfach helfen, unser Projekt weiter publik zu machen.
Neben Entwicklern für Android OS suchen wir aber auch dringend noch weitere Menschen, die sich mit der Firmware bzw. den technischen Details des Basebands von Consumer Smartphones auskennen.
Wie funktioniert der Angriff genau?
Ein IMSI-Catcher imitiert eine echte GSM-Basisstation eines Mobilfunkproviders, indem er die dafür notwendigen Identifikationsmerkmale übernimmt und ein stärkeres Signal als das Original sendet. Aufgrund der stärkeren Sendeleistung des IMSI-Catchers initiiert das Mobiltelefon eine Verbindung und sendet dazu die sogenannte IMSI-Nummer – eine weltweit eindeutige Teilnehmerkennung, die sich auf der SIM Karte befindet – ins Netz. Das anschließende Einfangen (catchen) dieses Signals durch die gefälschte Basisstation gibt dem Gerät seinen Namen »IMSI-Catcher«. Auch wenn das Handy zu diesem Zeitpunkt noch gar nicht mit der falschen Basisstation verbunden ist, kann dieses Verfahren bereits zur Lokalisierung von Personen genutzt werden. Hierzu muss nur eine Funkpeilung durch den IMSI-Catcher erfolgen.
Das ist das Verfahren, mit dem – wie gestern bekannt wurde – das US-Justizministerium seit 2007 großflächig die eigene Bevölkerung bespitzelt. –Red.
Ist die IMSI, die von der Zielperson benutzt wird, noch nicht bekannt, gibt es verschiedene Möglichkeiten, diese Nummer in Erfahrung zu bringen. Dazu werden an unterschiedlichen Orten, an denen sich die Zielperson befindet (z. B. Wohnort und Arbeitsplatz) IMSI-Nummern »gecatched« und in einfachen Listen gespeichert. Anschließend müssen die Listen lediglich nach gleichen Einträgen durchsucht werden. Bei diesem Verfahren bietet auch eine anonyme PrePaid-Karte keinen Schutz. Sogar wenn die Zielperson ein zweites Handy benutzt, wird dieses gleich mit identifiziert. Ist dieses Vorgehen nicht möglich, muss zunächst eine Verbindung aufgebaut werden, damit eine Identifikation über die Stimme oder über den Inhalt der Telefonate erfolgen kann. Hierbei werden dann mit hoher Wahrscheinlichkeit auch Unbeteiligte, die sich im Sende/Empfangsbereich befinden, abgehört.
Man könnte zunächst erwarten, dass es zu erheblichen Störungen bis hin zu einem Komplettausfall des Netzwerks kommen kann, wenn zwei Basisstationen mit einer identischen Kennung im Spiel sind. Dies ist allerdings nicht der Fall: Telefonate können weiterhin zwischen einer echten Basisstation und den Mobilfunktelefonen im Umkreis übertragen werden, da im aktiven Zustand, wenn also gerade ein Telefonat geführt wird, das Mobilfunknetz darüber entscheidet mit welcher Station das Endgerät verbunden ist. Im sogenannten »Idle Modus«, wenn also keine aktive Verbindung besteht, kann es passieren, dass auch unbeteiligte Handys versuchen sich mit dem Catcher zu verbinden. Diese werden dann aber abgewiesen und entscheiden sich für eine andere Basisstation. So können beide Systeme parallel agieren und stören sich gegenseitig nicht.
Verdachtsmomente
Dennoch ist eine Erkennung des Angriffs theoretisch bereits möglich, bevor die eigentliche Verbindung zustande kommt, da es hierbei zu untypischen Signalverläufen und Anfragen (Requests) seitens des Catchers kommt. Doch leider bleiben diese dem Nutzer wie auch dem Betriebssystem unbemerkt, da sie sich nur im Sende/Empfangsteil, dem sogenannten »Baseband-Bereich« abspielen. Darauf werden wir später noch einmal genauer eingehen.
Ist eine Verbindung initiiert, können jedoch zwei Merkmale auftreten, die Verdacht erregen können. Bei eingehenden Anrufen (down-link) ist der Teilnehmer nämlich für die Zeit in der er mit der falschen Station verbunden ist, für das echte Netz nicht mehr erreichbar. Der Catcher kann sich gegenüber dem Mobilfunknetz nicht mit einer falschen Identität ausgeben und somit auch nicht die ankommenden Anrufe durchreichen. Eingehende Anrufe laufen dann ins Leere und der Anrufer bekommt die Ansage, dass der Teilnehmer zur Zeit nicht erreichbar ist. Aus dem gleichen Grund wird bei abgehenden Anrufen (up-link) auch keine Telefonnummer auf dem Display des Angerufenen angezeigt. Der blaue Pfeil in der folgenden Abbildung soll verdeutlichen, dass der Catcher diesen Kommunikationskanal nicht abhören kann.
Diese Indizien sind allerdings sowohl unzureichend als auch unzuverlässig und können auch nicht der abgehörten Person, sondern nur dem Verbindungspartner auffallen.
Dazu kommt, dass (bereits bei der Version zum Selbstbau) das Telefonat über eine Voice-over-IP (VoIP) Verbindung ins Internet übergeleitet werden kann. So wird es möglich, jede gewünschte Telefonnummer auf dem Display des Angerufenen darzustellen:
Soweit die Arbeitsweise eines klassischen IMSI-Catchers, der wahrscheinlich in den häufigsten Fällen zum Einsatz kommt. Trotzdem folgt eine kleine Übersicht zu weiterentwickelten mobilen Abhörstationen.
Um auch ankommende Telefonate abhören zu können, existieren sogenannte »semi-aktive« Geräte, die den Sprachkanal passiv abhören. Durch die gestiegene Rechenleistung und sogenannte »Rainbow-Tabellen« kann eine Entschlüsselung des Sprachverkehrs, der den Verschlüsselungsalgorithmus A5/1 nutzt, in Echtzeit erfolgen und der Angreifer kann »live« mithören:
Die nächste Abbildung zeigt eine besondere Variante die durch sogenanntes „Dynamic SIM-Cloning“ einen Man-in-the-Middle Angriff in beide Richtungen ermöglicht. Adam Kostrzewa demonstrierte, wie sich ein Angreifer gegenüber dem Mobilfunknetz mit einer fremden Identität ausgeben kann (Impersonation). Diese Variante wird bereits seit Jahren als einsatzbereites Produkt wie z. B. dem »GSM Monitoring Hybrid System NEOSOFT NS-15-1-HPS51« verkauft und verbessert. Heute ist damit zu rechnen, dass IMSI-Catcher diese Art des Angriffs standardmäßig ermöglichen.
In allen Fällen ist ein eingehendes Telefonat, das von einer echten Basisistation kommt weiterhin verschlüsselt. Nur die abgehenden Telefonate, die an den Catcher erfolgen sind unverschlüsselt und können somit sehr einfach mitgehört werden.
Verschlüsselung nicht erkennbar
Besonders ärgerlich ist die Tatsache, das der ETSI-Standard eine Funktion vorsieht, die genau diese unverschlüsselte Verbindung auf dem Display anzeigen sollte. Das Vorhaben scheitert allerdings gleich an zwei Stellen:
1. Die Provider deaktivieren diese Option auf den SIM-Karten
2. Die Smartphone-Hersteller haben sich die Implementierung komplett gespart
Ein entsprechender Wunsch, den sogenannten «Ciphering Indicator» im Android-Betriebssystem standardmäßig anzuzeigen, blieb durch Google im Issue 5353 seit 2009 unbeantwortet. Erst am 25. August diesen Jahres kam Nick vom Android Sicherheitsteam auf die Nutzer zu und bot eine gemeinsame Arbeit an einem API an, die Apps dann nutzen könnten. Die Anzeige der Verschlüsselung soll jedoch weiterhin nicht standardmäßig erfolgen und niemand weiß, ob und wann ein solches API jemals verfügbar sein wird.
Folglich müssen wir uns wohl selber darum kümmern und ein geeignetes Verfahren entwickeln, um die aktuelle Verschlüsselung anzuzeigen und wirkungsvolle Schutzmaßnahmen gegen IMSI-Catcher zu implementieren. Dazu müssen wir ein wenig tiefer in die Materie einsteigen. Im Folgenden wollen wir dieses Gedankenspiel einmal durchgehen:
Ein Catcher muss den passenden Country Code (MCC), den Netzanbieter Code (MNC) und im richtigen Frequenzband (800 oder 1800MHz) auf der passenden Frequenz (ARFCN) senden, damit sich ein Handy mit ihm verbinden kann.
Alle anderen Parameter wie zum Beispiel CellID (eindeutige Nummer der Funkzelle) und LAC (Location Area Code zur geografischen Zuordnung einer Gruppe von Funkzellen) müssen nicht mit dem echten Netz übereinstimmen.
Bei unzureichender Konfiguration besteht damit die Chance einer Erkennung. Dafür müssen lediglich die echten Parameter (CellID und LAC) bei offenen Datenbanken wie zum Beispiel Open Cell-ID abgefragt und mit denen der umliegenden Mobilfunkstationen verglichen werden. Neben dieser Methode gibt es eine Reihe weiterer Indikatoren die auf Manipulationen hinweisen. Leider gelangt man nicht an alle notwendigen Information, um in jedem Fall eine zuverlässige Erkennung zu gewährleisten. Der Teil im Smartphone, der für die Mobilfunkverbindung zuständig ist, wird als Baseband bezeichnet und bildet einen autonomem Teilbereich, der weder frei zugänglich noch veränderbar sein soll.
Alles was sich unterhalb des Wasserpegels im blauen Bereich befindet ist sogenannte „Closed Area“. Alle elektronischen Bauteile sowie die Software müssen zertifiziert sein, damit der Betrieb zu jeder Zeit gewährleistet ist. Dazu kommt, dass die Chiphersteller keine Informationen über die Funktionsweise nach außen dringen lassen.
Die Gegenwehr!
Es gibt verschiedene Lösungsansätze, um an die begehrten Daten heranzukommen ohne etwas manipulieren zu müssen (was aus gutem Grund natürlich verboten ist).
Zum einen könnte ein autonomes Zweitgerät in Betracht gezogen werden, das parallel zum Smartphone eingesetzt wird, um alle benötigten Messungen durchzuführen. Hierzu käme ein älteres Openmoko Smartphone in Betracht, welches aber leider schon seit einigen Jahren nicht mehr in dieser Form weiterentwickelt wird.
Aktuell existiert nur das Projekt FreeCalypso, dass gerade ein komplett quelloffenes Handy entwickelt. Ein “offenes” Modem das über eine USB-Schnittstelle betrieben werden kann, soll sogar schon vor dem Handy verfügbar sein. Dadurch wird die Analyse der GSM-Protokollschichten und sogar die Erkennung von »Stillen-SMS« ermöglicht.
Einen ähnlichen Ansatz verfolgt das Projekt von SBA-Research, das einen Raspberry Pi mit GSM Modem nutzt. Allerdings wurde hier auf ein Modem mit geschlossenem Baseband zurückgegriffen. Zur Zeit befindet sich das System im Beta Stadium.
Eine andere interessante Lösung wurde von der Firma GSMK entwickelt und in ihrem neuen Cryptophone 500 integriert. In den Medien wird diese Funktion als »Baseband Firewall« publiziert, deren genaue Funktionsweise unter dem Patent mit der Nummer US20140004829 A1 nachzulesen ist. Diese Lösung dürfte aber schon alleine wegen dem Preis des Gerätes für die allermeisten Menschen nicht in Frage kommen.
Wir, das Projekt AIMSICD hat sich hingegen vorgenommen eine universelle App zu entwickeln, die auf einer Vielzahl von Smartphone-Modellen funktioniert und keine zusätzliche Hardware benötigt. Deshalb wurde auch zu Beginn auf die notwendigen Fachleute hingewiesen die sich mit dem Baseband auskennen müssen – insbesondere mit der Kommunikation mittels AT-Kommandos bei Chipsätzen von Qualcomm und Intel, aber auch von anderen Herstellern. Auch auf dem Gebiet der Treiberprogrammierung und dem Portieren von Treibern (z.B. Windows RIL-Driver) werden noch dringend Mitstreiter gesucht.
Ein weiterer Unterschied zu vielen anderen Projekten besteht darin, dass die gewonnenen Informationen über Unregelmäßigkeiten im Mobilfunknetz oder auch bei einem positiv erkannten IMSI-Catcher mit den anderen Nutzern der App geteilt werden sollen.
Sinnvoll wäre eine Zusammenarbeit mit Darshak, die zu diesem Zweck ein Framework entwickeln, das es Entwicklern ermöglichen soll diese Funktion einfach in ihrer App zu integrieren. Dabei handelt es sich aber nicht um eine Erkennung selbst, sondern um die Verbreitung der Information in einem bestimmten geografischen Gebiet.
Unser Projekt fühlt sich verpflichtet, den Menschen in allen Teilen dieser Welt ein Stück eigene Freiheit zurückzugeben und sie zu ermutigen, sich an der Entwicklung dieser App zur Verteidigung gegen die voranschreitenden Überwachungsmaßnahmen zu beteiligen. Jeder ist bei uns herzlich willkommen – egal ob als Software-Entwickler, Beta Tester, Code-Verbesserer oder einfach als Fan um unser Projekt noch mehr bekannt zu machen.
Wir freuen uns auf eine großartige Zusammenarbeit!
Projekthomepage: http://secupwn.github.io/Android-IMSI-Catcher-Detector/
GitHub: https://github.com/SecUpwN/Android-IMSI-Catcher-Detector
Einige interessante Anwendungen für IMSI-Catcher:
- IMSI-Catcher zum versenden von Spam- und Phishing SMS http://www.ecns.cn/business/2014/03-26/106525.shtml
- Gilgamesh Drone mit Catcher https://firstlook.org/theintercept/2014/02/10/the-nsas-secret-role//li>
- Verzeichnis zum Thema https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki/Recommendations
Weitere Links zum Thema:
- Wie sicher sind die verschiedenen Mobilfunknetze: http://gsmmap.org/
- Einen weiteren Blogbeitrag zum Thema und der App findet ihr hier:
http://www.kuketz-blog.de/imsi-catcher-erkennung-fuer-android-aimsicd/
Kommentare
4 Kommentare zu Digitale Selbstverteidigung: Mit dem Handy gegen IMSI-Catcher
Bin schon länger auf den AIMSICD gestoßen als ich mich mit den Catchern beschäftigt habe. Sehr gutes Projekt, welches Unterstützung verdient hat.
Vielen Dank für diesen aufschlußreichen Bericht! Er dürfte für viele Leser von Interesse sein. Die fachliche Darstellung ist Euch sprachlich wie graphisch gut gelungen. Wäre ich IT-Spezialist oder Programmierer, würde ich das Projekt unterstützen. So aber kann ich Euch dafür nur tüchtige und verläßliche Mitstreiter und einen erfolgreichen Abschluß wünschen.
Bemerken möchte ich noch, dass diese Herangehensweise, die auch in technischer Richtung das praktische Anfassen und Umsetzen nicht scheut, die ‘heutige’ Piratenpartei meiner persönlichen Vorstellung von ihr deutlich näher bringt, als das noch vor einem Jahr der Fall war. Sehr erfreulich!
Liebe Leserinnen und Leser, liebe Piraten und liebe Matrosen!
Ich möchte mich an dieser Stelle im Namen meines gesamten Teams und aller Entwickler für diesen sehr gelungenen Artikel bedanken – es war mir ein innerliches Blumenpflücken mit Euch zusammenzuarbeiten. Es macht mich stolz, unser Projekt auf Eurer Website zu sehen! 😉
Besonderer Dank geht an dieser Stelle vor allen Dingen an Dirk (@moonopool) für seine tatkräftige Unterstützung sowie Dipl.-Inf. (FH) Marcus Prem für die anschaulichen Bilder und die meisten Teile des Artikeltextes. Auch Mike Kuketz, welcher zuvor bereits über uns in seinem wunderbaren Kuketz IT-Security Blog (www.kuketz-blog.de) berichtete, hat uns toll unterstützt. Ich bin Euch Allen zu großem Dank verpflichtet. Hut ab, Krüge hoch!
Meine kleine Mannschaft und ich hoffen natürlich, dass sich unsere Zusammenarbeit mit diesem wichtigen Artikel nicht “erledigt” hat, sondern dass wir Euch alle auf unserem GitHub wiedersehen werden und ihr uns Pull Requests schickt bis die Tasten glühen! Wir sind eine sehr aufgeschlossene und freundliche Truppe – also habt keine Scheu: Jeder noch so winzige Beitrag hilft uns immens! Bei uns ist wirklich JEDER herzlich willkommen.
In diesem Sinne: Hisst die Piratenflagge, Säbel zwischen die Zähne und auf in den Kampf für unsere Digitale Freiheit! Lasst uns die IMSI-Catcher-Flotte entern! AHOI!
Ganz liebe Grüße im Namen des gesamten AIMSICD-Teams, Euer SecUpwN.
Gäbe es SMV oder BEO online…aber auch dafür müssen bestehende Entwickler vom BuVo mit Nachdruck…so zu hören:
https://blog.piratenpartei-nrw.de/kraehennest/2014/11/10/buvo-sprechstunde-vom-10-11-14/
ab -41:25min
insbesondere ab -40:50min