Etude menée par Artyom Skrobov, Slava Makkaveev
Des chercheurs de Check Point ont identifié une vulnérabilité à des attaques avancées de phishing sur certains téléphones Android modernes, notamment des modèles de Samsung, Huawei, LG et Sony. Lors de ces attaques, un agent distant peut amener les utilisateurs à accepter de nouveaux paramètres sur leur téléphone qui, par exemple, acheminent la totalité de leur trafic Internet via un proxy contrôlé par le pirate.
Ce vecteur d’attaque repose sur un processus appelé provisionnement OTA (Over-the-Air), utilisé habituellement par les opérateurs de téléphonie mobile pour déployer des paramètres spécifiques à leur réseau sur des téléphones rejoignant leur réseau pour la première fois. Cependant, comme nous l’avons montré, n’importe qui peut envoyer des messages de provisionnement OTA.
Le standard du secteur pour le provisionnement OTA, OMA CP (Open Mobile Alliance Client Provisioning), possède des méthodes d’authentification assez limitées : un destinataire ne peut vérifier si les paramètres suggérés proviennent de son opérateur de télécom ou d’un imposteur. Nous avons constaté que les téléphones fabriqués par Samsung, Huawei, LG et Sony (soit plus de 50 % de tous les téléphones Android, selon les données de parts de marché de 2018 : http://gs.statcounter.com/
Nous avons communiqué nos conclusions aux entreprises concernées en mars. Samsung a inclus un correctif pour cette vulnérabilité dans sa version de maintenance de sécurité du mois de mai (SVE-2019-14073). LG a publié son correctif en juillet (LVE-SMP-190006). Huawei compte inclure des correctifs de l’interface utilisateur pour OMA CP dans la prochaine génération des smartphones de la série Mate ou de la série P. Sony a refusé de reconnaître la vulnérabilité, affirmant que ses appareils étaient conformes à la spécification OMA CP. L’OMA suit ce problème sous la référence OPEN-7587.
Déroulement d’une attaque
Pour envoyer des messages OMA CP, un pirate a besoin d’un modem GSM (un dongle USB à 10 euros ou un téléphone fonctionnant en mode modem), utilisé pour envoyer des SMS binaires, ainsi que d’un simple script ou un logiciel standard pour composer le message OMA CP.
Les messages OMA CP de phishing peuvent être ciblés avec précision, par exemple précédés d’un message texte personnalisé conçu spécifiquement pour tromper un destinataire en particulier, ou être envoyés en masse, en supposant qu’au moins certains des destinataires soient suffisamment crédules pour accepter le message sans remettre en cause son authenticité.
Les messages OMA CP permettent de modifier les paramètres suivants :
· Serveur de messagerie MMS
· Adresse de proxy
· Page d’accueil du navigateur et favoris
· Serveur de messagerie
· Serveur d’annuaire pour la synchronisation des contacts et du calendrier
Et plus encore.
Les scénarios suivants supposent qu’un pirate tente d’inciter les victimes à acheminer la totalité de leur trafic via le proxy contrôlé par le pirate.
Non authentifié (Samsung)
Pour cibler les victimes utilisant des téléphones Samsung, le pirate peut leur envoyer des messages OMA CP non authentifiés, en spécifiant un proxy qu’il contrôle. Nous soulignons que le pirate n’a besoin de surmonter aucun mécanisme de vérification d’authenticité : il suffit que l’utilisateur accepte le message OMA CP.
Figure 1 : Un message OMA CP non authentifié tel qu’il apparaît à un utilisateur de téléphone Samsung.
Authentifié avec IMSI
Si le pirate parvient à obtenir les numéros IMSI (identité internationale d’abonné mobile) des victimes potentielles utilisant des téléphones Huawei, LG ou Sony, il peut mener une attaque de phishing aussi efficace que celle dirigée contre les utilisateurs de téléphones Samsung.
L’IMSI est un identifiant de 64 bits pour chaque appareil d’un réseau mobile, utilisé depuis le standard GSM et jusqu’à la 3G. Ce numéro est utilisé pour le routage et équivaut à peu près à une adresse IP sur un réseau informatique. L’IMSI d’une personne est pseudo-confidentiel, mais :
· Il est nécessairement disponible à tous les opérateurs de réseau, car le routage des données ou des appels vers un abonné mobile nécessite la résolution de son numéro de téléphone en IMSI.
· En conséquence, les recherches IMSI directes et inverses (numéro de mobile vers IMSI et vice versa) sont disponibles à un faible coût auprès de fournisseurs commerciaux.
· Une application Android non autorisée peut lire le numéro IMSI de l’utilisateur via l’API standard
((TelephonyManager)
– tant que l’application possède la permission android.permission.READ_PHONE_
· Quiconque peut jeter un coup d’œil sur une carte SIM physique en verra l’ICCID gravé ou imprimé dessus, et l’ICCID correspond souvent à l’IMSI !
Les messages OMA CP ont un en-tête de sécurité facultatif permettant de valider l’authenticité du message. Lorsqu’un message OMA CP est authentifié avec le numéro IMSI du destinataire, les téléphones Huawei, LG et Sony permettent l’installation de paramètres malveillants. Notez que ces téléphones n’affichent aucun détail sur le message OMA CP quand il suggère à l’utilisateur de l’installer. En particulier, l’expéditeur du message n’est identifié d’aucune manière.
Figure 2 : Un message OMA CP authentifié par NETWPIN tel qu’il apparaît à un utilisateur de téléphone Sony.
Authentifié par code PIN
Pour les victimes potentielles dont l’IMSI ne peut être obtenue, le pirate peut envoyer deux messages à chaque victime. Le premier est un message texte censé provenir de l’opérateur réseau de la victime, lui demandant d’accepter un message OMA CP protégé par code PIN et spécifiant le code confidentiel comme étant un nombre arbitraire à quatre chiffres. Le pirate lui envoie ensuite un message OMA CP authentifié avec le même code PIN. Un tel message OMA CP peut être installé indépendamment de l’IMSI, à condition que la victime l’accepte et saisisse le code PIN correct.
Figure 3 : Un message OMA CP authentifié par code USERPIN tel qu’il apparaît à un utilisateur de téléphone Huawei.
Contexte technique
Le provisionnement est le processus par lequel les appareils reçoivent les paramètres dont ils ont besoin pour fonctionner dans leur environnement. Le principal cas d’utilisation initial du provisionnement OTA consiste à déployer des paramètres spécifiques à l’opérateur, tels que l’adresse du centre de service MMS de l’opérateur. Les entreprises utilisent également cette fonctionnalité pour déployer des paramètres tels que les adresses de serveur de messagerie sur les appareils de leurs collaborateurs. OMA CP, l’une des deux normes appliquées par OMA pour le provisionnement des paramètres par voie hertzienne, date de 2001 et sa spécification la plus récente date de 2009.
Nos recherches montrent que les implications des messages OMA CP sur la sécurité demeurent pertinentes même une décennie plus tard. La distribution de base d’Android ne gère pas les messages OMA CP, contrairement aux implémentations de nombreux autres fournisseurs, car OMA CP est la norme du secteur pour le provisionnement OTA. Sa spécification permet (mais ne nécessite pas !) L’authentification des messages OMA CP par code USERPIN, NETWPIN ou d’autres méthodes moins utilisées.
La transmission de tout SMS, qu’il s’agisse d’un message texte, d’un MMS, d’une notification de messagerie vocale ou de tout autre message, sous forme d’unités de données de protocole (PDU) spécifiées par le protocole SM-TP (protocole de transfert de messages courts), également appelé GSM 03.40. Les PDU GSM intégrant le contenu OMA CP comprennent :
· Un en-tête SM-TP en tant que couche porteuse, spécifiant le numéro de téléphone du destinataire et le schéma de codage des données.
· Un en-tête de données utilisateur (UDH) en tant que couche de transport, comprenant :
o Un en-tête WDP (protocole de datagramme), spécifiant le port de destination 2948 (wap-push) et le port source 9200 (wap-wsp).
o Un en-tête de message concaténé facultatif : les données utilisateur de chaque PDU sont limitées à 140 octets et les messages plus longs doivent être fragmentés.
· Un en-tête WSP (protocole de cession) en tant que couche de session, contenant une authentification (le cas échéant).
· WAP XML binaire (WBXML) en tant que couche applicative, intégrant le contenu.
À titre de démonstration, notre preuve de concept initiale (non authentifiée) pour les téléphones Samsung contenait le document XML suivant comme contenu, avec les chaînes spécifiant l’adresse de proxy et le numéro de port indiquées en surbrillance :
Figure 4 : Contenu XML du message OMA CP.
Le message OMA CP complet intégrant ce contenu est divisé en deux messages SMS physiques, représentés dans le diagramme suivant par deux chaînes d’octets :
Figure 5 : Représentation physique d’un message OMA CP.
Dans la chaîne WBXML, l’adresse de proxy et le numéro de port (mis en surbrillance avec les mêmes couleurs que dans le source XML) sont inclus en tant que chaînes ASCII à terminaison null, alors que les chaînes définies dans le schéma XML, telles que les noms d’éléments et les valeurs des attributs type et nom, sont représentés dans WBXML en tant que valeurs fixes à un octet.
Le contenu WBXML suit l’en-tête WSP qui comprend le code d’authentification du message, calculé à l’aide de l’IMSI du destinataire, sous forme de chaîne hexadécimale ASCII.
Conclusion
Nous avons décrit le déroulement d’une attaque avancée de phishing contre des téléphones Android modernes. Cette attaque permet à toute personne disposant d’un modem USB bon marché d’amener des utilisateurs à installer des paramètres malveillants sur leur téléphone. Pour cibler certains des téléphones vulnérables, le pirate doit connaître les numéros IMSI des victimes, qui peuvent être obtenus via une application Android disposant de l’autorisation READ_PHONE_STATE.
Nous avons vérifié notre preuve de concept sur les téléphones Huawei P10, LG G6, Sony Xperia XZ Premium et plusieurs téléphones Samsung Galaxy, y compris le S9.
Check Point SandBlast Mobile détecte les attaques de type « Man-in-the-Middle » afin de protéger vos appareils contre de tels messages OMA CP malveillants.