本发明专利技术公开了一种虚拟机中的寄生进程检测方法和装置。所述方法包括:截获进出指定虚拟机的数据包,确定指定虚拟机中的当前活动的网络连接;在指定虚拟机的外部重构指定虚拟机中的进程所持有的当前活动的网络连接的相关信息;对于当前活动的网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接;当判断出一个网络连接为异常连接,则确定该网络连接所属的进程是被注入恶意代码或被注入恶意动态链接库DLL的寄生进程。本发明专利技术的技术方案,以网络行为为驱动,进行虚拟机中进程级别的网络行为监测,根据进程的异常网络行为检测出寄生进程,并且具有较好的通用性,针对大量变种恶意软件的情况能满足检测的实时性要求。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体涉及一种虚拟机中的寄生进程检测方法和装置。
技术介绍
虚拟化技术实现了计算、存储、网络等IT资源的虚拟化,是云计算行业快速发展的基础。虚拟机(Virtual Machine)是云环境对外提供的一种最基本的服务形式,云服务提供商向个人、组织用户提供单个虚拟机或者多个虚拟机组成的虚拟网络,以满足用户对易维护、高可用性的弹性云服务的需求。在虚拟化环境中,服务以虚拟机的形式提供给用户使用,云服务提供商只能利用Libvirt等接口从虚拟机外部获得目标虚拟机的CPU、内存、磁盘、网络等资源分配和使用的信息,并不能监视到虚拟机中运行的进程行为的粒度,一旦虚拟机被攻击者植入的恶意软件控制,其对同一虚拟网络中虚拟机的安全乃至云平台本身的安全与稳定都是巨大的威胁,因此对虚拟机运行时的安全监测成为云服务提供商和用户的共同需求。然而,为了实现无端口、无进程、无文件的感染方式,目前大量的恶意软件使用注入的方式寄生在正常进程中以实现自身的隐藏,具体方法包括DLL注入、无文件的代码注入等。无论使用哪种方法,这种注入行为都会改变进程正常的执行流程,在网络层面产生异常的状态或者行为。比如在网络层面,注入行为会使正常情况下不会产生网络行为的进程出现网络行为,或者产生异常的数据流等。恶意代码注入会导致进程的一些异常行为,然而代码注入的方式、内容、位置会随着技术的发展不断变化,通过现有的特征码检测或者内存空间扫描的方法缺少通用性,无法在恶意软件及其变种每天大量出现的今天满足检测实时性的需要。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟机中的寄生进程检测方法和装置。依据本专利技术的一个方面,提供了一种虚拟机中的寄生进程检测方法,其中,该方法包括:截获进出指定虚拟机的数据包;根据所截获的数据包,确定指定虚拟机中的当前活动的网络连接;在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息;对于当前活动的一个网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接;如果判断出一个网络连接为异常连接,则确定该网络连接所属的进程是被注入恶意代码或被注入恶意动态链接库DLL的寄生进程。可选地,所述截获进出指定虚拟机的数据包包括:将用于截获进出指定虚拟机的数据包的控制组件部署在位于Domain O的虚拟网桥处。可选地,在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息包括:使用Libvmi映射所述指定虚拟机的该目标进程对应的内存地址空间到Domain O的内存地址空间,从而为Volatility框架提供地址空间支持;生成基于所述Volatility框架的用于对运行时的指定虚拟机内存进行分析读取的脚本;所述脚本通过映射后的Domain O的内存地址空间获取该目标进程的相关内容。可选地,所述在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息包括:查找到Windows系统中的保存tcpip.sys模块信息的节点;从所述保存tcpip.sys模块信息的节点中获得_AddrOb jTable以及_TCBTable的地址;遍历AddrObjTable以及_TCBTable指向的单向链表,获得所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息。可选地,所述查找到Windows系统中的保存tcpip.sys模块信息的节点包括:从内核模式下的FS寄存器获得_KPCR数据结构的指针;从_KPCR 数据结构中的 KdVers1nBlock 变量中读取 _DBGKD_GET_VERS10N64 数据结构的指针;W_DBGKD_GET_VERS10N64 数据结构的 PsloadedModuleList 成员变量中获得保存模块信息的双向链表头节点地址;遍历PsloadedModuleList指向的双向链表,找到保存tcpip.sys模块信息的节点。可选地,所述根据所截获的数据包,确定指定虚拟机中的当前活动的网络连接,以及在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息包括:设立记录队列和进程队列;其中,记录队列维护所述指定虚拟机的当前活动的网络连接信息,包括:网络连接的标识、对应的进程、处理时间以及安全检测结果;所述进程队列保存所述指定虚拟机的进程列表。可选地,对于每个截获的数据包,执行如下流程:判断记录队列中是否已存在该数据包对应的当前活动的网络连接信息,如果存在则按照已有的安全检测结果进行相应处理,如果不存在则重构所述指定虚拟机中的进程持有的该当前活动的网络连接的相关信息;根据重构的该当前活动的网络连接的相关信息确定其所属的进程,并判断进程队列中是否存在该进程,如果不存在则将该进程更新到进程队列中,如果存在则根据该进程对应的安全检测规则判断该当前活动的网络连接是否为异常连接;根据安全检测结果进行相应的处理;将该当前活动的网络连接、对应的进程、处理时间以及安全检测结果更新到记录队列中。可选地,所述对于当前活动的一个网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接包括:对于访问类型单一的应用程序的进程,提取该应用程序固有的可能执行的网络行为生成合法行为规则;将当前活动的网络连接的相关信息与其所属进程对应合法行为规则进行匹配,如果不存在匹配项,则判断为异常连接。可选地,对于当前活动的一个网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接包括:预先设置包含一个或多个匹配项的默认拒绝规则,以及预先设置包含一个或多个匹配项的默认允许规则;对于当前活动的一个网络连接,先根据其所属进程判断采用默认拒绝规则还是采用默认允许规则;如果采用默认拒绝规则,则将该当前活动的网络连接的相关信息与定义的额外允许规则中的匹配项进行匹配,如果存在匹配的项,则确定该网络连接为正常连接,如果不存在匹配的项,则确定该网络连接为异常连接;如果采用默认允许规则,则将该当前活动的网络连接的相关信息与定义的额外拒绝规则中的匹配项进行匹配,如果存在匹配的项,则确定该网络连接为异常连接,如果不存在匹配的项,则确定该网络连接为正常连接。依据本专利技术的另一个方面,提供了一种虚拟机中的寄生进程检测装置,其中,该装置包括:数据包截获单元,适于截获进出指定虚拟机的数据包,发送给安全检测单元;重构单元,适于在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息;安全检测单元,适于根据所截获的数据包,确定指定虚拟机中的当前活动的网络连接对于当前活动的一个网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接;如果判断出一个网络连接为异常连接,则确定该网络连接所属的进程是被注入恶意代码或被注入恶意动态链接库DLL的寄生进程。可选地,所述数据包截获单元部署在位于Domain O的虚拟网桥处,从Domain O的虚拟网桥处截获进出指定虚拟机的数据包。可选地,所述重构单元,适于使用Libvmi映射所述指定虚拟机的该目标进程对应的内存地址空间到Domain O的本文档来自技高网...
【技术保护点】
一种虚拟机中的寄生进程检测方法,其中,该方法包括:截获进出指定虚拟机的数据包;根据所截获的数据包,确定指定虚拟机中的当前活动的网络连接;在所述指定虚拟机的外部重构所述指定虚拟机中的进程所持有的当前活动的网络连接的相关信息;对于当前活动的一个网络连接,通过将其相关信息与对应的安全检测规则进行匹配判断该网络连接是否为异常连接;如果判断出一个网络连接为异常连接,则确定该网络连接所属的进程是被注入恶意代码或被注入恶意动态链接库DLL的寄生进程。
【技术特征摘要】
【专利技术属性】
技术研发人员:罗凯,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。