Comment lancer des macros malveillantes sans se faire remarquer sur macOS

Le chercheur Patrick Wardle a montré comment une chaîne d’exploits peut être utilisée pour attaquer macOS Catalina.

De nombreux utilisateurs de dispositifs macOS pensent encore qu’ils n’ont pas besoin de protection. Pire encore, les administrateurs système des entreprises qui fournissent des machines Apple à leurs employés pensent la même chose.

Lors de la conférence Black Hat USA 2020, le chercheur Patrick Wardle a essayé de rappeler à l’audience cette fausse idée en présentant son analyse d’un malware pour macOS et en construisant une chaîne d’exploits pour prendre le contrôle de l’ordinateur Apple.

Microsoft, macros et Macs

Une des méthodes les plus couramment utilisées pour attaquer les ordinateurs sous macOS consiste à utiliser des documents avec des macros malveillantes, c’est-à-dire via las applications Microsoft Office. En effet, même si Apple dispose de ses propres applications de productivité, de nombreux utilisateurs préfèrent utiliser Microsoft Office. Certains le font par habitude, d’autres par souci de compatibilité avec les documents générés par leurs collègues.

Évidemment, tout le monde connaît depuis longtemps la menace potentielle que représentent les documents avec des macros. Par conséquent, Microsoft et Apple ont mis en place des mécanismes pour protéger l’utilisateur.

Microsoft avertit l’utilisateur lorsqu’il ouvre un document qui contient une macro. De plus, si l’utilisateur décide tout de même de lancer la macro, le code s’exécute dans une sandbox ce qui, selon les développeurs de Microsoft, empêche le code d’avoir accès aux fichiers de l’utilisateur et de nuire au système.

Quant à Apple, l’entreprise a ajouté plusieurs nouvelles fonctions de sécurité à la dernière version de son système d’exploitation, macOS Catalina. On y trouve notamment la mise en quarantaine de fichiers et un processus de  » notarisation « , une technologie qui empêche le lancement de fichiers exécutables provenant de sources externes.

En résumé, l’association de ces technologies devrait être suffisante pour empêcher les macros malveillantes de causer des dégâts. En théorie, tout semble assez bien protégé.

Une chaîne d’exploits extrait la macro de la sandbox

Pourtant, en pratique, de nombreux mécanismes de sécurité sont mis en place de façon assez problématique. D’ailleurs, les chercheurs (ou les cybercriminels) peuvent éventuellement trouver des méthodes qui leur permettent de les contourner. Wardle a illustré son discours en utilisant une chaîne d’exploits.

1. Contourner le mécanisme qui désactive les macros

Prenons par exemple le système qui avertit l’utilisateur lorsqu’il détecte une macro dans un document. Dans la plupart des cas, il fonctionne comme prévu, mais il est aussi possible de créer un document dans lequel les macros se lancent automatiquement et sans que l’utilisateur n’en soit averti, même si les macros ont été désactivées dans les paramètres.

Pour ce faire, on peut utiliser le format de fichier SYLK (SLK). Ce format, qui utilise le langage macro XLM, a été développé dans les années 80 et a ensuite été mis à jour en 1986. Pourtant, les applications Microsoft, comme Excel, supportent encore SYLK pour des raisons de compatibilité rétroactive. Cette vulnérabilité n’est pas nouvelle et a été décrite en détail en 2019.

2. S’échapper de la sandbox

Comme nous l’avons compris, un cybercriminel peut lancer une macro sans qu’elle ne soit détectée. Pourtant, le code s’exécute toujours dans la sandbox isolée de Microsoft Office. Comment un pirate informatique peut-il tout de même attaquer l’ordinateur ? Il s’avère qu’on peut facilement s’échapper de la sandbox de Microsoft sous Mac.

Il est vrai qu’il est impossible de modifier les fichiers déjà stockés sur l’ordinateur et dans la sandbox. En revanche, vous pouvez les créer. Cet exploit a déjà été utilisé pour s’échapper de la sandbox et il semblerait que Microsoft ait publié une mise à jour pour corriger la vulnérabilité. Pourtant, comme le montre une analyse minutieuse du patch, le problème n’a pas vraiment été résolu. La correction s’en prend aux symptômes et bloque la création de fichiers à partir d’endroits que les développeurs considèrent comme dangereux, comme le dossier LaunchAgents, qui est l’endroit où sont conservés les scripts automatiquement lancés après un redémarrage.

