一种用于手机病毒判定与过滤的方法转让专利

申请号 : CN201611002131.9

文献号 : CN106529294B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄宏昌罗剑华刘小坤吴林辉陈海建蔡晓光朱煜家陈清董森涛王汉威罗俊

申请人 : 广东华仝九方科技有限公司

摘要 :

本发明涉及手机病毒研判分析、查杀技术领域,具体涉及一种用于手机病毒判定与过滤的方法,步骤一:建立软件体系结构;步骤二:软件功能结构分析如下;步骤三:软件引擎技术建立:1)建立技术框架:2)通过引擎技术实现对具有代码特征的手机病毒体判定与过滤的分析,主要由文件解析引擎,反编译引擎,代码行为分析引擎和智能联合分析引擎组成;它采用实时监控和主动防御技术需要软件安装到用户手机,从传播数量巨大的手机软件中自动筛选出危害度高的软件,极大提高病毒分析效率,以及有效提高疑似手机软件的分析效率和分析准确率,可以迅速更新手机病毒库供网络侦查和终端查杀使用,控制病毒的传播。

权利要求 :

1.一种用于手机病毒判定与过滤的方法,其特征在于:步骤一:建立软件体系结构:

1)软件体系由表面层、业务层和后台引擎组成;

2)表面层包括可疑扫描阶段、源码查看阶段、运行日志阶段;

3)业务层包括手机软件扫描、规则库管理、日志管理和源码数据;

4)后台引擎包括文件解析引擎、反编译引擎、代码分析引擎、智能联合分析引擎;

步骤二:软件功能结构分析如下:

1)手机软件APP包括文件解析模块、反编译模块、代码行为分析模块;

其中:文件解析模块包括apk解析、sis解析以及其他格式解析;反编译模块包括dex反编译、e32反编译、so和dll反编译;代码行为分析模块包括可疑代码定位、可疑代码扫描;

2)文件解析模块通过特征扫描、反编译模块通过启发式扫描、代码行为分析模块通过行为扫描,与智能联合分析引擎进行数据交换,进行联合分析计算,得到威胁度和结论;

步骤三:软件引擎技术建立:

1)建立技术框架:

a.参照sis安装包和apk安装包格式标准,编写解压算法,进行解压,提取exe,dll和dex文件,根据编译原理和脱壳技术编写反编译解压算法,获得汇编源码与java源码;

b.通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动;

c.扫描程序源代码文件:获取具有破坏性的操作函数,如删除短信,删除文件,删除通信录操作;静默安装的函数信息和静默卸载的函数信息;删除通讯录的函数信息;删除本机文件的函数信息,分析是否具有界面函数,网址URL,短信发送手机号码,sp号码信息;

d.根据步骤a、步骤b、步骤c分析得到的软件的启动信息,配置信息和源代码文件本身包含的行为信息进行联合分析,对该软件进行危害度标识,输出其中的有用信息,并确定需要人工确认处理的优先级别;

2)通过引擎技术实现对具有代码特征的手机病毒体判定与过滤的分析,主要由文件解析引擎,反编译引擎,代码行为分析引擎和智能联合分析引擎组成;

a.文件解析引擎:

第一步:自动识别手机软件文件格式和平台,编写相应解压算法,获取可执行文件,代码的签名特征,权限特征,和可疑文件;

第二步:通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动,将结果提交给只能联合分析引擎,同时将可执行文件和可疑文件提交给反编译引擎进一步分析;

b.反编译引擎:

第一步:对于不同平台和不同格式的手机文件,采用相应的反编译算法,还原程序,获取特定字符串、二进制串或者是代码串,采用SCANNER技术过滤病毒体;特定字符串为针对手机软件,偏向于特定的http地址,手机号码,sp号码的字符串;

第二步:根据第一步将结果提交给联合分析引擎;同时提交反编译出的源码给代码行为分析引擎进一步分析;

c.代码行为分析引擎:

