Une étude menée par : Artyom Skrobov, Slava Makkaveev – Check Point Software Technologies Ltd
La plupart des utilisateurs mobiles s’inquiètent des vulnérabilités connues du système d’exploitation de leurs appareils, qui peuvent fournir à un pirate un contrôle total sur leurs téléphones mobiles, ainsi que des vulnérabilités zero-day qui n’ont pas encore été corrigées par les éditeurs de logiciels. On a souvent l’impression que dès qu’une vulnérabilité est découverte dans un composant logiciel, elle est immédiatement corrigée.
Par conséquent, en maintenant à jour les versions du système d’exploitation mobile et de toutes les applications, vous pouvez sécuriser votre appareil mobile.
Check Point Research a cependant montré que même les vulnérabilités corrigées depuis longtemps peuvent revêtir une importance capitale, car du code obsolète peut se retrouver même dans les applications les plus populaires.
Une application mobile populaire utilise généralement des dizaines de composants réutilisables écrits dans un langage de bas niveau tel que le langage C. Ces composants, appelés bibliothèques natives, sont souvent dérivés de projets open source ou incorporent des fragments de code issus de projets open source. Lorsqu’une vulnérabilité est découverte et corrigée dans un projet open source, ses responsables n’ont généralement aucun contrôle sur les bibliothèques natives susceptibles d’être affectées par la vulnérabilité, ni sur les applications utilisant ces bibliothèques natives. C’est ainsi qu’une application peut continuer à utiliser des bibliothèques obsolètes même des années après la découverte d’une vulnérabilité. Il peut sembler un peu exagéré de déclarer que l’application est vulnérable, car son utilisation risque de ne jamais activer le code de la bibliothèque concernée, mais cela mérite certainement une enquête approfondie de la part des responsables de l’application.
Pour vérifier notre hypothèse selon laquelle des vulnérabilités connues depuis longtemps pourraient persister même dans les applications récemment publiées sur Google Play, nous les avons analysées pour y rechercher des schémas connus associés à des versions vulnérables de code open source. Les tableaux suivants résument nos résultats, en date de juin 2019, concernant trois vulnérabilités de gravité critique (exécution de code arbitraire) de 2014, 2015 et 2016. La liste comprend des centaines d’applications Android populaires, notamment Yahoo Browser, Facebook, Instagram et WeChat.
CVE-2014-8962 (codec audio FLAC)
https://git.xiph.org/?p=flac.git;a=commit;h=5b3033a2b355068c11fe637e14ac742d273f076e
Nom du package | Nom de l’application | Téléchargements | Bibliothèque vulnérable |
com.slacker.radio | LiveXLive | Plus de 50 000 000 | libLibFlacWrapper.so |
com.motorola.audiomonitor | Moto Voice BETA | Plus de 10 000 000 | libflacencoder.so, libvasflacencoder.so |
jp.co.yahoo.android.apps.transit | Yahoo! Transit | Plus de 10 000 000 | libyjvoice-4.6.0.so |
jp.co.yahoo.android.ybrowser | Yahoo! Navigateur | Plus de 10 000 000 | libyjvoice-4.7.0.so |
jp.co.yahoo.android.apps.map | Yahoo! MAP | Plus de 5 000 000 | libyjvoice-4.6.0.so |
jp.co.yahoo.android.apps.navi | Yahoo! Navigation automobile | Plus de 5 000 000 | libyjvoice-wakeup-4.6.0.so |
CVE-2015-8271 (streaming vidéo RTMP FFmpeg)
http://git.ffmpeg.org/gitweb/rtmpdump.git/commit/39ec7eda489717d503bc4cbfaa591c93205695b6
Nom du package | Nom de l’application | Téléchargements | Bibliothèque vulnérable |
com.facebook.katana | Plus de 1 000 000 000 | librtmp.so | |
com.facebook.orca | Messenger | Plus de 1 000 000 000 | librtmp.so |
com.lenovo.anyshare.gps | SHAREit | Plus de 1 000 000 000 | librtmp-jni.so |
com.mobile.legends | Mobile Legends : Bang Bang | Plus de 100 000 000 | libeasyrtmp.so |
com.smule.singandroid | Smule | Plus de 100 000 000 | libliteavsdk.so |
com.tencent.ibg.joox | JOOX Music | Plus de 100 000 000 | libliteavsdk.so |
com.tencent.mm | Plus de 100 000 000 | libliteavsdk.so | |
Plus de 400 |
CVE-2016-3062 (gestion des médias libavformat FFmpeg)
http://git.ffmpeg.org/gitweb/ffmpeg.git/commit/7e01d48cfd168c3dfc663f03a3b6a98e0ecba328
Nom du package | Nom de l’application | Téléchargements | Bibliothèque vulnérable |
com.instagram.android | Plus de 1 000 000 000 | libfb_ffmpeg.so | |
com.alibaba.aliexpresshd | AliExpress | Plus de 100 000 000 | libtbffmpeg.so |
com.fundevs.app.mediaconverter | Video MP3 Converter | Plus de 100 000 000 | mediaplay |
com.lazada.android | Lazada | Plus de 100 000 000 | libtbffmpeg.so |
com.quvideo.xiaoying | VivaVideo | Plus de 100 000 000 | libffmpeg.so |
com.smule.singandroid | Smule | Plus de 100 000 000 | libsing.so |
com.tencent.ibg.joox | JOOX Music | Plus de 100 000 000 | libm4adecoder.so |
com.venticake.retrica | Retrica | Plus de 100 000 000 | libavformat.so, libf.so |
tunein.player | TuneIn | Plus de 100 000 000 | libtunein.uap.so |
Plus de 200 |
Une vulnérabilité CVE-2016-3062 supplémentaire a été identifiée durant nos tests de l’application Instagram (com.instagram.android). Lors d’une correspondance avec Instagram, nous avons été informés que
« Deux correctifs différents ont été créés par erreur pour ce problème : un pour FFmpeg il y a 7 ans (qui n’était pas un CVE) et un pour libav il y a 3 ans (qui était un CVE), puis il semble que FFmpeg ait intégré le second correctif de libav, qui comprend donc les deux correctifs, alors que l’un ou l’autre suffirait. »
com.instagram.android | Plus de 1 000 000 000 | libfb_ffmpeg.so |
Il est important de noter, comme indiqué précédemment, que notre étude portait principalement sur l’état de la sécurité des applications sur Google Play et non sur des vulnérabilités spécifiques dans des applications spécifiques. Ceci s’applique également à l’exemple Instagram mentionné ci-dessus.
Trois vulnérabilités seulement, toutes corrigées il y a plus de deux ans, rendent des centaines d’applications potentiellement vulnérables à une exécution de code à distance. Imaginez le nombre d’applications populaires qu’un pirate pourrait cibler s’il recherchait une centaine de vulnérabilités connues dans Google Play.
La démo suivante montre l’exemplaire de fichier vidéo du rapport CVE-2016-3062 d’origine provoquant le crash de la dernière version de l’application VivaVideo (com.quvideo.xiaoying, avec plus de 100 millions de téléchargements).
Conclusion
Si vous disposez d’un appareil mobile, vous savez à quel point il est important de maintenir à jour le système d’exploitation et toutes les applications installées.
Il est choquant de constater que ces précautions ne sont d’aucune aide lorsque les auteurs d’applications négligent d’intégrer des correctifs de sécurité dans les composants courants qu’ils utilisent. Effectuer toutes les mises à jour de sécurité de tous les composants externes d’une application mobile sophistiquée est une tâche fastidieuse, et il n’est pas surprenant que peu de développeurs soient disposés à le faire.
Les app stores mobiles et les chercheurs en sécurité analysent les applications de manière proactive à la recherche de logiciels malveillants, mais accordent moins d’attention aux vulnérabilités critiques connues de longue date.
Malheureusement, cela signifie que l’utilisateur final ne peut pas faire grand-chose pour protéger son appareil mobile.