本发明涉及计算机技术领域,特别涉及一种针对应用软件检测安装捆绑行为的方法及装置。
背景技术
为了防止在本地计算机运行应用软件时不被非法侵害,在本地计算机中可以安装杀毒软件,诸如,欧艾斯设备设施管理服务有限公司(iss)提供的黑冰计算机防火墙(blackicepcprotection)、迈克菲公司提供的防毒杀毒软件(mcafeevirusscan)以及360公司提供的360安全卫士等。其中,issblackicepcprotection集成有非常强大的检测和分析引擎,可以识别200多种入侵技巧,进行全面网络检测及计算机系统防护,能即时监测网络端口和协议,拦截所有可疑的网络入侵。mcfeevirusscan提供完整的值得信赖的桌面环境的反病毒解决方案,能准确有效地清除软盘、互联网下载文件、电子邮件和各种压缩文件中可能存在病毒,其具有的功能有内存、文件和引导区病毒的检查和清除,实时扫描技术可以在后台监视操作系统的文件操作,在磁盘访问、文件复制、文件创建、文件改名、程序执行及系统启动时检查捆绑软件,进一步通过“有害程序控制功能”实现将不受欢迎的应用软件设置为有害应用软件,从而预先阻止捆绑安装。360安全卫士具有查杀木马、清理插件、修复漏洞、计算机体检、计算机救援、保护隐私、计算机专家、清理垃圾及清理痕迹等多种功能。
目前,针对应用软件检测安装捆绑行为可以采用上述所述的杀毒软件进行,捆绑安装软件行为指的是,在应用软件安装过程中,会安装一些其他的与应用软件执行无依赖关系的软件,这种行为称为捆绑安装行为。所述杀毒软件一般应用安全黑盒检测方法对应用软件的安装捆绑行为进行检测,具体过程为:步骤一,杀毒软件在目标计算机上建立网络代理,拦截计算机在运行软件时收发的数据,作为网络代理,杀毒软件安装在非目标计算机的另一计算机上,具有存储、拦截、修改和网络的安全套接层(ssl)的中介功能;步骤二,对计算机当前运行应用软件的文件系统进行快照,以对应用软件在安全分析过程期间创建了哪些文件;步骤三,根据快照,杀毒软件将对应的应用软件进行安装,可以通过官方市场下载安装,也可以通过其他的安装途径,该安装的应用软件可能为加密过的;步骤四,对安装的经过加密的应用软件进行解密,用以使得后续分析过程能进行;步骤五,再次对计算机当前运行应用软件的文件系统进行快照,从而获取在安装对应的应用软件过程中,增加了哪些文件;步骤六,采用分析引擎对安装的应用软件及增加的文件进行分析,从而确定应用软件在运行过程中是否存在安装捆绑行为。
可以看出,针对应用软件检测安装捆绑行为采用的是已有的杀毒软件,这会存在很多缺陷:
缺陷一,已有的杀毒软件更多是面向计算机中应用软件的安全性,而对于检测较为浅层,仅仅是通过分析引擎进行已安装应用软件的扫描及对比等方式进行,检测力度较低,检测的准确度及完成度都较差;
缺陷二,目前采用的是动态检测方式,这个动态检测过程依赖于对计算机系统的完全模拟或虚拟化技术来实现,但是在模拟过程中,对于检测应用软件的触发行为不彻底,或者对应用软件的子程序分析不足,导致检测结果不准确;
缺陷三,静态检测方法缺乏,已有的杀毒软件对应用软件的静态分析针对的是安全性,而对特定行为,例如安装捆绑行为则缺乏静态分析;
缺陷四,缺乏有针对性的检测流程,已有的杀毒软件都只是针对应用程序分别进行动态或静态分析,然后获取杀毒结果,这样都存在静态分析或动态分析的各种问题,其效果对于应用的安装捆绑行为检测分析效果不好。
综上,目前缺乏只针对应用软件安装捆绑行为的检测方案,无法保证检测的准确度及完成度,从而导致检测结果不准确。
技术实现要素:
本发明的一个实施例提供了一种针对应用软件检测安装捆绑行为的方法,该方法能够只针对应用软件安装捆绑行为的检测,保证检测的准确度及完成度,使得检测结果准确。
本发明另一个实施例提供了一种针对应用软件检测安装捆绑行为的装置,该装置能够只针对应用软件安装捆绑行为的检测,保证检测的准确度及完成度,使得检测结果准确。
本发明实施例是这样实现的:
一种针对应用软件检测安装捆绑行为的方法,设置快速分析引擎及动态沙箱引擎,该方法还包括:
a、所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果有,则确定应用软件有安装捆绑行为,否则,执行步骤b;
b、所述快速分析引擎在对应用软件进行查壳处理之后,采用设置的应用程序编程接口api规则库对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描,当其中的api符合设置的api规则库中设置的api规则时,确认有应用软件的安装捆绑行为;否则,确定应用软件没有安装捆绑行为。
步骤b所述快速分析引擎在对应用软件进行查壳处理是在步骤a执行的,或者在步骤b执行额。
所述快速分析引擎进行查壳处理为:扫描应用软件是否加壳,并指出加壳的类型。
所述对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描的过程为:
将所设置的api规则库中的api组合对应的api特征分别与得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行匹配,如果成功匹配,则确认有应用软件的安装捆绑行为。
所述api规则库更新。
步骤a所述动态沙箱引擎构造虚拟机环境的过程为:设置中央处理虚拟机及各客户端虚拟机,其中,
中央处理虚拟机对应用软件其中的多个样本进行分配,分配给各个客户端虚拟机执行,获取各个客户端得到的运行分析结果;
客户端虚拟机接受中央处理虚拟机的分配,运行得到的样本后得到运行分析结果,发送给中央处理虚拟机处理。
一种针对应用软件检测安装捆绑行为的装置,所述装置包括:设置引擎单元、应用软件获取单元、静态分析单元及动态分析单元,其中,
设置引擎单元,用于设置快速分析引擎及动态沙箱引擎;
应用软件获取单元,用于获取运行在计算机上的应用软件,发送给动态分析单元;
动态分析单元,用于所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果是,则确认应用软件存在捆绑安装行为;否则,将所述动态沙箱引擎确认应用软件不存在捆绑安装行为发送给静态分析单元;
静态分析单元,用于所述快速分析引擎对应用软件进行查壳处理,得到应用软件中的无壳样本及所有样本的释放中间文件,在所述动态沙箱引擎确认应用软件不存在捆绑安装行为时,由所述快速分析引擎采用设置的api规则库对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描,当其中的api符合设置的api规则库中设置的api规则时,确认有应用软件的安装捆绑行为;否则,确认应用软件不存在捆绑安装行为。
所述设置引擎单元,还用于设置的快速分析引擎还设置api规则库,所述api规则库中包括api组合及对应的api特征,且所述api规则库动态更新。
所述动态分析单元,还用于所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析过程中,所述虚拟机环境为:
设置中央处理虚拟机及各客户端虚拟机,其中,中央处理虚拟机,用于对应用软件其中的多个样本进行分配,分配给各个客户端虚拟机执行,获取各个客户端得到的运行分析结果等;客户端虚拟机,用于接受中央处理虚拟机的分配,运行得到的样本后得到运行分析结果,发送给中央处理虚拟机处理。
所述装置为运行应用程序的计算机的代理计算机。
如上可见,本发明实施例设置快速分析引擎及动态沙箱引擎,其中,动态沙箱引擎采用虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果有,则确认应用软件有安装捆绑行为;如果没有,再由所述快速分析引擎对应用软件进行查壳处理及获取到其中的无壳样本及所有样本释放的中间文件,进行应用程序编程接口(api)的扫描,根据扫描结果确定应用软件是否有安装捆绑行为。这样,本发明实施例提供的方法及装置只针对应用软件的安装捆绑行为的检测,保证检测的准确度及完成度,使得检测结果准确。
附图说明
图1为本发明实施例提供的一种针对应用软件检测安装捆绑行为的方法流程图;
图2为本发明实施例提供的动态沙箱引擎结构示意图;
图3为本发明实施例提供的一种针对应用软件检测安装捆绑行为的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
从背景技术可以看出,已有的杀毒软件对应用软件的安全性检测不仅仅只针对应用软件安装捆绑行为的检测,所以检测完善度低,存在广而浅的安全性检测缺陷。因此,动态沙箱引擎采用虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果有,则确认应用软件有安装捆绑行为;如果没有,再由所述快速分析引擎对应用软件进行查壳处理及获取到其中的无壳样本及所有样本释放的中间文件,进行api的扫描,根据扫描结果确定应用软件是否有安装捆绑行为。因此,本发明实施例提供的方法及装置只针对应用软件的安装捆绑行为的检测,保证检测的准确度及完成度,使得检测结果准确。
这样,本发明实施例就实现了针对应用软件的安装捆绑行为的自动化检测。
图1为本发明实施例提供的针对应用软件检测安装捆绑行为的方法流程图,设置快速分析引擎及动态沙箱引擎,其具体步骤为:
步骤101、所述快速分析引擎对应用软件进行查壳处理,得到应用软件中的无壳样本及所有样本的释放中间文件;
步骤102、所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果是,则执行步骤103;如果否,则执行步骤104;
步骤103、所述动态沙箱引擎确定应用软件有安装捆绑行为;
步骤104、所述快速分析引擎采用设置的api规则库对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描,当其中的api符合设置的api规则库中设置的api规则时,确认有应用软件的安装捆绑行为;否则,确定应用软件没有安装捆绑行为。
在该方法中,步骤101中的所述快速分析引擎对应用软件进行查壳处理,得到应用软件中的无壳样本及所有样本的释放中间文件可以在步骤103之后进行,与步骤102~步骤103之间并没有先后次序。
在该方法中,所述快速分析引擎是针对应用软件是否具有安装捆绑行为的静态检测,而所述动态沙箱引擎是对应用软件是否具有安装捆绑行为的动态检测。
在该方法中,所述样本为应用软件中的可执行文件集合,在大多数情况下是.exe后缀的文件。
在该方法中,所述快速分析引擎可以采用clamav杀毒软件形成。clamav是一款由sourcefire组织开发的开源杀毒引擎,sourcefire同时也是snort入侵检测引擎的所有者。clamav提供了一种更为快速灵活的框架用以检测恶意代码和软件产品,可作为现有台式机、文件服务器、邮件服务器以及其他需要杀毒扫描软件场景中杀毒扫描软件的补充工具或替代产品。
在该方法中,所述快速分析引擎进行查壳处理为:扫描应用软件是否加壳,并指出加壳的类型。在一些应用软件有一段专门负责保护软件不被非法修改或反编译的程序,一般都是先于应用软件运行,拿到控制权,然后完成它们保护软件的任务。所述快速分析引擎的查壳处理基于设置的一段python程序,特征基于可移植可执行程序(peid)的dll库。
在该方法中,所述快速分析引擎设置的api规则库可以采用clamav杀毒软件形成。由于clamab可以自定义规则库的特征,所以采用clamav杀毒软件设置api规则库,该api规则库中具有api组合及对应的api特征,该api特征可以是api特殊字段等。针对应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描。
在该方法中,所述快速分析引擎设置的api规则库可以更新,在后续的扫描中,可以对应用程序进行具体分析,从而更加完善地建立api规则库。
在该方法中,所述对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描的过程为:
将所设置的api规则库中的api组合对应的api特征分别与得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行匹配,如果成功匹配,则确认有应用软件的安装捆绑行为。在后续,可以将匹配成功的api特征对应的api组合返回给设置的上层调度平台,从而使得调度员知晓;否则,返回空值。
本发明实施例在所述快速分析引擎实现对于查壳程序的开发及对捆绑安装的api组合的判断。
在该方法中,所述动态沙箱引擎采用开源的cuckoosandbox作为基础,对沙箱进行深度定制,具有管理应用软件的各个样本的分析工作,如启动分析工作、行为dump以及生成报告等,完成对应用软件的安装捆绑行为的分析及向所设置的调度平台上报运行分析结果等功能。所述动态沙箱引擎构造虚拟机环境,就是采用多个虚拟机处理,每个虚拟及都是一个相对独立干净的执行环境,能安全隔离各个样本的运行分析。
当样本在动态沙箱引擎中进行运行时,会触发自己的一些行为。而在该方法中,侧重的是对捆绑安装软件行为进行分析。
在该方法中,如图2所示,图2为本发明实施例提供的动态沙箱引擎结构示意图,如图所示,所述动态沙箱引擎构造虚拟机环境的过程为:设置中央处理虚拟机及各客户端虚拟机,其中,中央处理虚拟机,用于对应用软件其中的多个样本进行分配,分配给各个客户端虚拟机执行,获取各个客户端得到的运行分析结果等;客户端虚拟机,用于接受中央处理虚拟机的分配,运行得到的样本后得到运行分析结果,发送给中央处理虚拟机处理。
在这里,中央处理虚拟机可以称为hostmachine,负载分配管理各个样本的运行分析,如启动运行分析、行为转储(dump)及生成报告等;客户端虚拟机可以称为guestmachine,主要完成对所分配样本的运行分析及向中央处理虚拟机上报运行分析结果等、每个客户端虚拟机都是一个相对独立干净的执行环境,能安全隔离各个样本的执行分析。
在图2中,guestmachine对样本运行分析包括:对其中的静态数据及文件行为分析、运行截图分析、api分析后得到验证静态分析结果、tcpdump截获分析网络行为,以及进行内存镜像进行内存分析。
这样,由于开源沙箱本身对于可执行文件的行为分析比较浅显,且对中文的应用软件支持非常不好,而采用所设置的动态沙箱引擎对沙箱进行定制,如果检测的是一个安装包,则会释放出的可执行文件在进行深度分析,这样检测比较全面。比如,有些应用软件是在卸载过程中捆绑安装软件,有些是在执行主程序的时候进行捆绑安装软件包的执行。
图3为本发明实施例提供的针对应用软件检测安装捆绑行为的装置结构示意图,如图所示,包括:设置引擎单元、应用软件获取单元、静态分析单元及动态分析单元,其中,
设置引擎单元,用于设置快速分析引擎及动态沙箱引擎;
应用软件获取单元,用于获取运行在计算机上的应用软件,发送给动态分析单元;
动态分析单元,用于所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析,根据运行分析结果确定是否有安装捆绑行为,如果是,则确认应用软件存在捆绑安装行为;否则,将所述动态沙箱引擎确认应用软件不存在捆绑安装行为发送给静态分析单元;
静态分析单元,用于所述快速分析引擎对应用软件进行查壳处理,得到应用软件中的无壳样本及所有样本的释放中间文件,在所述动态沙箱引擎确认应用软件不存在捆绑安装行为时,由所述快速分析引擎采用设置的api规则库对得到应用软件中的无壳样本的api及所有样本的释放中间文件的api进行扫描,当其中的api符合设置的api规则库中设置的api规则时,确认有应用软件的安装捆绑行为;否则,确认应用软件不存在捆绑安装行为。
其中,所述设置引擎单元,还用于设置的快速分析引擎还设置api规则库,所述api规则库中包括api组合及对应的特征,且所述api规则库动态更新。
其中,所述动态分析单元,还用于所述动态沙箱引擎构造虚拟机环境对应用软件其中的多个样本运行分析中,所述虚拟机环境为:
设置中央处理虚拟机及各客户端虚拟机,其中,中央处理虚拟机,用于对应用软件其中的多个样本进行分配,分配给各个客户端虚拟机执行,获取各个客户端得到的运行分析结果等;客户端虚拟机,用于接受中央处理虚拟机的分配,运行得到的样本后得到运行分析结果,发送给中央处理虚拟机处理。
本发明实施例设置的装置不安装在运行应用程序的计算机,而是安装在其他计算机,作为运行应用程序的计算机的代理计算机,实现针对应用程序的捆绑安装软件行为的动态分析及静态分析。
本发明实施例为用户提供安心便利的使用体检,可以在应用软件发布前或在计算机运行应用软件之前对其进行捆绑安装软件行为的监测,检测同时包括了应用软件的查壳快速分析、api分析及动态沙箱分析。其中api分析及动态沙箱之间的互补,保证了检测的误报率和漏报率都很低。
可以看出,本发明实施例是针对应用软件的捆绑安装软件行为的检测,有以下优点:
1)检测细化
在对计算机应用的环保性进行分析后,本发明实施例确认应用软件的捆绑安装行为检测作为环保性检测的侧重点,而在捆绑安装行为检测方面,则将动态沙箱引擎的检测作为侧重点。这相对采用背景技术的杀毒软件无法满足捆绑安装行为的检测深度,本发明实施例则采用在动态沙箱引擎进行动态检测的基础上,采用快速分析引擎进行静态检测,细化及深化。
2)对应用程序的样本释放中间文件的动态检测
背景技术已有的静态软件检测手段只能确定应用软件的附加数据中是否含有附加绑定安装软件表,而动态分析手段又不能对应用软件的执行路径完整遍历。而采用本发明实施例,为了提高对应用软件捆绑安装软件行为的检测准确性,采用了静态检测和动态检测相结合的检测方法,并对动态执行过程中释放的中间文件进行循环检测,同时对卸载应用软件的过程也加以防范,诸如此类行为,可以使得应用软件捆绑安装行为的检测更为细致。
3)检测流程
背景技术的检测很多都是分别进行动态分析和静态风险,并将二者的结果进行综合,没有一定的检测流程,浪费资源。而采用本发明实施例提供的检测,首先确定应用软件是否加壳,是否加壳是通过快速分析引擎的查壳分析,可以很快地得到应用软件的加壳情况。其次,确定应用软件在实际安装执行过程中是否有捆绑安装行为,主要是在安装过程中、程序执行期间和卸载过程中等,如果有,则直接确定有捆绑安装行为;否则,再进一步进行静态api组合分析,从而最终确定是否有捆绑安装行为。与背景技术的杀毒软件相比,数据覆盖度更高,误报漏报率更低。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。