攻击2:全球定位系统(GPS)弱点之个人方位隐私泄露
本次攻击的目的是泄露受害者的位置隐私。受Rootkit感染的智能手机接收来到白攻击者的短信(SMS).并查询受害人的当前位置。Rootkit拦截该消息并将用户当前位置通过GPS发送给远程攻击者。与GSM设备一样,GPS设备也是串行设备。内核运行ttY-driver结构体链表来维护安装在系统上的一系列串行设备。Rootkit利用该结构体的成员变量name可以很容易地定位到GPS设备。每个tty_driver结构体还包含一个缓冲区(读缓冲区),在该缓;中区中存储未被用户空间应用程序读取的数据。在用户访问该数据之前是,Rootkit程序从此缓冲区中读取数据。泄露位置隐私的Rootkit技术必须实现如下三个机制。
首先,必须拦截入侵短信,并确定是否是远程攻击者查询受害者位置的短信;
第二,必须能够从GPS接收器获得位置信息;
最后,必须生成受害人当前位置的短信,并将其发送给攻击者。该攻击概述如图3所示。
▲图3 位置隐私攻击步骤
值得一提的是第一个机制对攻击1也相当有效,而不对Rootkit必须拨打的号码进行硬编码,攻击者可发送受感染手机必须通过短信拨打的号码。攻击者还可以通过短信启用/禁用Rootkit的恶意功能,这样就使得攻击者可以远程控制Root kit。通过修改系统调用的相应表项,并指向Rootkit代码,这样Rootkit程序就可以通过hook内核读写系统调用来拦截短信。因此,Rootkit拦截必须要去每个用户空间应用程序的读/写操作,GSM设备接收和处理短信。用户空间sMs应用程序不断查看GSM设备是否有新邮件。当SMS应用程序试图读取GSM设备时,Rootkit代码截获该操作,并从GSM设备的读缓冲区中读取数据。
存储在缓冲区的短信通知中包含字符串+CMTI= Simindex , 其中 Simindex 代表短信序列号。当查找到该子字符串后,Rootkit则解析该短信,并判断是否包含攻击指令(以某种预定义的格式)。每个消息对应一个状态位,其决定邮件是否已经被读取过。Rootkit程序确保将非攻击者发送的短信标记为未读,并能够被用户空间sMs应用程序处理从而使Rootkit隐蔽地进行操作。如果Rootkit拦截到来自远程攻击者的信息 那么它会试图从GPS设备获取位置信息。
Rootkit可以很容易地从与GPS设备相关的ttY-driver结构体的读缓;中区中获得位置信息。需要注意的是,即使用户已禁用GPS,Rootkit仍然可以获取位置信息。这是因为Rootkit在内核模式下运行.其可以启动GPS设备并获取位置信息,而且在取得信息后立即禁用该设备。在获得位置信息后,Rootkit会生成一条短信,同时通过将GSM调制解调器配置为文本模式来发送该短信,并发出AT+ CMGS命令(发送邮件)。保护位置隐私很重要,最近已经引起了研究界相当的注意。
Rootkit破坏内核并通过GPS获得用户位置信息,击败了现有的大多数用来保护位置隐私的防御措施。此外,攻击是悄悄进行的,接收到的攻击消息并不立即显示给受害者。该攻击唯一可见的痕迹是由服务提供商记录的消息发送记录。只有当用户收到月结单时才会发现发送给未知号码的短信。才可能会检测到攻击。然而,许多用户很少注意到这些细小的变化,从而长时间未发现这些攻击。