Sind Kontaktverfolgungs-Apps sicher?

Sind Kontaktverfolgungs-Apps sicher?

Ich hatte das Glück, Teil einer portugiesischen Arbeitsgruppe zu sein, die aktiv die Sicherheits- und Datenschutzauswirkungen einer zukünftigen Kontaktverfolgungs-App in Portugal analysiert und diskutiert. Insbesondere im Hinblick auf den Schutz dieser Anwendungen vor möglichen Bedrohungen. Wir haben gesehen, dass einige Länder unterschiedliche Ansätze verfolgen (zentral, dezentral) und unterschiedliche Technologien verwenden, um diese Anwendungen zu erstellen (sowohl native Technologien als auch Webtechnologien wie JavaScript). Über den Autor Pedro Fortuna ist Mitbegründer und CTO von Jscrambler. Die meisten Diskussionen über Kontaktverfolgungs-Apps konzentrieren sich auf das Thema Datenschutz. Daher besteht eine meiner Aufgaben darin, die zugrunde liegenden Sicherheitsprobleme zu beleuchten, die den Umgang mit Tracking-Apps erleichtern können. Kontakte und potenzielle Verstöße gegen die Vertraulichkeit in großem Umfang. . Da viele Länder auf der ganzen Welt Anwendungen zur Kontaktverfolgung entwickeln und einführen, ist es ein guter Zeitpunkt, die Unterschiede zwischen diesen Anwendungen zu analysieren und relevante Sicherheitsprobleme hervorzuheben. Lass uns genauer hinschauen. Was COVID-19-Apps betrifft, gibt es zwei Arten von Apps, die sensible Daten verwalten: Symptomverfolgung und Kontaktverfolgung. Die Ermittlung von Kontaktpersonen ist aufgrund der Angst der Menschen, beobachtet zu werden, umstrittener. Die nicht-digitale Kontaktverfolgung gibt es schon seit langem. Sobald eine Person infiziert ist, befragen Gesundheitsbeamte sie, um herauszufinden, mit wem sie kürzlich Kontakt hatte. Sie fragen nach den Kontaktdaten von Kontaktpersonen und befragen diese auch. Dadurch ist es möglich, die Ansteckungsgefahr zu verfolgen und die erforderlichen Personen zu isolieren. Das Hauptproblem besteht jedoch darin, dass dies einmalig ist: Die Leute werden oft zu spät im Spiel interviewt und erinnern sich nicht an alle, mit denen sie Kontakt hatten. Darüber hinaus verfügt der Befragte möglicherweise nicht über Ihre Kontaktdaten. Ein weiteres Problem besteht darin, dass Menschen nur dann isoliert werden, wenn sie Symptome haben. Die digitale Kontaktverfolgung zielt darauf ab, diesen Punkt weiterzuentwickeln und einige dieser Einschränkungen zu beseitigen. Die meisten Kontaktverfolgungs-Apps basieren auf Bluetooth Low Energy (BLE). Jede Anwendungsinstanz überträgt Tags mit kurzer Reichweite; Wenn Menschen unterwegs sind, empfangen ihre Geräte die Beacons anderer Personen. Jedes Tag verfügt über eine eindeutige, kurzlebige, anonyme Kennung. Angezeigte kurzlebige Kennungen werden lokal auf dem Gerät gespeichert. Wenn eine Person diagnostiziert wird, erhält sie von den Gesundheitsbehörden einen offiziellen Code und meldet sich mit der Eingabe dieses Codes im Antrag offiziell und freiwillig mit dem Infektionsstatus an. Anschließend wird eine Liste Ihrer eigenen kurzlebigen Identifikatoren, die Sie in den letzten 14 Tagen verwendet haben, an einen zentralen Server gesendet. Alle anderen Geräte laden regelmäßig die Liste der Identifikatoren infizierter Personen herunter und stellen dann lokal fest, ob sie in letzter Zeit Kontakt mit ihnen hatten. Bei positiven Kontakten berechnet die App das Infektionsrisiko unter Berücksichtigung der geschätzten Nähe und Dauer des Kontakts.

Offengelegter Code und Reverse Engineering

