具有移动终端恶意软件行为检测能力的代理服务器及方法转让专利

申请号 : CN201510487184.3

文献号 : CN105187394B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈贞翔李群张蕾杨波韩泓波曹栋

申请人 : 济南大学

摘要 :

本发明公开了具有移动终端恶意软件行为检测能力的代理服务器及方法,静态检测模块,通过调度静态检测接口对下载的移动应用进行静态检测;动态检测模块,通过调用第三方动态检测服务提供的API接口实现对静态检测模块检测为正常的移动应用做第二重检测;流量行为分析模块,流量行为分析模块对用户所安装的应用的流量进行处理并通过流量检测服务模型检测该流量行为是否为恶意软件所产生。本发明设计了一种具有三重检测能力的新型代理服务器。通过第一、二重的检测,基本保证了用户所安装的移动应用是安全的,通过第三重的流量检测,保证恶意软件产生恶意行为时进行有效识别。

权利要求 :

1.具有移动终端恶意软件行为检测能力的代理服务器,其特征是,包括:

静态检测模块,通过调度静态检测接口对下载的移动应用进行静态检测,若检测为恶意应用则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用,若检测为正常应用则将原文件送入动态检测模块做下一步的检测;

动态检测模块,通过调用第三方动态检测服务提供的API接口实现对静态检测模块检测为正常的移动应用做第二重检测,若动态检测为恶意应用,则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用;若检测为正常应用,则将该应用的安装文件返回给用户,同时,在检测记录缓存区的内存空间中记录下该应用的MD5值,标记为正常应用;

流量行为分析模块,检测安装的应用产生的流量,经过静态检测和动态检测这两重检测,在移动终端上下载和安装通过这两重检测的移动应用,应用在安装后将会产生网络流量,此时流量行为分析模块对用户所安装的应用的流量进行处理并通过流量检测服务模型检测该流量行为是否为恶意软件所产生。

2.如权利要求1所述的具有移动终端恶意软件行为检测能力的代理服务器,其特征是,所述具有移动终端恶意软件行为检测能力的代理服务器还包括查询匹配模块,用于识别出该文件是应用的安装文件并计算该应用安装文件的MD5值,然后与检测记录缓存区的MD5值记录信息做查询匹配,若检测到该应用的MD5值存在于缓存区中,并且标记为正常应用,则用户可以正常下载;若检测到该应用的MD5值存在于缓存区中,且标记为恶意应用,则阻止该应用下载并向用户推送代理服务器检测到该应用为恶意应用的消息;若在缓存区中没有该应用的MD5值的记录信息,则依次经过静态检测模块、动态检测模块及流量行为分析模块进行检测。

3.如权利要求1所述的具有移动终端恶意软件行为检测能力的代理服务器,其特征是,所述具有移动终端恶意软件行为检测能力的代理服务器还包括数据更新模块,对代理服务器上硬盘空间备份的检测记录缓存区数据的更新,基于代理服务器缓存替换算法来实现,同时保存检测记录缓存区中的数据到代理服务器上的硬盘空间中,在每次缓存更新替换之前,检查硬盘空间中是否已经有检测记录缓存区所有的数据、数据是否一致:若硬盘空间中没有检测记录缓存区中的某些数据,则写入硬盘空间中;若硬盘空间中有检测记录缓存区中的所有数据,则不写入硬盘空间中。

4.如权利要求1所述的具有移动终端恶意软件行为检测能力的代理服务器,其特征是,移动终端通过连接模块建立与代理服务器的连接,连接后该移动终端具有监听来自代理服务器的推送消息的功能,同时能够记录用户所安装应用的MD5值信息。

5.具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,包括以下步骤:在移动终端建立与代理服务器的连接;代理服务器解析用户请求的域名并转发用户的请求,然后从网络上下载移动应用到代理服务器;

静态检测模块调用第三方的静态检测服务接口对下载的移动应用做静态检测;写入该下载的移动应用的MD5值到检测记录缓存区,若静态检测结果为恶意应用,则在MD5值后添加识别标签,并删除掉原文件;静态检测到该应用为恶意应用,则由消息推送单元向用户发出该应用为恶意应用的通知消息;若静态检测结果为正常应用,则继续由动态检测模块负责对应用进行动态检测控制;

动态检测模块调用第三方动态检测服务接口对应用做动态检测;若动态检测结果为恶意应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签,删除原文件,同时,经过消息推送单元向用户的终端发送恶意应用的通知消息,若检测结果为正常应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签,同时,返回原文件的安装文件供用户下载;

移动终端成功下载经过静态和动态检测的应用,在安装应用时,移动终端对所安装的应用记录下其MD5值;

移动终端通过代理服务器接入网络,流量行为分析模块开始负责利用应用的流量特征进行恶意软件的检测,并上传移动终端所记录的该应用对应的MD5值到流量检测模块,流量行为分析模块使用流量行为分析单元进行检测,若检测结果为恶意应用,则修改检测记录缓存区中查找与该应用相同的MD5值的记录,若存在,则将其类别标签修改为恶意标签,同时在消息推送单元向用户终端发出恶意应用的通知消息,应用管理单元同时完成终止该用户终端与外部网络的连接,若检测为正常应用,则正常使用。

6.如权利要求5所述的具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,上述具有移动终端恶意软件行为检测能力的代理服务器的检测方法在移动终端建立与代理服务器的连接之后用户交互模块收到用户移动终端的连接请求;用户交互单元验证用户的身份信息,完成用户的注册;用户向代理服务器发出下载应用的请求,启动应用管理模块,控制应用的下载。

7.如权利要求5所述的具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,应用管理单元对下载的移动应用做检查,检查其是否符合标准的移动应用文件格式。

8.如权利要求5所述的具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,静态检测和动态检测流程包括:代理服务器解析用户的请求域名并转发用户下载移动应用请求,开始从网络上下载移动应用到本地代理服务器;

应用管理单元对下载的应用做过滤,只保留移动应用原文件的安装文件,并计算该文件的MD5值;

静态检测接口调用第三方静态检测引擎对移动应用进行静态检测;

