Détection d’anomalies sur Android

Le marché des téléphones intelligents, ou smartphones, a connu un essor considérable au cours de dernières années. Ces téléphones ont dépassé leur fonctionnalité première de communication vocale et sont désormais de véritables mini-ordinateurs, dotés d’un système d’exploitation propre qui permet à l’utilisateur d’installer toutes sortes d’application. Bien que le nombre de modèles de téléphone soit considérable, deux systèmes d’exploitation prédominent largement le marché : l’iOS d’Apple et Android de Google. Ce dernier permet à n’importe quel utilisateur ayant quelques connaissances en programmation de créer et publier ses propres applications sur le site Google Play, où les autres utilisateurs peuvent les télécharger. Ce site se base sur un système de réputation et de signature pour assurer la sécurité des utilisateurs. Ce système est loin d’être parfait. D’une part, des applications malicieuses (malwares) se retrouvent régulièrement sur ce marché. Dès qu’il prend connaissance d’une telle contamination, Google réagit en supprimant les applications suspectes du marché. Cependant, le temps nécessaire à cette réaction laisse le temps à de nombreux utilisateurs d’être infectés [1, 2]. D’autre part, de nombreux utilisateurs sont contraints d’utiliser des marchés alternatifs. Par exemple, à l’heure actuelle, Google Play ne supporte pas les applications payantes en Chine [3]. Les utilisateurs se tournent donc massivement vers des marchés alternatifs [4]. Ces marchés ne sont pas contrôlés et sont donc infestés de programmes malveillants : il est crucial pour ces utilisateurs d’être à même de les détecter afin de limiter les risques.

Enjeux de la détection de logiciels malveillants sous Android 

Les domaines d’utilisation des smartphones dans la vie de tous les jours sont très variés. Ceux-ci suivent leurs utilisateurs partout et peuvent contenir énormément de données à leur sujet, que ce soit dans le cadre de leur vie privée ou professionnelle. En effet, on peut tout connaître des projets d’un cadre en ayant accès à ses mails, tout comme on peut facilement tracer les grandes lignes de ses habitudes de consommation en observant ses déplacements à l’aide d’un GPS. Qui plus est, le téléphone lui-même stocke qu’on le veuille ou non des informations telles que le numéro de téléphone de l’utilisateur, qui pourraient intéresser des démarcheurs peu scrupuleux. Pour toutes ces raisons, les smartphones sont des cibles privilégiées pour les programmes malveillants. N’importe quel utilisateur peut être affecté par un malware qui tente de récupérer des données personnelles ou d’appeler un numéro surtaxé, ce qui rend la publication d’une telle application très lucrative. Qui plus est, l’impact sur l’utilisateur est direct. Outre l’intrusion dans la vie privée, qui est un problème rencontré de manière récurrente sur internet, les envois de SMS surtaxés lui font perdre de l’argent directement et peuvent donc poser de gros problèmes si ils ne sont pas détectés rapidement.

Réalité de la menace

La menace de trouver des logiciels malveillants sur Google Play est bien réelle [2]. Le premier cas d’application suspicieuse retirée du marché par Google date de Janvier 2010. Il s’agissait d’un spyware, programme destiné à collecter à l’insu de l’utilisateur des données personnelles, en l’occurrence des informations bancaires. En Août 2010 fut découvert le premier Trojan (cheval de Troie) destiné à envoyer des SMS à l’insu de l’utilisateur, répondant au nom de Fake Player. Le programme se fait passer pour un lecteur de vidéo et envoie à l’insu de l’utilisateur des SMS vers un numéro surtaxé, pour un coût de 5 dollars par message. Il s’agit du premier exemple de programme malveillant sur Android qui ne se contente pas d’espionner l’utilisateur et lui fait perdre de l’argent directement. Depuis ces premiers exemples et en particulier à partir de 2011, le nombre de programmes malveillants détectés sous Android a fortement augmenté, de paire avec l’utilisation de cette plate-forme. Les rapports parlent d’une « augmentation de 400% des application malicieuses Android depuis l’été 2011 »[5]. Si les marchés d’applications alternatifs en sont la première source, on voit régulièrement Google annoncer qu’il vient de retirer des programmes suspicieux de son Google Market. Des antivirus sont disponibles pour essayer de limiter les dégâts, mais il faut reconnaître que leur efficacité est limitée. Ils sont en particulier totalement inefficaces pour détecter de nouveaux malwares, qui ne sont pas présents dans leurs bases de données.

Comportement des logiciels malveillants et méthodes de diffusion 

