François Normand, LEXSI : Ibanking, Quand les malware contournent l’OTP de Facebook
mars 2015 par François Normand, expert en cybersécurité chez LEXSI
Ibanking est un malware bancaire pour la plateforme Android. Il dispose de fonctionnalités classiques comme l’interception / le transfert d’appel et de SMS, le vol d’informations sur l’équipement, et bien d’autres.
Ce malware a impacté de nombreuses banques à l’étranger en 2014. La version analysée pour cette publication est dédiée à la récupération de mots de passe à usage unique (OTP) afin de contourner la double authentification de Facebook [1].
Le condensat SHA256 de la souche étudiée est : 526ad1aada48fb5ed434443503d05e1ff86dbbbedd9d2bab5d568e502c11cb80.
Ce malware se fait passer pour un générateur d’OTP pour Facebook comme le montre les impressions d’écran ci-dessous.
Anti-émulateur
Lors du lancement de l’application dans un émulateur Android, l’application se termine sans lancement d’activité ni de message d’erreur.
Des constantes propres à l’émulateur Android et au « Bouncer » [2] de Google sont présentes dans le code afin de complexifier l’analyse dynamique.
La signification des constantes sont les suivantes :
– « 00000000000000000 » : l’identifiant de l’équipement par défaut pour l’émulateur
– « 1555521 » : les premiers caractères du numéro de téléphone pour l’émulateur et le Bouncer
– « Android » : l’opérateur téléphonique par défaut pour l’émulateur
– « 89014103211118510720 » : le numéro de série de l’équipement par défaut pour l’émulateur et le Bouncer
Cette technique a été détectée pour la première fois dans le malware Android OBAD.
Déchiffrement des configurations
Le malware analysé dispose de deux configurations, l’une globale pour le malware et l’autre pour les cibles.
Déchiffrement de la configuration du malware
Pour la configuration du malware, un algorithme de chiffrement développé par Adobe a été utilisé. Celui-ci est à l’origine utilisé pour chiffrer les portions de code des programmes de police Type 1 [3].
L’implémentation de l’algorithme de déchiffrement permet de récupérer les données techniques inhérentes au malware.
Ces résultats mettent en avant :
– une liste de C&C : (robrato.net / guniches.net / utosedi.net / izbura.net / aftyshev.com / opleton.net /echenry.net / eznasne.net / robrato.net / rylnymi.com)
– une partie de l’arborescence du C&C :
– /iBanking/sms/index.php
– /iBanking/sms/saveSMS.php
– /iBanking/sms/sync.php
– /iBanking/getList.php
– /iBanking/sendFile.php
– /iBanking/sms/ping.php
– /iBanking/checkUrl.php
– le numéro de téléphone de l’attaquant : 01179858114235
– un botID : 310
– une chaîne de caractères énigmatique : NYY2XXXXXXX602 (extrait de la chaîne originale)
Énigme de la chaîne de caractères
Les autres composants de la configuration ayant déjà fait l’objet d’une analyse, attardons-nous sur cette fameuse chaîne de caractères.
On retrouve dans la fonction « onReceive » de la classe « SMSReciever » une comparaison entre une variable « v4 » et une référence vers la chaîne en question.
Précédemment, la variable « v4 » a été initialisée avec une chaîne de caractères provenant du corps de message d’un SMS reçu.
Dans le cas où la condition n’est pas prise, le malware enregistre dans sa base de données le numéro de téléphone ayant émis le message :
La dernière fonction « a() » envoie une réponse à l’émetteur lui indiquant que la prise de contrôle du téléphone est effectuée.
Le mystère de la chaîne de caractères est maintenant levé puisque celle-ci est en réalité le message permettant d’activer la prise de contrôle à distance du téléphone.
Déchiffrement de la configuration liée aux sites ciblés
Dans cette partie, l’algorithme utilisé est de l’AES 128. Le vecteur d’initialisation, la clé privée et le mode utilisé sont déclarés au niveau du constructeur de la classe.
Voici le résultat de la configuration après son déchiffrement :
À la lecture de celle-ci, on constate que la communauté tchèque de Facebook est ciblée par cette souche.
Le contenu de cette configuration correspond aux chaines de caractères qui seront utilisées pour construire « l’Activité » de l’application malveillante, dont le résultat graphique est dans l’introduction.
Conclusion
La technique employée par les auteurs de ce malware n’est pas nouvelle. Cependant, une méthode à la base utilisée pour le secteur bancaire est désormais exploitée afin d’accéder à des données personnelles sur le réseau social Facebook et potentiellement d’autres dans les souches à venir.
[1] https://www.facebook.com/notes/facebook-engineering/introducing-login-approvals/10150172618258920
[2] http://googlemobile.blogspot.fr/2012/02/android-and-security.html
[3] https://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF