# XcodeGhost

XcodeGhost et sa déclinaison XCodeGhost S sont des versions modifiées de l'environnement de développement Xcode d'Apple identifiés comme étant des logiciels malveillants.
Le logiciel s'est fait connaître mondialement en septembre 2015 à la suite de la découverte de nombreuses applications d'origine chinoise contenant du code malveillant. Selon la BBC, il s'agit de l'attaque la plus importante jamais enregistrée contre l'App Store. L'infection a été identifiée pour la première fois par des chercheurs de l'entreprise chinoise Alibaba, spécialiste de la vente en ligne. Plus de 4 000 applications mobiles présentes sur la plateforme de téléchargement d'Apple se sont révélées être infectées, selon la firme de sécurité informatique américaine FireEye - démentant le chiffre de 25 applications initialement révélé par Apple - dont certaines provenaient de sources extérieures à la Chine.
D'après l'entreprise de sécurité américaine Palo Alto Networks, la lenteur des connexions à Internet en Chine serait à l'origine de la distribution de la main à la main de copies vérolées de Xcode récupérées sur des sites chinois.
Deux mois après sa découverte, FireEye signalait que des centaines d'entreprises continuaient à utiliser XCodeGhost et que ce dernier constituait toujours un risque majeur pour la sécurité des terminaux. Toujours d'après FireEye, des applications de messagerie instantanée populaires telles que WeChat et l'application musicale de NetEase Music 163 étaient infectées.

## Découverte

Le 16 septembre 2015, un développeur iOS basé en Chine posta une première alerte sur le site de microblogging chinois Sina Weibo concernant un malware présent dans Xcode qui injectait du code arbitraire dans les applications lors de leur compilation. Les chercheurs d'Alibaba ont ensuite publié une information détaillée du malware et le baptisèrent XCodeGhost.
Le lendemain, Palo Alto Networks publia plusieurs rapports concernant le malware.

## Aspects techniques
### Cible

Les pirates à l'origine de XCodeGhost ont utilisé une porte dérobée injectée à la compilation. La grande nouveauté de cette attaque était sa cible, bien qu'une première alerte avait été lancée par Edward Snowden concernant une version du compilateur de Xcode modifiée par des chercheurs en sécurité des Laboratoires Sandia dans le même objectif.

### Fichiers corrompus

La version connue de XCodeGhost contient des fichiers supplémentaires par rapport à la version officielle qui viennent compromettre les bibliothèques de base de nombreux services à la fois sur iOS et OS X. De plus, l'éditeur de liens du compilateur a été modifié afin d'injecter le code malveillant dans les applications sans qu'il en soit fait mention dans l'interface utilisateur de Xcode, bien que ces modifications apparaissent dans les logs de la compilation.

### Comportement des applications infectées
#### Prise de contrôle à distance

XCodeGhost permet la prise en main à distance des terminaux infectés grâce à des lignes de commandes lancées par le serveur d'un botnet via le protocole HTTP. Ces communications sont chiffrées grâce à l'algorithme DES en mode ECB.

#### Vol de données

Au lancement d'une application infectée, le malware collecte des informations concernant le terminal, telles que :
* La date et l'heure locale
* Le nom de l'application infectée
* L'identifiant du paquetage de l'application
* Le nom de l'appareil et son modèle
* La langue utilisée par le système
* Le Universal Unique Identifier (UUID) de l'appareil
* Le type de réseaux sur lequel l'appareil peut se connecter
Le malware envoie ensuite ces informations sous forme cryptée au serveur du botnet. Ce serveur est différent selon les versions de XCodeGhost. Palo Alto Networks a dénombré trois URL différentes :
* http://init.crash-analytics.com
* http://init.icloud-diagnostics.com
* http://init.icloud-analysis.com
Le dernier de ces trois domaines est également lié au malware KeyRaider qui a infecté certains terminaux iOS.

#### Accès au presse-papier

XCodeGhost est également susceptible d'accéder à toutes les données transitant par le presse-papier d'iOS et de les modifier. Les utilisateurs de gestionnaires de mots de passe sont alors particulièrement vulnérables.

#### Ouverture arbitraire de pages web

XCodeGhost permet l'ouverture de pages Internet au lancement d'une application infectée. Le malware tire avantage des mécanismes de communication d'URL inter-applicative d'iOS et OS X (comme dans les applications WhatsApp, Facebook, iTunes...) et permet à l'attaquant d'ouvrir n'importe quelle application installée sur l'appareil infecté, mettant une nouvelle fois à mal les gestionnaires de mots de passe.

#### Messages d'alerte

La dernière version connue de XCodeGhost est capable de déclencher l'ouverture de messages d'alerte qui peuvent prendre la forme d'une demande légitime de saisie d'identifiants Apple. Ces derniers peuvent alors envoyés sur le serveur du botnet de l'attaquant.

## Applications infectées

Sur le marché chinois, les types d'applications concernées par l'infection sont majoritairement des applications bancaires, des messageries instantanées, des réseaux sociaux, des applications de suivi logistique, de cartographie, de trading financier, ainsi que des jeux.
Des applications utilisées mondialement ont également été touchées, comme WeChat, CamScanner ou encore WinZip.
Selon la communauté de jailbreaker iOS chinois Pangu Team, 3 418 applications se sont révélées être infectées par le malware.

## Suppression du logiciel malveillant
### Neutralisation des serveurs et des distributions vérolées

À la suite des premières publications concernant XCodeGhost par Alibaba et Palo Alto Networks, Amazon a déconnecté tous les serveurs impliqués.
En Chine, Baidu a procédé à la suppression des versions infectées de Xcode de son service de stockage en ligne.

### Suppression des applications infectées dans l'App Store

Deux jours seulement après la découverte du malware, Apple demanda aux développeurs des applications infectées de les recompiler avec une version officielle de Xcode avant de les soumettre à nouveau pour vérification.
Pangu Team a par la suite mis à disposition du grand public un outil de détection des applications infectées. Toutefois, à l'instar d'autres applications antivirus, la solution ne fonctionne que sur des terminaux ayant préalablement été débridés.

### Vérification de la version de Xcode

Apple conseille à ses développeurs tiers de vérifier leur version de Xcode et de toujours activer GateKeeper sur leurs machines de développement.