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