Application de l’analyse de la mémoire vive
Ce chapitre propose une technique d’analyse de la mémoire vive visant un équilibre entre une approche suffisamment spécifique pour capturer des comportements malicieux particuliers à la plateforme Android, mais assez générique pour demeurer valide à travers les versions du SE. La méthode proposée utilise les greffons de Volatility ciblant l’extraction de structures internes du noyau Linux depuis une capture de la mémoire vive et les applique dans un contexte d’analyse de maliciels sur Android. Il est également proposé d’utiliser une technique proposée dans ce mémoire, l’analyse différentielle de la mémoire vive (ADMV), afin de concentrer l’effort d’analyse sur les structures affectées par l’exécution de l’application. Ce chapitre présente en premier lieu le rationnel et le fonctionnement de l’ADMV. En second lieu, il présente une étude dans laquelle l’approche est appliquée afin de capturer et d’extraire des artefacts de l’exécution d’un maliciel expérimental conçu à cette fin et vise à démontrer la pertinence de l’ADMV sur une plateforme Android utilisant ART. L’analyse différentielle peut être définie comme l’utilisation de la différence entre les données recueillies à deux temps de mesure t espacés par Dt. La résultante permet d’isoler uniquement les éléments ayant été créés, supprimés ou modifiés entre ces temps de mesure. Ce substrat réduit la quantité de données à analyser et vise à réduire le temps et la complexité de d’analyse. Dans le cas de l’analyse de maliciels, il est possible d’obtenir un état initial qui se définit par l’état de la plateforme au moment qui précède le déploiement de l’échantillon à analyser. Pour l’ADMV, cela signifie qu’il est possible d’obtenir une acquisition à un temps t.
l’application à analyser n’a pas encore été déployée et que le système fonctionne normalement. Après l’acquisition de cette capture initiale, l’application est déployée. Afin d’augmenter les chances qu’elle se révèle malicieuse si tel est le cas, elle peut être stimulée manuellement par Afin d’effectuer la comparaison entre les deux temps de mesure, il est proposé de comparer les informations extraites à l’aide des modules visant Linux de Volatility. Tel qu’il est décrit précédemment, Volatility permet d’extraire des informations sur les structures internes du SE à partir de la mémoire vive. La comparaison des résultats obtenus par l’outil permet d’établir clairement quelles composantes du SE sont d’intérêt pour l’analyse. Il est postulé que les nouvelles entrées sont des éléments ayant été créés pendant l’exécution de l’application. Les éléments présents avant et après le déploiement de cette dernière sont considérés pour l’analyse s’ils ont été modifiés dans l’intervalle d’acquisition. Finalement, les éléments présents au temps tL’ADMV a également été explorée par 504ensics Labs [2] en visant principalement les greffons Windows de Volatility. Leur approche est démontrée par l’outil Differential Analysis of Malware in Memory (DAMM) qui vise à automatiser la différenciation entre les captures de mémoire vive. Ce programme a été étudié dans les présents travaux et des efforts ont été menés afin de l’adapter aux greffons pour Linux de Volatility. Toutefois, le développement de l’outil a été abandonné par son créateur et les efforts pour le maintenir ont été interrompus. Conséquemment, DAMM n’a pas été retenu dans les présents travaux bien qu’il en démontre l’intérêt de l’approche.
Dans l’état actuel de l’approche proposée, un analyste est requis afin de filtrer les résultats de l’ADMV. En effet, le différentiel obtenu comprend tous changements apportés par l’application analysée, autant ceux apportés par la cible de l’analyse que ceux dus au fonctionnement normal du SE se produisant pendant la durée de vie de l’analyse. L’étude décrite à la section suivante a été réalisée afin d’évaluer si l’ADMV permet de cerner correctement les comportements malicieux d’une application en suivant les principes énoncés. L’approche de l’ADMV a reçu peu d’attention dans la littérature. Sur Android, il n’a pas été possible d’identifier des travaux s’étant penchés sur sa pertinence et son utilisation en tant qu’outil d’analyse de maliciels. C’est pour cette raison que l’étude suivante s’est intéressée à démontrer l’applicabilité de l’ADMV dans l’identification de comportements malicieux de même que sa résilience aux tactiques d’évasion de la détection comme l’obfuscation, leL’approche de l’ADMV a reçu peu d’attention dans la littérature. Sur Android, il n’a pas été possible d’identifier des travaux s’étant penchés sur sa pertinence et son utilisation en tant qu’outil d’analyse de maliciels. C’est pour cette raison que l’étude suivante s’est intéressée à démontrer l’applicabilité de l’ADMV dans l’identification de comportements malicieux de même que sa résilience aux tactiques d’évasion de la détection comme l’obfuscation, lePlus spécifiquement, l’expérimentation décrite vise à répondre aux questions suivantes : est-ce possible d’utiliser l’ADMV pour identifier, récupérer et analyser le contenu d’un fichier de code malicieux déchiffré, chargé dynamiquement et supprimé dès la fin de son chargement afin d’empêcher sa récupération sur le stockage physique de l’appareil ? Également, est-il possible par cette même technique d’identifier une élévation de privilèges et un cheval de Troie (ou porte dérobée) ?