Sicherheitswoche 39: XcodeGhost, D-Link-Zertifikate, 10 Million für Fehler in iOS9

Der Rückblick auf die Sicherheitswoche: Von XcodeGhost über die versehentliche Veröffentlichung von D-Link-Zertifikaten bis zu einer hohen Belohnung für Fehler in iOS9.

Ich möchte diesen Rückblick mit einer Nachricht beginnen, die nichts mit IT-Sicherheit zu tun hat: Die Dieselfahrzeuge von Volkswagen stoßen weit mehr Schadstoffe aus, als bei Tests festgestellt. Doch bevor wir das ganze Bild kennen, möchte ich bei dieser Aussage bleiben und nicht darüber urteilen. Die Geschichte zeigt, dass die Rolle von Software in der heutigen Welt enorm ist: Eine kleine Änderung im Code reicht, um eine kritische Funktion so zu verändern, dass es niemandem auffällt.

Laut Wired war es recht einfach, die höheren Emissionen zu maskieren. Wissen Sie, wie die Labortests durchgeführt werden? Das Auto fährt auf einem Band, es wird Gas gegeben, die Räder drehen sich und die Abgase werden analysiert. Was ist der Unterschied zwischen dem Labortest und dem eigentlichen Fahren? Richtig – das Lenkrad wird nicht benutzt. Das bedeutet, dass dies als Bedingung programmiert werden kann. Wenn niemand lenkt, bedeutet das, dass wir auf dem Prüfstand stehen. Dieser Hack kann natürlich zufälligerweise entdeckt werden – und genau das ist wohl auch passiert.

Noch einmal: Solange das Ganze nicht komplett geklärt ist, kann der Unterschied in den Abgaswerten als unabsichtlich oder aber als absichtlich, mit voller Schuld des Herstellers (oder einer Gruppe von Personen, die für den Code verantwortlich sind) gesehen werden. Kann es sich um einen Fehler handeln? Klar, auch das ist absolut möglich. In einem Threatpost-Artikel haben wir die Geschichte verschiedener Programmierfehler beschrieben, und wie diese für verschiedene Zwecke genutzt/missbraucht werden können – inklusive dem Geldverdienen.

D-Link veröffentlichte versehentlich seine eigenen digitalen Zertifikate
Der Artikel. Eine detaillierte Analyse wurde auf der holländischen Webseite Tweakers.net veröffentlicht – hier die Google-Übersetzung.

Stellen Sie sich vor, Sie produzieren verschiedene Netzwerkgeräte, von Routern bis zu Überwachungskameras. Diese Geräte bekommen von Ihnen eine Firmware, Treiber, Software, Firmware-Updates, Driver-Updates usw. Und all das ist auf einem geheimen Server in einem „Arbeits“-Ordner gespeichert. Alles wird nach Zeitplan aktualisiert, verteilt, auf die Update-Server hochgeladen, dann werden die Updates gekennzeichnet und schließlich bekommen die Anwender ihre Updates. Das läuft ganz einfach, richtig?

Man muss nicht extra betonen, dass niemand die ganze Hardware manuell verwalten kann, das ist der Job von Skripten. Wir haben einen neuen Code, lassen eine .bat-Datei laufen (ein Shell-Skript oder Python oder etwas anderes), dann wird der Code auf die entsprechenden Ordner verteilt, alles wird archiviert – und jeder ist glücklich. Und dann kommt jemand, der beschließt, das Skript radikal zu verbessern. Er testet es ein paarmal und freut sich über das Ergebnis. Doch er hat einen Fehler übersehen. Nur eine Code-Zeile, die dafür zuständig ist, den passenden Update-Ordner und die richtigen Update-Dateien auszuwählen, und in der ein kleiner Bindestrich oder eine Klammer fehlt – und schon werden zu viele Daten öffentlich gemacht und an zahllose Anwender geschickt.

Nun ja, die Geschichte hat sich vielleicht nicht ganz genau so abgespielt. Aber zumindest wissen wir folgendes: Ein vorsichtiger Nutzer, der gerade das Firmware-Update für seine D-Link-Kamera heruntergeladen hatte, bemerkte, dass das Archiv private Keys zur Software des Herstellers enthielt. In dem Archiv waren einige Zertifikate zu finden. Manche veraltet, aber auch eines, das erst am 3. September auslief – gar nicht so lange her.

Doch vor diesem Zeitpunkt war der Key bereits für sechs Monate öffentlich und hätte zum Signieren jeder Software verwendet werden können – natürlich auch für Schadprogramme. Das Ganze war ein offensichtlicher Fehler, beschämend und gefährlich. Wir leben in einer Zeit, in der eine Reihe von 512 Zahlen alles Mögliche enthalten kann: einen Schlüssel, mit dem Millionen Computer infiziert werden können, einen Haufen Geld in virtueller Währung oder den Zugriffscode auf geheime Informationen. Doch gleichzeitig sind 512 Byte nur eine Handvoll Sand im Meer Ihrer Festplatte und können schnell an die Öffentlichkeit gelangen. Die einzige Hoffnung ist, dass niemand den Fehler bemerkt hat – was oft genug der Fall ist. Doch manchmal entdeckt jemand so einen Fehler, doch bisher wurde kein Schadprogramm entdeckt, das die versehentlich veröffentlichten Keys genutzt hätte.

