OSSIR Bretagne - Détection de fuites d'information sous Android

Détection de fuites d’information sous Android


par Radoniaina ANDRIATSIMANDEFITRA

Le système de permissions d’Android est très simple, et lorsque les droits ont été donné à une application, aucun contrôle est disponible par la suite pour contrôler les usages fait par ces permissions. Le travail de l’orateur se base sur Blare, un outil de détection d’intrusion basé sur le contrôle des flux d’information. Chaque information est représentée par un iTag dans le modèle Blare, et chaque conteneur est marqué par un iTag désignant l’information qu’il contient.

La politique de sécurité s’exprime par des pTag qui désignent quels information peuvent être présente dans le conteneur, et quels informations peuvent cohabiter au sein d’un même conteneur.

Lorsqu’un processus accède à une information, on met à jour l’iTag du conteneur en y ajoutant l’iTag de l’information à laquelle il accède (fichier, autre processus etc…). Puis la validité de l’action est contrôlée à partir du pTag du conteneur qui lui ne change pas (puisque sa valeur dépend de la politique de sécurité définie.).

La mise en place d’une politique se fait en 3 étapes :

Lister l’ensemble des informations considérés sensibles
Répertorier l’ensemble des conteneurs d’information (fichiers & programmes).
Définir la politique d’accès Conteneur – Donnée qui consiste à définir la valeur des pTags des différents conteneurs.

Pour réduire la taille des conteneurs soumis à la politique, un certain nombre d’éléments sensibles ont été identifiés, et les autres sont considérés comme non-sensibles et laissés accessibles à tous les conteneurs. Ainsi par défaut, les applications n’ont pas accès aux conteneurs sensibles car leur politique par défaut ne le permet pas. La politique permet donc de couvrir l’intégralité des conteneurs et des informations sans avoir à définir les itags/ptags pour l’ensemble du téléphone.

L’overhead CPU est relativement faible (8% d’overhead CPU, soit environo 30ms par action utilisateur.).

Coté détection d’attaques réelles, l’outil à été capable de détecter l’exploitation de Skype pour accéder au carnet d’adresse par Skypwned.

L’intégration de blare dans Android repose sur LSM et il faut juste reprendre les hooks qui gèrent les communications Inter-process sous Android. Un patch de la NSA pour selinux sous android à été poussé pour intégrer des hooks LSM dans le binder android chargé de la communication inter-process.