导语:​任意的Mac应用、沙箱都可以访问CGWindowListCreateImage函数,并秘密地对用户屏幕进行截图。然后可以对用OCR库来读取密码、token、key等。

简介

恶意应用开发者可以悄悄地用macOS API函数来对用户屏幕进行截屏,然后用OCR(Optical Character Recognition,光学字符识别)来读取截屏图形的内容。

mac-take-screenshots.png

被恶意应用开发者滥用的函数就是CGWindowListCreateImage,该函数常被app用来截图。

CGImageRef CGWindowListCreateImage(CGRect screenBounds, CGWindowListOption listOption, CGWindowID windowID, CGWindowImageOption imageOption);

具体见官方关于CGWindowListCreateImage函数的说明

https://developer.apple.com/documentation/coregraphics/1454852-cgwindowlistcreateimage?language=objc

隐私信息窃取

根据Fastlane工具创始人Felix Krause的说法,任意的Mac应用、沙箱都可以访问该函数,并秘密地对用户屏幕进行截图。Krause认为恶意应用开发者可以滥用这个针对隐私的漏洞,并使用CGWindowListCreateImage在没有用户许可的情况下对用户屏幕进行截屏。

在实验中,Krause证实可以用OCR库来读取CGWindowListCreateImage获取的不同类型的信息。攻击者可以:

从密码管理器中读取密码和key

读取隐私源码、API key和其他类似的数据

读取Mac上用户打开的邮件和消息

检测用户使用的web服务,如邮件提供商、密码管理器、app列表等

获取用户的个人信息,比如银行账户、工资、地址等

时间线

Krause去年10月他已经将漏洞报告了Apple,因为该问题还没有解决,所以前几天他才将该漏洞公开在自己的博客上。

可能的解决方法

Krause也提出了一些解决的方法来帮助Apple来解决CGWindowListCreateImage函数滥用的问题。

最简单的就是给使用截屏的函数的应用加入授权应用。

另一个方法是当应用截屏时,macOS对用户进行通知。

Krause去年还发现了iOS应用通过获取相册权限,来从中获取图片中的GPS信息来确定位置信息

https://www.bleepingcomputer.com/news/apple/permissions-loophole-lets-ios-apps-extract-location-details-from-image-metadata/)。

源链接

Hacking more

...