若静态检测为恶意应用,则由用户交互模块负责通知用户检测到恶意应用的推送消息;

消息推送单元负责将恶意应用的检测结果推送到用户的移动终端;

写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”;

若静态检测为正常应用,则调用第三方动态检测服务,并利用第三方动态检测服务提供的接口对应用做动态检测;

若动态检测到该应用为恶意应用,则由用户通知模块负责通知用户检测到恶意应用的推送消息,推送消息单元将恶意应用的检测结果推送到用户终端;

写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”;

若动态检测结果为正常应用,则写入该应用的MD5值到检测记录缓存区,并相应的标记为正常应用标识符“0”。

9.如权利要求5所述的具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,流量检测的流程包括:用户安装下载的移动应用;

在用户安装所下载的移动应用的同时,移动终端记录下所安装的移动应用的MD5值;

用户运行所下载的移动应用,通过新型代理服务器接入网络,并将该应用的MD5值上传到流量行为分析模块;

流量行为分析单元接入流量行为分析模型服务,利用应用的网络流量进行检测;

若检测结果为恶意应用,则在检测记录缓存区内查找与该应用相匹配的MD5值,若存在,则修改该应用对应的类别标签,将“0”修改为“1”,即从正常应用修改为恶意应用;

消息推送单元向用户终端推送恶意应用的检测结果;

中断用户终端与外部网络的连接;

若检测为正常应用,则用户可以正常使用。

10.如权利要求9所述的具有移动终端恶意软件行为检测能力的代理服务器的检测方法,其特征是,流量行为分析模块在工作时,从网络流量数据中提取出能够有效表征移动终端恶意软件网络行为的特征;

按照不同的特征类型对提取的能够有效表征移动终端恶意软件网络行为的特征进行分类;

对分类后的特征匹配与之相适应的检测模型,每种类型的特征有与之对应的唯一的检测模型;

每种类型的特征选择对应的检测模型并输出相应的检测结果。

说明书 :

具有移动终端恶意软件行为检测能力的代理服务器及方法

技术领域

[0001] 本发明涉及一种新型代理服务器的工作机制,尤其涉及一种具有移动终端恶意软件行为检测能力的代理服务器及工作方法。

背景技术

[0002] 随着移动终端的迅速普及,移动终端上的应用更是层出不穷,每天上百万计移动终端的应用出现在各大第三方应用市场,例如,国内的安卓市场、百度应用市场、安智市场,国外的谷歌市场、亚马逊商店、Apple Store等。尽管第三方应用市场在移动应用上架前就已经对安装文件进行了恶意代码扫描,但是仍然发现大量的恶意应用存在于各大第三方应用市场。2011年发现的恶意软件-DroidDream家族,在被谷歌下架之前已经感染了超过26万Android设备。
[0003] 传统的移动终端恶意软件的检测方法主要包括静态检测方法和动态检测方法。静态检测方法主要是通过反编译和反汇编等逆向工程手段分析恶意应用的恶意代码。这种方式需要用户在终端设备上安装恶意代码检测工具,并且在很大程度上依赖用户去做判断,检测能力很大程度上取决于病毒库的规模和数量,对恶意软件变种的发现能力不强;动态检测方法作为一种在沙盒中模拟恶意应用的运行的方法,通过观察系统调用等达到识别的目的。虽然动态检测技术具有能够发现未知恶意应用的能力,但是动态检测方法分析复杂,难以实现大规模部署。特别是面向一些典型的特殊应用场景如军队、政府等私有网络环境,需要严格限制移动终端安装的移动应用类型,并且不允许有移动终端恶意软件存在,否则移动终端恶意软件造成的损失将是不可估量的。
[0004] 基于以上现状,迫切需要一种机制能够在移动终端恶意软件在被下载到移动终端之前能被有效识别,或者移动终端恶意软件即使被安装也能够通过流量行为分析及时发现。考虑到代理服务器作为一种信息的中转站,具备在文件等资源被下载到终端用户之前进行分析和检测的可能性。传统的代理服务器已经提供了防止攻击、充当防火墙的安全功能,但是当用户使用移动终端通过代理服务器连接网络,或者从网络上下载应用安装到移动终端时,传统的代理服务器无法对所下载的移动应用安装文件做任何检查。

发明内容