XcodeGhost – Lesezeichen in Apples IDE
Der Artikel. Die Forschungsarbeit von Palo Alto. Die Liste der betroffenen Apps. Die offizielle Meldung von Apple (leider nur auf Chinesisch).

Stellen Sie sich vor, sie wären ein chinesischer iOS-App-Entwickler. Da gibt es nichts Ungewöhnliches: Developer Kits und Tools sind für die Entwickler in allen Ländern die gleichen. Doch es gibt geographische Eigenheiten. Sagen wir einmal, Sie kaufen einen brandneuen Mac, installieren das Xcode-Framework und beginnen zu programmieren. Das ist ganz gut, nur etwas passt nicht: Wenn Sie das kostenlose Xcode-Framework von der offiziellen Apple-Webseite nehmen, wird es im Schneckentempo heruntergeladen – dank der chinesischen Firewall. Schneller geht es, wenn Sie es von einer lokalen Webseite herunterladen – macht ja keinen Unterschied und es ist ja sowieso kostenlos.

Doch dann enthalten ganz plötzlich einige Apps schädliche Injektionen im Code, die (mindestens) Daten an einen entfernten C&C-Server schicken. Im schlimmsten Fall akzeptiert das Gerät sogar Kommandos von diesem Server, die iOS-Sicherheitslücken ausnutzen.

Der Injektions-Code ist in der Forschungsarbeit von Palo Alto zu finden.

Und dann stellt sich heraus, dass der schädliche Code bereits in den lokalen Versionen von Xcode enthalten war und mehrere Versionen davon betroffen sind. Das bedeutet, dass jemand diesen Code absichtlich in die Programmierumgebung eingefügt hat. Und es wird noch schlimmer: Nicht nur geht es bei den infizierten Apps um beliebte Programme wie WeChat und die lokale Angry-Birds-Version, sondern vor allem auch darum, dass der schädliche Code durch die App-Store-Prüfung gekommen ist. Natürlich wurden mittlerweile alle infizierten Apps entfernt und die Code-Injektion selbst ist durch die C&C-Domain-Namen recht einfach zu finden (diese wurden ebenfalls blockiert). Doch ohne vorhergehendes Wissen ist die Injektion kaum zu entdecken: Sie wurde recht elegant in den Standard-Libraries von Apple versteckt, die in 99,9 Prozent aller Apps verwendet werden.

Aber es gibt noch etwas Kurioses: The Intercept, eine Webseite, die darauf spezialisiert ist, geheime Daten in den Snowden-Dokumenten zu entschlüsseln, berichtet, dass die Methode, die XcodeGhost zum infiltrieren von Apple-Geräten verwendet, der in geheimen Regierungsplänen beschriebenen Methode ähnelt. Die Reporter sagen, sie hätten diese Information bereits im vergangenen März veröffentlicht und geben damit ein bisschen an. Nun, wir antworten darauf, dass wir das schon vor den Veröffentlichungen von Edward Snowden bemerkt haben. So haben wir ein Schadprogramm entdeckt, das Delphis IDE infizierte und schädlichen Code in alle kompilierten Apps einfügte. Das ist eine offensichtliche Methode. Wenn man allerdings darüber Bescheid weiß, kann man das Problem einfach wieder loswerden. Man muss nur die Integrität des Entwicklungs-Tools mit dessen Master-Version vergleichen. Zudem haben wir noch einen unglaublich simplen Tipp: Niemals Software von fragwürdigen Quellen herunterladen. Das klingt komisch, wenn man von erfahrenden Software-Entwicklern spricht. Machen die wirklich solche Fehler? Wie man sieht, kommt das vor.

Fehlerhändler will eine Million für Fehler in iOS9 zahlen
Der Artikel.

Es gibt eine interessante Tabelle zur Geschichte des Jailbreaking verschiedener iOS-Geräte. Anders als bei Android oder Desktop-Betriebssystemen, bei denen die holistische Kontrolle über das System standardmäßig eingeschaltet und damit leicht ausnutzbar ist, bieten Apples Smartphones, Tablets (und nun auch TV-Set-Top-Boxen und Smart Watches) grundlegend beschränkte Nutzerrechte. Man weiß seit Jahren, dass der Hersteller versucht, seine Geräte von einer Seite einzuzäunen zu schützen und die Rooting-Fans versuchen, diesen Schutz von der anderen Seite zu umgehen. Irgendwann werden alle Apple-Geräte mit Jailbreak freigeschaltet (mit Ausnahme von Apple TV v3 und – zumindest bisher – der Apple Watch) – das ist nur eine Frage der Zeit, meist von einem Tag bis zu sechs Monaten nach Veröffentlichung eines neuen Produkts.