Qui a dit que Microsoft avait tenu compte de tous les  » emplacements dangereux  » lorsque l’entreprise a créé le patch ? En l’occurrence, le script écrit dans Python et lancé depuis un document Office, et donc exécuté dans une sandbox, pouvait être utilisé pour créer un objet connu comme « Ouverture » (Login Item). Un objet avec ce nom se lance automatiquement lorsque l’utilisateur ouvre une session. Le système lance l’objet pour qu’il soit exécuté en dehors de la sandbox Office et déjoue les restrictions de sécurité de Microsoft.

3. Contourner les mécanismes de sécurité Apple

Nous savons désormais comment exécuter une macro en toute discrétion et créer un objet d’ouverture. Évidemment, les mécanismes de sécurité de macOS empêchent tout de même le lancement de la porte dérobée, considérée comme non fiable comme elle a été créée par un processus suspect au sein de la sandbox. Tout est clair ?

D’une part, oui. Les mécanismes de sécurité Apple bloquent bien l’exécution du code obtenu de cette façon. D’autre part, il y a une solution. Si vous vous glissez dans une archive ZIP en tant qu’ouverture, alors le système va automatiquement ouvrir le fichier lorsque vous vous connecterez au système.

Les cybercriminels n’ont plus qu’à choisir le bon emplacement pour ouvrir le fichier. Par exemple, l’archive peut être mise dans le même répertoire que celui des bibliothèques de l’utilisateur, juste un cran au-dessus de l’endroit où les objets de type Launch Agents sont normalement stockés (ceux que Microsoft considère justement comme dangereux). L’archive peut comprendre un répertoire LaunchAgents avec le script Launch Agent.

Une fois ouvert, le script est placé dans le dossier LaunchAgents pour s’exécuter au démarrage. Comme il a été créé par un programme de confiance (archive) et ne présente aucun attribut de quarantaine, il peut être utilisé pour lancer quelque chose de plus dangereux. Les mécanismes de sécurité ne pourront pas empêcher le lancement de ce fichier.

Par conséquent, un cybercriminel peut lancer un mécanisme via la programmation Bash et les commandes shell pour obtenir un accès à distance (et donc un shell inversé ). Ce processus Bash peut être utilisé pour télécharger des fichiers, qui n’auront pas non plus de caractéristiques justifiant la quarantaine, ce qui permet au pirate informatique de télécharger d’authentiques codes malveillants et de les exécuter sans restriction.

En résumé :

  • Un cybercriminel peut secrètement lancer un code malveillant sans déclencher une alerte ou sans rien demander à l’utilisateur, même si l’exécution de macros est désactivée dans les paramètres. Il suffit que l’utilisateur télécharge un document Office et l’ouvre.
  • Ensuite, le cybercriminel peut s’échapper de la sandbox de Microsoft Office et créer un objet d’ouverture et une archive qui contient Launch Agents pour s’exécuter automatiquement en dehors de la sandbox lors du prochain démarrage.
  • En quelques étapes, le pirate informatique peut facilement déjouer les mécanismes de sécurité Apple en extrayant un objet de type Launch Agents d’une archive ZIP. Après avoir échappé aux mécanismes de sécurité du système, le programme peut télécharger et exécuter la partie « offensive » du code malveillant.

Comment vous protéger des macros malveillantes sous macOS

Bien sûr, le chercheur a fait part de ses découvertes à Apple et Windows, et les deux entreprises ont discrètement corrigé le problème sans vraiment en parler et sans avoir attribué d’identifiant CVE officiel aux vulnérabilités. La situation laisse entendre qu’en étudiant de près les mécanismes de sécurité, il n’est pas impossible de trouver d’autres méthodes qui pourraient les déjouer.

Dans le passé, macOS était, à juste titre, considéré comme sûr mais il ne s’agissait pas vraiment de mécanismes de sécurité avancés ; en général, les cybercriminels ne s’y intéressaient pas. Pourtant, les ordinateurs Apple sont devenus beaucoup plus populaires, y compris au sein des entreprises, et les attaques qui prennent macOS pour cible sont devenues beaucoup plus intéressantes pour les pirates informatiques.

Pour vous protéger, vous devez avoir votre système d’exploitation et tous les logiciels installés à jour, et utiliser des solutions de sécurité qui peuvent détecter et empêcher les activités suspectes. Par exemple, notre gamme de produits de sécurité pour les particuliers et les entreprises inclut des versions pour macOS.

Conseils