Stuxnet auf mobilen Endgeräten

Stuxnet – ein kurzer Überblick

Stuxnet ist der erste (bekannt gewordene) Computerwurm der gezielt dazu eingesetzt wurde Industrieanlagen zu schädigen. Die Erstinfizierung eines Computer-Systems erfolgte dabei über Wechseldatenträger (USB-Sticks) und die Ausnutzung von bisher unbekannten Vulnerabilities in gängigen Windows-Betriebssystemen. Eine weitere Verbreitung des Wurms erfolgte dann über ein LAN oder Remote-Procedure-Calls.

Der Wurm war dabei stets auf die Suche nach spezialisierten PC-Systemen zur Steuerung von Industrieanlagen. Das Ziel war die Steuerung und negative Beeinflussung von Industrieanlagen z. B. in iranischen Uran-Zentrifugen.

Stuxnet in einer mobilen Variante

Mobile Endgeräte werden im beruflichen und privaten Umfeld genutzt. Dabei gelangen mobile Endgeräte auch in sicherheitskritische Bereiche. Die zunehmende Verbreitung mobiler Endgeräte kann daher auch zur Identifizierung von Steuerungselementen (Zielsystemen) in kritischen Infrastrukturen genutzt werden ? Für das erfolgreiche Auffinden von Zielsystemen ist nun entweder der Aufbau eines möglichst großen Botnetzes erforderlich oder eine gezielte Infizierung mobiler Endgeräte aus der Umgebung des Zielsystems.

Neben dem Auffinden eines bestimmten Zielsystems könnten auch die mobilen Endgeräte selbst das Ziel sein. Mögliche Szenarien wären hier die gezielte Löschung, die Sperrung , oder das Auslesen von privaten und beruflichen Daten des mobilen Endgeräts.

Heutige Smartphones bieten eine Vielzahl von möglichen Schnittstellen zur Datenübertragung . Viele der kabellosen Schnittstellen (GPS, WLAN, Bluetooth, NFC, …) senden und empfangen permanent Daten im Hintergrund.

Möglichkeiten unter Android

Zum Aufbau eines Botnetzes wird zuerst eine infizierte Applikation in Umlauf gebracht. Infizierte Applikationen werden zu diesem Zweck ohne Überprüfung auf Sicherheit durch Google im Android Market platziert. Die Applikationen müssen lediglich vor der Installation mit einem Zertifikat signiert werden. Allerdings kann dieses Zertifikat vom Entwickler selbst ausgestellt werden und ist entsprechend unsicher.

Ein aktuelles Beispiel sind Applikationen, die sich als bekannter 3D-Shooter ausgeben und einen Bot namens Android.Counterclank enthalten. Dieser recht ungefährliche Bot hat einfach „nur“ persönliche Daten ausgespäht, macht aber die Defizite im Sicherheitsmechanismus des Android Market sehr deutlich.Für einen vollständigen Zugriff auf das Smartphone sind eine ganze Reihe von Exploits im Internet erhältlich. Einer der bekanntesten ist „rageagainstthecage“. Ein solcher Exploit könnte ebenfalls in eine harmlos verpackte Applikation integriert werden. Mit einem administrativen Zugriff ist vom Ausschalten des Geräts, dem Senden von Daten an andere Smartphones, bis hin zu dem gezielten Deaktivieren aller Kommunikationsverbindungen alles möglich.

Neben den bewusst geschaffenen schadhaften Applikationen sind naturgemäß auch viele built-in Applikationen von Android (wie z. B. der eingebaute auf Webkit basierende Browser) nicht frei von Fehlern. Diese Fehler können z. B. durch Fuzzing erkannt und anschließend durch den Entwickler der Applikation behoben werden.

Erst seit jüngstem durchforstet Google aktiv mit einem automatischen Dienst namens „Bouncer“ den Android Market automatisiert nach Trojanern und Spyware (Bachfeld 2012).

Möglichkeiten unter iOS

Auch unter iOS existieren Schwachstellen in vorhandener Software und erfolgreiche Exploits.

Allerdings prüft Apple neue Applikationen vor der Aufnahme in den offiziellen AppStore. Somit ist die Gefahr hier weitaus geringer sich eine infizierte Applikation einzufangen. Allerdings verschaffen sich auch viele iPhone Nutzer einen umfassenden administrativen Zugriff auf Ihre Geräte per Jailbreak. Das Ziel ist auch hier das Umgehen der eingebauten Sicherheitsmechanismen für einen administrativen Zugriff auf das Smartphone. Damit ist dann auch der Zugriff auf andere, nicht durch Apple kontrollierte, App-Stores wie z. B. Cydia möglich. Somit könnten dort infizierte Applikationen platziert werden.