Auch das neueste iOS 9 wurde mit Jailbreak freigeschaltet, und gleichzeitig aber auch nicht so richtig. Es wurde nicht vollständig jailbroken.  Darum „kümmert sich“ nun Zerodium, die bereits eine Belohnung von einer Million Dollar für Methoden zum Missbrauch von iOS9 ausgeschrieben haben, vorausgesetzt:
— der Exploit ist remote (so dass er automatisch startet, wenn ein Anwender eine speziell erstellte Webseite öffnet oder eine schädliche SMS oder MMS liest)
— der Exploit erlaubt das nachladen beliebiger Apps (wie Cydia)
— der Exploit ist hartnäckig genug, auch nach einem Reboot zu funktionieren
— der Exploit ist „zuverlässig, diskret und benötigt keine Aktion durch den Anwender“

Diese Liste zeigt, dass Zerodium die insgesamt ausgelobten drei Millionen Dollar nicht ausgeben möchte, um einfach nur Jailbreak-Fans zu befriedigen. Chaouki Bekrar, Gründer von Zerodium, gründete ursprünglich auch VUPEN, spezialisiert auf den Verkauf von Sicherheitslücken und Exploits an staatliche Stellen. Das ist ein Graubereich der IT-Sicherheitsbranche, sowohl aus rechtlicher als auch aus moralischer Sicht, denn dabei verurteilen die guten Jungs die bösen Jungs mit genau den Tools der bösen Jungs. Und wenn VUPEN auch nicht im Fehlerhandel herumspielt (zumindest nicht offiziell), so wurde Zerodium genau dafür ins Leben gerufen. Das bedeutet, dass irgendjemand früher oder später den Jackpot bekommen könnte, irgendjemand könnte Geräte mit dem gekauften Exploit kompromittieren und keine Details zur Sicherheitslücke veröffentlichen (warum sonst sollte man das Geld dafür bezahlen?). Aber wir wissen bereits, was passiert, wenn Fehlerhändler selbst gehackt werden (erinnern Sie sich an das Hacking Team, dem eine Reihe von Zero-Day-Lücken gestohlen wurden, wobei auch eine Menge komischer Geschäfte zwischen der Firma und nahöstlichen Staaten aufgedeckt wurden).

Die Moral hier ist, dass jemand, der sein Smartphone jailbreaken möchte, das natürlich auf jeden Fall tun kann (oder genauer gesagt, eigentlich nicht auf jeden Fall). Doch das Gerät von jemand anderem, ohne dessen Einverständnis, zu jailbreaken, ist nicht gut. Und sobald so eine Möglichkeit entdeckt wird, sollte sie auf jeden Fall durch den Hersteller öffentlich gemacht und gepatcht werden.

Was sonst noch passiert ist:
Adobe hat 23 Sicherheitslücken im Flash Player gepatcht. 30 weitere Fehler wurden bereits im August gepatcht.

OPM berichtet von schlimmeren Konsequenzen in Folge eines massiven Einbruchs in diesem Jahr: 5,6 Millionen Fingerabdrücke von Regierungsangestellten wurden kompromittiert. Dazu muss man sagen, dass ein Finger nicht so einfach ausgetauscht werden kann wie ein kompromittiertes Passwort, und die Zahl der möglichen Kombinationen ist recht begrenzt. Heute kann da nicht viel gemacht werden, aber wir wissen nicht, was zukünftige Technologien alles schaffen werden.

Oldies:
„PrintScreen“

Ein sehr gefährlicher Virus, der 512 Byte (einen Sektor) belegt. Er infiziert den Boot-Sektor von Disketten und Festplatten, wenn diese gelesen werden (int 13h). Der alte Boot-Sektor schreibt an der Adresse 1/0/3 (Seite/Spur/Sektor) auf einer Floppy-Disk und an der Adresse 3/1/13 auf einer Festplatte. Er kann einen der FAT-Sektoren oder gespeicherte Daten korrumpieren (je nach Kapazität des Laufwerks). Wenn eine Festplatte infiziert wird, bedeutet das, dass deren Boot-Sektor an der Adresse 0/1/1 gespeichert wird (was zeigt, dass der Entwickler des Virus nicht sehr erfahren ist).

Er befällt auch int 13h. Dem Listing des Virus bei der Infizierung des Laufwerks mit einer Wahrscheinlichkeit von 1/256 (abhängig vom Wert seines internen Zählers) nach zu schließen, sollte der Virus int 5 (Print Screen) aufrufen, doch durch einen Fehler wird der neue Wert des Zählers nicht gespeichert.

Zitat aus „MS-DOS-Computerviren“ von Eugene Kaspersky, 1992, Seite 102.

Hinweis: Diese Kolumne spiegelt die persönliche Meinung des Autors wider. Diese kann, muss aber nicht mit der Position von Kaspersky Lab übereinstimmen. Das ist Glücksache.

Tipps