Accélérer l'analyse du code des applications mobiles pour débusquer les failles de sécurité, c'est l'un des sujets sur lesquels se penchent les chercheurs de l'Institut Fraunhofer en Allemagne. L'objectif avec l'outil CodeScan est de parvenir en quelques millisecondes à des résultats qui peuvent actuellement demander plusieurs heures aux développeurs. Sur le Cebit 2014, qui se tient cette semaine à Hanovre, les chercheurs montrent trois outils visant à évaluer ou améliorer la sécurité des applications mobiles.
Le service Appicaptor doit aider les entreprises à identifier les apps qui menacent la sécurité ou qui ne respectent pas les règles de protection de données mises en place. App-Ray propose des fonctions similaires sous la forme d'un service hébergé ou d'une machine virtuelle que les départements informatiques peuvent déployer sur leurs propres serveurs.
Une combinaison d'analyse statique et dynamique
CodeScan n'est encore qu'un prototype. Les chercheurs continuent à renforcer sa capacité à identifier des failles dans le code à travers une combinaison d'analyse statique et dynamique. L'outil « est conçu pour Java, mais dans la mesure où les apps Android sont écrites en Java, vous pouvez l'utiliser aussi pour Android », a expliqué Eric Bodden, responsable du département Secure Software Engineering au Fraunhofer SIT (Secure Information Technology), à nos confrères d'IDG News Service. Comme les autres outils d'analyse de code du marché, celui-ci fonctionne avec un environnement de développement intégré (IDE).
Les logiciels existants sont ou bien trop lents, analysant de façon uniforme l'ensemble du code pendant la nuit sur un serveur puissant, ce qui ne permet pas d'obtenir un feedback immédiat, ou bien ils ne vont pas assez loin, n'utilisant qu'une seule méthode d'analyse à la fois avec des fonctionnalités limitées. Avec CodeScan, l'objectif est de faire ce type d'analyse presque instantanément, à l'enregistrement du code.
Cibler en premier les failles les plus dangereuses
Pour y parvenir, les chercheurs ciblent en premier les failles les plus dangereuses dans les parties du code les plus sensibles, plutôt que d'analyser avec la même profondeur la totalité du code. Parmi les erreurs le plus fréquemment rencontrées, Eric Bodden cite l'utilisation du chiffrement symétrique dont les algorithmes utilisent la même clef pour chiffrer et déchiffrer les données. « L'une des choses qu'il ne faut absolument pas faire dans ce contexte, c'est d'intégrer la clé dans le code », souligne le chercheur. Parce que cela donnera aux éventuels attaquants les éléments dont ils ont besoin pour intercepter les communications dans les deux directions. « Nous pouvons retrouver l'utilisation de ces API très rapidement et ensuite lancer une analyse spécifique pour rechercher les clés de chiffrement ».
Parmi les sujets sensibles, Eric Bodden cite celui des données personnelles et notamment des mots de passe. Lorsqu'ils travaillent sur une app, les développeurs lui permettent d'accéder aux données de connexion pendant qu'elle s'exécute. Cela ne pose pas de problèmes pendant le développement, mais il ne faut pas livrer le code sous cette forme parce que ces informations peuvent être utilisées par d'autres apps. En lançant des analyses sur les flux de données, CodeScan peut voir si un mot de passe circule vers les fichiers de connexion. « La plupart des erreurs résultent d'une mauvaise utilisation des API », pointe Eric Bodden, ou résultent d'un problème lié à la façon dont circulent les données.
Repérer les apps qui traquent le comportement
Dans les apps mobiles, les menaces pesant sur les données privées ne sont pas toujours involontaires. Un certain nombre d'outils sont installés par des éditeurs pour traquer le comportement des utilisateurs. L'équipe d'Eric Bodden a fait un test sur les 400 apps les plus utilisées et trouvé de très nombreuses fonctions de pistage. « Toutes ces entreprises peuvent récupérer des informations sur vous si vous utilisez leurs apps », souligne Jens Heider, responsable du laboratoire de test sur la sécurité mobile de l'Institut Fraunhofer.
Appicaptor, un service qui s'adresse aux entreprises. (crédit : Peter Sayer/IDGNS)
[[page]]
Le service Appicaptor réalise des analyses régulières des apps sous iOS, Android, Windows Phone ou pour BlackBerry afin d'alerter si elles contiennent ce type de fonctions. Pour un abonnement mensuel de 1 500 euros, les entreprises peuvent s'abonner à un rapport de sécurité portant sur 100 apps. Pour 5 000 euros par mois, le service pourra s'appliquer à 500 apps et vérifier chaque semaine leur conformité à la politique de sécurité définie par le client, a indiqué Jens Heider à IDG News Service.
Le service Appicaptor livre des rapports hebdomadaires (cliquer sur l'image).
Des apps qui pourraient être détournées de l'usage d'origine
Une autre équipe de l'Institut Fraunhofer, appartenant cette fois au département AISEC (Applied and Integrated Security), a développé App-Ray, un outil de sécurité pour les apps Android qui peut être utilisé par les entreprises pour contrôler les règles de leur stratégie Byod (Bring your own device). Il peut aussi servir aux développeurs curieux de voir quelles fonctions sont embarquées dans les modules des autres éditeurs.
« Nous avons trouvé des choses qui ne sont pas problématiques en soi, mais qui pourraient poser un problème dans l'entreprise », a explique Dennis Titze, l'un des chercheurs engagés sur le projet. Par exemple, une app qui peut effectuer des enregistrements audio n'est pas mauvaise en elle-même (Whatsapp peut enregistrer des clips de 10 secondes à envoyer sous forme de messages, par exemple). Mais lorsque ces fonctions sont combinées à la capacité d'accéder au calendrier et d'activer le micro du téléphone quand son utilisateur assiste à une réunion, cela peut potentiellement constituer un risque de sécurité, décrit le chercheur.
Contrôler aussi ce que l'app ne fait pas
L'outil App-Ray détecte aussi les menaces liées à ce que l'app ne fait pas. Par exemple, il peut remarquer qu'elle ne vérifie pas les certificats SSL douteux. Il contrôle le code de l'app pour voir si elle dispose de son propre outil de vérification (au lieu d'utiliser les API standards) et s'assurer qu'elle le met bien en oeuvre. De nombreuses apps ont une fonction de contrôle des certificats qui ne contient en fait aucun code et se contente de retourner une réponse.
L'outil App-Ray est prêt pour une utilisation commerciale et le laboratoire évalue deux modèles de tarification, a précisé Dennis Titze à IDG News Service. Une version sur site serait fournie sous la forme d'une image de VM. Elle coûterait entre 10 000 et 100 000 euros par an et permettrait aux entreprises de tester autant d'apps qu'elles le souhaitent sans que qui que ce soit sache desquelles il s'agit. Ce pourrait être intéressant pour un développeur qui voudrait vérifier les nouvelles versions de ses apps avant de les charger sur une boutique en ligne. Par ailleurs, une version hébergée du service serait disponible à un prix allant de 100 à 1 000 euros par mois.Â