导语:跟踪软件Stalkerware,(又称Spouseware)是一种非常具有攻击性的恶意软件,只要安装在要监视对象的目标设备上,就可以随时监视对方,并获取目标设备里的隐私数据。
跟踪软件Stalkerware,(又称Spouseware)是一种非常具有攻击性的恶意软件,只要安装在要监视对象的目标设备上,就可以随时监视对方,并获取目标设备里的隐私数据。比如,经过深入分析,他们的目标是收集监视对象手机里的通话记录、私人信息、位置数据、浏览模式以及存储在设备上的许多其他隐私数据。目前这类技术的应用比许多人想象的更加普遍、广泛,而且受害者都是普通民众,受影响的人群也越来越多。
目前,大多数受害者还没有意识到自己是目标。这是因为这些应用程序都是在后台悄悄运行的,然后收集数据并将其发送到远程服务器。而攻击者在远程服务器上收集到这些信息后,就可以进行更深层次的访问了。
令人惊讶的是,跟踪软件已经形成了一个利益链很大的灰色产业链,已经有许多公司为人们提供这些服务和应用程序,这些服务和应用程序还提供了SaaS(跟踪软件即服务),每月只需50美元。
这些应用程序中的大多数都是打着儿童保护和父母监管的幌子来传播的,而且这些应用程序,它们都支持Android和iOS设备。不过在本文的分析中,我只关注位于iOS版本的跟踪软件。
在iOS系统中,攻击者可以采取三种攻击方式:
1. 攻击者可以对受害者的设备进行物理访问,但它没有越狱,也没有运行可越狱的iOS版本;
2.攻击者可以对受害者的设备进行物理访问,而受害者的设备是越狱的,或者运行一个越狱的iOS版本;
3.攻击者无法访问目标设备,但可以访问受害者的苹果ID和密码;
物理访问意味着攻击者知道设备的PIN,并可以在设备上安装应用程序。
物理访问设备,但没有进行越狱
对于攻击者来说,这是最有限的选项。在iOS的普通版本上,由于沙箱保护,应用程序无法读取其他应用程序存储的数据。这意味着间谍应用程序无法读取Whatsapp或iMessage的私人信息。但仍有一些间谍功能可用,比如地理位置和联系人跟踪。这可以在名为mSpy Lite的应用程序上看到。
mSpy Lite的介绍
位置跟踪
地理位置跟踪的工作原理是将应用程序变成一个“位置监听器”,类似于应用程序在你骑车或跑步时跟踪你的位置。这个应用程序一旦开始运行,受害者将无法停止它,即使他们强制关闭应用程序也不行。
mSpy Lite位置跟踪
mSpy Lite的反汇编版本显示了应用程序如何注册自己来侦听“位置更改”:
1.显示应用程序如何调用allowsBackgroundLocationUpdates,它允许应用程序即使在挂起时也可以获取位置更新。
2.显示应用程序调用startMonitoringSignificantLocationChanges,这允许在发生位置更改时启动它(即使应用程序已经终止)。iOS本身决定了“重大变化”的含义,例如,当设备从一个发射塔连接到另一个发射塔时,就可能发生重大变化。这些方法将为mSpy Lite应用程序提供足够的信息,以便每天跟踪受害者的位置。
联系人跟踪
iOS提供了一种访问设备联系人列表的方法。这用于合法的应用程序,如VoIP调用或消息传递应用程序,以显示用户可以与之交互的联系人列表。不过,mSpy Lite使用此功能读取联系人列表并将其上传到服务器。
mSpy Lite读取联系人列表
mSpy Lite使用了一个名为SwiftyContacts的框架来读取联系人列表:
然后发送到他们的服务器:
根据研究,这两个功能只有在用户接受弹出请求这些权限(联系人和位置)时才能工作。在本文的示例中,攻击者在获取了这些数据后,受害者甚至不知道他们的设备将访问这些数据的权限授予了mSpy Lite应用程序。mSpy Lite应用程序添加了请求这些权限所需的说明:
随着iOS版本的每一次更新,苹果公司对数据访问权限的限制越来越严格。好消息是公司正在抛弃这种模式,坏消息是他们现在使用一种不同的模式来针对iOS用户,即iCloud。稍后将对此进行详细介绍。
以下是我与mSpy客户支持部门的互动,他们说他们不支持mSpy Lite,并且他们为iOS用户提供了另一个“解决方案”。
mSpy客户支持
在越狱的环境下,物理访问目标设备
越狱设备使用户能够安装未经Apple签名的软件,这为一些高级用户提供了安装调整和修改操作系统外观的可能性。它还可以帮助像我这样的安全研究人员对iOS应用程序和iOS本身进行安全评估。但对这些攻击者来说,这也给了他们安装间谍软件的机会,这种软件比mSpy Lite等沙盒应用程序更强大。
在越狱的设备上,应用程序可以读取沙箱之外的数据。例如,这意味着一个rouge应用程序可以读取消息传递应用程序存储的本地数据库。
大多数针对越狱设备的可用间谍应用程序都提供相同的功能,本文,我选了一个叫iKeyMonitor的程序。因为它提供了与大多数其他选项相同的功能,并且可以免费安装。iKeyMonitor可以直接通过Cydia安装:
“应用程序”由4个可执行程序及其相应的守护进程配置文件组成,以将它们作为长时间运行的后台进程,并由5个动态库组成。
iKeyMonitor文件
centerd
它的守护进程配置文件会把JetsamPriority设置为18来进行启动,它会创建一个SQL数据库,并由几个接口来管理存储和检索信息。如果安装了这些应用程序,它会尝试从Facebook Messenger,Line,Hangouts,Viber,WeChat,Kik和Skype读取消息。使用与mSpy Lite相同的步骤,就可以通过CLLocationManager将设备设置为跟踪装置。最后,它还负责通过SMTP将所有这些数据发送到提前配置好的电子邮件。
以下是它尝试阅读微信消息的方式,首先它搜索微信数据库的已知位置和名称:
已知数据库的位置和名称
然后查询数据库以检索它们的信息:
iKeyMonitor——微信查询
它对所有其他消息传递应用程序使用相同的模式:搜索已知名称和位置,并使用已知模式查询数据库。最后,使用配置的interval函数,将所有可用数据作为附件发送:
iKeyMonitor——SMTP消息
pbuploaderd
正如Cydia上的安装说明所示,安装应用程序后,在端口8888上启用了本地服务器,打开Safari并加载localhost:8888,此时攻击者可以加载所有日志的门户就都被显示了出来。这些日志包括呼叫历史、呼叫记录、日历事件、屏幕截图、音频记录、联系人列表、GPS位置、在线浏览历史、笔记、粘贴板数据和按键,这个二进制文件负责管理运行在受害者设备上的web服务。
例如,uploadCallHistory:方法是这样的:
iKeyMonitor :上载调用历史记录方法
所有的请求对象都是PortalRequest的子类,该类将基本URL定义为https://ikm.awsapi.io/index.php,然后每个子类只定义一个包含其相应数据类型的不同对象。以下所有方法都具有相同的结构并使用它们各自的请求对象子类:uploadScreenCapture:,uploadKeystrokes:withContentID:,uploadPasteboardLogs:withContentID:,uploadWebHistory:,uploadConversations:,uploadCallHistory:,uploadGPSLogs:,uploadAudioRecord:,uploadSurroundingRecord:,uploadCallRecord:, uploadContacts:,uploadCalendars:,uploadReminders:,uploadNotes:,uploadVoiceMemos:。这些子类的功能和它们的名字相对应。这太疯狂了,所有这些个人隐私数据都会被上传到一个远程服务器上。目前还不知道有哪些安全措施,有哪些对象可以共享这些数据。
pconfigd & ptuploaderd
除了一些细微的差异,比如pbuploaderd有一个更新自身的binaryUpdater方法,这三个二进制文件有非常相似的功能。它们作为3个不同的守护进程被启动:
IKMVoiceRecord.dylib
这个库提供了录制视频和语音呼叫的功能,并将它们存储在tmp/ikm.voice.record/中。
keychain.dylib
基于这个名字,我认为这个库会转储iOS keychain项并上传它们。但事实并非如此,这个库负责处理应用程序的击键记录器部分。它有两种工作模式,一种是通过创建CFMessagePort发送受害者的击键记录,另一种是通过HTTP请求发送。
iKeyMonitor:通过CFMessagePort的键记录程序
iKeyMonitor——通过HTTP请求的键记录程序
localnotesex.dylib
这是一个小型库,负责复制受害者的笔记。它使用私有框架NotesShared.framework的ICNoteContext类及其visibleNotes方法来获取受害者的笔记内容,并将它们全部复制到位于/ var / mobile / Library / Notes /的另一个名为localnotesex.plist的本地文件中。要注意的是,原始笔记也存储在此处,但它们存储在名为notes.sqlite的数据库中。我猜他们这样做是为了在受害者编辑或删除它们的情况下创建备注备份。
iKeyMonitor——本地笔记动态库
MobileSafe.dylib
这个库基本包含了所有间谍功能的核心逻辑,它将所有恶意代码注入SpingBoard。这个库还处理应用程序的所有配置键和值。该库负责根据应用程序层启用或禁用功能,因此保护这个配置和加强这些设置非常重要。因此,攻击者通过加密它们并巧妙地对加密密钥进行硬编码来实现这一目标:
iKeyMonitor——加密设置
它们还通过加密来保护许可证服务器,我本可以直接代理流量并计算出来,但为了好玩,我决定检查他们的加密或解密算法:
iKeyMonitor ——解密方法
首先,我注意到它只使用密钥的前16字节,这很奇怪,因为设置加密的硬编码密钥长度为32字节。无论如何,我推断他们使用AES-128-ECB进行加密或解密的其他参数。以下就是他们的加密许可证服务器URL:
iKeyMonitor——加密的许可证服务器URL
在用硬编码密钥ca62d226b097c6f8的前16个字节解密base64编码的密文之后,我得到了https://license.awosoft.com/auth/check/。加载域名https://awosoft.com重定向到https://easemon.com,这是iKeyMonitor的母公司和创建者的网址。不出所料,他们还销售监控他人电脑的软件。但别担心,用户只被“允许在自己的设备上安装Easemon,或者有权监控”。
Easemon——iKeyMonitor母公司
再看一下MobileSafe库,它还有一个FTP客户端,攻击者可以使用它将日志上传到他们选择的FTP服务器。这显然是一个只支持iOS的功能,另外这个库还管理可在localhost:8888访问的本地HTTP服务器。
应用程序的各层产品密钥使用plimus生成和验证的,例如,产品密钥验证是通过以下方式完成的:https://www.plimus.com/jsp/validateKey.jsp?action=REGISTER&productId=369329&key=<some_key>。
最后,这个库还负责加载受害者的Safari浏览历史记录:
iKeyMonitor——Safari浏览历史记录
PreferencesEx.dylib
这是一个很小的库,用于通过编辑com.apple.mobilesys.plist配置文件来隐藏SpringBoard中的Cydia。这一步是必要的,因为只有这样才可以隐藏起来,进行可持续性攻击。
iKeyMonitor ——隐藏Cydia的PreferencesEx库
由于FlexiSPY是另一款间谍软件,它提供了与iKeyMonitor类似的功能。本文,我假设自己是一个FlexiSPY客户,并用该软件监控我的女朋友,从下图可以看出“Albert”甚至帮我越狱了我女朋友的iPhone,还提供了一个在iOS > 9.2上越狱的提示,如果设备重启,必须执行“简单的重新配置”。
FlexiSPY客户支持
访问苹果ID和密码
在我看来,这是最危险的攻击。许多用户使用iCloud进行备份。它简单、方便,甚至不需要电脑。但这些好处也有利于攻击者,无需在设备上安装软件。如果受害者重启设备或恢复设备,它不会停止工作。没有必要了解如何越狱设备或获得客户支持来指导攻击者如何安装和隐藏应用程序,受害者的设备上绝对没有任何痕迹。
攻击者只需要受害者的苹果ID和密码:
甚至像Easemon(iKeyMonitor的母公司)这样的公司也提供了如何禁用iCloud 2FA以便于监控的分步指南:
Easemon——禁用苹果ID 2FA
自从iOS 10.3加强管理后,Easemon甚至提供了创建新的Apple ID或联系Apple并让他们为使用者禁用2-FA的替代方案!
Easemon——苹果ID的替代品
在收集了所有这些数据后,像FlexiSPY这样的公司提供了一个超级有组织的网站,上面有很多有受害者私人信息:
FlexiSPY 私人信息的页面
FlexiSPY上的短信
FlexiSPY上的视频
遗憾的是,由于这种新的操作模式是在服务器端完成的,所以我无法确切地搞清楚它是如何工作的。但我猜这与Elcomsoft的Phone Breaker或许多其他可以下载iCloud备份并显示其内容的工具类似。
如果你怀疑自己的帐户有什么问题,请登录https://icloud.com并选择iCloud Drive:
iCloud Home
然后在右上角点击你的用户名,然后点击iCloud设置:
然后在页面底部,点击退出所有浏览器:
其他涉及安全和隐私的问题
除了严重侵犯某人的隐私外,这些行为还会使这些受害者受到更严重的伤害。这是攻击者通常忽视的一个方面。由于这些私有数据都被收集起来提供给了攻击者,这些公司必须将其存储在某个地方。除了这些公司没有存储这些数据的业务这一事实外,他们不一定拥有保护这些数据的最佳防护方案,因为他们的基础设施不如最初托管受害者数据的基础设施那么强大。换句话说,恶意攻击者不必把目标对准大公司,也不必花费大量的金钱、资源和时间来提取数据。现在,他们可以把目标锁定在这些规模较小、可能不那么安全、且经营灰色业务的公司身上,这些公司托管着大量、大量的数据库,这些数据库实际上装满了人们的隐私数据。
另一个问题是,这些公司拥有所有这些数据,我们完全不知道他们自己如何使用这些数据,他们与谁共享这些数据,或者他们是否将这些数据转售给其他人。比如像iKeyMonitor这样的恶意软件,它会通过SMTP和FTP这样的明文连接发送受害者的私人数据。
最后,如果受害者的设备之前没有越狱,那么攻击者就完全破坏了设备,现在它很可能受到所有针对越狱设备的恶意软件的攻击。最糟糕的是,受害者对此一无所知。
保护方案
1.如果你爱的人无缘无故送你一台设备,确保它是最新的iOS版本。为了安全起见,请执行出厂恢复;
2.无论出于什么原因,如果你需要与他人共享你的iCloud密码,请确保在对方使用完后及时更改;
3.在你的iCloud帐户上启用2FA,同时也要更改你的iCloud密码;
4.及时更新iOS应用程序和设备上的各种软件。