• Aucun résultat trouvé

CHAPITRE 2 REVUE DE LITTÉRATURE DES TECHNIQUES DE DÉTECTION DES

2.4 Type de ressources monitorées

2.4.1 Paramètres statiques

L’analyse des paramètres statiques est une méthode populaire pour analyser les malwares. On peut atteindre l’objectif en analysant le contenu de chaque application. Cette méthode d’analyse peut réduire le coût et améliorer la performance. De nombreux chercheurs

37

suggèrent d’utiliser des paramètres statiques pour détecter les comportements malveillants sans réellement exécuter l’application. Parmi ces paramètres, on trouve le bytecode d’Android. En effet, la représentation des binaires Android est sémantiquement plus riche que les binaires bureautiques communes. Par exemple, l’extraction des chaînes dans les binaires des bureaux est complexe et, généralement, les auteurs de malware utilisent des techniques d’obscurcissement pour cacher des informations pertinentes. Alors que l’obscurcissement de chaînes dans les binaires Android est plus difficile, compte tenu de la structure interne des fichiers binaires dans cette plateforme.

Le travail de Sanz et al. (2013b) consiste à désassembler l’application Android avec l’outil « smali » et extraire le code opérationnel « const-chaîne » pour construire un modèle de détection d’anomalies qui mesure les écarts à la normalité (c’est à dire, les applications légitimes). Le bytecode contient aussi les appels API (Interfaces pour l’accès programmé aux applications) qui fournissent des moyens aux applications pour interagir avec l’appareil. L’inspection statique de ces appels donne donc des informations sur leurs activités d’exécution.

Un cadriciel d’analyse statique des applications Android, appelé DroidMat, est proposé par Dong-Jie et al. (2012). Cet outil permet d’extraire et d’analyser les informations de fichier manifeste, y compris les appels API et les permissions pour identifier le comportement de l’application. Puis, il applique un algorithme d’apprentissage k-means pour améliorer la capacité de modélisation des logiciels malveillants. La performance de détection a été évaluée sur un ensemble de données de 1500 applications bénignes et 238 applications malveillantes tout en la comparant à un autre travail connexe appelé Androguard (Desnos, 2011).

Les résultats des tests de DroidMat étaient prometteurs avec une précision d’environ 97 %. Cependant, le coût de l’analyse dépend de la taille et du nombre de fichiers et les ressources limitées de l’appareil ne sont pas prises en compte par cet outil. Aussi, DroidMat n’est pas un

modèle dynamique dans le sens où ses seuils restent constants alors que les algorithmes de détection sont en cours d’exécution.

L’approche de Bla et al. (2010) scanne aussi le bytecode avec les appels API et le fichier « Manifest » de l’application de test pour des motifs spéciaux. Leur approche AASandbox surveille l’utilisation de la JNI (Java Native Interface) qui peut être utilisée pour charger dynamiquement les bibliothèques natives, la méthode « Sytem.getRuntime().exec(..) » qui permet d’exécuter des commandes dans des processus séparés, les mécanismes de communications inter processus (IPC : Inter-Process Communication) et les permissions déclarées dans le fichier « Manifest » afin de déterminer quelles autorisations seront accordées lors de l’installation.

En effet, les permissions jouent un rôle important dans l’attribution des droits d’accès à certains éléments restreints du système d’exploitation Android. Ces éléments comprennent l’accès à divers matériels (par exemple, GPS, caméra), aux caractéristiques sensibles du système d’exploitation (par exemple, les contacts) et l’accès à certaines parties exposées d’autres applications. L’utilisateur doit accorder toutes les autorisations demandées par l’application au moment de l’installation. Diverses approches de détection des logiciels malveillants Android sont basées sur l’analyse des combinaisons de permissions demandées par des malwares.

Par exemple Aung et Zaw (2013) effectuent une analyse basée sur les autorisations requises par les applications Android du marché « Google Play ». Ils extraient les autorisations définies à partir des fichiers « AndroidManifest.xml » de 500 applications Android et les réduisent en sélectionnant celles les plus pertinentes en utilisant la méthode d’entropie relative. Puis ils appliquent les algorithmes de classification tels que l’arbre de décision, l’analyse d’arbre de classification et de régression CART (Classification And Regression

Tree) et les forêts d’arbres décisionnels RF (Random Forest) sur l’ensemble de données

39

précision et rappel. Selon leurs résultats, l’arbre de décision et les forêts d’arbres décisionnels sont plus performants que l’analyse d’arbre de classification et de régression, en présentant des taux de précision plus élevés et des taux de faux positifs plus faibles.

L’approche de Sheen, Anitha et Natarajan (2015) utilise également les permissions et les appels API pour analyser les applications Android. Cette approche applique trois algorithmes : la loi du χ2 (CS : Chi square), Relief (RF) et la divergence de Kullback-Leibler (IG : Information Gain) pour sélectionner les appels API et les permissions les plus exigeants pour la détection des malwares. Par la suite, elle applique différents classificateurs (Naive bayes, J48, SVM et IBk) pour chaque groupe de données. Les classificateurs collaborent les uns avec les autres pour aboutir à une décision finale. Les auteurs ont évalué les performances de la méthode de collaboration sur les 20 principaux paramètres qui ont été sélectionnés à partir des données extraites de 1073 applications malicieuses et 904 applications bénignes. Les résultats montrent que cette approche offre une précision de 98,31 %.

Une méthode de détection des malwares sur Android, appelée PUMA est proposée par Sanz et al. (2013a). Cette approche est basée sur l’apprentissage machine qui utilise des informations obtenues à partir des permissions requises par l’application. Pour évaluer leur méthode, les auteurs ont recueilli 1811 applications bénignes de différentes catégories depuis l’Android Market et 249 applications malveillantes en utilisant « VirusTotal Malware Intelligence Services ». Les caractéristiques utilisées pour représenter chaque échantillon sont basées sur l’ensemble des permissions requis par l’application. Grâce à ces informations, les auteurs ont évalué huit algorithmes de classification disponibles dans le cadriciel WEKA. Pour chaque classificateur, ils ont réalisé 10 validations croisées et ont conclu que Random Forest a fourni les meilleurs résultats avec une précision de 86 %.