Des logiciels malveillants ne cessent d’apparaître dans la boutique officielle de Google. Pour les cybercriminels, introduire leurs applications malveillantes sur le marché des applications authentiques représente une énorme victoire.

Alors que les analystes élaborent de nouvelles méthodologies d'analyse des logiciels malveillants et que les utilisateurs commencent à comprendre leur fonctionnement, les cybercriminels cherchent de nouvelles façons de se camoufler à l’intérieur des téléphones et des appareils compromis.

Les astuces complexes utilisées pour accroître l'efficacité de ces attaques peuvent être regroupées en deux catégories distinctes : premièrement, les stratégies d'ingénierie sociale  qui cherchent à semer la confusion chez les utilisateurs; et deuxièmement les mécanismes techniques sophistiqués qui tentent d'entraver la détection et l'analyse des logiciels malveillants.

Cet article résume certains des comportements couramment observés de code malveillant sous Android au cours des dernières années.

Tromperies basées sur l'ingénierie sociale

Techniques utilisées par les cybercriminels

Utiliser des comptes frauduleux dans la boutique Google Play, afin de distribuer des logiciels malveillants

Des logiciels malveillants ne cessent d’apparaître dans la boutique officielle de Google. Pour les cybercriminels, l’introduction de leurs applications malveillantes sur le marché des applications authentiques représente une énorme victoire, puisque cela leur permet d’atteindre beaucoup plus de victimes potentielles, en plus de leur offrir une garantie presque intégrale d’augmenter le nombre d'infections.

De plus, les faux comptes de développeurs utilisés pour diffuser des applications non sécurisées ou malveillantes tentent de ressembler le plus possible à des comptes réels, afin de tromper des utilisateurs qui finissent par s'y perdre. Dans un exemple récent, les chercheurs ont découvert une fausse application de mise à jour pour WhatsApp qui utilisait une astuce via un caractère Unicode, pour donner l'impression d'être distribué par le compte officiel.

Profiter des dates de commémorations et celles des sorties d’applications

Une pratique courante dans le monde de la cybercriminalité consiste à faire en sorte que les logiciels malveillants ressemblent à des versions d'applications - des jeux pour la plupart - qui ont acquis une popularité soudaine, dont la sortie est prévue ou qui ne sont pas disponibles dans les magasins officiels de certains pays. C'est ce qui s'est produit avec Pokémon GO, Prisma et Dubsmash, ce qui a permis aux cybercriminels de cause des milliers d'infections à travers le globe.

Fenêtres de tapjacking et superposées

Le tapjacking est une technique qui consiste à obtenir des captures de l'écran d'un utilisateur en affichant deux applications superposées. Les victimes croient donc qu'elles tapotent sur l'application qu'elles voient, mais elles tapotent en fait sur l'application sous-jacente, qui demeure cachée.

Une autre stratégie similaire, largement utilisée par les espiongiciels pour le vol de certificats sur Android, est la superposition de fenêtres. Dans ce cas, le logiciel malveillant suit en continu l'application que l'utilisateur utilise, et lorsque celle-ci coïncide avec une certaine application objective, il affiche sa propre boîte de dialogue, qui ressemble à l'application légitime, pour demander des informations d'identification à l'utilisateur.

Se camoufler au sein des applications système

Le moyen le plus facile pour un code malveillant de se cacher sur un appareil, de loin, est de se faire passer pour une application système et de passer aussi inaperçu que possible. Les mauvaises pratiques telles que la suppression de l'icône de l'application une fois l'installation terminée ou l'utilisation de noms, paquets et icônes d'applications système et autres applications populaires pour compromettre un appareil sont des stratégies qui émergent dans le code. On se rappellera par exemple du cheval de Troie bancaire qui s'est fait passer pour Adobe Flash Player pour voler des informations d'identification.

Simuler le système et les applications de sécurité pour demander les droits d'administrateur

Puisqu’Android est structuré pour limiter les permissions des applications, beaucoup de code malveillant a besoin d’obtenir les droits d'administrateur pour implémenter correctement ses fonctionnalités. Et le fait d'accorder ces autorisations rend par la suite plus difficile la désinstallation du logiciel malveillant.

Le fait de se camoufler en tant qu'outil de sécurité ou de mise à jour du système offre aux cybercriminels certains avantages. En particulier, ceci leur permet de se protéger derrière un développeur de confiance. Par conséquent, les utilisateurs n'hésitent pas à autoriser l'application à accéder aux fonctions administratives.

Utiliser des certificats de sécurité simulant des données réelles

Le certificat de sécurité utilisé pour signer un APK peut également être utilisé pour déterminer si une application a été modifiée. Alors que la plupart des cybercriminels utilisent des chaînes de texte génériques lors de l'émission d'un certificat, beaucoup se donnent la peine de feindre des données qui correspondent aux données utilisées par le développeur, allant un peu plus loin dans leurs efforts pour confondre les utilisateurs qui effectuent ces vérifications.