Auch unter iOS ist keine Software frei von Fehlern, so dass auch hier über Schadcode in das Smartphone eingeschleust werden kann.

Fazit

Für die aktuell beliebtesten mobilen Betriebssysteme Android und iOS existiert eine Vielzahl ausnutzbarer Schwachstellen. Der Aufwand für das Schreiben von Exploits und den Aufbau von großen und/oder schlagkräftigen Botnetzen ist gering. Die Werkzeuge dafür sind im Internet vorhanden und müssen lediglich zusammengefügt werden.

Die meisten Smartphones sind permanent mit dem Internet verbunden, wodurch die Verbreitung von Viren und Würmern erleichtert wird. Durch eine reibungslose Kommunikation innerhalb der Botnetze können schnell große und verwertbare Datenmengen durch den Angreifer gesammelt werden. Entweder mit dem Ziel irgendwann Antwort von dem gesuchten Ziel zu bekommen, oder einfach zur großflächigen Störung von Smartphones. Die Möglichkeiten sind sehr vielfältig.

Aus diesem Grund sollte eine Applikation von vornherein sicher entwickelt werden. Dazu muss stets eine Orientierung am Secure Software Development Lifecycle erfolgen. Dazu gehört in der Design-Phase das Thread Modeling, in der Implementation Phase Static Code Analysis und in der späteren Verification und Release Phase Dynamic Code analysis: Fuzzing. Auf diese Weise können Sicherheitslücken in Applikationen (fast) vermieden werden.

Wichtige Informationen, Begriffe und Erläuterungen

Für unsere Leser, für die die Begriffe Thread Modeling, Fuzzing und Static Code Analysis neu sind, oder nicht so richtig greifbar, empfehle ich die Webseite von SoftScheck http://www.softscheck.com . Auf den Webseiten von SoftScheck – übrigens nur einmal so nebenbei erwähnt „Weltmarktführer“ im Fuzzing – aus dem Ort Sankt Augustin bei Bonn – werden alle Begriffe gut und verständlich erläutert. Klassisches Pentesting ist out (was nicht heißen soll, dass man es nicht mehr benötigt, sondern, dass man es viel gezielter und bedachter als bisher einsetzen muss). Die neue Methode, um nicht erkannte Schwachstellen in Software aufzudecken heißt „Fuzzing“. Fuzzing verwendet spezielle Agenten, die eine eigenentwickelte oder eingesetzte Standardsoftware mit vielen millionen Angriffen, daraus entwickelten sequentiellen oder parallelen Angriffskombinationen, selbst lernenden Agenten und unter berücksichtigung der eingesetzten Hardware und auch verschiedenster – in den Szenarien einstellbaren – Softwarekonfigurationsparameter, beschießt.  Das sind viele Millionen intelligente Pentests pro Sekunde. Diese Methode findet viel schneller und auch ökonomischer Schwachstellen, als es klassische Pentests vermögen. Fuzzing benötigt nur das kompilierte Endprodukt. Man muss keinen Sourcecode bereitstellen. Das ist auch super für die Firmen, die ihre „heilige Kuh“ in der Software versteckt haben, und damit vielleicht ihre 5% sensiblen Geschäftsgeheimnisse oder ihren Marktvorteil nicht preisgeben möchten. High-Tech Papst Prof. Dr. Hartmut Pohl kennt sich in der Methode am besten aus. Er ist CEO der Firma SoftScheck, und er hat den Lehrstuhl für Informationssicherheit im Fachbereich Informatik an der Hochschule Bonn-Rhein-Sieg. Prof. Pohl hat in einer Ausschreibung des BMWI alle weltweiten Fuzzingtools analysiert, und hat in die Agenten für Fuzzing der Firma SoftScheck das verbesserte Know-how eingebaut. Die Firma SoftScheck beschäftigt mittlerweile ca. 20 Mann, die sich um Static Code Analysis, Thread Modeling und Fuzzing kümmern. Die Firma ist derzeit ein Shooting-Star für das Thema Fuzzing. Prof. Pohl beschäftigt sich seit 10 Jahren damit. Und wenn Sie Prof. Pohl, sein Team, und dessen Enthusiasmus für die Sache erleben, man Sie konfrontiert mit dennoch vorhanden Schwachstellen in einer Ihrer Software, die Sie schon ge-pentested haben, und bisher als sicher erachteten, dann geht Ihnen auch, so wie mir, ein Licht auf. Fuzzing findet annähernd 99,9% nicht erkannter Schwachstellen in einer Software, von denen Angriffe ausgehen könnten. Gezielt. Schnell. Sicher!