前言
个信SDK能够以下载恶意插件的方式通过非恶意app监控受害者。谷歌应用商店中超过500款app都使用了个信广告SDK。虽然并非所有的app都下载了这种恶意监控功能,但个信SDK可能已为这些app引入该功能。包含受影响SDK的app下载量已超过1亿次。
个信SDK本质非恶意但其服务器有问题
受影响app
包含这个广告SDK的app包括:
针对青少年的多款游戏app(下载量为5000万至1亿次)
天气app(下载量为100万至500万次)
互联 广播(下载量为50万至100万次)
教育、健康和健身、旅行、表情、家庭视频摄像机类app
Lookout公司将个信的该功能告知谷歌后,后者从应用商店中删除相关app或者将入侵功能删除后换以更新版本。
背景
一般来讲,移动app使用广告SDK的目的是便于app开发人员利用广告 络向用户推送广告。跟其它广告 络一样,个信服务也会利用所收集到的用户兴趣、职业、收入和位置信息推广目标广告服务。
研究人员在例行审查跟某些IP和此前推送恶意软件的服务器通信的app时,发现了可疑流量。个信SDK本身的流量并未出现异常,因为出于很多原因的考虑,很多恶意软件会为合法服务生成流量。
研究人员发现一款app在向http://sdk[.]open[.]phone[.]igexin.com/api.php 的一个REST API发送一系列初始请求后下载了大量的加密文件。而上述API正是个信广告SDK使用的一个端点。
这种流量通常是恶意软件首先安装“清洁的”app随后下载并执行代码的结果,目的是躲避检测。加密文件的下载以及将com.igexin namespace调用安卓的
dalvik.system.DexClassLoader(用于从.jar或.apk文件加载类)这两点就足以说明需要深入分析payload中可能隐藏着恶意软件。
个人数据的收集取决于app的权限、移动安全解决方案和隐私策略,它们用来评估app所收集的个人数据是否合理。而app开发人员最终负责在app隐私策略中披露所有收集到的个人信息。开发人员也负责审查内嵌的第三方代码并将所有内嵌第三方代码中的数据收集能力披露在隐私策略中。
很多app开发人员可能并未意识到,因为个信广告SDK的嵌入,可能会从客户设备中提取到个人信息。而发现这一点需要对app和广告SDK进行深入分析。该功能不仅难以被发现,而且随时可从远程服务器中更改。
SDK功能
并非所有的个信广告SDK版本都传播恶意功能。恶意版本实现一个插件矿建,能让客户端加载任意代码,如向位于http://sdk[.]open[.]phone[.]igexin[.]com/api.php这个REST API端点发送请求得到的响应一样。
向这个端点发送的请求和收到的响应都是编码的JSON数据。如下是从这个API收到的解码响应,它让客户端在两个加密JAR文件中下载并运行代码:
这些响应信息中的相关字段如下:
从服务器接收了这种响应类型时,SDK会利用API调用提供的密钥解密一个或多个文件,并将其保存在设备上。随后它会利用安卓的
dalvick.system.DexClassLoader和映像从JAR文件加载这个具体类:
所有的插件都包含实现
com.igexin.push.extension.stub.IPushExtension界面的一个类。这个界面定义了被调用来初始化插件的一个boolean init(Context)方法。
要注意的是,所有的API流量都被编码(并非加密)并以明文文本形式发送或接收。
对于可运行内容的唯一限制是由安卓权限系统规定的。也就是说从插件中观察到的最严重的行为是呼叫日志提取。
研究人员发现,如满足下列条件,则所下载的大量插件都会通过init方法注册一个PhoneStateListener:
1.启用了内部SQLite数据库中的设置。
2.这款app拥有 “
android.permission.READ_PHONE_STATE” 权限。
这个PhoneStateListener会保存:
呼叫时间
呼叫 码
呼叫状态(空闲、响铃、占线)
通过一个HTTP请求中把数据发送给http://sdk[.]open[.]phone[.]igexin[.]com/api.php 端点。信息解码后格式如下:
如果以Base64解码BIData,就能看到通过PhoneStateListener收集到的数据格式是管道分隔记录:
第四个字段是呼叫时间,第六个字段是呼叫状态,第五个字段包含所呼叫的经Base64编码和RC4加密的电话 码。第二个字段包含用于XOR加密的部分密钥(另一部分较难,在应用程序中编码)。
有了这个密钥,我们就能把s6GYbkAUkOQPwK4P字符串解密成一个有效的电话 码。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!