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 LMDOption : Fondamentale d’Informatique
Une approche comportementale pour la détection des fuites des données Personnelles en Android
Proposé et dirigé par :
Mr. Gherbi KaddourRéalisé par :
BOUSBIA SALAH Salima
CHAIB Yousra
2014\ 201504/15/2023
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
04/15/2023
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. 304/15/2023
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
404/15/2023
Architecture du système Android
504/15/2023
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.
604/15/2023
Malware Android
Nous appelons malware un programme ou un code dont
le but est de nuire à un système donné.
704/15/2023
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 Android04/15/2023
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
04/15/2023
Analyse d’applications Android
10
Analyse statique
Analyse dynamique
Analyse hybride
La détection de malwares se concentre sur les exécutables et les
analyses afin de découvrir du code malicieux. Il existe trois techniques
pour aborder ce problème :
04/15/2023
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
04/15/2023
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
04/15/2023
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
04/15/2023
Machine Learning
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éparable04/15/2023
Machine Learning
15
Notre approche
ACDM et une approche de détection de malware android qui surveille
simultanément Android au niveau de l'utilisateur et au niveau du noyau elle détecter les
logiciels malveillants en utilisant des techniques d'apprentissage automatique et
distinction entre les applications normale et celles malware. Le monitorage de
comportement de l’application par notre approche s’effectue en deux phases. La
première phase, dite d’apprentissage, consiste à construire un vecteur d’appels système
par l’observation de comportement du programme au cours de son exécution. La
deuxième phase est 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. 04/15/2023
16
SVM
Fonction Prédiction
Apps Android
Em
ula
teu
r
Apps Android
Em
ulateu
r
Classification
Type d’application
Raffin
age
Norm
aliser
Raffin
age
Norm
aliser
Strace Vecteur
Strace Vecteur
Figure— Schéma global.04/15/2023
Notre approche
17
Le détail de notre approche
• apps mal • apps normal
Programme scanné
Figure— Détaille Partie apprentissage .
04/15/2023
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.
04/15/2023
Le détail de notre approche
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
04/15/2023
Le détail de notre approche
20
pour appliquer l’algorithme de raffinage nous avons construit
deux matrices malware et normal comme suit :
M_Malware
N_Normal
04/15/2023
Le Détaille de Notre
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 (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
04/15/2023
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
If
=1 ;
Else
=0 ;
04/15/2023
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.
04/15/2023
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.
04/15/2023
25
Jeu de donnée :échantillons
1st Normale 2nd Malware
04/15/2023
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
les malware : sha256
nom de package Catégorie
bedf51a5732d94c173bcd8ed918333954f5a78307c2a2f064b97b43278330f54 com.ps.pintu.view DroidKungFu
e7d07c08a826520ef71bd4a5bfb8c6bc7b907c4f94f18631208cf6037bd88f2d com.dy.game.lianliankan DroidKungFu
ded693418a1c5368e377ac654e06a5bac04faff52ee0ef42a31eebcbf1cca2e0 com.mogo.smspopup DroidKungFu
Figure —Classification échantillons de malware.04/15/2023
Expérimentation de notre modèle
27
les apps normal:
nom de package Catégorie
email com.android.mail
calendrie com.android.calander
Figure —Classification échantillons de Normal .
04/15/2023
Expérimentation de notre modèle
28
04/15/2023
Itérationtaille de fenêtres
glissanteNombre de fenêtre
glissanteTaux 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
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
04/15/2023
04/15/2023
30
MERCI