[0005] 为解决现有技术存在的不足,本发明公开了一种具有移动终端恶意软件行为检测能力的代理服务器,该新型代理服务器对用户下载的移动应用具有三重检测能力,即移动应用在被下载到移动终端设备之前可以实现静态检测和动态检测,在移动应用被安装之后可以进一步进行流量行为分析,能充分保证用户移动终端安装的软件的安全可靠性,同时及时发现可能存在的恶意软件网络行为。
[0006] 为实现上述目的,本发明的具体方案如下:
[0007] 具有移动终端恶意软件行为检测能力的代理服务器,包括:
[0008] 静态检测模块,通过调度静态检测接口对下载的移动应用进行静态检测,若检测为恶意应用则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用,若检测为正常应用则将原文件送入动态检测模块做下一步的检测;
[0009] 动态检测模块,通过调用第三方动态检测服务提供的API接口实现对静态检测模块检测为正常的移动应用做第二重检测,若动态检测为恶意应用,则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用;若检测为正常应用,则将该安装文件返回给用户,同时,在检测记录缓存区的内存空间中记录下该应用的MD5值,标记为正常应用;
[0010] 流量行为分析模块,检测安装的应用产生的流量,经过静态检测和动态检测这两重检测,在移动终端上下载和安装通过这两重检测的移动应用,应用在安装后将会产生网络流量,此时流量行为分析模块对用户所安装的应用的流量进行处理并通过流量检测服务模型检测该流量行为是否为恶意软件所产生。
[0011] 优选的,所述具有移动终端恶意软件行为检测能力的代理服务器还包括查询匹配模块,用于识别出该文件是应用的安装文件并计算该应用安装文件的MD5值,然后与检测记录缓存区的MD5值记录信息做查询匹配,若检测到该应用的MD5值存在于缓存区中,并且标记为正常应用,则用户可以正常下载;若检测到该应用的MD5值存在于缓存区中,且标记为恶意应用,则阻止该应用下载并向用户推送代理服务器检测到该应用为恶意应用的消息;若在缓存区中没有该应用的MD5值的记录信息,则依次经过静态检测模块、动态检测模块及流量行为分析模块进行检测。
[0012] 优选的,所述具有移动终端恶意软件行为检测能力的代理服务器还包括数据更新模块,对代理服务器上硬盘空间备份的检测记录缓存区数据的更新,基于代理服务器缓存替换算法来实现,同时保存检测记录缓存区中的数据到代理服务器上的硬盘空间中,在每次缓存更新替换之前,检查硬盘空间中是否已经有检测记录缓存区所有的数据、数据是否一致:若硬盘空间中没有检测记录缓存区中的某些数据,则写入硬盘空间中;若硬盘空间中有检测记录缓存区中的所有数据,则不写入硬盘空间中。
[0013] 进一步的,移动终端通过连接模块建立与代理服务器的连接,连接后该移动终端具有监听来自代理服务器的推送消息的功能,同时能够记录用户所安装应用的MD5值信息;Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
[0014] 进一步的,具有移动终端恶意软件行为检测能力的代理服务器的检测方法,包括以下步骤:
[0015] 在移动终端建立与代理服务器的连接;代理服务器解析用户请求的域名并转发用户的请求,然后从网络上下载移动应用到代理服务器;
[0016] 静态检测单元调用第三方的静态检测服务接口对下载的移动应用做静态检测:写入该文件的MD5值到检测记录缓存区,若静态检测结果为恶意应用,则在MD5值后添加识别标签,并删除掉原文件,同时由消息推送单元向用户发出该应用为恶意应用的通知消息;若静态检测结果为正常应用,则继续由动态检测模块对应用进行动态检测;
[0017] 动态检测单元调用第三方动态检测服务接口对应用做动态检测:若动态检测结果为恶意应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签,删除原文件,同时,经过消息推送单元向用户的终端发送恶意应用的通知消息;若检测结果为正常应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签,同时,返回原文件的安装文件供用户下载;
[0018] 移动终端成功下载经过静态和动态检测的应用,在安装应用时,移动终端对所安装的应用记录下其MD5值;
[0019] 移动终端通过代理服务器接入网络,流量行为分析模块开始负责利用应用的流量特征进行恶意软件的检测,并上传移动终端App上应用安装记录上所记录的该应用对应的MD5值到流量检测模块,流量行为分析模块使用流量行为分析单元进行检测,若检测结果为恶意应用,则修改检测记录缓存区中查找与该应用相同的MD5值的记录,若存在,则将其类别标签修改为恶意标签,同时在消息推送单元向用户终端发出恶意应用的通知消息,应用管理单元同时完成终止该用户终端与外部网络的连接,若检测为正常应用,则可以正常使用。
[0020] 进一步的,上述具有移动终端恶意软件行为检测能力的代理服务器的检测方法在移动终端建立与代理服务器的连接之后用户交互模块收到用户移动终端的连接请求;用户交互单元验证用户的身份信息,完成用户的注册;用户向代理服务器发出下载应用的请求,启动应用管理模块,控制应用的下载。
[0021] 进一步的,应用管理单元对下载的移动应用做检查,检查其是否符合标准的移动应用文件格式。
[0022] 进一步的,静态检测和动态检测流程包括:
[0023] 代理服务器解析用户的请求域名并转发用户下载移动应用请求,开始从网络上下载移动应用到本地代理服务器;
[0024] 应用管理单元对下载的应用做过滤,只保留移动应用原文件的安装文件,并计算该文件的MD5值;
[0025] 静态检测接口调用第三方静态检测引擎对移动应用进行静态检测;
[0026] 若静态检测为恶意应用,则由用户交互模块负责通知用户检测到恶意应用的推送消息;
[0027] 消息推送单元负责将恶意应用的检测结果推送到用户的移动终端;
[0028] 写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”;
[0029] 若静态检测为正常应用,则调用第三方动态检测服务,并利用第三方动态检测服务提供的接口对应用做动态检测;
[0030] 若动态检测到该应用为恶意应用,则由用户通知模块负责通知用户检测到恶意应用的推送消息,推送消息单元将恶意应用的检测结果推送到用户终端;
[0031] 写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”;
[0032] 若动态检测结果为正常应用,则写入该应用的MD5值到检测记录缓存区,并相应的标记为正常应用标识符“0”。
[0033] 进一步的,流量检测的流程包括:
[0034] 用户安装下载的移动应用;
[0035] 在用户安装所下载的移动应用的同时,移动终端记录下所安装的移动应用的MD5值;
[0036] 用户运行所下载的移动应用,通过新型代理服务器接入网络,并将该应用的MD5值上传到流量行为分析模块;
[0037] 流量行为分析单元接入流量行为分析模型服务,利用应用的网络流量进行检测;
[0038] 若检测结果为恶意应用,则在检测记录缓存区内查找与该应用相匹配的MD5值,若存在,则修改该应用对应的类别标签,将“0”修改为“1”,即从正常应用修改为恶意应用;
[0039] 消息推送单元向用户终端推送恶意应用的检测结果;
[0040] 中断用户终端与外部网络的连接;
[0041] 若检测为正常应用,则用户可以正常使用。
[0042] 进一步的,流量行为分析模块在工作时,从网络流量数据中提取出能够有效表征移动终端恶意软件网络行为的特征;
[0043] 按照不同的特征类型对提取的能够有效表征移动终端恶意软件网络行为的特征进行分类;
[0044] 对分类后的特征匹配与之相适应的检测模型,每种类型的特征有与之对应的唯一的检测模型;
[0045] 每种类型的特征选择对应的检测模型并输出相应的检测结果。
[0046] 进一步的,用户请求下载移动应用的流程,具体包括:
[0047] 用户使用移动终端向代理服务器发起下载移动应用的请求;
[0048] 代理服务器接收用户请求,解析用户请求的域名并转发请求;
[0049] 代理服务器从网络上下载用户请求的应用到本地代理服务器;
[0050] 计算所下载的应用的MD5值,并在检测记录缓存区中查询校验该应用的MD5值记录是否存在;
[0051] 若查询对应的MD5值存在并且为正常应用,则把该应用返回给用户下载。
[0052] 进一步的,用户下载应用过程中对代理服务器中检测记录缓存区数据做查询匹配的处理流程包括:
[0053] 在检测记录缓存区内查询与该应用相同的MD5值;
[0054] 若该MD5值不存在,则开始对该应用进行静态检测和动态检测流程;
[0055] 若该MD5值存在,则检查对应的类别标签是否是恶意,即是否为“1”;
[0056] 若类别标签为“0”,即为正常应用,则返回供用户下载;
[0057] 若类别标签为“1”,即为恶意应用,则通过消息推送单元给用户推送恶意检测结果的消息。
[0058] 本发明的有益效果:
[0059] 代理服务器作为一种信息的中转站,具备在文件等资源被下载到终端用户之前进行分析和检测的可能性,本发明设计了一种具有三重检测能力的新型代理服务器。通过第一、二重的检测,基本保证了用户所安装的移动应用是安全的,通过第三重的流量检测,保证恶意软件产生恶意行为时进行有效识别。这种新型的代理服务器采用了现有的移动终端恶意软件检测方法(静态特征检测方法和动态行为检测方法)以及本发明所设计的基于流量的恶意网络行为检测方法,同时与代理服务器的缓存技术相结合,建立检测记录缓存区,在极大提高用户的下载速度的同时,保证所下载的应用是安全的,并及时发现可能的恶意软件网络行为。

