Les applications de suivi des contacts sont-elles sûres?

Les applications de suivi des contacts sont-elles sûres?

J'ai eu la chance de faire partie d'un groupe de travail portugais qui examine et discute activement des implications en matière de sécurité et de confidentialité d'une future application de recherche de contacts au Portugal. Notamment en ce qui concerne la protection de ces applications contre d'éventuelles menaces. Nous avons vu certains pays adopter différentes approches (centralisées, décentralisées) et utiliser différentes technologies pour créer ces applications (à la fois des technologies natives et des technologies Web comme JavaScript). À propos de l'auteur Pedro Fortuna est le co-fondateur et CTO de Jscrambler. La plupart des discussions sur les applications de suivi des contacts tournent autour du thème de la confidentialité, donc l'un de mes rôles a été de faire la lumière sur les problèmes de sécurité sous-jacents qui peuvent faciliter le traitement des applications de suivi. contacts et potentiellement violer la confidentialité à grande échelle. . Alors que de nombreux pays à travers le monde développent et publient des applications de suivi des contacts, le moment est venu de discuter des différences entre ces applications et de mettre en évidence les problèmes de sécurité pertinents. Regardons de plus près. Concernant les applications COVID-19, il existe 2 types d'applications qui gèrent les données sensibles : le suivi des symptômes et la recherche des contacts. La recherche des contacts est la plus controversée des deux en raison de la peur des gens d'être surveillés. La recherche de contacts non numérique existe depuis longtemps. Une fois qu'une personne a été infectée, les responsables de la santé l'interrogent pour savoir avec qui elle a été en contact récemment. Ils demandent les coordonnées des personnes qui ont eu des contacts et les interrogent également. Cela permet de suivre la contagion et d'isoler les personnes nécessaires. Mais le principal problème est qu'il s'agit d'un cas ponctuel : les personnes sont souvent interrogées trop tard dans le jeu et ne se souviennent pas de toutes les personnes avec lesquelles elles ont été en contact. De plus, le répondant peut ne pas avoir vos coordonnées. Un autre problème est que les gens ne sont isolés que lorsqu'ils présentent des symptômes. Le traçage numérique des contacts vise à développer ce point et à résoudre certaines de ces limites. La plupart des applications de suivi des contacts sont basées sur Bluetooth Low Energy (BLE). Chaque instance d'application diffuse des balises à courte portée ; Ainsi, lorsque les gens sont en déplacement, leurs appareils captent les balises des autres. Chaque balise a un identifiant anonyme éphémère unique. Les identifiants éphémères visualisés sont stockés localement sur l'appareil. Lorsqu'une personne est diagnostiquée, elle reçoit un code officiel des autorités sanitaires, et en entrant ce code dans l'application, cette personne est officiellement et volontairement enregistrée avec le statut d'infection. Une liste de vos propres identifiants éphémères utilisés au cours des 14 derniers jours sera alors envoyée à un serveur central ; tous les autres appareils téléchargent périodiquement la liste des identifiants des personnes infectées, puis déterminent localement s'ils ont été en contact avec eux récemment. Pour les contacts positifs, l'application calcule le risque d'infection en tenant compte de la proximité estimée et de la durée du contact.

Code exposé et rétro-ingénierie

Du fait qu'elles traitent des données hautement sensibles, les applications de suivi des contacts doivent offrir une sécurité renforcée et être soumises à des audits de sécurité indépendants. À cette fin, ces applications devraient suivre les recommandations générales du Guide de test de sécurité mobile de l'OWASP, en particulier l'utilisation de la signature de code pour réduire le risque de publier une version contrefaite de l'application, ainsi que l'épinglage de certificat, pour réduire le risque de gestion. . attaques au milieu (MITM). Des menaces de sécurité supplémentaires à connaître sont disponibles ici. En particulier, le risque posé par le code exposé doit être noté ici. Comme le note l'OWASP, c'est là qu'un attaquant peut directement modifier le code, changer dynamiquement le contenu de la mémoire, changer ou remplacer les API système que l'application utilise, ou modifier les données et les ressources de l'application. Cela peut ensuite fournir à l'attaquant une méthode directe pour détourner l'utilisation prévue du logiciel à des fins personnelles ou monétaires. L'impact d'une modification du code peut être de nature très variée, selon la nature de la modification elle-même. Mais cela est particulièrement pertinent dans les applications de recherche de contacts décentralisées où les données et algorithmes sensibles restent locaux. L'OWASP met également en évidence le risque d'ingénierie inverse du code source des attaquants comme passerelle pour des attaques plus avancées. Ainsi, un attaquant peut exploiter l'ingénierie inverse pour atteindre l'un des objectifs suivants : révéler des informations sur les hôtes, révéler des constantes et des chiffres cryptographiques, voler la propriété intellectuelle, mener des attaques contre des hôtes, ou obtenir les informations nécessaires pour effectuer un changement de code ultérieur. . En encadrant cela dans les applications de suivi des contacts, ces deux risques de sécurité (code exposé et ingénierie inverse) doivent être traités pour combler cette lacune de sécurité. Ce problème est particulièrement important dans les applications basées sur JavaScript, où, par défaut, le code source n'est pas compilé et est donc entièrement exposé, ce qui facilite grandement la falsification et la rétro-ingénierie. Actuellement, il existe des dizaines d'applications de recherche de contacts différentes en cours de développement ou publiées. Nous pouvons voir que plusieurs d'entre eux sont développés à l'aide de frameworks basés sur JavaScript comme React Native et Ionic, à savoir l'application officielle israélienne Hamagen, ito basée en Allemagne et COVID Shield basée au Canada (qui sont toutes basées sur le framework). ) et le WeTrace suisse qui est construit avec le framework Ionic. Par conséquent, il est essentiel que ces applications protègent leur code source JavaScript des attaques décrites ci-dessus, avec un accent particulier sur la protection contre les attaques d'exfiltration de données qui peuvent être obtenues en altérant le code ou en inspectant la mémoire. À cette fin, l'OWASP conseille que l'application mobile soit capable de détecter au moment de l'exécution que du code a été ajouté ou modifié, et que l'application soit capable de répondre de manière appropriée au moment de l'exécution. 'exécution à une violation de l'intégrité du code et doit être protégé contre la falsification ou la rayure de la mémoire. Ils déclarent ensuite que pour empêcher une ingénierie inverse efficace, un outil de protection du code doit être utilisé. Les équipes à l'origine de ces projets sont confrontées au grand défi de livrer ces applications très complexes en un temps record. Il est essentiel que vous preniez en compte ces menaces de sécurité lors de la phase de développement. Ce besoin de protéger le code source dans les applications mobiles ne doit pas être négligé avec des enjeux aussi importants.