对Carrier IQ木马的综合分析报告
2019独角兽企业重金招聘Python工程师标准>>>
出处: 安天实验室 2011年12月4日 v1.1 |
||||||||
( PDF报告下载 ) {PDF文档阅读软件下载} | ||||||||
报告修订记录
一、事件概述1.背景近日,Android开发者Trevor Eckhart发现Carrier IQ公司与移动运营商合作预装入手机系统中的软件存在严重的隐私搜集行为[1] 。 该公司的官方介绍称[2] : 美国移动运营商Sprint的发言人Jason Gertzen在邮件中称: 然而,根据该公司公开的产品专利和产品培训资料,该产品搜集与网络相关的信息,包括语音和数据服务;还搜集与网络无关的信息,包括设备类 型、可用内存和电池电量、设备中软件的类型、设备的地理位置信息、设备用户的按键信息、设备的使用历史等。这些信息被传回至Carrier IQ公司的服务器进行统计分析。其提供的后台产品可以根据IMEI或IMSI对任何一个设备进行详细的历史记录查询,即用户的隐私被完全暴露给该公司及其 产品用户。 运营商Verizon和Sprint在其多款手机中预装了这一软件,涉及Android、Symbian和BlackBerry三个平台。 相关报道称受影响设备数量达1.41亿[4] 。多个著名的第三方定制ROM提供商,例如CyanogenMod,也曾采用这一软件。 事件曝光后,Carrier IQ公司向Trevor Eckhart送抵了措辞强烈的侵略性停止和终止函,称其使用和备份该公司培训资料构成侵权。有律师指出Eckhart的行为受到美国著作权法豁免保护。 11月24日,Carrier IQ公司撤销控诉,并再次强调其软件“并不监视用户数据,记录键击,或提供跟踪信息,只是识别掉线,电池问题,并且预测移动网络可能出现的问题,同时帮助 运营商使顾客服务更有效。”[5] 2.本报告概述安天实验室对上述事件及其相关样本进行了深入分析。主要结论包括:
二、样本传播渠道在Carrier IQ公司的培训资料中,有该软件在Android、Symbian S60、BlackBerry 4.7.0三个平台的试用版本。其中,就Android系统,目前已知以下刷机ROM中存在该软件(图1 ):
此外,从今年下半年开始,国外多个第三方定制ROM提供商开始有计划地从提供的所有ROM中移除Carrier IQ软件相关的组件。目前在部分ROM中还可以看到一些没有彻底清理干净的残留组件(图2)。
上述官方ROM和第三方ROM绝大部分为国外运营商或定制商提供,其中一般不含中文资源。但是从搜索结果来看,有一部分国内用户的手机中确实存在这个软件,并且在手机中长期运行(图3)。
三、样本静态分析1.样本的模块组成在为HTC手机提供的Android ROM中,该软件由以下文件组成:
其中包含两个APK安装文件,三个SO动态链接库,两个ELF可执行文件,以及一个配置文件iqprofile.pro。这些文件分布在ROM中四个不同的目录下。下面对这些文件逐一分析。 2.APK安装文件1)IQRD.apk IQRD.apk由一个服务com.htc.android.iqrd.IqService,一个接收器 com.htc.android.iqrd.StateReceiver和一个活动com.htc.android.iqrd.IqActivity组 成,没有启动菜单图标。在运行时,其还会注册两个接收器(图4 ),其中一个接收器的触发行为包括:
另一个的触发行为为:
目前仍不知道这些行为由哪个程序触发。
IQRD.apk需要的额外权限如下:
IQRD.apk使用了一个特殊的属性:android:sharedUserId="android.uid.phone",设置该 属性要求其与系统中负责通话的应用程序Phone.apk具有相同的签名。设置了该属性后,IQRD.apk与Phone.apk将以相同的UID运行, 因此双方的数据可以完全为对方获得。 在该样本的CDMA版本中,会读取网络的ESN、MEID、MDN、MSID、PRL、SPN、MIP、NAI等信息,包括NAI的用户名和密码(图5 )。对GDM网络,则读取其网络相应的信息,如MCC、MNC、APN等。
2)HtcIQAgent.apk 该样本只有一个服务com.htc.android.iqagent.AgentService,其触发条件包括25个类似于com.htc.android.iqagent.action.ss1c的行为。这些行为实际上与手机中预装的软件关联。 进一步分析代码可以看到,Carrier IQ将这些触发行为的对象称之为metric,这与其官方培训资料和专利中的命名是一致的。具体而言,该样本为系统预装的多款软件设置一个整数用于标识 (图6 ),再使用byteToHexString函数和hexStringToByte将这些整数与一个metric进行对应,从而将类似于 com.htc.android.iqagent.action.ss1c的服务触发行为关联到不同的软件。
该样本中关联的预装软件包括:
根据触发服务的不同行为,该样本经过上述对应得到行为对应的应用程序,进一步搜集相应的隐私信息,例如具体的GPS地理位置信息等(图7 )。 进一步地,当HtcIQAgent.apk搜集到这些信息后,调用本地htciqagent.so库文件提供的相应JNI接口,将这些隐私数据向服务器提交。
3.SO动态链接库文件HtcIQAgent.apk调用了htciqagent.so提供的JNI接口。后者实际上也只是一个封装层,它包含两类函数(图8 ),一类形如Java_com_htc_android_iqagent_Controller_submitAL16,是提供给APK的JNI接口,这 些函数会调用内部实现的形如actionAL16的函数。APK获得的隐私数据数量不同,这些action函数分别获取这些数据,将其拼接在一起,最后调 用IQ_SubmitMetric来提交这些数据,并将信息来源类型作为参数传给它。
IQ_SubmitMetric实现于libciq_client.so中。它首先调用iq_metric_might_be_interesting函数判断是否感兴趣的数据,如果是,获取当前时间戳,然后调用iq_submit_metric提交数据。 4.配置文件文件iqprofile.pro被预装入ROM的/system/etc目录。该文件被加密,但其中包含一个部分明文的URL如下: https://collector.iota.spcsdns.net:10003/collector/c iqprofile.pro被iqd这个可执行文件调用。 5.ELF可执行文件在可执行文件iqd中,包含以下URL: 四、样本动态分析在包含样本的手机中,“所有应用程序”列表里包含名为HTC IQAgent和IQRD的程序(图9 )。其中,IQRD需要的权限如图10 所示。
这些权限超出了其在AndroidManifest.xml中申明的权限,是因为该程序使用了共享UID:android.uid.phone,从而可以使用系统程序com.android.phone中的权限。
样本会启动服务AgentService(图11 )。
当用户访问互联网网页,或者启动Google搜索时,该样本将输出调试信息(图12 )。这些调试信息是htciqagent.so文件中没有清理干净的调试代码输出的,位于其JNI接口 Java_com_htc_android_iqagent_Controller_submitAL15的实现里(图13 )。而该JNI接口是在HtcIQAgent.apk搜集了与Web访问相关的隐私数据后调用的。 但是在整个样本运行期间,没有捕获到与回传隐私行为相关的网络数据。
五、试用版软件分析在Carrier IQ公司的培训资料中,有该软件在Android、Symbian、BlackBerry三个平台的试用版本:
需要特别强调的是,目前网络上已有的对该样本的分析[1] ,主要是对该试用版软件的分析,虽然它与真正装入到ROM的软件在代码上有非常多相似之处,但在表现给用户的行为上有较大差异。这一点将会在后面详细说明。 下面是对其Android版本的分析。 1.静态分析该样本需要较多的运行权限,包括:
当手机的屏幕开启或关闭、系统启动完成、电池状态改变等时,将触发其接收器 com.carrieriq.trial.service.receivers.BootCompletedReceiver,该接受器启动服务 com.carrieriq.trial.service.IQService。 IQService根据系统版本,调用释放的两个本地库文件libiq_service_trial_1.6.so、libiq_service_trial_2.2.so之一。
该样本检测拨出的电话,当发现号码为“#*47234#”时,禁止这次呼叫。该号码是移动运营商的USSD代码。
此外,该样本在运行后创建两个接收器,分别接收android.provider.Telephony.SMS_RECEIVED 和android.provider.Telephony.WAP_PUSH_RECEIVED广播,在接收到短信或WAP推送信息后,取出其内容,调用 checkSMS和checkWAPPush方法进行检查。如果是特定的内容,则不显示该信息。
checkSMS和checkWAPPush实际上通过JNI接口调用本地代码实现。其JNI代码分别调用了 libiq_service_trial_x.x.so中的IQ_CheckSMS和IQ_CheckWAPPush函数,这两个函数检查短信和WAP推 送信息的内容,例如以“//CM”开头的短信将被屏蔽,而满足进一步条件的信息将引发该软件将搜集到的隐私信息传回服务器。
在真正植入ROM的样本中,我们也发现了类似的代码。HtcIQAgent.apk中申明的服务接收两个特殊的行为 com.htc.android.iqagent.action.smsnotify和 com.htc.android.iqagent.action.wapnotify,分别对应短信通知和WAP推送通知。这两个行为将调用 htciqagent.so中对应的JNI接口,最终这些JNI实现还是调用了libciq_client.so中的IQ_CheckSMS和 IQ_CheckWAPPush函数。 2.动态分析试用版软件与正式版在动态行为上有一些区别。 安装后,其软件名为Device Health Application(图18 ),有不同的图标,且所需权限也不同。
该软件启动的服务名为Device Health Service(图19 )。
当用户或手机中的一些行为触发了该软件运行后,会在通知栏发出“DeviceHealth Monitor”的通知,点击进入后,出现一个几乎空白的界面(图20 )。
而根据相关分析24,该软件实际上包含一个隐藏的界面(图20 ),从其配置文件看,属于名为IQ Agent Settings的活动,且用于开发人员的调试。从界面可以看出,它包含了多种行为的记录能力。
六、CarrierIQ公司资料分析在Carrier IQ公司提供的后台服务产品培训资料中,可以看到以下内容:
后台服务支持对特定IMEI、IMSI的查询(图23 ):
根据这些记录,可以看到对应手机中搜集到的metrics,即用户行为和隐私信息记录:
对搜集到的每条记录,可以查看其具体内容:
对不同类型的记录,提供了其每个不同字段的含义解释:
因此,通过CarrierIQ公司提供的后台产品,其用户可以查看到该公司客户端软件从手机中搜集到的具体隐私信息,包括针对任何特定手机的用户行为和相关隐私。 七、事件后续进展11月29日我们发布本报告第一版至今,国内外多方对该事件做出了不同的反应。 11月29日,Trevor Eckhart公布一段视频,展示了Carrier IQ产品在用户手机中运行并获取隐私信息的过程[6] 。 11月30日,研究人员发现Carrier IQ的软件存在于苹果公司的iPhone手机中,包括iOS 3.1.3、iOS 4和最新推出的iOS 5[7] 12月1日,Lookout公司发表博客称其已经收到客户希望了解Carrier IQ真实情况的请求,称据其分析CarrierIQ相关软件不是恶意代码(malware)[8] 。 同日,RIM公司工作人员回答用户提问时称BlackBerry手机从未预装Carrier IQ公司产品,也没有允许运营商合作伙伴安装。如果用户在BlackBerry手机上发现Carrier IQ软件,或者是用户自己后来装的,或者是用户所在黑莓企业服务器的管理员安装并授权的[9] 。 诺基亚公司发表声明称,在任何诺基亚出货设备中均无Carrier IQ[10] 。 随后,苹果也发布声明,称公司曾使用CarrierIQ网络诊断软件,最近已经停止支持,并会在未来软件升级时删除软件。苹果宣称:“我们从未有计划去记录用户的使用按键,信息以及其他个人信息。”[11] 还是在12月1日,AT&T、Sprint、T-Mobile等运营商证实其手机中安装有Carrier IQ。AT&T和Sprint称其主要目的是为了改善无线网络表现。T-Mobile称其没有使用这个工具来收集用户的短信、Email等。另一 个移动运营商Verizon否认了其设备中含有Carrier IQ,并表示最初关于该公司订制手机预装Carrier IQ的传闻不实[12] 。 同日,HTC和三星也证实其手机预装了Carrier IQ,称它们是受运营商要求安装该应用的[12] 。 最后,Carrier IQ公司再次发表申明称其软件忽略了所有的个人信息[13] 。 12月2日,德国巴伐利亚州数据保护部门就Carrier IQ问题向苹果发起质询[14] 。 同日,美国众议员Edward Markey要求联邦贸易委员会(FTC)对Carrier IQ公司是否侵犯用户隐私展开调查[15] 。 12月3日,Carrier IQ、HTC和三星这三家公司在美国密苏里州、伊利诺伊州等多个地区遭到用户集体诉讼[16] 。到目前为止,没有运营商遭到诉讼。 八、总结从上述分析,已经可以基本确定Carrier IQ公司的相关手机产品存在过度的隐私搜集行为,主要体现在:
该公司的用户可以通过其后台服务,有针对性地获得具体的手机或个人的地理位置、软件使用情况等,给个人用户带来极大地潜在威胁。 该事件中另一个值得注意的是,有大型移动运营商参与到软件的传播中。一般用户认为官方预装的ROM是安全的,而此次样本正是被 Carrier IQ公司与移动运营商合作预装入手机,从而具有了极大的覆盖面。运营商也许并不十分清楚这一软件的真实情况,但也应承担其应有的软件审核责任,尤其是对预 装软件安全问题的审核。 参考文献
|
转载于:https://my.oschina.net/zhuzihasablog/blog/153165
对Carrier IQ木马的综合分析报告相关推荐
- 物联网、消费物联网、工业物联网与云计算、大数据服务综合分析报告
物联网.消费物联网.工业物联网与云计算.大数据服务综合分析报告 一.物联网基本概念 1.1定义 物联网(Internet of Things)指的是将无处不在(Ubiquitous)的末端设备(Dev ...
- 超级BT木马的分析报告与查杀.
昨天载了一个代理猎手,然后中招了.按照以往的方法,结束进程,清注册表,折腾了一个晚上,实在痛苦.今儿早上,又折腾,7点到现在12点,终于把所有它加载与修改的程序和键值都找了出来.实在是BT啊,以下是我 ...
- 计算机取证木马取证实验报告,计算机取证实验报告.doc
计算机取证实验报告 <计算机取证技术> 实验报告 实验一 实验题目: 用应急工具箱收集易失性数据 实验目的: (1)会创建应急工具箱,并生成工具箱校验和. (2)能对突发事件进行初步调查, ...
- 计算机取证木马取证实验报告,计算机取证技术实验报告.doc
计算机取证技术实验报告要点 中南大学 计算机取证技术 实验报告 学生姓名 学 院 信息科学与工程学院 专业班级 完成时间 目 录 1. 实验一 事发现场收集易失性数据3 1.1 实验目的3 1.2 实 ...
- 互联网用户泛隐私安全热点问题回顾与浅析 (2012年3月)
互联网用户泛隐私安全热点问题回顾与浅析 肖新光 安天实验室 (本文原载<计算机学会通讯>(2012年第四期),系根据作者在2012年3月在信息安全论坛同名报告录音整理的,因报告中涉及到具体 ...
- 数据分析-数据分析报告
1.初始数据分析报告 1.1数据分析报告是什么 数据分析报告是数据分析原理和方法,运用数据来反映.研究和分析某项事物的现状.问题.原因.本质和规律,并得出结论,提出解决办法的一种分析应用文体. 1.2 ...
- 如何写专业的数据分析报告
在互联网行业里,很多岗位都需要和数据打交道,比如运营.产品.销售等.数据分析报告的作用在于以特定的形式将数据分析结果展示给决策者,给他们提供决策参考和依据.在职场中,一份专业的报告更能体现你的价值.那 ...
- 怎么撰写一份优秀的数据分析报告(三)
我们在上一篇文章中给大家讲述了数据分析报告的原则,数据分析报告的原则具体有四点,分别是规范性.重要性.谨慎性和创新性.当我们掌握了数据分析报告的原则以后我们就需要了解一下数据分析报告的种类,下面就由小 ...
- 1份专业的数据分析报告到底怎么写?
来源:简书 转自:上海数据分析 大家好,我是小五 今天给大家分享一篇关于如何撰写分析报告的干货 在互联网行业里,很多岗位都需要和数据打交道,比如运营.产品.销售等.数据分析报告的作用在于以特定的 ...
最新文章
- Class.forName解析以及使用
- 字典数(前缀树)的实现
- PE学习(十一)第十一章:动态加载技术
- C语言判断一个数是否是回文数Palindrome算法(附完整源码)
- Spark技术内幕:Stage划分及提交源码分析
- 【LeetCode】3月16日打卡-Day1
- “1251 – Client does not support authentication protocol requested by server;consider upgrading MySQL
- Handsontable 类似 excel 表格编辑器
- Ubuntu dpkg 常用命令教程
- vue 挂载点 实例 模板
- sharepoint修改密码
- 关于微星主板安装ubuntu16.04系统连不上网。ifconfig-a 只显示 lo的
- wpsppt放映时间_wps ppt如何制作时间倒计时
- python 批量下载地理空间数据云
- 声音均衡器怎么调好听_完美音效就靠它了!最详细均衡器调整方法
- 保证金监控中心保证期货开户和交易记录
- 2018年世界人口排名及国土面积
- 搭建V2P及中青看点教程
- sd卡驱动分析之host
- Mybatis学习小结