Les logiciels malveillants utilisent différentes méthodes pour se dissimuler, que ce soit aux yeux de l’utilisateur ou des logiciels de détection. La méthode la plus courante de diffusion est le repackaging : l’auteur du logiciel malveillant désassemble une application connue, y ajoute du code, puis publie le programme modifié sur un marché alternatif en le faisant passer pour le programme d’origine. Pour éviter d’être détecté par les antivirus, l’auteur du logiciel malveillant va souvent éviter de mettre directement toute sa payload, c’est à dire le code qui va mener l’attaque, dans son application. En effet, les payload contiennent en général des attaques permettant de briser la sécurité mise en place par Android. Ces attaques sont peu nombreuses et possèdent donc des signatures qu’un antivirus peut détecter. Pour éviter cela, l’auteur n’injecte pas directement la payload dans l’application, mais fait en sorte que l’application la  télécharge ultérieurement. À ce jour, plusieurs familles de malwares implémentent une variante de cette attaque, parmi lesquelles on peut citer BaseBridge, DroidKungFu, Plankton, BadNews et Anserverbot. Les quatre premiers ont par ailleurs déjà été détectés sur Google Play d’après rapports de Lookout. Chaque variante a son propre scénario d’attaque et on peut imaginer que de nouvelles feront leur apparition dans le futur. Une application infectée par BaseBridge attend qu’une nouvelle mise à jour soit disponible. Lorsque l’application doit afficher une fenêtre invitant à effectuer cette mise à jour, BaseBridge détourne celle-ci [6]. Au lieu de télécharger la vraie mise à jour, le programme installe une fausse mise à jour, déjà présente sur le téléphone sous la forme de ressource du programme infecté, contenant la payload. En évitant d’inclure celle-ci dans le code de l’application infectée dès le départ, les chances d’être détecté pour BaseBridge sont réduites. DroidKungFu [1] agit d’une manière similaire, mais au lieu de stocker la « mise à jour »dans les ressources de l’application, celui-ci fait en sorte de la télécharger depuis le réseau. Pour cela, la notification de mise à jour est effectuée par une librairie tierce [6] qui permet d’effectuer des mises à jour de manière légitime. Cependant, cette librairie permet de télécharger les mises à jour depuis d’autres marchés d’application que Google Play : la mise à jour téléchargée est en fait une fausse mise à jour qui contient la payload. Ces deux exemples nécessitent au moment de la mise à jour l’accord explicite de l’utilisateur. En effet, celui-ci reçoit une notification et il peut très bien refuser la mise à jour si il suspecte quelque chose en regardant par exemple les nouvelles permissions demandées. Les familles Plankton et Anserverbot se montrent en revanche plus discrètes [6]. Celles-ci téléchargent un fichier .jar contenant la payload, qui est exécuté dynamiquement par le système. Ceci permet d’échapper à l’analyse statique [7, 8]. Le dernier exemple en date, BadNews, a également eu un fort impact, puisque 32 applications infectées par ce dernier ont été téléchargées entre 2 et 9 millions de fois sur Google Play, selon les statistiques de ce dernier. BadNews se fait passer pour un réseau de publicité dans dans une librairie tierce [9]. Les librairies tierces sont des ressources utilisées par les programmeurs qui leur permettent d’implémenter des fonctionnalités classiques sans avoir à les réécrire, en l’occurrence l’intégration de publicités dans leur application. Par conséquent, une application peut être infectée à l’insu même de son développeur, puisqu’il suffit que celle-ci utilise une librairie infectée pour qu’elle soit également contaminée. Une fois BadNews installé, celui-ci met le téléphone en écoute d’un serveur de contrôle, qui envoie des instructions toutes les 4 heures. Parmi ces instructions, le serveur peut essayer de faire télécharger à l’utilisateur d’autres applications malicieuses telles que AlphaSMS en les faisant passer pour des mises à jour d’applications courantes comme Skype.

Toute ces méthodes peuvent prendre l’utilisateur au dépourvu, puisqu’il a tendance à faire confiance à une application connue téléchargée sur le marché officiel. Les programmes infectés continuent de fonctionner normalement en apparence, mais un grand nombre d’actions nuisibles pour l’utilisateur peuvent avoir lieu à son insu. Très vite, celui-ci peut sans s’en rendre compte avoir envoyé un grand nombre de SMS surtaxés, s’être fait voler toutes ses données personnelles, ou même ses coordonnées bancaires.

Table des matières

1 Motivations
1.1 Enjeux de la détection de logiciels malveillants sous Android
1.2 Réalité de la menace .
1.3 Comportement des logiciels malveillants et méthodes de diffusion
1.4 Problème visé
2 Approche proposée
2.1 Objectifs
2.2 Travaux précédents : détection d’intrusion par approche comportementale
2.3 Travaux précédents : détection de malware sur Android
2.4 Limites de notre approche .
2.5 Contraites rencontrées sur Android
3 Notre contibution
3.1 Schéma global
3.2 Extraction des données
3.2.1 Strace
3.2.2 Normalisation
3.3 Création du modèle et scan
3.3.1 Modèle de type Lookahead pairs
3.3.2 Modèle de type arbre de n-grams
4 Tests effectués
4.1 Conditions d’expérimentation
4.2 Validation de l’approche
4.2.1 Motivations
4.2.2 Résultats
4.3 Tests sur des logiciels malveillants
4.4 Tests de surconsommation
4.5 Taille des modèles
5 Discussion
6 Conclusion

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *