XcodeGhost - XcodeGhost

XcodeGhost (et la variante XcodeGhost S) sont des versions modifiées de l' environnement de développement Xcode d'Apple qui sont considérées comme des logiciels malveillants . Le logiciel a attiré l'attention pour la première fois en septembre 2015, lorsqu'un certain nombre d'applications originaires de Chine hébergeaient le code malveillant. Selon la BBC, il s'agissait de la "première attaque à grande échelle contre l'App Store d'Apple". Les problèmes ont été identifiés pour la première fois par des chercheurs d' Alibaba , une société de commerce électronique de premier plan en Chine. Plus de 4000 applications sont infectées, selon FireEye, bien plus que les 25 initialement reconnues par Apple, y compris des applications d'auteurs hors de Chine.

La société de sécurité Palo Alto Networks a supposé que, parce que les vitesses du réseau étaient plus lentes en Chine, les développeurs du pays recherchaient des copies locales de l'environnement de développement Apple Xcode et rencontraient des versions modifiées qui avaient été publiées sur des sites Web nationaux. Cela a ouvert la porte à l'insertion du malware dans des applications de haut niveau utilisées sur les appareils iOS.

Même deux mois après les rapports initiaux, la société de sécurité FireEye a signalé que des centaines d'entreprises utilisaient encore des applications infectées et que XcodeGhost restait "un risque de sécurité persistant". L'entreprise a également identifié une nouvelle variante du malware et l'a baptisée XcodeGhost S; parmi les applications infectées se trouvaient la populaire application de messagerie WeChat et une application Netease Music 163 .

Découverte

Le 16 septembre 2015, un développeur iOS chinois a mentionné sur le réseau social Sina Weibo qu'un malware dans Xcode injectait du code tiers dans des applications compilées avec lui.

Les chercheurs d' Alibaba ont ensuite publié des informations détaillées sur le malware et l'ont appelé XcodeGhost.

Le 17 septembre 2015, Palo Alto Networks a publié plusieurs rapports sur le malware.

Opération

Propagation

En raison de la faible vitesse de téléchargement des serveurs Apple, les développeurs iOS chinois téléchargeraient Xcode à partir de sites Web tiers, tels que Baidu Yun (maintenant appelé Baidu WangPan), un service de stockage en nuage hébergé par Baidu, ou obtiendraient des copies auprès de collègues. Les attaquants ont profité de cette situation en distribuant des versions compromises sur ces sites Web d'hébergement de fichiers.

Palo Alto Networks soupçonne que le malware était disponible en mars 2015.

Vecteur d'attaque

Origines

Fuite d'un document d' Edward Snowden . "Strawhorse: Attaquer le kit de développement de logiciel MacOS et iOS ".

L'attaquant a utilisé une attaque de porte dérobée du compilateur . La nouveauté de cette attaque est la modification du compilateur Xcode. Cependant, selon des documents divulgués par Edward Snowden , les chercheurs en sécurité de la CIA de Sandia National Laboratories ont affirmé qu'ils "avaient créé une version modifiée de l'outil de développement logiciel propriétaire d'Apple, Xcode, qui pourrait se faufiler des portes dérobées de surveillance dans toutes les applications ou programmes créés à l'aide de l'outil. "

Fichiers modifiés

Les versions connues de XcodeGhost ajoutent des fichiers supplémentaires à l'application Xcode d'origine:

  • Framework de services de base sur les plates-formes iOS, simulateur iOS et OS X
  • Framework IDEBundleInjection ajouté sur les plates-formes iOS, simulateur iOS et OS X

XcodeGhost a également modifié l' éditeur de liens pour lier les fichiers malveillants dans l'application compilée. Cette étape est signalée sur le journal de compilation mais pas sur l' IDE Xcode .

Les applications iOS et OS X sont vulnérables à XcodeGhost.

Déploiement

XcodeGhost a compromis la couche CoreServices, qui contient des fonctionnalités et des frameworks très utilisés par l'application. Lorsqu'un développeur compile son application avec une version compromise de Xcode, les CoreServices malveillants sont automatiquement intégrés dans l'application à l'insu du développeur.

Ensuite, les fichiers malveillants ajouteront du code supplémentaire dans la classe UIWindow et la classe UIDevice. La classe UIWindow est "un objet qui gère et coordonne les vues qu'une application affiche sur l'écran d'un appareil".

La classe UIDevice fournit une instance de singleton représentant le périphérique actuel. À partir de cette instance, l'attaquant peut obtenir des informations sur l'appareil, telles que le nom attribué, le modèle de l'appareil, le nom et la version du système d'exploitation.

Comportement sur les appareils infectés

Risques de sécurité liés à la télécommande

