L'API pour les captures d'écran sur macOS pourrait être exploitée pour voler des mots de passe et autres informations sensibles
Rapporte Felix Krause

Le , par Olivier Famien, Chroniqueur Actualités
Pour permettre aux développeurs d’utiliser facilement certaines fonctionnalités dans les systèmes d’exploitation, les fournisseurs de systèmes mettent à la disposition des développeurs un certain nombre d’interfaces de programmation applicative également abrégées API en anglais. Elles peuvent être des classes, des méthodes ou des fonctions et permettent à un logiciel d'exploiter les services d'un autre logiciel. Dans le système d’exploitation macOS d’Apple, plusieurs API sont également disponibles. Parmi ces API, nous avons la fonction CGWindowListCreateImage qui permet de faire des captures d’écran des fenêtres ouvertes ou de tout le bureau en spécifiant certains paramètres. En faisant appel à cette API, les développeurs peuvent par exemple facilement avoir un instantané de leurs applications dans la fenêtre active. À priori, c’est donc une fonctionnalité excellente qui facilite la vie aux développeurs.

Mais après avoir mené des recherches sur les possibilités d’utilisation de cette fonction, Felix Krause, le fondateur des outils Fastlane qui permettent de concevoir rapidement des applications mobiles, rapporte que des personnes malveillantes pourraient concevoir des applications pour Mac et se servir de cette fonction pour faire des captures d’écran à l’insu de l’utilisateur. Certains avanceront que la fonctionnalité de bac à sable sur macOS pourrait en principe les protéger, car une telle éventualité ne devrait être possible qu’avec des autorisations supplémentaires. Mais Krause souligne que dans ce cas-ci, que l’application soit exécutée dans un sandbox ou pas, elle est en mesure de capturer silencieusement tout ce qui est affiché à l’écran en utilisant cette API. À partir de là, elle peut accéder à tous les moniteurs connectés au système sur lequel elle est installée. Et pour convaincre les sceptiques, Krause demande de créer un projet avec ces quelques lignes de code :

Code Objective-c : Sélectionner tout
1
2
3
4
5
6
7
8
 
CGImageRef screenshot = CGWindowListCreateImage( 
  CGRectInfinite,  
  kCGWindowListOptionOnScreenOnly,  
  kCGNullWindowID,  
  kCGWindowImageDefault); 
 
NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:screenshot];


En principe, le développeur ne devrait pas pouvoir lire le contenu du bureau en cours lorsque l’application Mac s’exécute dans le bac à sable. Mais contre toute attente, en intégrant ce bout de code dans une application, elle peut lire tout le contenu de l’écran affiché. Et pour aller encore plus loin, le développeur déclare qu’en utilisant un logiciel OCR pour la reconnaissance de texte, le développeur peut lire le texte affiché sur l’écran sans aucune difficulté. À partir de là, de pires scénarios peuvent être envisagés. Des applications peuvent exploiter ces failles pour lire les mots de passe ou les clés dans les gestionnaires de mots de passe. Elles peuvent également détecter quels services web une personne utilise ou encore parcourir avec l’utilisateur tous les emails ou messages qu’il ouvre sur sa machine. En outre, un pirate pourrait exploiter cette méthode pour obtenir des informations personnelles sur un utilisateur comme son adresse, son salaire, des informations bancaires, etc. Et dans le cas où un attaquant utiliserait cette méthode pour cibler un développeur, il pourrait accéder à certaines informations comme le code source du logiciel du développeur, des clés d’API et bien d’autres informations sensibles.


Bien évidemment, en parcourant tous les risques auxquels les utilisateurs sont exposés, la première chose qui vient à l’esprit est de savoir comment s’en prémunir. À cette préoccupation, Krause répond pour ce qui le concerne, qu’il ne connait aucun moyen de se protéger contre l’exploitation de cette faille.

Mais pour Krause, si Apple ajoute plus de contrôle pour pouvoir utiliser cette fonction, cela permettrait de réduire les risques liés à son exploitation. Après avoir informé Apple de sa trouvaille, Krause propose à Apple les différents points suivants :

  • le processus d’examen App Store pourrait vérifier les droits Sandbox pour l’accès à l’écran
    ;
  • exiger l’autorisation de l’utilisateur avec une boite de dialogue
    ;
  • avertir l’utilisateur à chaque fois qu’une application accède à l’écran.


Source : Rapport du bogue à Apple par Krause, Blog Krause

Et vous ?

Pensez-vous que le rapport fait par Krause comporte véritablement des menaces pour l’utilisateur ?

Quelles solutions pouvez-vous suggérer pour éviter l’exploitation de cette API à de mauvaises fins ?

Voir aussi

Une faille de sécurité de macOS High Sierra permet de se connecter en tant que root sans mot de passe, mais il existe un moyen de la contourner
Deux failles zero-day découvertes dans OS X affectent les versions 10.9.5 à 10.10.5
Mac : une faille confère au hacker le statut de « super administrateur », après qu'il a modifié la date


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Aiekick Aiekick - Membre chevronné https://www.developpez.com
le 12/02/2018 à 16:55
la facilite est toujours un risque sécurité.
Avatar de peterrma9 peterrma9 - Futur Membre du Club https://www.developpez.com
le 28/02/2018 à 23:27
En voilà encore une bonne nouvelle.

Ca me fait penser à la fonction d'enregistrement des MDP sur Chrome ....
Avatar de informatiz67000 informatiz67000 - Membre du Club https://www.developpez.com
le 09/03/2018 à 12:28
Merci pour cet article clair et détaillé, c'est toujours bon à savoir ces choses là

 
Contacter le responsable de la rubrique Accueil