Da sie hochsensible Daten verarbeiten, müssen Kontaktverfolgungs-Apps hohe Sicherheit bieten und unabhängigen Sicherheitsüberprüfungen unterliegen. Zu diesem Zweck sollten diese Anwendungen die allgemeinen Empfehlungen des OWASP Mobile Security Testing Guide befolgen, insbesondere die Verwendung von Code-Signierung, um das Risiko der Veröffentlichung einer gefälschten Version der Anwendung zu verringern, sowie Zertifikat-Pinning, um das Verwaltungsrisiko zu reduzieren. Angriffe in der Mitte (MITM). Weitere Sicherheitsbedrohungen, die Sie beachten sollten, finden Sie hier. Hierbei ist insbesondere auf das Risiko zu achten, das durch den offengelegten Code entsteht. Wie von OWASP angegeben, kann ein Angreifer hier direkt den Code ändern, den Inhalt des Speichers dynamisch ändern, die von der Anwendung verwendeten System-APIs ändern oder ersetzen oder die Daten und Ressourcen der Anwendung ändern. Dies kann dem Angreifer anschließend eine direkte Möglichkeit bieten, die beabsichtigte Nutzung der Software zum persönlichen oder finanziellen Vorteil abzulenken. Die Auswirkungen einer Codeänderung können je nach Art der Änderung selbst sehr unterschiedlich sein. Besonders relevant ist dies jedoch bei dezentralen Kontaktverfolgungsanwendungen, bei denen sensible Daten und Algorithmen vor Ort verbleiben. OWASP unterstreicht auch das Risiko, dass Angreifer den technischen Quellcode als Einfallstor für komplexere Angriffe nutzen. Auf diese Weise kann ein Angreifer Reverse Engineering nutzen, um eines der folgenden Ziele zu erreichen: Informationen auf Hauptservern offenlegen, kryptografische Konstanten und Zahlen offenlegen, geistiges Eigentum stehlen, Angriffe auf Hauptsysteme durchführen oder die für die Durchführung eines Angriffs erforderlichen Informationen erhalten nachträgliche Codeänderung. Im Hinblick auf Kontaktverfolgungsanwendungen müssen diese beiden Sicherheitsrisiken (offengelegter Code und Reverse Engineering) angegangen werden, um diese Sicherheitslücke zu schließen. Dieses Problem ist besonders wichtig bei JavaScript-basierten Anwendungen, bei denen der Quellcode standardmäßig nicht kompiliert und daher vollständig offengelegt wird, was Manipulationen und Reverse Engineering erheblich erleichtert. Derzeit befinden sich Dutzende verschiedener Apps zur Kontaktverfolgung in der Entwicklung oder werden veröffentlicht. Wir können sehen, dass mehrere von ihnen mit JavaScript-basierten Frameworks wie React Native und Ionic entwickelt wurden, nämlich die offizielle israelische Hamagen-App, das in Deutschland ansässige ito und das in Kanada ansässige COVID Shield (die alle auf dem Framework React Native basieren) und das Swiss WeTrace, das mit dem Ionic-Framework erstellt wurde. Daher ist es wichtig, dass diese Anwendungen ihren JavaScript-Quellcode vor den oben beschriebenen Angriffen schützen, wobei ein besonderer Schwerpunkt auf dem Schutz vor Datenexfiltrationsangriffen liegt, die durch Manipulation des Codes oder Inspektion des Speichers erreicht werden können. Zu diesem Zweck empfiehlt OWASP, dass die mobile Anwendung zur Laufzeit erkennen kann, dass Code hinzugefügt oder geändert wurde, und dass die Anwendung zur Laufzeit angemessen reagieren kann. Die Ausführung stellt eine Verletzung der Codeintegrität dar und muss vor Speichermanipulation oder Kratzern geschützt werden. Sie behaupten dann, dass zur Verhinderung eines effektiven Reverse Engineerings ein Code-Schutztool verwendet werden sollte. Die Teams hinter diesen Projekten stehen vor der großen Herausforderung, diese sehr komplexen Anwendungen in Rekordzeit bereitzustellen. Es ist wichtig, dass Sie diese Sicherheitsbedrohungen während der Entwicklungsphase berücksichtigen. Diese Notwendigkeit, den Quellcode in mobilen Anwendungen zu schützen, sollte bei solch hohen Einsätzen nicht außer Acht gelassen werden.