Techniques visant à compliquer l'analyse

Techniques utilisées par les cybercriminels

Fonctionnalités multiples dans le même code

Une tendance qui a gagné du terrain ces dernières années dans le monde mobile est de combiner ce qui constituait auparavant différents types de logiciels malveillants en un exécutable unique. LokiBot en est un exemple. C’est un cheval de Troie bancaire qui essaie de passer inaperçu le plus longtemps possible afin de voler des informations d'un appareil ; cependant, si l'utilisateur tente de supprimer les permissions de l'administrateur pour le désinstaller, il active sa fonction rançongiciel, chiffrant ainsi les fichiers de l'appareil.

Applications cachées

L'utilisation d’injecteurs (droppers) et de téléchargeurs, soit l'intégration de code malveillant dans un autre APK ou le téléchargement à partir d'Internet, est une stratégie qui n'est pas limitée aux logiciels malveillants pour les ordinateurs portables et les ordinateurs. Elle est aussi largement utilisée par les auteurs de codes malveillants pour téléphones et autres appareils mobiles.

Puisque Google Bouncer (maintenant connu comme Google Play Protect) compliquait la capacité des cybercriminels à télécharger des logiciels malveillants dans la boutique officielle, les attaquants ont choisi d'inclure ce type de comportement pour essayer de contourner les contrôles... et ça a fonctionné! Du moins, pour un moment.

Depuis, ces deux formes de codage de logiciels malveillants ont été ajoutées à la liste des techniques malveillantes les plus utilisées.

Langages de programmation multiples et code volatil

De nouveaux cadres de développement multiplateformes et de nouveaux langages de programmation apparaissent sans cesse. Quelle meilleure façon de tromper un analyste en logiciels malveillants que de combiner différents langages et environnements de développement, comme la conception d'applications avec Xamarin ou l'utilisation du code Lua pour exécuter des commandes malveillantes. Cette stratégie modifie l'architecture finale de l'exécutable et ajoute des niveaux de complexité.

Certains attaquants vont encore plus loin, en utilisant le chargement dynamique de scripts ou des portions de code qui sont téléchargées à partir de serveurs distants et supprimées après utilisation. Ainsi, une fois que le serveur a été supprimé par le cybercriminel, il est impossible de connaitre les actions exactes que le code a effectuées sur l'appareil.

Des échantillons présentant ces caractéristiques ont commencé à apparaître vers la fin de l'année 2014. C’est à cette époque que des chercheurs ont publié cette analyse particulièrement complexe de logiciels malveillants.

Synergie entre logiciels malveillants

Une alternative pour compliquer l'analyse d'un échantillon est de diviser la fonctionnalité malveillante en un ensemble d'applications capables d'interagir les unes avec les autres. Ce faisant, chaque application dispose d'un sous-ensemble de permissions et de fonctionnalités malveillantes, qui interagissent ensuite les unes avec les autres pour atteindre leurs buts. De plus, les analystes cherchant à comprendre la fonction véritable du logiciel malveillant doivent avoir accès à toutes les applications individuelles, comme s'il s'agissait de pièces d'un casse-tête.

Bien que ce ne soit pas une stratégie couramment utilisée, des échantillons montrant ce type de comportement ont été observés, comme une publication sur Virus Bulletin l'a récemment démontré.

Canaux cachés et nouveaux mécanismes de communication

Pour communiquer avec un serveur C&C ou d'autres applications malveillantes, les logiciels malveillants doivent transférer des informations. Cela peut se faire via des canaux ouverts traditionnels ou des canaux cachés (protocoles de communication personnalisés, intensité de la luminosité, verrouillage de réveil, utilisation du CPU, espace libre dans la mémoire, niveaux sonores ou de vibration et accéléromètres, notamment).

De plus, ces derniers mois, nous avons vu des cybercriminels utiliser les réseaux sociaux pour transférer des messages C&C. C’est par exemple le cas de Twitoor, un botnet qui utilise les comptes Twitter pour envoyer des commandes.

Autres techniques antianalyses

Le packaging, l'antiémulation, l'antidébogage, le chiffrement et l'obscurcissement constituent certaines des techniques d'évasion très courante dans les logiciels malveillants visant Android. Pour contourner ces types de protections, on peut utiliser le hook de fonctions, ce qui peut être fait par le biais d'applications comme Frida.

Il est également possible d'utiliser des environnements d'analyse qui tentent d'esquiver ces contrôles par défaut, comme MobSF- qui inclut certaines techniques antiémulation, Inspeckage- qui permet par exemple de voir les chaînes de texte avant et après leur chiffrement avec les clés utilisées, ou AppMon.

Pour prévenir les infections, n'oubliez pas de vérifier ces comportements potentiellement malveillants et apprenez comment vérifier si votre téléphone a été compromis.