OS X : la protection GateKeeper peut être aisément contournée

OS X : la protection GateKeeper peut être aisément contournée

Ce n'est pas un antivirus, mais quand même

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

01/10/2015 4 minutes
21

OS X : la protection GateKeeper peut être aisément contournée

Alors même qu’Apple vient de lancer la nouvelle mouture majeure de son OS X, El Capitan, un chercheur en sécurité indique avoir trouvé une manière très simple de contourner la protection GateKeeper. Cette dernière a été intégrée il y a plusieurs années pour repérer à l’exécution certains malwares courants.

GateKeeper est une fonctionnalité ajoutée par Apple dans OS X à partir de la version Lion. Son mécanisme d’action est assez simple : il vérifie la signature électronique d’un binaire pour en valider ou pas l’exécution. Par défaut, seuls les logiciels issus du Mac App Store ou récupérés chez des éditeurs disposant d’un certificat reconnu peuvent être lancés. Dans les réglages de sécurité d’OS X, on peut désactiver complètement GateKeeper, ou le rendre encore plus strict pour ne laisser passer que les applications du Store.

GateKeeper n’est cependant pas un antivirus, même si Apple a ajouté à plusieurs reprises des éléments de reconnaissance des principales menaces. Ce mécanisme de sécurité est pourtant simple à contourner, si simple en fait que la méthode est surprenante. La technique, détaillée par Ars Technica, s’appuie sur les travaux du chercheur Patrick Wardle et met en scène deux binaires, A et B. GateKeeper ne vérifiant que le binaire qui correspond à l’action de l’utilisateur (le double clic) il devient alors simple d’appeler le binaire B.

Faire passer un premier binaire reconnu, puis tracter un second

Pour faire exécuter un ou plusieurs malwares, il suffit en fait que le binaire A soit équipé d’un certificat déjà reconnu par GateKeeper. Le pirate n’a qu’à préparer une image disque (fichier DMG) contenant les deux binaires pour que le premier passe la barrière puis, une fois cette dernière franchie, y « tracte » le second. Ce dernier peut contenir tout le code malveillant nécessaire, GateKeeper n’aura plus son mot à dire.

La technique est simple, mais redoutable. Il devient par exemple aisé de préparer une version vérolée d’un installeur d’application connue. C’est potentiellement une technique utilisée dans le cas récent des environnements Xcode frelatés qui ont été téléchargés par des développeurs chinois. L’utilisateur double-clique, lance l’installation, voit éventuellement une fenêtre réclamant les droits administrateur et valide, pensant que le logiciel est authentique.

Ce qui ne veut pas dire évidemment qu’il faut tout à coup se méfier de tous les téléchargements. Comme toujours, la prudence reste de mise sur les sources, mais il n’y a pas de raison de craindre le moindre danger si on a l’habitude d’utiliser des applications provenant du Store ou de site officiel d’une entreprise connue comme Google, Microsoft, Dropbox et ainsi de suite.

Un correctif est en préparation

Pour Patrick Wardle, cette technique de contournement n’est pas étonnante et réside dans la manière dont GateKeeper a été conçu, non dans une faille à proprement parler. Son rôle n’est après tout que de vérifier la signature électronique de l’exécutable lancé par l’utilisateur. Il a d’ailleurs indiqué à Ars Technica qu’il avait averti Apple il y a un peu plus de deux mois et que la société travaillait sur un correctif, ce qu’elle a confirmé à nos confrères. Le chercheur ne sait cependant pas si les ingénieurs pourront régler la cause même du problème, ou devront se contenter de limiter les dégâts.

Patrick Wardle présentera dans tous les cas les résultats de ses travaux aujourd'hui lors de la Virus Bulletin Conference qui se tiendra à Prague. Car une constatation s’impose pour lui : « Si je peux le trouver, vous pouvez être sûrs que des groupes de pirates ou supportés par des États ont trouvé des faiblesses similaires ».

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Faire passer un premier binaire reconnu, puis tracter un second

Un correctif est en préparation

Fermer

Commentaires (21)


Je trouve ça plutôt intéressant comme façon de procéder.

 



 Le chercheur reste en plus modeste et pragmatique, s’il y a pensé, d’autres aussi.

 

Erreur de conception de la part de la pomme ?


Par contre il faut toujours faire signer le binaire A, non ?

 C’est possible ça ? Apple accepte de signer en sachant que le binaire A sert à aller installer un malware ?


