L'environnement Android est devenu le système d’exploitation de première importance pour un nombre considérable d’équipements, notamment les smartphones et les tablettes ainsi que des équipements futurs. Cet environnement offre aux usagers une multitude d’applications à télécharger depuis le market officiel fourni par Google ou des Market alternatifs. Ces applications peuvent être de toutes sortes afin de divertir ou d’aider les usagers. Le comportement de ces applications et leur impact sur les données personnelles (les conteurs des SMS ; des MMS, des mails, le journal d’appel, les identifiants des comptes utilisateurs, les détails des contacts et les informations stockées par les applications) des usagers, ainsi que les fonctions sensibles associées aux capteurs et la téléphonie, n’est pas vérifié par les fournisseurs de ces plateformes de téléchargement. Notre proposition basée sur l’analyse comportementale des applications qui a consisté à monitorer le comportement des applications dans un environnement de contrôle. Cette analyse, permet de continuer à renforcer la sécurité Android. Dans ce mémoire, nous proposons une nouvelle approche de détection des malwares. Dans un premier temps, nous appliquons le modèle d’apprentissage SVM. Puis, nous décrivons nos propres algorithmes, nommé ACDM, pour observer le comportement du programme. Enfin, Nous, il nous semblerait que les résultats de cette étude sont concluants expérimentalement.
1. RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE
Ministre de l’Enseignement Supérieur et de la Recherche Scientifique
Université Echahid Hamma Lakhdar –El Oued
Faculté des Sciences et
Technologie
Département de Mathématiques et
d’Informatique
Mémoire de Master LMD
Option : Fondamentale d’Informatique
Une approche comportementale pour la détection
des fuites des données Personnelles en Android
Proposé et dirigé par :
Mr. Gherbi Kaddour
Réalisé par :
BOUSBIA SALAH Salima
CHAIB Yousra
2014 2015
6/6/2015
2. Plan de travail
Introduction
Système Android
Malware Android
Sécurité du système Android
Analyse d’application Android
Machine Learning
Notre Approche
Le Détail de notre Approche
Expérimentations et résultats
Conclusion 2
6/6/2015
3. Introduction
Lancé officiellement en 2008, Androïde est devenu en quelques années le
système d’exploitation le plus répandu sur les plateformes mobiles. Au delà de sa
large adoption par le grand public, il a également suscité l’intérêt des développeurs
d’applications malveillantes qui voient dans le système Androïde, une cible
potentielle d’attaque au même niveau que les ordinateurs de bureau à cause de la
diversité des données et services qu’ils proposent. La combinaisons de toutes les
fonctionnalités (offertes par androïde) font de ces appareils un point de
concentration de divers données et services sensibles (liste de contact, messages,
données de géolocalisation, etc.)
dans ce travail nous proposons une nouvelle approche pour la détection
des applications malveillantes pour l’environnement androïde. 3
6/6/2015
4. Système Android
Android est un système d'exploitation
mobile pour smartphones, tablettes tactiles,
PDA, smartwatches et terminaux mobiles.
Android partage une base commune aux
systèmes Linux qui est le noyau et, un
ensemble de commandes et utilitaires
nécessaires
4
6/6/2015
6. Composants d’applications Android
Activité Service
Fournisseur
de contenu
Récepteur
d'émission
un composant Activity
est une interface utilisateur.
un service est un composant
effectuant des tâches en arrière plan.
son rôle est de servir d’interface
entre l’application souhaitant accéder aux
données et les données.
est un composant utilisé pour écouter
les messages en large diffusion sur le système.
6
6/6/2015
7. Malware Android
Nous appelons malware un programme ou un code dont
le but est de nuire à un système donné.
7
6/6/2015
8. Sécurité du système Android
Permissions
8
À l’installation, l’utilisateur
valide les permissions demandées par
l’application. Pour que l’installation
se passe, il doit toutes les accepter.
Figure— permissions pour s’installer sur Android
6/6/2015
9. Signature des applications
9
Toutes les applications Android
doivent être signées avec une clé
privée conservée par le développeur.
Sécurité du système Android
Figure-– Fichier MANIFEST.MF de l’application HelloActivity
6/6/2015
11. L’approche Comportemental pour la détection
L’approche comportementale propose de modéliser le
comportement normal d’un système et de s’en servir comme
référence. Les techniques utilisées sont multiples mais se
basent souvent sur la machine Learning.
11
6/6/2015
12. Machine Learning
L'apprentissage automatique (machine learning en anglais),
un des champs d'étude de l'intelligence artificielle, est la discipline
scientifique concernée par le développement, l'analyse et
l'implémentation de méthodes automatisables qui permettent à une
machine d'évoluer grâce à un processus d'apprentissage, et ainsi de
remplir des tâches qu'il est difficile ou impossible de remplir par
des moyens algorithmiques plus classiques.
12
6/6/2015
13. Type de modèle d’apprentissage: Il existe plusieurs types des
modèles; côté supervisé ou non supervisé.
d’apprentissage supervisé
Régression logistique (SGV)
Machine à vecteurs de support (SVM)
Forêts d’arbres décisionnels (Random Forest)
d’apprentissage non-supervisé
Fuzzy KMeans
Espérance-Maximisation (EM)
13
6/6/2015
Machine Learning
14. Machine à vecteurs de support (SVM) :
les machines à vecteurs de support ou
séparateurs à vaste marge sont un ensemble de
techniques d'apprentissage supervisé destinées à
résoudre des problèmes de discrimination et de
régression. Parmi les modèles des SVM, on
constate les cas linéairement séparables et les cas
non linéairement séparables
14
Figure— Cas linéairement séparable
Figure— Cas non linéairement séparable
6/6/2015
Machine Learning
17. 17
Le détail de notre approche
• apps mal
• apps normal
Programme
scanné
• émulateur
• command strace
• Fenêtre glissant
Récupération
de donne • Algorithme de
raffinage
• Algorithme de
détection
Algorithme
de détection
• SVM
Machine
Learning
Figure— Détaille Partie apprentissage .
6/6/2015
18. 18
Récupération de données
L'émulateur Android : est une
application qui fournit un appareil mobile
virtuel sur lequel vous pouvez exécuter vos
applications Android.
Strace: est une commande Linux qui
permet d’obtenir le flux des appels
système effectués par un processus.
6/6/2015
Le détail de notre approche
19. 19
Fenêtre glissante :
Fenêtre glissante 1 :
Open Open Read Gettime Open
Fenêtre glissante 2 :
Open Open Read Gettime Open
Fenêtre glissante 3 :
Open Open Read Gettime Open
6/6/2015
Le détail de notre approche
20. 20
pour appliquer l’algorithme de raffinage nous avons construit
deux matrices 𝑀 malware et 𝑁 normal comme suit :
M_Malware
𝑴 𝒎𝒂𝒍𝒘𝒂𝒓𝒆𝒊 =
𝒇 𝟏𝟏 𝒇 𝟐𝟏 … … … 𝒇 𝒏𝟏
𝒇 𝟏𝟐 𝒇 𝟐𝟐 … … … 𝒇 𝒏𝒊
𝒇 𝟏𝒎 𝒇 𝟐𝒎 … … … 𝒇 𝒏𝒎
𝒎 𝟏
𝒎 𝟐
𝒎 𝒏
N_Normal
𝑵 𝒏𝒐𝒓𝒎𝒂𝒍 𝒊 =
𝒇 𝟏𝟏 𝒇 𝟐𝟏 … … … 𝒇 𝒏𝟏
𝒇 𝟏𝟐 𝒇 𝟐𝟐 … … … 𝒇 𝒏𝟐
𝒇 𝟏𝒎 𝒇 𝟐𝒎 … … … 𝒇 𝒏𝒎
𝒏 𝟏
𝒏 𝟐
𝒏 𝒏
6/6/2015
Le Détaille de Notre
21. 21
Début
Initialiser itération
Entrer matrice Mal et
Normal
Raffiner entre deux matrices
𝑓∉ N 𝑓 ∈ 𝑁
Liste noir Supprime
Raffinage entrée : Liste des fenètres glissantes
sorties : Liste noire = []
Pour i :1 à 50 (boucle d'Iteration )
Pour M:1 100 (application Mal )
Pour tout 𝑓𝑖 → 𝑀𝑖(𝑓1……… 𝑓𝑛 )(i +2 la taille
de fenêtre glissante)
Si 𝑓𝑖 ∈ N (application Normal ) alors
Suppremer 𝑓𝑖
Else
Liste noire ←𝑓𝑖
detection (Liste noire)
Si résultat de détection suffisante alors
Quiter l’algorithme
6/6/2015
22. 22
Normalisation
𝑓 ∈ 𝑁
Comparer les fenêtres f de
liste_noir avec celles de
vecteur soumis
𝑓∉ N
Liste Normalisée {1,0}
Début entrée : 𝐿𝑖𝑠𝑡𝑒 𝑑𝑒𝑠 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑑𝑒 𝑀 𝑀𝑎𝑙𝑤𝑎𝑟𝑒 et 𝑁 𝑁𝑜𝑟𝑚𝑎𝑙
𝐿𝑖𝑠𝑡𝑒 𝑛𝑜𝑖𝑟𝑒 = []
𝐿𝑖𝑠𝑡𝑒 𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑠é𝑒 = []
Pour 𝐿𝑖𝑠𝑡𝑒 𝑛𝑜𝑖𝑟𝑒 :1 𝑛 (𝑎𝑝𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛 𝑀𝑎𝑙 )
Pour tout 𝑓𝑖 → 𝑉𝑖(𝑓1……… 𝑓𝑛 )
If 𝑓𝑖 ∈ 𝑉 𝑎𝑝𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛 𝑁𝑜𝑟𝑚𝑎𝑙
𝑓𝑖=1 ;
Else
𝑓𝑖=0 ;
𝐿𝑖𝑠𝑡𝑒 𝑀𝑎𝑙𝑒 ← 𝑓𝑖
𝑀𝑎𝑐ℎ𝑖𝑛𝑒 𝐿𝑒𝑎𝑟𝑛𝑖𝑛𝑔 (𝐿𝑖𝑠𝑡𝑒 𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑠é𝑒)
6/6/2015
23. 23
Machine Learning
Dans cette dernière étape basée sur l'apprentissage qui utilisent
des techniques de Machine Learning pour détecter des déviations
comportementales.
Les vecteurs construits lors de la phase de normalisation seront
sauvegardés dans une matrice. Cette matrice est soumise à le
classificateur SVM pour construire la base d’apprentissage.
6/6/2015
24. 24
La fonction d’apprentissage prend en entrée deux paramètres la
première c’est la matrice des vecteurs construits lors de la phase de
normalisation et la deuxième c’est le vecteur de types d’applications
soumises.
Et Fonction Prédiction prend en entrée un seul paramètre est la
matrice des vecteurs.
Après l'étape de l'apprentissage vient l'étape de la détection qui
utilise la base d’apprentissage de la première phase pour prédire les
types d’applications soumise pour la détection.
6/6/2015
25. 25
Jeu de donnée : échantillons
1st Normale 2nd Malware
6/6/2015
Afin d'évaluer notre algorithme nous proposons
de l'appliquer sur 10 échantillons de application
malware et 03 échantillons de application
normale.
Expérimentation de notre modèle
26. 26
les malware :
sha256
nom de package Catégorie
bedf51a5732d94c173bcd8ed918333954f5a7830
7c2a2f064b97b43278330f54 com.ps.pintu.view DroidKungFu
e7d07c08a826520ef71bd4a5bfb8c6bc7b907c4f
94f18631208cf6037bd88f2d com.dy.game.lianliankan DroidKungFu
ded693418a1c5368e377ac654e06a5bac04faff52
ee0ef42a31eebcbf1cca2e0 com.mogo.smspopup DroidKungFu
Figure —Classification échantillons de malware.
6/6/2015
Expérimentation de notre modèle
27. 27
les apps normal:
nom de package Catégorie
email com.android.mail
calendrie com.android.calander
Figure —Classification échantillons de Normal .
6/6/2015
Expérimentation de notre modèle
28. 28
6/6/2015
Itération
taille de fenêtres
glissante
Nombre de fenêtre
glissante
Taux de détection
1 3 4707 100%
2 4 9475 100%
3 5 14923 100%
4 6 19833 100%
5 7 23753 100%
6 8 26400 90%
7 9 27938 100%
Figure—Résultats de la détection sur 10 échantillons de malware. Taux de
Vrai Positif : 100%
Le troisième tableau présente les résultats obtenus avec les échantillons de
malware. La première colonne taille de fenêtres glissante. La deuxième nombre
de fenêtre glissante et troisième Taux de détection.
Expérimentation de notre modèle
29. Conclusion
Dans ce travail, nous avons proposé une nouvelle
méthode de détection basée sur les analyses
comportementaux pour la détection des fuites des
données personnelles en Android.
Nous avons appliqué des techniques d'apprentissage
automatique et faire la distinction entre les applications
normale et celles malware. Ce méthode donne de bons
résultats que le modèle de base détection 29
6/6/2015
Monsieur le président de jury,membres de jury,honorables assistances bon jour.
Permettez nous de vous présenter mémoir de fin d'études intitulée
tous d'aborde, nous presentons
Le figure suivant illustre les principaux composants du système d'exploitation Android.
Applications, Le Framework (Application Framework), Les bibliothèques (Libraries)
Moteur d'exécution Android (Android Runtime) :Noyau Linux (Linux Kernel)
nous rappelons le plus important de Composants :
Activité (Activity) , Service , Fournisseur de contenu (Content Provider) , Récepteur d'émission (Broadcast Receiver)
pour c'est approche nous utilisons analyse dynamique ou L’approche Comportemental
Nous allons présenter sur ces approches deux parties en détail, la partie d’apprentissage qui est constitué de 2 phases :
Extraction de séquence d’appels, algorithmes raffinage et algorithmes normalisation, nous
Machine Learning SVM qui crée une nouvelle base pour détection les applications.
La deuxième partie est la partie détection, qui utilise la base d’apprentissage de la première partie pour prédire les types d’applications soumise pour la détection.
Et nous prendrerons echantillon en méme famil droid kung fu