附图说明

[0060] 图1为本发明设计的新型代理服务器的组成结构图;
[0061] 图2为新型代理服务器静态检测和动态检测流程图;
[0062] 图3为流量行为分析流程图;
[0063] 图4为用户请求下载移动应用流程图;
[0064] 图5为用户下载应用过程中代理服务器检测记录缓存区处理流程图。具体实施方式:
[0065] 下面结合附图对本发明进行详细说明:
[0066] 为了实现移动终端恶意软件在被下载到移动终端之前被有效识别,或者移动终端恶意软件即使被安装也能够通过流量行为分析及时发现,考虑到代理服务器作为一种信息的中转站,具备在文件等资源被下载到终端用户之前进行分析和检测的可能性。本发明在传统代理服务器基本功能及加入DNS服务功能的基础上,设计了一种具有移动终端恶意软件检测能力的新型代理服务器,这种新型代理服务器对用户下载的移动应用具有三重检测能力,即移动应用在被下载到移动终端设备之前可以实现静态检测和动态检测,在移动应用被安装之后可以进一步进行流量行为分析,能充分保证用户移动终端安装的软件的安全可靠性,同时及时发现可能存在的恶意软件网络行为。
[0067] 一种具有移动终端恶意软件检测能力的新型代理服务器,具体工作过程为:
[0068] 1)用户A首先在移动终端安装用于与代理服务器建立连接的App。这个App不但具有配置移动终端与代理服务器建立网络连接的功能,并且具有监听来自代理服务器的推送消息的功能,同时能够记录用户所安装应用的MD5值信息。
[0069] 2)代理服务器保存下载应用的安装文件。第一步,在代理服务器上加入DNS服务,例如在运营商的代理服务器上具有这种DNS服务功能。这样用户移动终端产生的所有流量都将经过代理服务器,这种设计可以保证在代理服务器上对用户的流量做全面的检测;第二步,用户A在App上配置好代理服务器;第三步,当用户A的移动终端接入网络后,向代理服务器发出下载移动应用的连接请求,由代理服务器上加入的DNS服务功能解析请求的域名,并转发请求;第四步,从互联网下载应用到代理服务器上;第五步,代理服务器对下载的内容进行检测,保存所下载应用的安装文件,对于Android系统,保留后缀为.apk的文件,对于IOS系统,保留后缀为.ipa的文件,其它系统对应相应的应用安装文件。
[0070] 3)静态检测模块调度静态检测接口,负责对下载的移动应用进行静态检测。静态检测模块读取下载的应用,通过调用第三方静态检测模型提供的API接口,对下载的应用做静态检测,若检测为恶意应用则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用,同时删除原文件并通过推送方式向用户A的终端发送检测到恶意应用的通知;若检测为正常应用则将原文件送入动态检测模块做下一步的检测。
[0071] 4)动态检测模块继续读入并检测静态检测为正常的应用。通过调用第三方动态检测服务提供的API接口实现对静态检测模块检测为正常的移动应用做第二重检测,若动态检测为恶意应用,则记录下该应用的MD5值,并将该值写到检测记录缓存区的内存空间中,标记为恶意应用,同时删除原文件并通过推送方式向用户A的终端发送检测到恶意应用的通知;若检测为正常应用,则将该安装文件返回给用户A,同时,在检测记录缓存区的内存空间中记录下该应用的MD5值,标记为正常应用。
[0072] 5)流量行为分析模块检测安装的应用产生的流量。经过静态检测和动态检测这两重检测,用户A可以在移动终端上下载和安装通过这两重检测的移动应用。应用在安装后将会产生网络流量,此时流量行为分析模块可以对用户所安装的应用的流量进行处理,并通过流量检测服务模型检测该流量行为是否为恶意软件所产生。若检测到恶意流量,恶意应用模块立即响应,恶意应用处理单元立即停止该终端对外网的访问,并向用户发送发现恶意应用的推送消息;若通过流量特征没有检测到恶意应用,则不做任何处理。
[0073] 6)用户B通过代理服务器请求下载应用。用户B在移动终端安装上用于与代理服务器建立连接的App,建立与代理服务器的连接,并同时向代理服务器发出下载应用请求,代理服务器转发该请求,并从网络上下载该应用到代理服务器上。
[0074] 7)代理服务器对应用安装文件MD5值的查询匹配。代理服务器识别出该文件是应用的安装文件,并计算该应用安装文件的MD5值,然后与检测记录缓存区的MD5值记录信息做查询匹配。若检测到该应用的MD5值存在于缓存区中,并且标记为正常应用,则用户B可以正常下载;若检测到该应用的MD5值存在于缓存区中,且标记为恶意应用,则阻止该应用下载并向用户B推送代理服务器检测到该应用为恶意应用的消息;若在缓存区中没有该应用的MD5值的记录信息,则重新执行上述过程3)-5)。
[0075] 8)对代理服务器上硬盘空间备份的检测记录缓存区数据的更新。基于代理服务器缓存替换算法来实现,同时保存检测记录缓存区中的数据到代理服务器上的硬盘空间中,在每次缓存更新替换之前,检查硬盘空间中是否已经有检测记录缓存区所有的数据、数据是否一致:若硬盘空间中没有检测记录缓存区中的某些数据,则写入硬盘空间中;若硬盘空间中有检测记录缓存区中的所有数据,则不写入硬盘空间中。这样保证所有的检测记录都可以在硬盘空间中找到,实现检测记录缓存区数据的备份。
[0076] 所述移动终端上安装的用于与代理服务器建立连接的App,具有配置移动终端与代理服务器建立网络连接的功能,具有监听来自代理服务器的推送消息的功能,并且具有记录下载应用MD5值并上传到代理服务器的功能。具体实现如下:(1)配置移动终端与代理服务器建立网络连接主要基于HTTP代理,通过设置代理服务器的IP地址和端口等信息,建立与代理服务器的连接;(2)以Android系统为例,采用XMPP协议可以实现代理服务器端与Android手机端的消息推送,Google的AndroidPn项目便是利用XMPP协议实现Android手机的消息推送;(3)记录下载应用MD5值并上传到代理服务器,以Android系统为例,首先,进程和进程之间的通信主要是通过Intent,所以可以使用Intent类的setDataAndType()方法设置安装文件所在的路径和文件类型(例如对于apk文件则设置文件类型为“application/vnd.android.package-archive”);然后,利用startActivity()方法打开这个文件,就实现将应用安装在移动终端上的功能。在安装应用的同时计算其安装文件的MD5值并保存在此APP上,然后上传计算出的MD5值至代理服务器。
[0077] 由于新型代理服务器主要使用HTTP代理,流量行为分析模块主要基于HTTP流量特征做恶意行为检测。
[0078] 为了更好的描述本发明,以下内容给出了实施本发明更为详细的过程:
[0079] 一种具有移动终端恶意软件发现能力的新型代理服务器,它包括:
[0080] 1、逻辑管理模块,主要负责实现对整个检测功能的逻辑控制,是检测功能的逻辑控制中心。它主要包括5个控制模块:
[0081] 1)用户交互模块:通过在用户终端安装配置代理服务器与移动终端连接的App,完成代理服务器与用户之间的认证,同时代理服务器具有向用户终端发送推送消息的功能。
[0082] 2)应用管理模块:主要负责对应用的管理和控制。
[0083] 3)静态检测模块:主要负责对应用进行静态检测控制。
[0084] 4)动态检测模块:主要负责对应用进行动态检测控制。
[0085] 5)流量行为分析模块:主要负责对应用进行流量检测控制。
[0086] 2、实现单元模块,针对上述的5个不同的逻辑控制模块,分别设计了相应的实现单元。它主要包括:
[0087] 1)用户交互单元:通过用户终端安装的App,实现用户与代理服务器之间的认证以及通信。
[0088] 2)消息推送单元:主要负责实现由代理服务器向用户终端推送消息的功能。
[0089] 3)应用管理单元:主要负责对用户下载的应用进行提取,保证所检测的应用均是移动终端应用,同时本单元具有计算移动应用的MD5值以及移除恶意应用的功能,具有写MD5值以及应用的类型标签到检测记录缓存区的权限。
[0090] 4)静态检测接口:负责调用第三方的静态检测服务接口,实现对应用的静态检测。
[0091] 5)动态检测接口:负责调用第三方的动态检测服务接口,实现对应用的动态检测。
[0092] 6)流量行为分析接口:负责接入流量检测服务模型,实现使用流量对应用进行检测。
[0093] 7)检测记录缓存区:用以存放所有检测过的应用的MD5值以及相应的类别标签。若用户请求下载的应用的MD5值存在于缓存区内,则不需要重复三重检测,直接从检测记录中取出该应用的类型标签,可以很大程度上提高检测速度。
[0094] 3、传统代理服务器的基本功能模块,它包括:
[0095] 1)用户基本验证功能模块。可按用户进行验证,没有登记的用户无权通过代理服务器访问Internet网;并对用户的访问时间、访问地点、信息流量进行统计。而实现单元中的用户交互单元在此功能模块的基础上实现了用户与代理服务器之间的二次认证,只有提前注册的用户才能通过此认证,进而连接并使用此代理服务器。
[0096] 2)缓冲功能模块。代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。而实现单元中的检测记录缓存区利用了传统代理服务器的这种缓冲功能,并在此基础上增加了永久存储检测记录的功能。
[0097] 3)防火墙功能模块。所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。而本发明也使用了防火墙这一功能模块,保证了内部网络的安全。
[0098] 4)增加DNS服务功能。增加DNS服务功能后,用户移动终端上的应用软件所产生的DNS流量也将经过代理服务器,这种设计可以保证在代理服务器上对用户的流量做全面的检测。
[0099] 图1为本发明设计的新型代理服务器的组成结构图,如图1所示。该方法包括:
[0100] 步骤100,用户在移动终端安装具有配置代理服务器功能的App,完成代理服务器的IP、端口设置等,代理协议采用HTTP代理,建立与代理服务器的连接。
[0101] 步骤101,用户交互模块收到用户移动终端的连接请求。
[0102] 步骤102,用户交互单元验证用户的身份信息,完成用户的注册。
[0103] 步骤103,用户向代理服务器发出下载应用的请求,启动应用管理模块,控制应用的下载。
[0104] 步骤104,加入DNS服务功能的代理服务器解析用户请求的域名并转发用户的请求,然后从网络上下载移动应用到代理服务器。
[0105] 步骤105,应用管理单元对下载的移动应用做检查,检查其是否符合标准的移动应用文件格式:Android系统为.apk文件,IOS系统为.ipa文件。同时计算该文件的MD5值。
[0106] 步骤106,静态检测模块对下载的移动应用做静态检测控制。
[0107] 步骤107,静态检测单元调用第三方的静态检测服务接口对下载的移动应用做静态检测。
[0108] 步骤108,写入该文件的MD5值到检测记录缓存区,若静态检测结果为恶意应用,则在MD5值后添加识别标签“1”,并删除掉原文件。
[0109] 步骤109,静态检测到该应用为恶意应用,则由消息推送单元向用户发出该应用为恶意应用的通知消息。
[0110] 步骤110,用户在移动终端上接收到代理服务器发出的恶意应用通知消息。
[0111] 步骤111,若静态检测结果为正常应用,则继续由动态检测模块负责对应用进行动态检测控制。
[0112] 步骤112,动态检测单元调用第三方动态检测服务接口对应用做动态检测。若动态检测结果为恶意应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签“1”,删除原文件,同时,经过消息推送单元向用户的终端发送恶意应用的通知消息,提示用户不要下载。若检测结果为正常应用,则将该应用的MD5值写入检测记录缓存区,并相应地添加识别标签“0”,同时,返回原文件的安装文件供用户下载。
[0113] 步骤113,用户成功下载经过静态和动态检测的应用,在安装应用时,移动终端应用App的应用安装记录功能对所安装的应用记录下其MD5值。
[0114] 步骤114,用户通过代理服务器接入网络,流量行为分析模块开始负责利用应用的流量特征进行恶意软件的检测,并上传移动终端App上应用安装记录上所记录的该应用对应的MD5值到流量检测模块。
[0115] 步骤115,流量行为分析模块使用流量行为分析单元进行检测,若检测结果为恶意应用,则修改检测记录缓存区中查找与该应用相同的MD5值的记录,若存在,则将其类别标签修改为恶意标签,即“1”,同时在消息推送单元向用户终端发出恶意应用的通知消息,应用管理单元同时完成终止该用户终端与外部网络的连接。若检测为正常应用,则用户可以正常使用。
[0116] 图2为新型代理服务器静态检测和动态检测流程图,如图2所示。该方法包括:
[0117] 步骤121,代理服务器解析用户的请求域名并转发用户下载移动应用请求,开始从网络上下载移动应用到本地代理服务器。
[0118] 步骤122,应用管理单元对下载的应用做过滤,只保留移动应用原文件的安装文件,并计算该文件的MD5值。
[0119] 步骤123,静态检测接口调用第三方静态检测引擎VirusTotal对移动应用进行静态检测。
[0120] 步骤124,若静态检测为恶意应用,则由用户交互模块负责通知用户检测到恶意应用的推送消息。
[0121] 步骤125,消息推送单元负责将恶意应用的检测结果推送到用户的移动终端。
[0122] 步骤126,写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”。
[0123] 步骤127,若静态检测为正常应用,则调用第三方动态检测服务TaintDroid,并利用第三方动态检测服务提供的接口对应用做动态检测。
[0124] 步骤128,若动态检测到该应用为恶意应用,则由用户通知模块负责通知用户检测到恶意应用的推送消息。推送消息单元将恶意应用的检测结果推送到用户终端。
[0125] 步骤129,写入该恶意应用的MD5值到检测记录缓存区,并相应的标记为恶意应用标识符“1”。
[0126] 步骤130,若动态检测结果为正常应用,则写入该应用的MD5值到检测记录缓存区,并相应的标记为正常应用标识符“0”。
[0127] 经过静态检测和动态检测之后,可以保证用户下载的应用软件基本上是安全的,同时,对每一次的检测,都会有检测记录,这样当再次下载该应用软件时,只需要查找检测记录中该应用的类别标识就可以判断该应用是否恶意,加快了用户的下载速度。
[0128] 图3为流量检测流程图,如图3所示,该方法包括:
[0129] 步骤141,用户安装下载的移动应用。
[0130] 步骤142,在用户安装所下载的移动应用的同时,移动终端App的安装记录功能记录下所安装的移动应用的MD5值。
[0131] 步骤143,用户运行所下载的移动应用,通过新型代理服务器接入网络,并将该应用的MD5值上传到流量行为分析模块。
[0132] 步骤144,流量行为分析单元接入流量行为分析模型服务,利用应用的网络流量进行检测。
[0133] 步骤145,若检测结果为恶意应用,则在检测记录缓存区内查找与该应用相匹配的MD5值,若存在,则修改该应用对应的类别标签,将“0”修改为“1”,即从正常应用修改为恶意应用。
[0134] 步骤146,消息推送单元向用户终端推送恶意应用的检测结果。
[0135] 步骤147,中断用户终端与外部网络的连接。
[0136] 步骤148,若检测为正常应用,则用户可以正常使用。
[0137] 流量检测为用户使用应用软件接入到网络时提供保护,当经过静态检测和动态检测的应用软件被用户安装到移动终端之后,流量检测为用户提供最后一道安全屏障。代理服务器上的流量行为分析模块通过接入流量行为分析服务,检测用户移动终端应用软件所产生的网络流量,若发现恶意流量,立即停止移动终端与外部网络之间的连接,同时修改检测记录缓存区中该应用的类别标识。
[0138] 图4为用户请求下载移动应用流程图,如图4所示。该方法包括:
[0139] 步骤151,用户使用移动终端向网络发起下载移动应用的请求。
[0140] 步骤152,代理服务器接收用户请求,解析用户请求的域名并转发请求。
[0141] 步骤153,代理服务器从网络上下载用户请求的应用到本地代理服务器。
[0142] 步骤154,计算所下载的应用的MD5值,并在检测记录缓存区中查询校验该应用的MD5值记录是否存在。
[0143] 步骤155,若查询对应的MD5值存在并且为正常应用,则把该应用返回给用户下载。
[0144] 图5为用户下载应用过程中对代理服务器中检测记录缓存区数据做查询匹配的处理流程图,是上述步骤154的细化,如图5所示。该方法包括:
[0145] 步骤161,在检测记录缓存区内查询与该应用相同的MD5值。
[0146] 步骤162,若该MD5值不存在,则开始对该应用进行静态检测和动态检测流程。
[0147] 步骤163,若该MD5值存在,则检查对应的类别标签是否是恶意,即是否为“1”。
[0148] 步骤164,若类别标签为“0”,即为正常应用,则返回供用户下载。
[0149] 步骤165,若类别标签为“1”,即为恶意应用,则通过消息推送单元给用户推送恶意检测结果的消息。
[0150] 其中,流量行为分析模块的工作流程是:
[0151] 从网络流量数据中提取出能够有效表征移动终端恶意软件网络行为的特征;
[0152] 按照不同的特征类型对提取的能够有效表征移动终端恶意软件网络行为的特征进行分类;
[0153] 对分类后的特征选择与之相适应的检测模型,每种类型的特征有与之对应的唯一的检测模型;
[0154] 每种类型的特征选择对应的检测模型并输出相应的检测结果。
[0155] 对特征进行分类时,分为规则类的特征、图类特征、数值型特征和标称型特征。
[0156] 对分类后的特征选择与之相适应的检测模型,对于规则类的特征,选择适应于基于规则的检测模型,对于图类的特征,选择适应于基于图相似的匹配模型,对于数值型特征和标称型特征,利用机器学习模型处理这些类型的数据。
[0157] 检测模型中的数据主要来自于移动终端恶意软件网络流量数据集制作方法及系统,该系统主要包括流量产生装置,流量采集装置以及代理防火墙保护装置:流量产生装置既有来自真实的移动终端软件所产生的网络流量,也包含来自移动终端模拟器上安装的移动应用所产生的网络流量;流量采集装置主要基于流量镜像技术,通过对流量的镜像将数据存入数据存储服务器上;代理防火墙保护装置保护由于安装恶意软件所带来的外部网络攻击的危害。存储到数据存储服务器上的流量数据被送入到检测模型服务器中,通过对流量数据的预处理以及特征提取,从而实现本发明所设计的一种基于移动终端网络流量检测恶意软件的方法。
[0158] 检测模型中的数据集获取及图类的网络行为重构图方法包括:
[0159] 1)移动终端恶意软件反编译。对大规模Android恶意软件的原文件,通过自动化脚本程序来控制执行反编译工具APKTool,可以得到所有恶意软件反编译后的文件。同时,在每个恶意软件样本反编译后的文件中,都有一个Android系统的配置文件AndroidManifest.xml。
[0160] 2)提取移动终端恶意软件自动安装和运行所需要的参数。对于每一个Android恶意软件,若反编译成功,都可以从它的AndroidManifest.xml文件中提取出该恶意软件的包名和主activity名,作为移动终端恶意软件自动安装和运行程序所需要的参数。对于反编译失败的恶意软件,则重复步骤1),重新选择新的反编译工具,直到反编译成功。
[0161] 3)移动终端恶意软件自动安装。通过Android平台提供的ADB调试命令,可以实现Android应用软件的安装。其中,Android应用软件的安装需要包名作为参数传入ADB。对于大规模移动终端恶意软件,将步骤2)得到的所有恶意软件的包名写入文本文件,每一行的内容为一个app的包名。ADB每次调用文本文件中一行,完成对一个恶意软件的自动化安装。ADB循环调用文本文件的每一行,依次实现对所有恶意软件的安装。
[0162] 4)移动终端恶意软件激活与运行。不同的Android恶意软件所依赖于的激活方式不尽相同,目前已知的激活方式主要包括移动终端操作系统重启、收发短信、接打电话、系统事件、电池电量状态、网络状态改变、USB接入。不同的激活方式所能激活的恶意软件的数量不等,据统计超过80%的Android恶意软件依赖手机操作系统的重启来实现激活。本发明依据各种激活方式所能激活的恶意软件数量排序设计了一种激活优先机制,即移动终端操作系统重启>系统事件>电池电量状态>收发短信>网络状态改变>USB接入>接打电话。若重启终端操作系统能够产生有效流量,则表明该恶意软件已被激活并运行,反之,则继续使用下一级别“系统事件”激活方式对恶意软件进行激活,以此类推,直到能够采集到有效网络流量为止。若使用所有的激活方式仍然没有采集到有效流量,则对该恶意软件的流量采集失败。
[0163] 5)移动终端恶意软件网络流量获取。在移动终端接入网络的路由器节点部署镜像端口,通过镜像端口可以把所有上、下行的移动终端网络流量镜像到数据存储服务器上。
[0164] 6)移动终端恶意目标列表建立。在数据存储服务器上,保存了移动终端恶意软件产生的所有网络交互流量。通过解析流量数据的DNS信息,可以得到关于恶意软件所有的DNS请求的目标域名,再将这些目标域名依次在VirusTotal上作恶意域名检测,若是恶意目标,则将该域名加入黑名单列表。
[0165] 7)移动终端恶意软件恶意行为流量分离。基于6)建立好的黑名单,根据流的五元组(即具有相同的源IP地址、目的IP地址、源端口号、目的端口号、协议号)构建网络数据流,然后在数据流中的HTTP数据包中提取相应的HOST字段(HOST字段是一段域名字符串),若该字段存在于6)建立的黑名单中,则认为该数据流为恶意软件网络行为流量,提取并保存,反之则忽略掉该数据流。依据该原则依次完成所采集到的所有数据流。这样分离出移动终端恶意软件与远程控制服务器之间或恶意服务器之间所产生的恶意交互流量。
[0166] 8)移动终端恶意软件网络行为交互时序图建立。在7)分离出恶意的网络数据流后,提取出相应的DNS数据包和HTTP数据包。首先,依次读取恶意的网络数据流中的每一个流,提取出流中的HTTP数据包,记录下HTTP数据包的发送时间和HTTP数据包中的HOST字段(这个字段记载着HTTP数据包传输的服务器域名);然后,根据HTTP数据包中HOST字段的域名,从原始网络流量数据包中提取出与HOST字段具有相同域名的DNS协议数据包,并记录下数据包的发送时间,以及DNS应答数据包中的CNAME内容和解析到的IP地址;最后,按照数据包的发送时间,构建从源IP地址到DNS以及向目标域名服务器发送HTTP数据包的网络交互时序图。
[0167] 9)移动终端恶意软件网络行为重构。在8)建立的网络交互时序图的基础上构建网络行为的重构图。首先,将源IP地址、目标服务器域名以及HTTP数据包定义为图的节点,将DNS应答数据包的内容定义为目标服务器域名节点的属性节点;其次,在图中用实线连接目标服务器域名节点与各个属性节点,用以表示目标服务器所相关的CNAME信息和解析到的IP地址信息;再次,用虚线连接HTTP数据包节点与目标服务器域名节点,用以表示向该目标服务器发送HTTP数据包的对应关系;然后,用实线连接源IP地址节点与目标服务器域名节点,表示从源IP地址向目标服务器发出的请求,并以目标服务器域名的请求次数作为该段实线的权重;最后,用实线连接源IP地址节点与HTTP数据包节点,表示从源IP地址向目标服务器发出的HTTP数据包,并以向目标服务器发出的HTTP数据包数量作为该段实线的权重。正常网络行为重构图及用户移动终端应用软件的网络行为重构图的做法与恶意网络行为重构图相同。
[0168] 检测模型中,对于规则类的特征进行检测时,采用的步骤为:
[0169] 1-1)基于采集的网络流量数据集,从中提取出所有的请求的域名;
[0170] 1-2)将提取到的请求的域名在第三方域名检测服务上做域名检测,建立恶意URL列表;
[0171] 1-3)把恶意URL列表上的恶意URL作为规则加入到规则匹配模型;
[0172] 1-4)用户终端接入网络后,通过对用户移动终端网络流量的采集,从采集到的网络流量中提取请求的域名,与规则匹配模板库中规则进行匹配,若发现有恶意请求的域名存在,规则匹配模型输出发现恶意软件的检测结果。
[0173] 对于图类特征进行检测时,采用的步骤为:
[0174] 2-1)在采集到的网络流量数据集中,按照五元组特征提取出恶意的网络行为数据流;其中,五元组特征是指具有相同的源IP,目的IP,源端口,目的端口和协议类型;
[0175] 2-2)基于恶意的网络行为数据流,构建恶意网络行为重构图;
[0176] 2-3)基于正常的网络行为数据流,构建正常网络行为重构图;
[0177] 2-4)获取用户移动终端应用软件所产生的网络流量,构建用户移动终端应用软件的网络行为重构图,分别计算其与恶意网络行为重构图的相似性和与正常网络行为重构图的相似度,若与前者的相似度大于后者的相似度,则说明该应用软件是恶意软件。
[0178] 更进一步的,对于数值型和标称型特征,基于机器学习的无监督学习和有监督学习建立检测模型,其中,无监督学习主要以聚类算法为主,有监督学习主要以分类算法为主,具体包括:
[0179] 3-1)在采集到的网络流量数据集中,提取出数值型特征和标称型特征,建立原始特征集;
[0180] 3-2)在原始特征集上移除类别标签(该类别标签用于区分该应用软件是否恶意,例如,对于恶意软件,该标签可以设置为“1”,对于正常软件,该标签可以设置为“0”),使用聚类算法,将具有相似特征的软件样本聚为一类,便于发现未知的恶意软件;
[0181] 3-3)对先发现的未知恶意软件,重新提取特征,加入到原始特征集中形成新的特征集;
[0182] 3-4)在加上类别标签的新特征集上使用分类算法,建立分类检测模型,便于提高准确度。
[0183] 实施例,以机器学习无监督学习算法的K均值方法对原始特征集进行聚类,具体方法为:
[0184] 4-1)输入要聚类的簇的个数为K;
[0185] 4-2)在原始特征集上随机初始化K个聚类中心;
[0186] 4-3)计算每个样本与K个聚类中心之间的距离,并将其分配到最近距离的类中;
[0187] 4-4)分配完毕后,计算新的类的中心;
[0188] 4-5)新的类的中心是否收敛,收敛条件设置为迭代次数;
[0189] 4-6)若迭代次数达到了设定的次数,则输出聚类结果;
[0190] 4-7)若迭代次数没有达到设定的次数则返回步骤4-3),直到达到设定的迭代次数。
[0191] 实施例,建立机器学习有监督学习算法的SVM模型,具体步骤为:
[0192] 5-1)在发现的新的未知恶意软件样本的基础上,加上类别标签形成新的特征集;
[0193] 5-2)在新特征集中,选取其中的部分数据作为训练集,另一部分数据作为测试集;
[0194] 5-3)对SVM模型的参数进行编码;
[0195] 5-4)初始化工作,完成对数据的预处理,模型参数的初始化;
[0196] 5-5)在训练集提取的网络流量特征集上训练SVM模型;
[0197] 5-6)用测试集评估模型的分类效果;
[0198] 5-7)评估分类效果是否满足结束条件;
[0199] 5-8)若已经达到结束条件,则获得了SVM模型的各个参数;
[0200] 5-9)由获取的参数得到SVM模型;
[0201] 5-10)若没有达到结束条件,则继续返回到步骤5-5),继续训练模型,直到满足结束条件为止。
[0202] 更进一步的,对于数值型和标称型进行检测时,采用的步骤为:
[0203] 3-1)在采集到的用户移动终端应用软件所产生的网络流量中,提取出数值型和标称型特征;
[0204] 3-2)对提取出的数值型特征和标称型特征进行归一化等预处理;
[0205] 3-3)将处理好的数值型特征和标称型特征输入到训练好的机器学习模型中,以上述获取到的SVM模型为例;
[0206] 3-4)根据输入的特征,使用SVM模型做检测。
[0207] 上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。