Datensicherheit ist wichtig, macht aber Arbeit. In Zeiten von Abhörskandalen, fehlerhaften SSL-Überprüfungen und Zeitdruck trennt sich allerdings die Spreu vom Weizen und man sieht, welche Anwendungen Best Practices beherzigen und bei wem es etwas schneller gehen musste.
Wir schauen uns Beispiele an, was schiefgehen kann und wie es besser geht. Der Vortrag ist zum Teil amüsant, soll aber auch zum Nachdenken anregen. Für diesen Vortrag braucht keiner vorab Sicherheitsexperte sein, Grundlagen werden natürlich mitgeliefert.
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
Risiko Datensicherheit - eine unterhaltsame Sightseeing Tour
1. RISIKO
Datensicherheit
NSABNDKGB kennt alle ihre Geheimnisse!
Unterschleißheim – Jüngste
Studien haben ergeben, dass Ihre
Daten nur noch unter Ihrem
Kopfkissen sicher sind. Handeln
Sie schnell!
Lesen Sie hier nicht weiter,
sondern hören Sie dem
nicht weiter, sondern hören Sie
dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu. Lesen Sie
hier nicht weiter, sondern hören
Sie dem Referenten zu.
19. Member Value Description
Success | success 0 The certificate chain was verified.
Untrusted | untrusted 1 A certificate in the chain is not trusted.
Revoked | revoked 2 A certificate in the chain has been revoked.
Expired | expired 3 A certificate in the chain has expired.
IncompleteChain | incompleteChain 4 The certificate chain is missing one or more certificates.
InvalidSignature | invalidSignature 5
The signature of a certificate in the chain cannot be
verified.
WrongUsage | wrongUsage 6
A certificate in the chain is being used for a purpose
other than one specified by its CA.
InvalidName | invalidName 7
A certificate in the chain has a name that is not valid. The
name is either not included in the permitted list or is
explicitly excluded.
InvalidCertificateAuthorityPolicy |
invalidCertificateAuthorityPolicy
8 A certificate in the chain has a policy that is not valid.
27. 14% haben ein Passwort der Top 10
40% haben ein Passwort der Top 100
79% haben ein Passwort der Top 500
91% haben ein Passwort der Top 1000
Quelle: Tim Messerschmidt / @SeraAndroiD Lead Developer Evangelist, EMEA Developer Week ‘14
Beispiele für riskante Daten:
Bekanntwerden von vertraulichen Unternehmensdaten. Kostet dem Unternehmen Geld und Reputation.
Erhalt eines gefälschten Liebensbriefs. Eine Antwort darauf wäre peinlich!
Offenlegung einer privaten Unterhaltung und es wurde über den Chef gelästert. Konsequenzen…!
Besser: Sprechen wir über Informationssicherheit.
Quellen:
http://www.duden.de/rechtschreibung/Risiko
Quelle: Claudia Eckert, IT-Sicherheit, 2. Auflage
Data at Rest: die Daten liegen passiv in einem Speicherbereich. Mitnahme des physikalischen Speicherbereichs ist möglich; im Gegensatz dazu wäre die Mitnahme von Daten im RAM nicht möglich.
Data in Motion/Transit: die Daten befinden sich auf dem Weg von Quelle zu Ziel.
Data in Use: die Daten werden genutzt. Praktisch bedeutet dies meist, dass die Daten im RAM liegen und bereit für die Verarbeitung sind.
Quellen:
Pizza Box: Creative Commons Attribution Share-Alike 3.0 License, http://whsgraphics2.wikispaces.com/Pizza-Box-Design?responseToken=04df15cf6674b1e93f7d5f51748cf41e5
Pizza Delivery: Creative Commons Attribution-NoDerivs 3.0 Unported License, http://shockandawe-devildog.blogspot.de/2010/09/every-pizzas-home-pizza-hut.html
Pizza Eating: Creative Commons Attribution Share-Alike 3.0 License, http://michaelagenergy.wikispaces.com/file/detail/man-eating-pizza.jpg/301643754
Beispiel für die Kommunikation von vertraulichen Daten über eine ungesicherte Verbindung.
Keine Geheimnisse in Konfigurationsdateien oder kompilierten Dateien.
Anwendungsdaten können in der Regel mit geringem Aufwand eingesehen werden.
Hier wurde als Beispiel eine settings.dat-Datei von einer Windows App in Visual Studio mit dem Binary Editor geöffnet.
App Data: C:\Users\[User Directory]\AppData\Local\Packages\[App Directory]
Program Data: C:\Program Files\WindowsApps\[App Directory]
Der Quellcode ist für die meisten Anwendungen leicht einzusehen. Aus dem Grund hilft es nicht viel, den Versuch zu unternehmen, vertrauliche Informationen durch nicht-kryptographische Verfahren zu sichern.
Hier ist zu sehen, wie eine .NET-Anwendung mit Hilfe des Tools JetBrains dotPeek dekompiliert wurde. Bei der Suche nach Schwachstellen ging der Pfad von allgemeinen Klassen über relevante Klassen wie Login bis schließlich eine Klasse mit dem Präfix Password gefunden wurde. Der Zeitaufwand hierfür lag unter 10 Minuten.
Probleme und Herausforderungen
Kompliziertes Thema
Schwer zu testen
"Marketing" (große Schlüssel, Superlativen etc.)
Auswahl von und Vertrauen in Technologie (z.B. Heartbleed)
Was muss abgedeckt werden? „End-2-End-Risiko“
Definition von Bruce Schneier, was Attacken sind. Nicht trivialer Angriff und so weiter.
Es existieren zahlreiche Bibliotheken und Frameworks für unterschiedliche Plattformen. Eine qualifizierte Auswahl ist nicht trivial.
Allein von Microsoft gibt es zahlreiche APIs, die auf unterschiedlichen Plattformen zur Verfügung stehen.
System.Security.Cryptography: ab .NET 1.0 bis heute (.NET 4.5), kein Zugriff aus Windows Apps
Windows.Security.Cryptography: ab WinRT für Windows Apps
Microsoft CryptoAPI: ab Windows NT 4.0 bis Windows XP
Cryptography API: Next Generation (CNG): ab Windows Vista bis heute (Windows 8.1)
Quelle des Beispiels:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.security.cryptography.core.cryptographicengine.encrypt(v=win.10).aspx
http://msdn.microsoft.com/en-us/library/windows/apps/windows.security.cryptography.core.cryptographicengine.decrypt.aspx