第一步:对于反编译得到的程序源文件进行扫描分析,获取短信行为,网络行为,删除文件疑似异常行为的函数,筛选出疑似的手机恶意软件;

第二步:恶意吸费和删除10086短信的软件,将结果提交给智能联合分析引擎;

d.智能联合分析引擎:

第一步:针对手机的八大类恶意行为:恶意扣费,诱骗欺诈,资费消耗,隐私窃取,系统破坏,远程控制,流氓行为,恶意传播;

第二步:建立恶意软件异常特征集,同时结合文件解析引擎、反编译引擎、代码行为分析引擎、智能联合分析引擎提供的数据,计算手机软件的威胁程度,给出手机文件扫描的结构描述,分类保存可疑数据;

e.规则库管理:

第一步:对手机应用包进行扫描分析时,需要提供特定的规则库匹配扫描;比如文件解析引擎获取作者的签名证书,但该签名是否合法,除采用常规的证书规范性验证,还需要判断更改签名的作者是否来自于合法厂商,有无制造恶意软件记录;

第二步:扫描病毒时,需要病毒的特征库进行匹配;行为分析时需要行为规则库;

f.结果记录:

第一步:处理完手机应用软件后会有数据展现和相应的处理结果;即前台展现的数据和后台分类保存的数据;

第二步:后台数据包含两部分:文件信息,采用数据库方式保存;手机应用分类,自动将可疑的文件进行分类保存。

说明书 :

一种用于手机病毒判定与过滤的方法

【技术领域】

