Une porte dérobée découverte dans Skype permet de pirater tout ce que Skype peut offrir pour Mac OS X
Trustwave a récemment signalé un problème exploitable localement dans l'API Skype Desktop Mac OS-X qui fournit une API aux programmes / plugins locaux exécutés sur la machine locale.
L'API est formellement connue sous le nom d'API de bureau (précédemment connue sous le nom d'API publique Skype - Application Programming Interface) et permet aux applications tierces de communiquer avec Skype.
Comme décrit dans le conseil de Trustwave, le problème est un by-pass d'authentification découvert dans l'API par lequel un programme local pourrait contourner l'authentification s'ils s'identifiaient comme le programme responsable de l'interface avec l'API Desktop au nom du programme de widget Skype Dashboard .
Qui a été créé cette porte dérobée?
La vulnérabilité semble avoir été créée par un développeur chez Skype avant la prise de contrôle par Microsoft de la société, et a probablement dévoilé quelque 30 millions d'utilisateurs de Mac OS X.
Une porte dérobée?
Une possibilité intéressante est que ce bogue est le résultat d'une porte dérobée entrée dans l'API Desktop pour permettre à un programme particulier écrit par le fournisseur d'accéder à l'API Desktop sans interaction avec l'utilisateur. En effet, cette possibilité semble encore plus probable lorsque vous considérez que l'API Desktop fournit un identificateur de nom de client non documenté (à savoir «Skype Dashbd Wdgt Plugin»).
Notifier l'utilisateur de l'API de bureau par la porte dérobée fonctionne différemment que le cours normal d'action qui est de notifier l'utilisateur d'une tentative d'accès et invite l'utilisateur pour l'autorisation.
Dans le cas de la porte dérobée, aucune tentative de notification n'est effectuée et, en tant que telle, l'utilisateur n'a pas la possibilité de refuser l'accès.
Une porte dérobée non utilisée?
Curieusement, le widget actuel de Skype Dashboard ne semble pas utiliser la porte dérobée dans l'API Skype Desktop malgré le nom "Skype Dashbd Wdgt Plugin".
Cela soulève la possibilité que la porte dérobée est le résultat d'un accident de développement qui a laissé le code accidentellement au cours du processus de mise en œuvre du plugin Dashboard.
S'il s'agissait d'un accident de codage, il est vieux. Nos recherches ont montré que la chaîne "Skype Dashbd Wdgt Plugin" est présente dans les versions de Skype pour Mac OS-X depuis plus de 5 ans.
À quoi pouvez-vous avoir accès?
L'API Desktop, dans les versions précédentes, permettait d'accéder à presque tout ce que Skype pouvait offrir.
Cela inclut, mais sans s'y limiter: "les notifications des messages entrants (et de leur contenu), la modification des messages et la création de sessions de chat, la capacité de consigner et d'enregistrer l'audio d'appel Skype sur le disque et de récupérer les contacts des utilisateurs".
Dans les versions ultérieures de l'API Desktop, l'accès aux messages texte a été supprimé de la spécification mais l'accès à d'autres fonctionnalités est resté.
Patched la porte dérobée: Microsoft
Microsoft a corrigé une porte dérobée dans Skype pour Mac OSX qui permettrait à un attaquant de consigner et d'enregistrer des appels audio Skype, de récupérer des informations de contact utilisateur, de lire le contenu des messages entrants, de créer des sessions de chat, de modifier des messages et de mener d'autres activités malveillantes.
La porte dérobée est-elle facile à utiliser?
L'accès à la porte dérobée est aussi simple que de changer une seule ligne de code dans les nombreux exemples donnés par Skype eux-mêmes sur la façon d'utiliser l'API Desktop.
Une simple modification de la méthode NSString 'clientApplicationName' (ou de la variable membre CFString si vous utilisez l'API Carbon), ce qui permet de définir cette valeur comme «Skype Dashbd Wdgt Plugin».
Explication technique:
La découverte de la porte dérobée est un processus relativement trivial, en fait cela peut être fait avec un simple appel aux chaînes de l'utilitaire GNU, par exemple:
Vous pouvez obtenir un démontage de source de la fonction responsable en utilisant Hopper pour démonter le binaire d'application Skype, les résultats sont montrés ci-dessous:
Dans l'image ci-dessus, vous pouvez voir que la fonction membre 'authLevelForApplication: (NSString *) applicationName' de l'objet 'SkypeAPIController' renvoie 1 ('YES') si la valeur de 'applicationName' est égale à 'Skype Dashbd Wdgt Plugin'.
Les versions de Skype antérieures à l'acquisition de Microsoft utilisaient une ou l'autre forme d'occultation / cryptage binaire où le binaire se décompressait dynamiquement lors de l'exécution.
Il s'agit d'une technique typique pour entraver les efforts pour extraire des informations et d'ingénierie inverse du programme. Cependant, en général, ces techniques étaient triviales pour contourner simplement en attachant un débogueur et en dérobant les pages de mémoire contenant le code exécutable.