SecurityInsider
Le blog des experts sécurité Wavestone

XCode Ghost : les développeurs iOS ciblés


Xcode est un IDE (Integrated Development Environment) proposé par Apple aux développeurs afin de créer des applications destinées aux iPhone, iPad, Mac et Apple Watch. C’est aujourd’hui le logiciel phare pour le développement d’applications iOS.



Un développeur chinois s’est récemment rendu compte que ses applications avaient un comportement inattendu (connexions réseaux anormales, popup non désirées, etc.). Après de premières investigations, il s’est aperçu qu’une partie du code de son application n’avait pas été écrite par ses soins. Il a alors poursuivi ses recherches et s’est rendu compte que les anomalies étaient issues de son compilateur : Xcode. Ses conclusions sont sans appel, sa version d’Xcode est backdoorée et génère des applications malveillantes lors de la compilation d’un code sain.
Téléchargement d’applications en Chine
Internet en Chine fait l’objet d’une surveillance importante de la part du gouvernement, ce qui provoque des lenteurs importantes lors de la connexion à des sites étrangers. De fait, un nombre important d’utilisateurs d’Internet en Chine choisit de se connecter à des miroirs chinois pour télécharger ses applications.
Dans le cas d’Xcode, l’application pèse environ 3 Go, la tentation de récupérer l’exécutable depuis un site non officiel est grande afin de s’affranchir des débits limités.

La plupart des applications iOS repose sur une couche appelée CoreServices, celle-ci permet d’interagir avec le système et d’utiliser des fonctions liées au stockage iCloud, à la localisation ou encore au réseau.

XcodeGhost importe sa propre version des CoreServices et y ajoute son code malveillant. De cette manière, lorsque le développeur fait appel à CoreServices au sein de son application, celle-ci utilise une version non saine de la couche d’interaction avec les fonctions essentielles du système.
Par ailleurs, bien qu’Apple effectue une revue des applications qui sont publiées sur l’AppStore, les applications victimes d’XcodeGhost n’ont pas été détectées.

Impacts

Une fois compilée, l’application iOS, va commencer par collecter des informations sur le terminal infecté :
  • Nom et type du terminal ;
  • UUID (Universally Unique IDentifier) ;
  • Type de réseau utilisé ;
  • Etc.
Ces données sont ensuite chiffrées et envoyées au serveur de commande et contrôle (C&C), les serveurs suivants ont notamment été identifiés :
Toutefois, le malware n’est restera pas là puisqu’il est par ailleurs capable de :
  • Voler le contenu du presse-papier ; Cette fonction (copier-coller) est notamment utilisée par les gestionnaires de mots de passe.
  • Afficher des popup et récupérer le contenu saisi par l’utilisateur à des fins de phishing.
Ce sont ces opérations qui représentent le risque le plus important pour l’utilisateur.

Applications touchées par XcodeGhost

Le nombre d’applications victimes d’XcodeGhost serait d’une quarantaine. Toutefois, un nombre très important d’applications sont publiées sur l’AppStore sans jamais être téléchargées et celles-ci ne sont pas prises en compte dans les statistiques. Le nombre réel d’applications infectées et présentes sur l’AppStore pourrait donc être plus important (sans cependant que cela n’impacte le nombre d’utilisateurs concernés).

Parmi les applications visées par XcodeGhost, on retrouve notamment :
  • WeChat : Application d’envoi de messages instantanés (concurrente de Facebook Messenger et Whatsapp) utilisée par environ 500 millions de personnes (principalement en Chine).
  • Didi Chuxing : Équivalent chinois d’Uber.
  • Railway 12306 : Application officiel permettant l’achat de tickets de train, en Chine.

Les applications ont depuis été mises à jour par les développeurs, les versions vulnérables ont quant à elles été supprimées par Apple.



Doit-on s’attendre à d’autres attaques sur les compilateurs ?

La probabilité de revoir ce type d’attaque n’est pas négligeable. D’une part, parce que dans les pays en voie de développement, l’utilisation de logiciels pirates est particulièrement répandue (environ de 60% des logiciels en Asie, Europe de l’Est et Amérique latine).

D’autre part, en mars 2015, The Intercept révélait que la CIA travaillait à la création d’une version modifiée d’Xcode afin de rompre la sécurité des terminaux iOS. Cette version devait notamment permettre de voler des mots de passe…

Il ne serait pas étonnant de voir apparaitre des attaques similaires dans les mois et années à venir, aussi bien sur iOS que sur les autres systèmes d’exploitation mobiles et fixes.

Qui plus est, ce type d’attaque bien que plus médiatique aujourd’hui n’a en soit rien de nouveau. Ken Thompson présentait déjà en 1984 une version d’un compilateur C permettant de disposer d’une backdoor suite à la compilation d’un programme.

Pour s’en prémunir, les entreprises devront s’assurer que leurs développeurs utilisent en permanence une version légale des logiciels qui composent leur environnement de travail. Les utilisateurs sont quant à eux contraints à faire preuve de vigilance et respecter les bonnes pratiques d’usage. Ils devront notamment rester attentifs lorsqu’une application présente un comportement inattendu (par exemple, en demandant de renseigner le compte iCloud de l’utilisateur).


Sources :

https://developer.apple.com/xcode/ide/
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html
https://theseus.fi/bitstream/handle/10024/87274/Khadka_Ishwor.pdf?sequence=1
https://theintercept.com/2015/03/10/ispy-cia-campaign-steal-apples-secrets/
http://www.win.tue.nl/~aeb/linux/hh/thompson/trust.html
http://researchcenter.paloaltonetworks.com/2015/09/novel-malware-xcodeghost-modifies-xcode-infects-apple-ios-apps-and-hits-app-store/
http://www.apple.com/cn/xcodeghost/#english

Alexis Bonsergent

Aucun commentaire:

Enregistrer un commentaire