Ton binaire A est une voiture avec boule d’attelage. Le malware c’est la caravane que tu accroches derrière.


You should not pass… Oups.


Les mauvaises langues diront que ce n’est pas un “bug/faille” mais une fonctionnalité <img data-src=" />








Obidoub a écrit :



Par contre il faut toujours faire signer le binaire A, non ?

 C’est possible ça ? Apple accepte de signer en sachant que le binaire A sert à aller installer un malware ?





Je ne sais si c’est possible, mais si le binaire A (signé) fait appel à certaines ressources, il suffit de remplacer la ressource en question par une une vérolée.



Par exemple le binaire A demande à lancer un binaire C, mais en remplaçant ce dernier le par le B (vérolé), ton binaire A lancera en toute bonne foi le malware, et sans changer son certificat. Non ?



En continuant l’image, si je ne me trompe pas (je ne connais pas le mécanisme de vérification des binaires); cela voudrait dire que la voiture a été contrôlée, et que la boule d’attelage sans remorque n’a pas été vue

(mais j’ose imaginer qu’il doit être facile pour un code de cacher la boule d’attelage lorsqu’il n’y a pas la caravane,

sans caravane, il suffit de le faire fonctionner comme le vérificateur l’attends).









Obidoub a écrit :



Par contre il faut toujours faire signer le binaire A, non ?

&nbsp;C’est possible ça ? Apple accepte de signer en sachant que le binaire A sert à aller installer un malware ?





Il me semble qu’Apple ne signe pas tout, en gros sur OS X il n’est pas forcement nécessaire de passer par l’Apple Store, du coup GateKeeper vérifie juste l’identifiant du dev et le dev signe lui même son soft avec son identifiant.









linkin623 a écrit :



Je ne sais si c’est possible, mais si le binaire A (signé) fait appel à certaines ressources, il suffit de remplacer la ressource en question par une une vérolée.



Par exemple le binaire A demande à lancer un binaire C, mais en remplaçant ce dernier le par le B (vérolé), ton binaire A lancera en toute bonne foi le malware, et sans changer son certificat. Non ?





Non, les binaires sont contrôlés via l’identifiant du dev, un peu comme un checksum, le dev doit le fournir dans l’appli et GateKeeper se charge de vérifier cela.



ca ressemble presque à la méthode du disk swap de la première playstation <img data-src=" />


C’est un peu comme la méthode de “piratage” de Windows qui permet de lancer “cmd.exe” avec les droits administrateur depuis l’écran de login en copiant/renommant l’exécutable pour le faire passer pour l’utilitaire d’accessibilité <img data-src=" />


Considère plutôt un utilitaire avec boule d’attelage systématique même si pas utilisée. On voit la boule d’attelage mais c’est normal c’est une fonctionnalité qui peut être utile.


Vieille technique utilisée sur Windows depuis la nuit des temps. Prendre un executable signé (de préférence Microsoft ^^ ) et mettre dans le même dossier une fausse DLL utilisé par l’executable. Et boum le code malveillant se retrouve avec les droits admin.

D’ailleurs pour avoir l’élévation automatique, Windows oblige d’être lancé dans %windows%.


Et Apple distribue des certificats sans vérifier que l’app ne télécharge pas du code malveillant ? oO Étonnant.


Faut lire la news et les commentaires en fait…


Situation similaire sur Android si je me souviens bien. La possibilité de télécharger du code externe depuis une application signée.

&nbsp;Dans le cas du GateKeeper je vois pas bien comment bloquer tout ça sans blocage draconien…


De toute façon il n’y a pas de virus/malware sur Mac <img data-src=" />



&nbsp;Pareil sur Linux <img data-src=" />


De si bon matin? (oui je suis aux US, j’ai 7h de moins ^^)


Le souci va être réglé sous peu : encore une preuve de plus qu’Apple se soucie vraiment de notre sécurité, comme étant sa priorité number one of the world.


Oui oui :p

Et je suis à l’heure UTC+0 donc ca ne nous fait que 5h de différence <img data-src=" />








BweBwe a écrit :



Situation similaire sur Android si je me souviens bien. La possibilité de télécharger du code externe depuis une application signée.

 Dans le cas du GateKeeper je vois pas bien comment bloquer tout ça sans blocage draconien…







Il me semble que sous Android c’était surtout qu’on pouvait modifier l’éxécutable après installation sans altérer la signature.



Il y a eu un article ici mais je ne le retrouve pas