L’App Store d’Apple victime d’une attaque d’envergure

Sécurité des applications
L’App Store d’Apple victime d’une attaque d’envergure

Contrairement à Android ou Windows Phone, iOS était jusqu’aujourd’hui considérée comme une plateforme mettant à disposition des applications en lesquelles on pouvait avoir confiance. En effet grâce à des règles strictes imposées par Apple dans le cadre des développements sur iOS, complétées par un contrôle assez poussé des applications avant leur diffusion sur l’App Store, les utilisateurs avaient la quasi-certitude de télécharger des applications vérifiées et dépourvues de tout code malveillant.

À quelques exceptions près (nous y reviendrons plus tard), la plateforme d’Apple n’avait pas encore été la cible de piratage, du moins pas à grande échelle. Mais l’attaque que vient de subir Apple par l’intermédiaire de quelques développeurs pourrait bien changer la donne, ou au moins imposer à la firme de Cupertino de renforcer ses contrôles pourtant déjà importants.

Un malware, nommé XCode Ghost, a permis d’infecter de nombreuses applications, principalement originaires de Chine, et de les publier sur l’App Store d’Apple. Pour réussir à contourner les barrières imposées par Apple les attaquants ont diffusé une version modifiée de l’IDE Xcode, qu’ils ont mise à disposition sur des serveurs hébergés sur le « Cloud Storage » de Baidu, en Chine. Ces serveurs proposaient des vitesses de téléchargement supérieures à celles des serveurs officiels d’Apple ; Xcode représentant quelques Go à télécharger, il semble que de nombreux développeurs aient mordu à l’hameçon…

Ensuite, une fois cette version malveillante de Xcode installée, il était facile pour les attaquants d’injecter du code malveillant au sein des applications, à l’insu des développeurs. Il est encore difficile de savoir combien d’applications sont concernées, mais la société Qihoo360 a annoncé en avoir découvert au moins 344. Parmi elles on trouve notamment des applications très populaires en Asie, comme WeChat qui dispose de millions d’utilisateurs, ou encore le célèbre jeu Angry Birds 2, mais la liste exacte n’a pas été divulguée.

Portée du malware XCode.Ghost

Nous savons aujourd’hui assez précisément ce que le malware exfiltre, grâce au travail d’Alibaba puis PaloAlto, qui ont publié le résultat de leurs recherches. Parmi les informations dérobées, on trouve notamment :

  • L’heure actuelle de l’appareil
  • Le nom de l’application infectée
  • L’identifiant « bundle » de l’application
  • Le nom de l’appareil et son type
  • La langue du système et le pays
  • L’UUID de l’appareil
  • Le type de connexion réseau

De plus le malware est capable d’afficher des popups, ce qui facilite les attaques par phishing (par exemple fausses demandes d’identifiants iCloud). Il est également en mesure de définir ou altérer des gestionnaires d’URL, ce qui pourrait être utilisé pour générer des redirections non contrôlées. Enfin le code injecté permet aussi de lire ou écrire dans le presse-papier, avec les conséquences qu’on imagine.

Vu les données auxquelles les applications infectées accèdent, il est compréhensible que le code malveillant ait réussi à déjouer les contrôles : de nombreuses applications non infectées récupèrent ce type d’information de façon plus ou moins légitime, à la différence que le malware les redirigeait vers un serveur hostile et étranger aux auteurs des applications concernées. Selon les informations communiquées par PaloAlto, l’attaque durerait depuis mars 2015, date de diffusion des premières versions de Xcode modifiées. Les serveurs de contrôle auxquels les données étaient transmises ont également été déployés à la même période.

Chose intéressante, cette attaque permet de contourner complétement la sécurité apportée par la signature d’application : toutes les applications infectées ont en effet correctement été signées par leurs développeurs respectifs. La signature a par conséquent été apposée sur du code malveillant, à leur insu.

Quelles conséquences pour Apple ?

Il est probable qu’Apple ne divulguera pas de détails sur les conséquences de cette attaque, qui entache pourtant déjà sérieusement son image. La société a cependant déjà supprimé une bonne partie des applications infectées de son App Store, et affirme avoir contacté les développeurs concernés pour s’assurer que cela ne se reproduira pas. On se demande toutefois ce qu’il adviendra des applications infectées déjà installées sur les terminaux, car même si une mise à jour vient à corriger la faille rien ne dit qu’elle sera appliquée par les utilisateurs. Un effacement à distance serait une solution, mais beaucoup d’utilisateurs y verraient là une intrusion non désirée de la part d’Apple.

Il s’agit du 6ème malware publiquement identifié sur la plateforme iOS, mais c’est surtout celui dont les impacts sont les plus importants. Les cinq précédents touchaient chacun une seule application, quand Xcode Ghost a réussi à en infecter plus de 300 ! C’est donc la première attaque d’une telle envergure sur la plateforme d’Apple.

On peut une fois de plus se poser des questions sur les méthodes de validation d’Apple, qui restent très opaques : même si l’IDE Xcode était compromis, les contrôles avant diffusion auraient dû permettre de détecter ce code malveillant. Espérons que cette attaque sans précédent forcera la société à revoir ses méthodes et outils de validation et la poussera à communiquer un peu plus ouvertement.

En ce sens, le communiqué publié le 22 septembre par l’intermédiaire du portail dédié aux développeurs (https://developer.apple.com/news/?id=09222015a) est un premier pas. Apple y décrit comment valider sa version de Xcode, afin de s’assurer qu’il s’agit d’une version légitime. Si les développeurs apprécieront l’effort, les utilisateurs, eux, devront pour l’instant se débrouiller eux-mêmes pour savoir s’ils ont été victimes de l’attaque ou non…

Prendre en compte la sécurité de bout en bout…

Enfin le vecteur d’attaque, qui est ici l’environnement de développement, nous montre une fois de plus qu’il s’agit d’un point souvent négligé, et pourtant primordial dès lors qu’on parle de sécurité applicative.

Hasard ou coïncidence, le magazine Intercept publiait il y a 6 mois un article sur les tentatives de la CIA destinées à corrompre l’environnement iOS. L’une des techniques évoquées consistait à… diffuser une version de XCode contenant une porte dérobée. Ces révélations s’appuyaient sur un document divulgué par Snowden, décrivant une attaque similaire appelée « Strawhorse ».

Quoi qu’il en soit, voilà qui devrait faire réfléchir pas seulement Apple, mais tous les développeurs pour qui la sécurité est un enjeu.

Sources :

Timothé Coulmain, Consultant Sécurité, Advens