Les bibliothèques externes sur Android
Pour un développeur Android, utiliser des bibliothèques externes afin d'étendre facilement les fonctionnalités de l'application mobile est devenu une pratique courante. Grâce à l'intégration simple des dépendances avec Gradle, des fonctionnalités comme les frameworks HTTP, les ORM de base de données, le défilement avancé, le chargement efficace d'images, le cache, l'intégration des réseaux sociaux et bien d'autres s'ajoutent sans effort.
Pour un développeur Android, utiliser des bibliothèques externes afin d'étendre facilement les fonctionnalités de l'application mobile est devenu une pratique courante. Grâce à l'intégration simple des dépendances avec Gradle, des fonctionnalités comme les frameworks HTTP, les ORM de base de données, le défilement avancé, le chargement efficace d'images, le cache, l'intégration des réseaux sociaux et bien d'autres s'ajoutent sans effort.
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
}
Les bibliothèques externes rendent le développement beaucoup plus simple et plus efficace, et leur usage est même considéré comme une bonne pratique.
Elles présentent cependant un risque de sécurité, qui va de nouvelles vulnérabilités à des fonctionnalités cachées dangereuses, voire une porte dérobée troublante.
En analysant les 150 applications les plus populaires à la recherche de dépendances externes, nous avons identifié les plus utilisées :

La plupart de ces bibliothèques sont soutenues par des entreprises comme Twitter, Facebook ou Square, mais certaines sont maintenues par un seul développeur. Prenons l'exemple de ButterKnife : le projet compte 45 contributeurs, le premier avec 251 commits, le deuxième avec 13 commits et la plupart des autres avec un seul commit.
La compromission d'une telle bibliothèque pourrait entraîner celle de millions d'utilisateurs dès que la version piégée est poussée en production. D'autres sont distribuées comme des boîtes noires dont on ne peut même pas consulter le code source, comme Flurry par exemple.
La sécurité des bibliothèques externes n'est pas un sujet simple, mais voici quelques recommandations à appliquer :
- Consultez régulièrement les avis de sécurité de la bibliothèque et mettez-la à jour en conséquence
- Auditez chaque bibliothèque externe avant de l'inclure dans votre application.
- Contrôlez les interactions entre les bibliothèques externes et votre application
- Avant de mettre à jour une bibliothèque, vérifiez le contenu des nouveaux commits
- Les sites de partage de code sont régulièrement la cible d'attaques malveillantes (attaque DDoS à grande échelle contre github.com). Consultez leur blog et leurs tweets pour vous tenir informé.