XcodeGhost peut être contrôlé à distance via des commandes envoyées par un attaquant depuis un serveur de commande et de contrôle via HTTP. Ces données sont cryptées à l'aide de l' algorithme DES en mode ECB . Non seulement ce mode de cryptage est connu pour être faible, mais les clés de cryptage peuvent également être trouvées en utilisant l'ingénierie inverse. Un attaquant pourrait effectuer une attaque de type man in the middle et transmettre un faux trafic HTTP à l'appareil (pour ouvrir une boîte de dialogue ou ouvrir une application spécifique par exemple).

Voler les informations de l'appareil utilisateur

Lorsque l'application infectée est lancée, soit en utilisant un iPhone ou le simulateur à l'intérieur de Xcode, XcodeGhost collectera automatiquement des informations sur l'appareil telles que:

  • Heure actuelle
  • Nom de l'application infectée actuelle
  • L'identifiant du bundle de l'application
  • Nom et type de l'appareil actuel
  • Langue et pays du système actuel
  • UUID de l'appareil actuel
  • Type de réseau

Ensuite, le logiciel malveillant cryptera ces données et les enverra à un serveur de commande et de contrôle . Le serveur diffère d'une version à l'autre de XcodeGhost; Palo Alto Networks a pu trouver trois URL de serveur:

  • http://init.crash-analytics.com
  • http://init.icloud-diagnostics.com
  • http://init.icloud-analysis.com

Le dernier domaine a également été utilisé dans le logiciel malveillant iOS KeyRaider .

Lire et écrire à partir du presse-papiers

XcodeGhost est également capable, à chaque fois qu'une application infectée est lancée, de stocker les données écrites dans le presse-papiers iOS. Le malware est également capable de modifier ces données. Cela peut être particulièrement dangereux si l'utilisateur utilise une application de gestion des mots de passe.

Détourner l'ouverture d'URL spécifiques

XcodeGhost est également capable d'ouvrir des URL spécifiques lorsque l'application infectée est lancée. Étant donné qu'Apple iOS et OS X fonctionnent avec le mécanisme d'URL de communication inter-applications (par exemple 'whatsapp: //', 'Facebook: //', 'iTunes: //'), l'attaquant peut ouvrir toutes les applications installées sur le téléphone compromis ou ordinateur, dans le cas d'une application macOS infectée. Un tel mécanisme pourrait être nuisible avec les applications de gestion des mots de passe ou même sur les sites Web de phishing.

Boîte de dialogue d'alerte

Dans sa version connue actuelle, XcodeGhost ne peut pas afficher de boîtes de dialogue d'alerte sur la machine utilisateur. Cependant, il ne nécessite que des modifications mineures.

En utilisant une classe UIAlertView avec la propriété UIAlertViewStyleLoginAndPasswordInput, l'application infectée peut afficher une fausse boîte de dialogue d'alerte qui ressemble à une vérification des informations d'identification d'utilisateur Apple ID normale et envoyer l'entrée au serveur de commande et de contrôle.

Applications infectées

Parmi toutes les applications chinoises, l'application de messagerie instantanée, les applications bancaires, l'application de l'opérateur mobile, les cartes, les applications de négociation d'actions, les applications SNS et les jeux ont été infectés. Des applications populaires utilisées dans le monde entier ont également été infectées, telles que WeChat , une application de messagerie instantanée populaire, CamScanner , une application permettant de numériser des documents à l'aide de la caméra du smartphone ou de WinZip .

L'équipe Pangu a affirmé avoir compté 3418 applications infectées.

Fox-it, une société de sécurité basée aux Pays-Bas rapporte avoir trouvé des milliers de trafic malveillant en dehors de la Chine.

Suppression

Neutraliser les serveurs de commande et de contrôle et les versions compromises de Xcode

Depuis l'article d' Alibaba et Palo Alto Networks , Amazon a supprimé tous les serveurs utilisés par XcodeGhost. Baidu a également supprimé tous les installateurs Xcode malveillants de son service de stockage dans le cloud.

Supprimer les applications malveillantes de l'App Store

Le 18 septembre 2015, Apple a admis l'existence du malware et a commencé à demander à tous les développeurs avec des applications compromises de compiler leurs applications avec une version propre de Xcode avant de les soumettre à nouveau pour examen.

L'équipe Pangu a publié un outil pour détecter les applications infectées sur un appareil, mais comme d'autres applications antivirus, il ne fonctionnera pas sur un appareil qui n'a pas été jailbreaké . Apple n'autorise pas les applications antivirus dans l'App Store iOS.

Vérification de la version de Xcode

Apple conseille aux développeurs Xcode de vérifier leur version de Xcode et de toujours activer Gatekeeper sur leur machine.

Les références