病毒分析环境搭建方法及装置与流程

文档序号:12063446阅读:319来源:国知局
病毒分析环境搭建方法及装置与流程
本发明涉及数据安全
技术领域
,特别涉及一种病毒分析环境搭建方法及装置。
背景技术
:安卓(Android)系统是一种基于Linux的自由且开放源代码的操作系统,由于其具备自由及开放性等特点,因此得到了广大用户和开发者的青睐。但随之而来的病毒入侵事件也使得各个机构、企事业单位以及个人受到了不同程度的侵害,比如用户个人隐私泄露、银行卡被盗刷等等。为了降低由安卓病毒引发的恶意事件的出现概率,时下一部分互联网公司搭建了病毒分析环境,用户在上传可能植入病毒的样本数据后,病毒分析环境可以对该样本数据的行为给出详细的安全分析报告,从而帮助用户便捷地识别恶意文件。目前主流的病毒分析环境是由安卓SDK(SoftwareDevelopmentKit,软件开发工具包)自带的原生模拟器搭建。如图1所示,原生模拟器的运行基于ARM(AdvancedRISCMachines,RISC微处理器)指令环境,直接运行在物理机操作系统上。原生模拟器在对样本数据进行分析得到行为日志后,辅助用户根据该行为日志对该样本数据进行是否为恶意文件的判定。之后,原生模拟器进行镜像重启恢复病毒分析环境,以便重复使用。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:原生模拟器的运行基于ARM指令环境,而时下服务器物理环境多为x86环境,因此在搭建病毒分析环境时需要进行指令转换,导致该类模拟器的运行速度较慢,占用系统资源较多,且最多支持同时运行16个原生模拟器,系统的吞吐量较小。技术实现要素:为了解决现有技术的问题,本发明实施例提供了一种病毒分析环境搭建方法及装置。所述技术方案如下:一方面,提供了一种一种病毒分析环境搭建方法,所述方法包括:初始化Androidx86系统,所述Androidx86系统安装在每一个Android模拟器上;在每一个Android模拟器和ADB服务端之间进行端口转发设置;对于每一个Android模拟器,通过ADB连接命令与所述ADB服务端之间建立ADB连接,基于ADB连接调用所述ADB服务端设置监控环境数据;通过ADB断开连接命令与所述ADB服务端之间断开ADB连接;制作镜像快照,完成病毒分析环境的搭建。另一方面,提供了一种病毒分析环境搭建装置,其特征在于,所述装置包括:初始化模块,用于初始化Androidx86系统,所述Androidx86系统安装在每一个Android模拟器上;设置模块,用于在每一个Android模拟器和ADB服务端之间进行端口转发设置;连接模块,用于对于每一个Android模拟器,通过ADB连接命令与所述ADB服务端之间建立ADB连接;安装模块,用于基于ADB连接调用所述ADB服务端设置监控环境数据;所述连接模块,还用于通过ADB断开连接命令与所述ADB服务端之间断开ADB连接;制作模块,用于制作镜像快照,完成病毒分析环境的搭建。本发明实施例提供的技术方案带来的有益效果是:本发明实施例搭建的病毒分析环境,Android模拟器可以直接运行于x86环境,因此无需进行指令转换,所以该类模拟器的运行速度较快,占用系统资源较少,且由于采用端口转发方式完成ADB通信,所以没有最大实例限制,理论上在物理资源充足的情况下,可尽量多的并行运行Android模拟器,提升了系统吞吐量。此外,在ADB连接断开的情况下制作镜像快照,避免了在恢复镜像快照后无法进行ADB连接的情况。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明
背景技术
提供的一种病毒分析环境架构图;图2是本发明实施例提供的一种病毒分析环境架构图;图3是本发明实施例提供的一种样本数据的敏感行为日志的示意图;图4是本发明实施例提供的一种病毒分析环境搭建方法的流程图;图5A是本发明实施例提供的一种病毒分析环境搭建方法的流程图;图5B是本发明实施例提供的一种对样本数据进行病毒分析的方法流程图;图6是本发明实施例提供的一种病毒分析环境搭建装置的结构示意图;图7是本发明实施例提供的一种服务器的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。在对本发明实施例进行详细地解释说明之前,先对本发明实施例涉及的实施环境进行简单介绍。参见图2,本发明实施例中病毒分析环境的搭建基于Intel(因特尔)x86硬件环境。在软件层面,通过Virtualbox多实例方式,并行运行多个Android模拟器,各个模拟器中都构造了监控环境,该监控环境包括自研的Hook监控程序、以及病毒敏感数据环境。其中,病毒敏感数据环境通常模拟了短信、通讯录,移动网络、无线网络、GPS(GlobalPositioningSystem,全球定位系统)等用户最常使用的场景。在图2中,Virtualbox实例与adbserver(服务端)之间需要配置端口转发,不同的Virtualbox实例配置不同端口,实现并行ADB通信。需要说明的是,本发明实施例提及的病毒分析环境搭建方法已经对外部署到特定病毒分析系统中,用户可以通过特定病毒分析系统的web(网络)主页提交文件格式为APK(AndroidPackage,安卓安装包)文件的样本数据到特定分系统的后台服务器,后台服务器是由多台Linux环境机器集群构成,每台物理机上部署多套病毒分析环境并行运行。在用户终端将样本数据提交到特定分析系统后,经过后台服务器分析,输出诸如图3所示的敏感行为日志并返回给用户终端。图4是本发明实施例提供的一种病毒分析环境搭建方法。参见图4,本发明实施例提供的方法流程包括:401、初始化Androidx86系统,Androidx86系统安装在每一个Android模拟器上。402、在每一个Android模拟器和ADB服务端之间进行端口转发设置。403、对于每一个Android模拟器,通过ADB连接命令与ADB服务端之间建立ADB连接,基于ADB连接调用ADB服务端设置监控环境数据。404、通过ADB断开连接命令与ADB服务端之间断开ADB连接。405、制作镜像快照,完成病毒分析环境的搭建。本发明实施例提供搭建的病毒分析环境,Android模拟器可以直接运行于x86环境,因此无需进行指令转换,所以该类模拟器的运行速度较快,占用系统资源较少,且由于采用端口转发方式完成ADB通信,所以没有最大实例限制,理论上在物理资源充足的情况下,可尽量多的并行运行Android模拟器,提升了系统吞吐量。此外,在ADB连接断开的情况下制作镜像快照,避免了在恢复镜像快照后无法进行ADB连接的情况。在另一个实施例中,所述Android模拟器为VirtualBox实例。在另一个实施例中,所述制作镜像快照,完成病毒分析环境的搭建之后,该方法还包括:若所述ADB服务端接收到用户终端上传的样本数据,则确定对所述样本数据进行病毒分析处理的指定Android模拟器;恢复所述指定Android模拟器的镜像快照;在所述指定Android模拟器与所述ADB服务端之间建立ADB连接;通过所述ADB服务端与所述指定Android模拟器之间设置的端口,将所述样本数据发送至所述指定Android模拟器;调用所述指定Android模拟器对所述样本数据进行分析。在另一个实施例中,该方法还包括:,所述确定对所述样本数据进行病毒分析处理的指定Android模拟器,包括:在多个Android模拟器中确定当前处于空闲状态的模拟器,将所述模拟器确定为对所述样本数据进行病毒分析处理的指定Android模拟器。在另一个实施例中,该方法还包括:在对所述样本数据进行分析时,通过所述指定Android模拟器的监控环境数据中Hook监控程序记录所述样本数据的敏感行为日志;将所述敏感行为日志下发给所述用户终端。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。图5A本发明实施例提供的一种病毒分析环境搭建方法的流程图。参见图5A,本发明实施例提供的方法流程包括:501a、初始化每一个Android模拟器的Androidx86系统。如图2所示,本发明实施例通过引入轻量级虚拟机Virtualbox实例,配合Androidx86项目搭建了基于x86指令环境的多个Android模拟器。其中,Virtualbox是一款免费虚拟机软件,可虚拟的系统包括Windows、MacOSX、Linux、OpenBSD、Solaris、IBMOS2甚至Android等操作系统。使用者可以在Virtualbox上安装并且运行上述的这些操作系统。在本发明实施例中,安装Androidx86系统到每一个Virtualbox实例,并初始化Androidx86系统,以为后续搭建病毒分析环境作准备。其中,在获取到Androidx86系统的镜像文件后,启动Virtualbox实例在依次进行硬盘分区和格式化硬盘分区等设置后,完成Androidx86系统的安装。初始化Androidx86系统可分为启动BootLoader、加载系统内核、启动Zygote进程、启动Runtime进程、启动本地服务和启动HomeLauncher等步骤,本发明实施例对此不进具体限定。502a、在每一个Android模拟器和adbserver之间进行端口转发设置。adb是一个功能强大的命令行工具,通过它可以直接和模拟器或真机进行交互,本发明实施例通过adbserver对各个Android模拟器进行管理。在本发明实施例中,通过设置端口转发,来实现各个Android模拟器也即各个Virtualbox实例,与adbserver之间进行adb通信。也即,adbserver与所有运行的Android模拟器建立连接,比如它通过一组范围从5555到5585的端口检索到所有的Android模拟器。每一台Android模拟器需要获取一个端口用于adb连接。通过为不同的Virtualbox实例配置不同的转发端口,实现并行运行通信。这样,adbserver在进行样本数据发送时,通过对应的端口将样本数据发送至Virtualbox实例。503a、对于每一个Android模拟器,通过adb连接命令在该Android模拟器与adb服务端之间建立adb连接,基于adb连接调用adbserver设置监控环境数据。其中,adb连接命令具体可诸如adbconnect127.0.0.1:5555。这个连接命令的具体含义为adbserver在本机地址的5555端口与某个Android模拟器建立连接,实现物理机和Android模拟器二者之间通过该端口进行adb通信。。在本发明实施例中,adbserver在与每一个Android模拟器均建立adb连接后,为每一个Android模拟器设置监控环境数据,以方便后续在对样本数据进行病毒分析时实时检测当前环境状态。504a、通过adb断开连接命令,断开该Android模拟器与adbserver之间的adb连接。在本发明实施例中,在为每一个Android模拟器制作镜像快照之前,会断开每一个Android模拟器与adbserver之间的adb连接。其中,adb断开连接命令具体可诸如adbdisconnect127.0.0.1。这个断开连接命令的具体含义为adbserver断开当前的Android模拟器adb连接。505a、为每一个Android模拟器制作镜像快照,完成病毒分析环境的搭建。其中,镜像快照(Snapshot)是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。镜像快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。镜像快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。镜像快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用镜像快照进行测试等工作。在本发明实施例中,为了重复利用每一个Android模拟器,制作了镜像快照。这样病毒分析环境在被Android病毒污染后可以实现生产环境的快速恢复。需要说明的是,在病毒分析领域,样本在后台服务器的分析时间以及运行环境的多样性,决定了系统吞吐量的大小和敏感行为日志的质量。而分析时间又包括样本运行时间t1和恢复初始病毒分析环境时间t2。在t1时间不变的情况下,样本运行效率越高,得到的敏感行为信息越多。传统技术中的原生模拟器由于基于arm指令集,而现代服务器物理环境多为x86环境,导致该类模拟器运行速度慢,占用资源多,在t1和t2两个耗时都很长。此外,传统方案在快速恢复初始病毒分析环境方面也有较大局限,原生模拟器对镜像快照支持较差。Genymotion方案虽然整体运行速度提升了较多,但在Linux环境下兼容性较差,不支持镜像快照功能,无法满足快速恢复初始病毒分析环境的需求。而本发明实施例中Android模拟器直接运行于x86环境,无需指令适配过程,在相同的t1时间内得到的敏感行为信息更多。同时,Virtualbox实例天然支持镜像快照恢复功能,大大缩短了t2耗时。利用Virtualbox的镜像快照功能,采用干净系统镜像,同时在断开adb连接下保存系统初始状态到Virtualbox快照。这样避免了恢复镜像快照后,adbserver与Android模拟器之间无法建立adb连接的问题。另外,由于本发明实施例采用端口转发方式完成adb通信,所以没有最大实例限制,理论上在物理资源充足的情况下,可尽量多的并行运行Virtualbox实例,提升系统吞吐量。在相同的硬件配置环境下,本发明实施例提及的病毒分析环境在批量处理Android样本数据时,要大大优于本发明
背景技术
提及的病毒分析环境。二者批量处理Android样本的能力,可如下述表1所示:病毒分析环境平均分析耗时单物理机吞吐量错误率
背景技术
方案146秒6000左右0.57%本发明实施例方案81秒11000左右0.48%由表1可知,本发明实施例提供的方案在保证了错误率不增加的前提下,分析耗时降低,吞吐量提升80%以上。需要说明的是,在通过上述步骤501a至步骤505a完成病毒分析环境的搭建后,便可如图5B所示接收用户终端上传的样本数据,基于已搭建的病毒分析换将对该样本数据进行分析,判断该样本数据是否存在潜在的危险行为,具体方法流程包括如下步骤。501b、在接收到用户终端上传的样本数据后,adbserver确定对该样本数据进行病毒分析处理的指定Android模拟器。在本发明实施例中,目前仅支持用户终端上传数据格式为APK的样本数据。在接收到样本数据后,adbserver会将该样本数据分配至当前处于空闲状态的指定Virtualbox实例进行病毒分析。502b、恢复指定Android模拟器的镜像快照。在每一次对样本数据进行病毒分析时,均需提供干净的病毒分析环境,因此还需先恢复Virtualbox实例的镜像快照。503b、在指定Android模拟器与adbserver之间建立adb连接,调用指定Android模拟器对该样本数据进行分析;在对该样本数据进行分析时,调用指定Android模拟器中Hook监控程序记录该样本数据的敏感行为日志。在本发明实施例中,在保证adb连接断开且系统运行的情况下,制作镜像快照;在样本数据到达之后恢复镜像快照,且在与adbserver建立adb连接后便可以开始对样本数据进行分析,比如控制样本数据执行安装、运行及状态模拟等流程。其中,每一个Virtualbox实例均包含了一个Hook监控程序。在样本数据运行过程中,该Hook监控程序记录下一系列的敏感行为日志,并将该敏感行为日志保存到系统中。进一步地,将该敏感行为日志分析处理成统一格式的日志文件,该日志文件后续可用于病毒样本的聚类以及黑白判定。504b、将该敏感行为日志下发给用户终端。其中,该敏感行为日志具体样式可如图3所示,包括样本数据的基本信息,诸如文件名称、MD5(MessageDigestAlgorithm,消息摘要算法)值、文件大小、上传时间、包名、最低运行环境、版权信息、以图标等,此外还包括样本数据的危险行为信息(诸如定位移动终端等),网络行为、文件行为、隐私行为、服务行为等等,本发明实施例对敏感行为日志包含的内容不进行具体限定。本发明实施例提供搭建的病毒分析环境,Android模拟器可以直接运行于x86环境,因此无需进行指令转换,所以该类模拟器的运行速度较快,占用系统资源较少,且由于采用端口转发方式完成ADB通信,所以没有最大实例限制,理论上在物理资源充足的情况下,可尽量多的并行运行Android模拟器,提升了系统吞吐量。此外,在ADB连接断开的情况下制作镜像快照,避免了在恢复镜像快照后无法进行ADB连接的情况。进一步地,Virtualbox实例天然支持镜像快照功能,满足了快速恢复病毒分析环境的需求。图6是本发明实施例提供的一种病毒分析环境搭建装置的结构示意图。参见图6,该装置包括:初始化模块601,用于初始化Androidx86系统,所述Androidx86系统安装在每一个Android模拟器上;设置模块602,用于在每一个Android模拟器和ADB服务端之间进行端口转发设置;连接模块603,用于对于每一个Android模拟器,通过ADB连接命令与所述ADB服务端之间建立ADB连接;安装模块604,用于基于ADB连接调用所述ADB服务端设置监控环境数据;所述连接模块603,还用于通过ADB断开连接命令与所述ADB服务端之间断开ADB连接;制作模块605,用于制作镜像快照,完成病毒分析环境的搭建。在另一个实施例中,所述Android模拟器为开源虚拟机软件VirtualBox实例。在另一个实施例中,该装置还包括:确定模块606,用于若所述ADB服务端接收到用户终端上传的样本数据,则确定对所述样本数据进行病毒分析处理的指定Android模拟器;恢复模块607,用于恢复所述指定Android模拟器的镜像快照;所述连接模块603,还用于在所述指定Android模拟器与所述ADB服务端之间建立ADB连接;发送模块608,用于通过所述ADB服务端与所述指定Android模拟器之间设置的端口,将所述样本数据发送至所述指定Android模拟器;分析模块609,用于调用所述指定Android模拟器对所述样本数据进行分析。在另一个实施例中,所述确定模块606,用于在多个Android模拟器中确定当前处于空闲状态的模拟器,将所述模拟器确定为对所述样本数据进行病毒分析处理的指定Android模拟器。在另一个实施例中,该装置还包括:记录模块610,用于在对所述样本数据进行分析时,通过所述指定Android模拟器的监控环境数据中Hook监控程序记录所述样本数据的敏感行为日志;所述发送模块608,还用于将所述敏感行为日志下发给所述用户终端。本发明实施例提供的装置,Android模拟器可以直接运行于x86环境,因此无需进行指令转换,所以该类模拟器的运行速度较快,占用系统资源较少,且由于采用端口转发方式完成ADB通信,所以没有最大实例限制,理论上在物理资源充足的情况下,可尽量多的并行运行Android模拟器,提升了系统吞吐量。此外,在ADB连接断开的情况下制作镜像快照,避免了在恢复镜像快照后无法进行ADB连接的情况。需要说明的是:上述实施例提供的病毒分析环境搭建装置在进行病毒分析环境搭建时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的病毒分析环境搭建装置与病毒分析环境搭建方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。图7是根据一示例性实施例示出的一种服务器,该服务器可以用于实施上述任一示例性实施例示出的病毒分析环境搭建方法。具体来讲:参见图7,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(CentralProcessingUnit,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出)。服务器700还可以包括一个或一个以上电源728,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述一个或者一个以上程序包含用于进行病毒分析环境搭建的指令。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1