[0001] 本发明涉及手机病毒研判分析,查杀技术领域,具体涉及一种用于手机病毒判定与过滤的方法。【背景技术】
[0002] 移动网络作为一种便捷的通信方式已经渗透到人们工作和生活的各个领域,成为互联网的一项重要的信息传播途径,人们方便的利用移动网络在任意时间和地点下载自己所需的手机软件和应用,但也便利了手机病毒的传播。
[0003] 手机病毒给用户和社会带来了很大的负面影响。手机软件数量巨大,纷繁复杂,如何从数量巨大的未知手机软件中判定手机病毒和初步筛选出危害度高的软件包进行人工分析是一项十分必要的工作。
[0004] 目前对于手机病毒的过滤和判定方式主要有以下两种。
[0005] 1、采用实时监控和主动防御技术,将手机软件文件安装到用户手机,通过监控该软件的进程,获取其行为动向,如发现该软件有恶意的行为,包括恶意扣费,资费消耗,隐私窃取和系统破坏,则判断为威胁软件,再进一步人工分析是否为病毒。上述方式存在的问题是:不同的应用程序需要在不同的手机上安装,且需要较长时间监控手机软件的运行,难于监控间歇性发作的病毒,无法应对大量的手机软件扫描过滤要求,也无法迅速诊断出病毒的行为结果。
[0006] 2、用每一种病毒体含有的特定字符串、二进制串或者是代码串,对手机文件进行检测扫描,如果被检测文件匹配成功,就表明该文件代表或包含这类病毒。一般将这种按搜索工作的病毒扫描方法叫做SCANNER,该方法分成两个部分:一部分是病毒库,含有特定的字符串、二进制串或代码串,另一部分是利用该病毒库进行扫描的扫描程序。显然病毒库越多,能发现的病毒越多。
[0007] 为了从数量巨大的未知手机软件中判定手机病毒和初步筛选出危害度高的软件包进行人工分析是一项十分必要的工作。【发明内容】
[0008] 本发明的目的在于针对现有技术的缺陷和不足,提供一种结构简单,设计合理、使用方便的一种用于手机病毒判定与过滤的方法,它采用实时监控和主动防御技术需要软件安装到用户手机,从传播数量巨大的手机软件中自动筛选出危害度高的软件,极大提高病毒分析效率,以及有效提高疑似手机软件的分析效率和分析准确率,可以迅速更新手机病毒库供网络侦查和终端查杀使用,控制病毒的传播。
[0009] 本发明所述的一种用于手机病毒判定与过滤的方法,它采用如下的技术方案:
[0010] 步骤一:建立软件体系结构:
[0011] 1)软件体系由表面层、业务层和后台引擎组成;
[0012] 2)表面层包括可疑扫描阶段、源码查看阶段、运行日志阶段;
[0013] 3)业务层包括手机软件扫描、规则库管理、日志管理和源码数据;
[0014] 4)后台引擎包括文件解析引擎、反编译引擎、代码分析引擎、智能联合分析引擎;
[0015] 步骤二:软件功能结构分析如下:
[0016] 2)手机软件APP包括文件解析模块、反编译模块、代码行为分析模块;
[0017] 其中:文件解析模块包括apk解析、sis解析以及其他格式解析;
[0018] 反编译模块包括dex反编译、e32反编译、so和dll反编译;
[0019] 代码行为分析模块包括可疑代码定位、可疑代码扫描;
[0020] 2)文件解析模块通过特征扫描、反编译模块通过启发式扫描、代码行为分析模块通过行为扫描,与智能联合分析引擎进行数据交换,进行联合分析计算,得到威胁度和结论;
[0021] 步骤三:软件引擎技术建立:
[0022] 1)建立技术框架:
[0023] a.参照sis安装包和apk安装包格式标准,编写解压算法,进行解压,提取exe,dll和dex文件,根据编译原理和脱壳技术编写反编译解压算法,获得汇编源码与java源码;
[0024] b.通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动;
[0025] c.扫描程序源代码文件:获取具有破坏性的操作函数,如删除短信,删除文件,删除通信录操作;静默安装的函数信息和静默卸载的函数信息;删除通讯录的函数信息;删除本机文件的函数信息,分析是否具有界面函数,网址URL,短信发送手机号码,sp号码信息;
[0026] d.根据步骤a、步骤b、步骤c分析得到的软件的启动信息,配置信息和源代码文件本身包含的行为信息进行联合分析,对该软件进行危害度标识,输出其中的有用信息,并确定需要人工确认处理的优先级别;
[0027] 2)通过引擎技术实现对具有代码特征的手机病毒体判定与过滤的分析,主要由文件解析引擎,反编译引擎,代码行为分析引擎和智能联合分析引擎组成;
[0028] a.文件解析引擎:
[0029] 第一步:自动识别手机软件文件格式和平台,编写相应解压算法,获取可执行文件,代码的签名特征,权限特征,和可疑文件;
[0030] 第二步:通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动,将结果提交给只能联合分析引擎,同时将可执行文件和可疑文件提交给反编译引擎进一步分析;
[0031] b.反编译引擎:
[0032] 第一步:对于不同平台和不同格式的手机文件,采用相应的反编译算法,还原程序,获取特定字符串、二进制串或者是代码串,采用SCANNER技术过滤病毒体;特定字符串为针对手机软件,偏向于特定的http地址,手机号码,sp号码的字符串;
[0033] 第二步:根据第一步将结果提交给联合分析引擎;同时提交反编译出的源码给代码行为分析引擎进一步分析;
[0034] c.代码行为分析引擎:
[0035] 第一步:对于反编译得到的程序源文件进行扫描分析,获取短信行为,网络行为,删除文件疑似异常行为的函数,筛选出疑似的手机恶意软件;
[0036] 第二步:恶意吸费和删除10086短信的软件,将结果提交给智能联合分析引擎;
[0037] d.智能联合分析引擎:
[0038] 第一步:针对手机的八大类恶意行为:恶意扣费,诱骗欺诈,资费消耗,隐私窃取,系统破坏,远程控制,流氓行为,恶意传播;
[0039] 第二步:建立恶意软件异常特征集,同时结合文件解析引擎、反编译引擎、代码行为分析引擎、智能联合分析引擎提供的数据,计算手机软件的威胁程度,给出手机文件扫描的结构描述,分类保存可疑数据;
[0040] e.规则库管理:
[0041] 第一步:对手机应用包进行扫描分析时,需要提供特定的规则库匹配扫描;比如文件解析引擎获取作者的签名证书,但该签名是否合法,除采用常规的证书规范性验证,还需要判断更改签名的作者是否来自于合法厂商,有无制造恶意软件记录;
[0042] 第二步:扫描病毒时,需要病毒的特征库进行匹配;行为分析时需要行为规则库;
[0043] f.结果记录:
[0044] 第一步:处理完手机应用软件后会有数据展现和相应的处理结果;即前台展现的数据和后台分类保存的数据;
[0045] 第二步:后台数据包含两部分:文件信息,采用数据库方式保存;手机应用分类,自动将可疑的文件进行分类保存。
[0046] 本发明有益效果为:本发明所述的一种用于手机病毒判定与过滤的方法,它采用实时监控和主动防御技术需要软件安装到用户手机,从传播数量巨大的手机软件中自动筛选出危害度高的软件,极大提高病毒分析效率,以及有效提高疑似手机软件的分析效率和分析准确率,可以迅速更新手机病毒库供网络侦查和终端查杀使用,控制病毒的传播。【附图说明】
[0047] 此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
[0048] 图1是本发明技术框架结构示意图;
[0049] 图2是本发明基于代码特征的手机病毒体判定与过滤的技术的系统示意图[0050] 图3是本发明中的文件解析内容展示图;
[0051] 图4是本发明中的反编译数据展示图;
[0052] 图5是本发明中的行为分析展示图;
[0053] 图6是本发明中的智能分析展示图;
[0054] 图7是本发明中的规则库管理展示图;
[0055] 图8是本发明中的文件信息采用数据库方式的保存图;
[0056] 图9是本发明中的对于手机应用分类,对可疑文件进行分类保存图;
[0057] 图10是本发明中的可疑扫描界面图;
[0058] 图11是本发明中的dex查看界面中四个tab界面图;
[0059] 图12是本发明中的日志界面图;
[0060] 图13是本发明中的扫描输出图;
[0061] 图14是本发明中的行为界面图;
[0062] 图15是本发明中的行为位置图;
[0063] 图16是本发明中的dex查看界面图;
[0064] 图17是本发明中的dex查看成员和方法显示图;
[0065] 图18是本发明中的将运行情况输出到日志界面的图。【具体实施方式】
[0066] 下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
[0067] 本具体实施方式所述的一种用于手机病毒判定与过滤的方法,它采用如下的技术方案:
[0068] 步骤一:建立软件体系结构:
[0069] 1)软件体系由表面层、业务层和后台引擎组成;
[0070] 2)表面层包括可疑扫描阶段、源码查看阶段、运行日志阶段;
[0071] 3)业务层包括手机软件扫描、规则库管理、日志管理和源码数据;
[0072] 4)后台引擎包括文件解析引擎、反编译引擎、代码分析引擎、智能联合分析引擎;
[0073] 步骤二:软件功能结构分析如下:
[0074] 1)手机软件APP包括文件解析模块、反编译模块、代码行为分析模块;其中:文件解析模块包括apk解析、sis解析以及其他格式解析;
[0075] 反编译模块包括dex反编译、e32反编译、so和dll反编译;
[0076] 代码行为分析模块包括可疑代码定位、可疑代码扫描;
[0077] 2)文件解析模块通过特征扫描、反编译模块通过启发式扫描、代码行为分析模块通过行为扫描,与智能联合分析模块进行数据交换,进行联合分析计算,得到威胁度和结论;
[0078] 步骤三:软件引擎技术建立:
[0079] 1)建立技术框架:(如图1所示)
[0080] a.参照sis安装包和apk安装包格式标准,编写解压算法,进行解压,提取exe,dll和dex文件,根据编译原理和脱壳技术编写反编译解压算法,获得汇编源码与java源码。
[0081] b.通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动;
[0082] c.扫描程序源代码文件:获取具有破坏性的操作函数,如删除短信,删除文件,删除通信录操作;静默安装的函数信息和静默卸载的函数信息;删除通讯录的函数信息;删除本机文件的函数信息,分析是否具有界面函数,网址URL,短信发送手机号码,sp号码信息。
[0083] d.根据步骤a、步骤b、步骤c分析得到的软件的启动信息,配置信息和源代码文件本身包含的行为信息进行联合分析,对该软件进行危害度标识,输出其中的有用信息,并确定需要人工确认处理的优先级别;
[0084] 2)通过引擎技术实现对具有代码特征的手机病毒体判定与过滤的分析,主要由文件解析引擎,反编译引擎,代码行为分析引擎和智能联合分析引擎组成;(如图2所示)[0085] a.文件解析引擎:(如图3所示)
[0086] 第一步:自动识别手机软件文件格式和平台,编写相应解压算法,获取可执行文件,代码的签名特征,权限特征,和可疑文件;
[0087] 第二步:通过对sis包的pkg文件或者apk包的AndroidManifest.xml配置文件进行预处理分析,准确获取exe的启动情况:正常启动,安装后启动,开机启动,将结果提交给只能联合分析引擎,同时将可执行文件和可疑文件提交给反编译引擎进一步分析;
[0088] b.反编译引擎:(如图4所示)
[0089] 第一步:对于不同平台和不同格式的手机文件,采用相应的反编译算法,还原程序,获取特定字符串(针对手机软件,偏向于特定的http地址,手机号码,sp号码)、二进制串或者是代码串,采用SCANNER技术过滤病毒体;
[0090] 第二步:根据第一步将结果提交给联合分析引擎。同时提交反编译出的源码给代码行为分析引擎进一步分析;
[0091] c.代码行为分析引擎:(如图5所示)
[0092] 第一步:对于反编译得到的程序源文件进行扫描分析,获取短信行为,网络行为,删除文件疑似异常行为的函数,筛选出疑似的手机恶意软件;
[0093] 第二步:恶意吸费和删除10086短信的软件,将结果提交给智能联合分析引擎;
[0094] d.智能联合分析引擎:(如图6所示)
[0095] 第一步:针对手机的八大类恶意行为:恶意扣费,诱骗欺诈,资费消耗,隐私窃取,系统破坏,远程控制,流氓行为,恶意传播;
[0096] 第二步:建立恶意软件异常特征集,同时结合文件解析引擎、反编译引擎、代码行为分析引擎、智能联合分析引擎提供的数据,计算手机软件的威胁程度,给出手机文件扫描的结构描述,分类保存可疑数据;
[0097] e.规则库管理:(如图7所示)
[0098] 第一步:对手机应用包进行扫描分析时,需要提供特定的规则库匹配扫描。比如文件解析引擎获取作者的签名证书,但该签名是否合法,除采用常规的证书规范性验证,还需要判断更改签名的作者是否来自于合法厂商,有无制造恶意软件记录;
[0099] 第二步:扫描病毒时,需要病毒的特征库进行匹配;行为分析时需要行为规则库;
[0100] f.结果记录:
[0101] 第一步:处理完手机应用软件后会有数据展现和相应的处理结果。即前台展现的数据和后台分类保存的数据。
[0102] 第二步:后台数据包含两部分:文件信息,采用数据库方式保存(如图8所示);手机应用分类,自动将可疑的文件进行分类保存(如图9所示)。
[0103] 本发明采用软件工具作为过滤工具来处理判定手机病毒:
[0104] 1)本过滤工具软件界面:(如图10-12所示)
[0105] 包含有可疑扫描、dex文件查看和日志三大功能。可疑扫描界面中包含有扫描目录和开始扫描两个按钮,扫描结果和选择行为两个tab界面,扫描结果界面还包含可以按照危害级、文件名称和程序名称来排序的排序功能;
[0106] 本发明所述的一种用于手机病毒判定与过滤的方法,它采用实时监控和主动防御技术需要软件安装到用户手机,从传播数量巨大的手机软件中自动筛选出危害度高的软件,极大提高病毒分析效率,以及有效提高疑似手机软件的分析效率和分析准确率,可以迅速更新手机病毒库供网络侦查和终端查杀使用,控制病毒的传播。
[0107] 其他图10中,Dex查看界面包含4个tab界面,分别为:代码、字符表、辅助和网址特征。
[0108] 2)可疑扫描原理及界面:
[0109] 该软件是塞班和安卓联合分析的成果,塞班的扫描原理跟开题报告类似,主要是对sis/sisx包的文件格式进行解析,解析其中pkg数据,分析软件包的启动信息,配置信息,权限信息,获取其中的文件名、包名、程序名、行为信息。安卓的扫描原理也是跟开题报告类似,主要是对apk包中的AndroidManifest和dex文件进行解析,分析软件包的启动信息,配置信息,权限信息,分析获取其字符串,并获取文件名、包名、程序名、行为信息。
[0110] 扫描结果界面内每一条记录都包含有包的绝对路径、威胁度和程序名,点击其中一条记录(如第二条),在下方的区域中会显示该记录的详细信息,有文件名、包名、程序名、行为、威胁度、结论、描述和怀疑关联病毒这几个,其中:
[0111] a)文件名:手机应用的绝对路径
[0112] b)包名:手机应用的包名
[0113] c)程序名:手机应用的程序名称
[0114] d)行为:手机应用所拥有的行为,如该包的行为有获取用户软件安装列表,删除文件,联网,获取用户GPS信息,获取用户imei,获取用户imsi,获取用户地理位置,获取用户手机号。
[0115] e)威胁度为手机应用的危害程度,威胁度以80,60两个临界点来作为判断依据,大于80的为重度威胁,小于80而大于60的为中度威胁,小于60的为轻度威胁,该包的威胁度为99,属于重度威胁。
[0116] f)结论为该手机应用的威胁度的描述,有重度威胁、中度威胁和轻度威胁。
[0117] g)描述为对该手机应用的可疑描述,如果有关联病毒,会有相应显示,如该包的关联病毒为a.expense.nl.a(14).apk,这款软件可以已被修改,发现该款软件的签名作者曾经制造过上述关联病毒,且威胁系数极高,建议删除此款软件,请使用官方版的软件。
[0118] 排序功能根据扫描出来的结果按照危害级、文件名称和程序名称降序排列,实现了对所有行为进行自动评估并进行软件危害度标识的排序,得到需要进一步处理的优先级。
[0119] 该软件扫描后,把扫描出来的包根据软件危害类型将其输出到F盘的out文件夹下,并将结果分为特征可疑、行为可疑和证书可疑,其中每一种类型之中又根据危害度级不同分为了重度威胁、中度威胁和轻度威胁;如图13所示;
[0120] 8)选择行为界面:(如图14所示)
[0121] 在选择行为界面中,有几十种可疑行为可供选择
[0122] 9)行为位置界面说明:(如图15所示)
[0123] 双击扫描结果的文件列,或行为选择的文件,即会将可疑代码打印出来。
[0124] 3)dex查看:(如图16所示)
[0125] 双击可疑扫描界面中扫描结果的某个文件,或者将apk包拖进左上框中再选中,即可在下面的四个tab中显示相应结果。点击文件夹下的每一个文件,在右边的框会有对应的成员和方法显示,如图17所示;
[0126] 4)日志
[0127] 日志界面如图18所示:将运行的情况输出到日志界面上。
[0128] 5)处理完手机应用软件后会有数据展现和相应的处理结果。即前台展现的数据和后台分类保存的数据。
[0129] 以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的效变化或修饰,均包括于本发明专利申请范围内。