| Inhaltsverzeichnis | 5 |
---|
| Vorwort | 13 |
---|
| Kapitel 1 Angriffe in Theorie und Praxis | 19 |
---|
| 1.1„Angriffe“ durch Forscher | 19 |
| 1.2Angriffe auf Schwachstellen... | 25 |
| 1.2.1... bei Pwn2Own... | 25 |
| 1.2.2... und Jailbreaking | 27 |
| 1.3Schadsoftware im Überblick | 29 |
| 1.4Bösartige Apps im App Store | 31 |
| 1.5Ein einziger wirklich schädlicher Angriff | 34 |
| 1.6Apple will keine Virenscanner | 37 |
| 1.7Fazit | 37 |
| Kapitel 2 Sicheres Booten, Sandbox | 37 |
---|
| 39 | 37 |
| 2.1Die sichere Boot-Kette | 40 |
| 2.2Signatur der Apps | 43 |
| 2.3Schutzmaßnahmen zur Laufzeit | 44 |
| 2.4Apps in der Sandbox | 46 |
| 2.5Rund um die Kryptografie | 47 |
| 2.5.1Der gerätespezifische Schlüssel | 48 |
| 2.5.2Die weiteren Schlüssel | 50 |
| 2.5.3Das Löschen von Schlüsseln | 50 |
| 2.6Schutz der Dateien | 50 |
| 2.6.1Data Protection im Überblick | 51 |
| 2.6.2Die Schutzklassen | 52 |
| 2.6.3Was kann geschützt werden? | 55 |
| 2.7Schutz der Daten im Schlüsselbund | 55 |
| 2.8Keybags | 58 |
| 2.8.1System Keybag | 59 |
| 2.8.2Backup Keybag | 59 |
| 2.8.3Escrow Keybag | 60 |
| 2.8.4iCloud Backup Keybag | 61 |
| 2.8.5Bestandteile eines Keybags | 61 |
| 2.9Netzwerksicherheit | 62 |
| 2.9.1SSL und TLS | 62 |
| 2.9.2VPN | 63 |
| 2.9.3Wi-Fi | 64 |
| 2.9.4Bluetooth | 64 |
| 2.9.5Keine Firewall | 65 |
| 2.10Sperrcode und Zugriffsschutz | 66 |
| 2.10.1Anforderungen an den Sperrcode | 66 |
| 2.10.2Touch ID – Fingerabdruck statt Sperrcode | 68 |
| 2.10.3Erzwingen einer bestimmten Konfiguration | 70 |
| 2.10.4Konfiguration der Geräte | 71 |
| 2.10.5Einschränkungen der Gerätefeatures | 72 |
| 2.10.6Konfigurationsprofile als Angriffsvektor | 74 |
| 2.10.7Löschen aus der Ferne (Remote Wipe) | 75 |
| Kapitel 3 Die Schutz-maßnahmen nutzen | 77 |
---|
| 3.1Die sichere Boot-Kette | 77 |
| 3.2Signatur der Apps | 78 |
| 3.3Schutzmaßnahmen zur Laufzeit | 79 |
| 3.3.1Berechtigungen (Entitlements) | 79 |
| 3.3.2URL-Schemata | 84 |
| 3.3.3Das Erschweren von Pufferüberlauf-Exploits | 85 |
| 3.4Apps in der Sandbox | 85 |
| 3.5Rund um die Kryptografie | 86 |
| 3.6Schutz der Dateien | 87 |
| 3.7Schutz der Daten im Schlüsselbund | 90 |
| 3.7.1Die Daten im Schlüsselbund | 90 |
| 3.7.2Die Nutzung des Schlüsselbunds | 92 |
| 3.8Keybags | 102 |
| 3.9Netzwerksicherheit | 102 |
| 3.9.1SSL und TLS | 102 |
| 3.9.2VPN | 114 |
| 3.9.3Wi-Fi | 114 |
| 3.9.4Bluetooth | 115 |
| 3.10Sperrcode und Zugriffsschutz | 115 |
| Kapitel 4 Der Wegweiser zur | 117 |
---|
| 4.1iOS ist nicht so sicher, wie Apple uns glauben macht! | 117 |
| 4.2Sichere App-Entwicklung | 119 |
| 4.3Der Weg ist das Ziel | 119 |
| 4.4Schwachstellen im Überblick | 120 |
| 4.4.1Objective-C ist auch nur C | 120 |
| 4.4.2Unzureichend geprüfte Eingaben | 121 |
| 4.4.3Interprozesskommunikation | 122 |
| 4.4.4Unsichere Dateioperationen | 122 |
| 4.4.5Schwachstellen in der Zugriffskontrolle, Authentifizierung und Autorisierung | 123 |
| 4.4.6Fehler in der Kryptografie | 125 |
| 4.4.7Race Conditions | 125 |
| 4.4.8Social Engineering | 126 |
| 4.5Die OWASP Top 10 Mobile Risks | 127 |
| 4.5.1M1: „Insecure Data Storage“ | 127 |
| 4.5.2M2: „Weak Server Side Controls“ | 128 |
| 4.5.3M3: „Insufficient Transport Layer Protection!“ | 129 |
| 4.5.4M4: „Client Side Injection“, | 130 |
| 4.5.5M5: „Poor Authorization and Authentication“ | 131 |
| 4.5.6M6: „Improper Session Handling“ | 132 |
| 4.5.7M7: „Security Decisions via untrusted Inputs“ | 132 |
| 4.5.8M8: „Side Channel Data Leakage“ | 133 |
| 4.5.9M9: „Broken Cryptography“ | 133 |
| 4.5.10M10: „Sensitive Information Disclosure“ | 133 |
| Kapitel 5 Ein sicherer Entwicklungszyklus | 135 |
---|
| 5.1Der SDL im Überblick | 136 |
| 5.1.1Die Grundsätze des SDL | 136 |
| 5.1.2Die Phasen des SDL | 137 |
| 5.1.3Fazit | 143 |
| 5.2Bedrohungsmodelle – Application Threat Modeling | 143 |
| 5.2.1Bedrohungsmodelle im „Real Life“ | 143 |
| 5.2.2Viele Wege führen zum Ziel | 144 |
| 5.2.3Entwurfsgesteuerte Bedrohungsmodellierung | 145 |
| 5.2.4STRIDE | 146 |
| 5.2.5Ein einfaches Beispiel | 147 |
| Kapitel 6 Pufferüberlauf- und Formatstring-Schwachstellen | 151 |
---|
| 6.1Der Pufferüberlauf | 151 |
| 6.1.1Ein C-Programm und sein Speicher | 152 |
| 6.1.2Ein Pufferüberlauf auf dem Stack | 153 |
| 6.1.3Angriff über die Pufferüberlaufschwachstelle | 155 |
| 6.1.4Varianten des Pufferüberlaufs | 156 |
| 6.1.5Pufferüberläufe verhindern, allgemein | 157 |
| 6.1.6Schutzmaßnahmen erschweren Angriffe | 158 |
| 6.1.7Pufferüberläufe in iOS verhindern | 162 |
| 6.1.8Pufferüberläufe finden | 167 |
| 6.2Des Pufferüberlaufs kleiner Bruder: Der Pufferunterlauf | 168 |
| 6.2.1„Short Write“ und „Short Read“ | 169 |
| 6.2.2Pufferunterläufe verhindern | 170 |
| 6.3Formatstring-Schwachstellen |
|