Laufzeit-Integritätsprüfung in Android-Applikationen
Um das Reverse-Engineering von Anwendungen zu erschweren und Repackaging-Attacken abzuwenden, setzen einige besonders sicherheits-affine Android-Entwickler auf die Integration von Runtime-Integritäts-Checks in ihren Programmcode. Diese Checks stellen zur Laufzeit unter anderem sicher, dass das Betriebssystem in einem unmodifizierten Werkszustand vorliegt (keine Root-Möglichkeiten, originales Firmware-Image, unmodifizierte System-Partition), und dass die Anwendung zwischen der Auslieferung vom Entwickler und der Installation beim Nutzer nicht modifiziert wurde.
Im Rahmen dieses Forschungsprojektes wird ein Überblick über verschiedene Möglichkeiten zur Integritäts-Prüfung und -Sicherstellung geboten. Dazu werden Vorschläge und Implementierungen aus Wissenschaft und Praxis diskutiert. Zusätzlich präsentieren wir eine Studie zur Prävalenz von Laufzeit-Integritätsprüfung in 99 populären Android-Anwendungen.