Angriffe gegen Apple-Systeme - Populäre Irrtümer und gefühlte Sicherheit
Seit einiger Zeit haben Erpressungstrojaner bzw. Krypto-Trojaner oder Ransomwarei den Spitzenplatz an medialer Aufmerksamkeit unter den Schadsoftware-Kampagnen erlangt. Auch in der Vorfallsbearbeitung für das Deutsche Forschungsnetz nehmen diese mittlerweile einen festen Platz in den vorderen Rängen der täglichen Warnmeldungen ein. In diesem Zusammenhang erreichten uns mehrfach Nachfragen von Verantwortlichen verschiedener Einrichtungen, die in ihrem Bemühen, erhöhte Aufmerksamkeit und Vorsicht unter den Anwendern zu befördern ('awareness rising'), bei Apple-Anwendern regelmäßig auf Gleichgültigkeit stießen. Begründet wurde diese nicht mit der im Einzelfall sogar richtigen Aussage, dass Mac OS X hier nicht betroffen sei, sondern sie als Apple-Anwender prinzipiell von solchen Schadsoftware-Kampagnen nicht berührt würden.
Staatliche Hintertüren und Kompromittierungen
Am 10. März 2015 wurden aus den von Edward Snowden gesammelten Dokumenten Informationen zu einem über mehrere Jahre durchgeführten Programm der CIA zur Kompromittierung von iPhones veröffentlicht. Die zu Grunde liegende Idee war hier die Verbreitung einer kompromittierten Entwicklungsumgebung. Nur kurze Zeit später wurde die Verbreitung von XcodeGhost gestartet. Möglicherweise hat hier der Wunsch nach staatlichen Eingriffsmöglichkeiten als Ideengeber gewirkt.
Verwundbarkeit
Mehrere hundert veröffentlichte Schwachstellen für Apple-Systeme deuten bereits an, dass diese Systeme, wenngleich sie (noch) nicht im Fokus von Schadsoftware stehen, doch sehr wohl angreifbar sind.ii Trotzdem konnten wir in der Vergangenheit nur auf einen unvollständig umgesetzten Erpressungstrojaner, FileCoder.a, für Mac OS X aus dem Jahr 2014 verweisen.iii Erst mit dem Bekanntwerden von KeRangeriv und seiner Verbreitungv im März 2016 verfügen wir über ein praktisches Beispiel, warum auch für Apple-Anwender die mittlerweile über das BSI breit veröffentlichtenvi Vorsichtsmaßnahmen von Bedeutung sind. Der unzuverlässige Schutz von Backups über Time Machinevii rückt robuste Datensicherungsstrategien auch hier in den Vordergrund.
Die gefühlte Sicherheit der Apple-Anwender basiert zum einen sicher auf der deutlich geringeren Zahl von Angriffen: Durch die noch immer relativ geringe Verbreitung von OS X als Desktop-Betriebssystem ist dieses als Angriffsziel vergleichsweise wenig lukrativ. Allerdings kann sich dieses in Zukunft durchaus ändern; so wurde im Jahr 2015 etwa fünf mal mehr OS X Malware aufgefunden als in den vorherigen fünf Jahren zusammen.
Zum anderen bietet Apple seinen Nutzern seit 2010 mit dem App Store eine kontrollierte Vertriebsplattform für Software und überwacht seit der Einführung von Gatekeeper in 2012, dass prinzipiell nur von Apple freigegebene Software auf den Systemen installiert werden kann. Bedauerlicherweise wurden hiermit nicht nur neue Schwachstellen im Gatekeeper hinzugefügt, sondern zudem auch neue Angriffswege eröffnet. Es können beispielsweise bereits vom Gatekeeper freigegebene Produkte nachträglich infiziert werden und das System kompromittieren oder Angriffe über die zum Veröffentlichen eines Programms im App Store von Apple bereitgestellte Entwicklungsumgebung Xcode durchgeführt werden.viii
So war der oben genannte KeRanger keinesfalls die erste oder gar prominenteste Schadsoftware mit hoher Verbreitung auf Apple-Systemen.
Wir erhalten seit geraumer Zeit täglich zahlreiche Meldungen von Verbindungsversuchen infizierter iOS-Systeme zu Command-and-Control-Servern.
Diese werden ausgelöst von Anwendungen (Apps) die durch XcodeGhost, eine manipulierte Variante der genannten Entwicklungsumgebung, erzeugt wurden.
XcodeGhostix
Funktionsweise
Die Infektion durch XcodeGhost erfolgt über die Datei 'CoreServices'. Im Unterschied zu früherer iOS- und OS X-Schadsoftware, handelt es sich hierbei weder um eine ausführbare Mach-O Anwendung noch eine Programmbibliothek, sondern eine Mach-O Objektdatei. Diese wird vom LLVM-Linker benutzt und kann nicht direkt ausgeführt werden. In iOS enthalten die CoreServices viele der grundlegenden Systemdienste und werden von nahezu allen komplexeren iOS-Apps verwendet. Wird eine solche App kompiliert, sucht Xcode nach dem CoreServices-Framework in vorab definierten Pfaden, um es mit der Anwendung zu verknüpfen.
XcodeGhost implementiert Schadcode in einer eigenen CoreServices Objektdatei und kopiert diese an einen Ort im voreingestellten Suchpfad von Xcode. Auf diese Weise wird der Schadcode aus den manipulierten CoreServices mit jeder künftigen kompilierten App verbunden.
XcodeGhost: Details zur Funktionsweise
Die manipulierten CoreServices enthalten Schadcode in den sehr gebräuchlichen Klassen UIWindow und UIDevice. Wird eine infizierte Anwendung zur Ausführung gebracht, werden zunächst Informationen über System und Anwendung mit der Methode UIDevice AppleIncReserved gesammelt. Diese umfassen neben anderen:
- aktuelle Zeit
- Name der infizierten Anwendung
- den App bundle identifier
- Name des Gerätes und Typ
- Systemsprache und Landeseinstellung
- UUID des Gerätes
- Netzwerktyp
Die gesammelten Informationen werden danach verschlüsselt über das HTTP-Protokoll auf einen Command-and-Control-Server (C&C) hochgeladen. Von den C&C-Servern können Anweisungen empfangen werden, die
- eine gefälschte Warnung anzeigen, um Zugangsdaten abzufragen
- benutzt werden, um Daten aus der Zwischenablage auszulesen oder dort abzulegen
- eine bestimmte URL aufrufen
Das infizierte Gerät erhält von den Servern weitere Anweisungen in Form verschlüsselter JSON-Dateien. Der für die Verarbeitung erforderliche Code wird in manipulierten System-APIs abgelegt, die von den infizierten Anwendungen aufgerufen werden.
Die JSON Daten enthalten folgende Schlüssel:
- alertHeader
- alertBody
- appID
- cancelTitle
- confirmTitle
Die Schadsoftware nutzt die angegebenen Schlüsselwörter, um gefälschte Dialogboxen im Namen einer Anwendung zur Dateneingabe anzuzeigen. XcodeGhost kann diese Technik einsetzen, um Informationen vom Anwender zu erschleichen (Phishing). Typischerweise handelt es sich hierbei um Benutzernamen und Passwörter, es können jedoch auch beliebige andere, potentiell sicherheitskritische Informationen abgefragt werden. Diese können ebenso durch Zugriff auf die Zwischenablage erlangt werden. Eine zu öffnende URL wird ebenfalls als JSON-Datei, nun mit dem Schlüssel 'url', übergeben. Hierbei ist zu beachten, dass jedes URL-Schema gewählt werden kann, das von dem betroffenen Gerät verarbeitet wird; auch solche, die der lokalen Kommunikation zwischen Anwendungen auf dem Gerät dienen.
Quelltext von Xcodeghost:
Verbreitung
Der Download der originalen Xcode Entwicklungsumgebung (annähernd 3GB) von Apples Servern ist von manchen Orten, neben anderen aus der VR China, sehr langsam, so dass der Wunsch nach lokalen Alternativen entsteht. Nach Bekanntwerden von XcodeGhost ergab eine Suche nach „Xcode 下载” (Xcode downloading), dass in den Monaten zuvor zahlreiche Verweise in populären Foren und Websites gepostet worden waren, die zu kompromittierten Downloads auf Baidu Yunpan (einem chinesischen File-Hosting und -Sharing Dienst) führten.
Mit durch XcodeGhost erstellten Apps wurde, nach LBTM, InstaStock, FindAndCall, Jekyll und FakeTor, zum sechsten Mal eine Malware im offiziellen App Store entdeckt. Nach Verlautbarung von Apple wurden 25 kompromittierte Anwendungen ermittelt, nach Angaben von FireEye konnten jedoch mehr als 4000 identifiziert werden.x Unter diesen befanden sich verschiedene mit - zumindest in China - erheblicher Verbreitung.
Ausblick
Wenngleich die Idee eines kompromittierten Compilers bereits über 30 Jahre alt istxi, zeigte XcodeGhost eine einfache Methode, Anwendungen mit Schadcode zu infizieren. Für den erfolgreichen Angriff ist das Herunterladen eines manipulierten Xcode im Grunde nicht erforderlich. Eine OS X-Schadsoftware, welche ohne besondere Berechtigungen infizierte Objektdateien direkt in den Suchpfaden von Xcode ablegt, ist hierfür bereits ausreichend.
Die durch Xcode infizierten Apps haben in vielen Fällen den Code Review des Apple App Store auch deshalb ohne Beanstandung durchlaufen, da sie sich auf wenig auffälliges Verhalten beschränkten. Es sind jedoch Szenarien denkbar, in denen Anwendungen einer weniger strengen Kontrolle unterliegen, z.B. bei direkter Verbreitung im Web oder als Eigenentwicklung von Unternehmen. Hier könnten sich auch weitreichendere Manipulationen erfolgreich verbreiten.
Fazit
Alle Betriebssysteme bergen Verwundbarkeiten. Entscheidend für die Frage nach deren Ausnutzung durch Schadsoftware ist letztlich, ob es einen Angreifer gibt, der diese als lohnenswert erachtet. Erfolgreiche Angriffe sind ohne ein risikobewusstes Verhalten der Anwender auch in einer gesicherten und geprüften Umgebung möglich, die Wahrscheinlichkeit ihres Eintretens nicht planbar. Daher sollten auch Nutzer heute als 'sicher' wahrgenommener Systeme wie z.B. OS X oder Linux Hinweise zu aktuellen Bedrohungen sehr wohl ernst nehmen.
----------------------------------------------------------------------------
ii
Allein im Monat April 2016 wurden vom DFN-CERT im Rahmen des Advisory-Dienstes 296 Schwachstellen in Apple-Systemen beschrieben. Vgl. auch
https://www.cvedetails.com/top-50-products.php?year=2015
iv
http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-ransomware-keranger-infected-transmission-bittorrent-client-installer/
Erwähnt sei hier noch, dass KeRanger mutmaßlich Abkömmling eines Linux Erpressungstrojaners, LinuxEncoder, ist, der u.a. über Angriffe gegen Webshops Verbreitung auf Linux-Servern findet.
KeRanger wurde zuerst in manipulierten Versionen des Mac OS X BitTorrent Clients Transmission entdeckt, über deren Download er verbreitet wurde. Die manipulierte Datei war mit einem von Apple zugelassenen Entwicklerzertifikat gültig signiert und wurde im Zeitraum von etwa 8 Stunden (bis zur Bereinigung) rund 6.500 mal heruntergeladen; siehe auch: http://www.heise.de/security/meldung/Mac-Ransomware-6500-Mal-heruntergeladen-3130169.html
vii
Dem von Palo Alto Research, siehe iii, veröffentlichten Quelltext von KeRanger ist zu entnehmen, dass dieser für zukünftige Angriffe auch auf Backups, die mit Time Machine erstellt wurden, vorbereitet ist, wenngleich diese bislang nicht aktiviert sind; siehe auch: http://www.heise.de/security/meldung/Erpressungs-Trojaner-Time-Machine-Backups-anfaellig-3131762.html
Zum Anstieg der der OS X Malware vergl. https://www.documentcloud.org/documents/2459197-bit9-carbon-black-threat-research-report-2015.html
Zu Schwächen von App Store und Gatekeeper vergl. http://www.ibtimes.com/nope-apple-computers-arent-more-secure-windows-theyre-just-attacked-less-2334220
ixDatei Hashes von XcodeGhost:
89c912d47165a3167611cebf74249f981a4490d9cdb842eccc6771ee4a97e07c CoreServices
b1f567afbf02b6993a1ee96bfdb9c54010a1ad732ab53e5149dda278dd06c979 CoreServices
f5a63c059e91f091d3f1e5d953d95d2f287ab6894552153f1cf8714a5a5bed2d CoreServices
2fde065892a8f1c9f498e6d21f421dbc653888f4102f91fc0fa314689d25c055 Xcode_6.2.dmg
c741af30aef915baa605856a5f662668fba1ae94a8f52faf957b8a52c8b23614 Xcode_6.4.dmg
x
"Immediately after learning of XcodeGhost, FireEye Labs identified more than 4,000 infected apps on the App Store." https://www.fireeye.com/blog/executive-perspective/2015/09/protecting_our_custo.html
1984 Ken Thompson „Reflections on trusting trust“ (http://www.acm.org/classics/sep95/Hack) der sogenannte Ken Thompson Hack oder Trojan Compiler geht zurück auf Ideen von Paul Karger und Roger Schell aus dem Jahr 1974, allerdings hat dieser noch die Idee 'Compiler erzeugt Compiler' im Zentrum; siehe auch: http://c2.com/cgi/wiki?TheKenThompsonHack