一种文件检测方法、装置、存储介质及服务器
技术领域
本发明实施例涉及计算机
技术领域
,尤其涉及一种文件检测方法、装置、存储介质及服务器。背景技术
容器因其部署的便捷性正在改变现代应用程序的交付方式,随着容器技术的不断成熟,越来越多的应用服务都以容器方式运行。随着应用服务的容器化,其安全问题也一并带入到容器内,如容器内的WEB服务遭入侵,在容器内留下后门文件、病毒程序、挖矿程序等,会导致信息泄露、服务器资源耗尽等安全风险。
发明内容
本发明实施例提供一种文件检测方法、装置、存储介质及服务器,能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性。
第一方面,本发明实施例提供了一种文件检测方法,包括:
检测当前正在运行的容器;
获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;
当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。
第二方面,本发明实施例还提供了一种文件检测装置,包括:
容器检测模块,用于检测当前正在运行的容器;
属性信息获取模块,用于获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;
目标文件检测模块,用于当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的文件检测方法。
第四方面,本发明实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的文件检测方法。
本发明实施例提供的文件检测方案,检测当前正在运行的容器;获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。通过本发明实施例提供的技术方案,能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性。
附图说明
图1是本发明一实施例提供的一种文件检测方法的流程图;
图2是本发明另一实施例提供的一种文件检测方法的流程图;
图3是本发明另一实施例中的一种文件检测装置的结构示意图;
图4是本发明另一实施例中的一种服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
相关技术中,通过文件查杀来发现恶意文件,其检测过程大部分为:使用病毒木马规则库全盘扫描文件,将命中规则库的文件报警。该方法的检测成功率取决于规则库的丰富程度,若规则库中未收录相关病毒的规则,则无法检测出,且只能检测出已知的恶意文件,无法检测出未知的恶意文件。
图1为本发明一实施例提供的一种文件检测方法的流程图,本发明实施例可适用于对正在运行的容器内的文件进行检测的情况,该方法可以由文件检测装置来执行,该装置可由硬件和/或软件组成,并一般可集成在服务器中。如图1所示,该方法具体包括如下步骤:
步骤110,检测当前正在运行的容器。
其中,容器是操作系统上一种轻量化的虚拟技术,通过隔离容器和宿主机系统的运行环境,使容器内的应用进程运行在自己独立的环境中(包括进程环境、网络环境、文件系统环境等),各容器间的环境互不影响。运行容器需要使用镜像作为其运行时的文件系统,镜像可以看做是一个打包好的分层文件系统,里面有作为入口的可执行程序,入口程序运行起来后使用镜像的文件系统作为容器运行时的环境。
在本发明实施例中,每隔预设时长或实时检测当前正在运行的容器。示例性的,响应于文件检测事件被触发,启动检测引擎,通过检测引擎检测当前正在运行的容器。其中,检测引擎可以安装在服务器节点上,检查引擎可用于检测所在服务器节点上的所有容器内的文件的完整性。
步骤120,获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像。
在本发明实施例中,在容器运行过程中,容器内的某些文件可根据需要被修改,如应用程序类文件;而容器内的某些文件不能被修改,如系统配置类文件。在本发明实施例中,可将在容器运行过程中,允许被修改的文件称为可被修改文件,而将不允许被修改的文件称为不可被修改文件。若正在运行的容器内的不可被修改文件发生变化,说明该容器存在安全隐患。可以理解的是,目标文件为正在运行的容器内不可被修改文件。
在本发明实施例中,获取当前正在运行的容器内的目标文件的属性信息,其中,所述属性信息可以包括文件的内容、文件的修改时间、文件的权限、文件的所有者及文件的路径中的至少一个。目标文件可以包括系统配置文件和/或系统可执行文件。获取与该当前正在运行的容器对应的文件数据库,其中,该文件数据库中包含目标镜像内各个文件的文件信息,而目标镜像为用于启动该当前正在运行的容器的镜像。当前正在运行的容器与目标镜像一一对应,也即当前正在运行的容器与文件数据库一一对应。其中,文件数据库中包含的目标镜像内各个文件的文件信息可以包括文件的内容、文件的修改时间、文件的权限、文件的所有者及文件的路径中的至少一个。将容器内目标文件的属性信息,与文件数据库中各个文件的文件信息一一进行比对,以判断文件数据库中是否存在与目标文件的属性信息完全匹配的文件信息。
步骤130,当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。
在本发明实施例中,当确定文件数据库中不存在与目标文件的属性信息完全匹配的文件信息时,说明目标文件相对于容器运行前的目标镜像内的文件发生改变,则可确定目标文件被修改。此时,可进一步说明当前正在运行的容器存在安全隐患。当确定文件数据库中存在与目标文件的属性信息完全匹配的文件信息时,说明目标文件相对于容器运行前的目标镜像内的文件未发生改变,也即目标文件未被修改,则进一步说明当前正在运行的容器目前不存在安全隐患。
可选的,在确定所述目标文件被修改之后,还包括:基于所述属性信息对所述目标文件进行报警操作。具体的,当确定目标文件被非正常修改后,基于目标文件的属性信息对目标文件进行报警,例如,可通过API接口将目标文件的属性信息并该目标文件已被修改的报警信息上报给管理平台,或者通过预设配置邮件地址,向管理员发送邮件,邮件中可包含目标文件的属性信息及被目标文件已被修改的报警信息。这样设置的好处在,可以帮助管理员及时发现当前正在运行的容器的潜在风险。
本发明实施例提供的文件检测方法,检测当前正在运行的容器;获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。通过本发明实施例提供的技术方案,能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性。
在一些实施例中,获取所述容器内的目标文件的属性信息,包括:基于预设黑名单规则确定路径信息;基于所述路径信息在所述容器内查找目标文件;确定所述目标文件的属性信息。这样设置的好处在于,可以准确确定当前正在运行的容器内的目标文件的属性信息,避免对容器内可被修改文件的完整性进行检测。在本发明实施例中,可预先配置黑白名单规则,白名单规则为用于过滤不需要进行检测的文件路径或目录(用于忽略容器内应用本身会修改的文件目录),也即可被修改文件的文件路径或目录,黑名单规则可用于指定需要检测的文件路径或目录(通常会指定/sys、/etc、/bin等关键目录,这些目录存放着重要的配置文件和可执行文件,是病毒木马程序经常会篡改的目录),也即不可被修改文件(目标文件)的文件路径或目录。具体的,确定预设黑名单规则中的路径信息,其中,路径信息可以包括文件的路径或目录。然后基于路径信息在当前正在运行的容器内查找对应的目标文件,并进一步获取目标文件的属性信息。
在一些实施例中,在将所述属性信息与文件数据库进行比对之前,还包括:确定用于启动所述容器的目标镜像;获取所述目标镜像内各个文件的文件信息,并基于所述文件信息构建所述文件数据库。具体的,当检测到当前正在运行的容器后,根据容器与镜像的关联关系,确定当前正在运行的的容器对应的目标镜像,其中,该目标镜像为用于启动当前正在运行的的容器的镜像。通过扫描目标镜像中的文件,获取目标镜像中每个文件的文件信息,其中,文件信息可以包括文件内容的HASH、文件的修改时间、文件的权限、文件的所有者及文件的路径等信息,基于文件信息构建与该目标镜像对应的文件数据库,也可以理解为,基于文件信息构建与该容器对应的文件数据库。其中,文件数据库中包含目标镜像内各个文件的文件信息。
在一些实施例中,在获取所述容器内的目标文件的属性信息之前,还包括:监测所述容器内的文件是否发生变化;获取所述容器内的目标文件的属性信息,包括:当监测到所述容器内的文件发生变化时,获取所述容器内的目标文件的属性信息。这样设置的好处在于,在有效保证容器的安全性的前提下,可降低对当前正在运行的容器内的目标文件的检测频率。具体的,每隔预设时长或实时监测当前正在运行的容器内的文件是否发生变化,如可以通过监控容器内文件系统的变化(linux上有现成的机制inotify来实时监控文件变化),来实时的去感知文件的变更操作。当监测到容器内的文件发生变化时,再获取容器内目标文件的属性信息,并将属性信息与文件数据库进行比对,以检测目标文件是否被修改。
图2为本发明另一实施例提供的一种文件检测方法的流程图。如图2所示,该方法具体包括如下步骤:
步骤210、检测当前正在运行的容器。
步骤220、确定用于启动容器的目标镜像。
步骤230、获取目标镜像内各个文件的文件信息,并基于文件信息构建文件数据库。
步骤240、基于预设黑名单规则确定路径信息,并基于路径信息在容器内查找目标文件。
步骤250、确定目标文件的属性信息。
步骤260、将属性信息与文件数据库进行比对。
步骤270、当确定文件数据库中不存在与属性信息匹配的文件信息时,确定目标文件被修改,并基于属性信息对目标文件进行报警操作。
本发明实施例提供的文件检测方法,不仅能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性,而且可以准确确定当前正在运行的容器内的目标文件的属性信息,避免对容器内可被修改文件的完整性进行检测,有效提高了对容器内目标文件的检测效率。
图3为本发明另一实施例提供的一种文件检测装置的结构示意图。如图3所示,该装置包括:容器检测模块310,属性信息获取模块320和目标文件检测模块330。其中,
容器检测模块310,用于检测当前正在运行的容器;
属性信息获取模块320,用于获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;
目标文件检测模块330,用于当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。
本发明实施例提供的文件检测装置,检测当前正在运行的容器;获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。通过本发明实施例提供的技术方案,能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性。
可选的,所述属性信息获取模块,用于:
基于预设黑名单规则确定路径信息;
基于所述路径信息在所述容器内查找目标文件;
确定所述目标文件的属性信息。
可选的,所述装置还包括:
目标镜像确定模块,用于在将所述属性信息与文件数据库进行比对之前,确定用于启动所述容器的目标镜像;
文件数据库构建模块,用于获取所述目标镜像内各个文件的文件信息,并基于所述文件信息构建所述文件数据库。
可选的,所述装置还包括:
文件监测模块,用于在获取所述容器内的目标文件的属性信息之前,监测所述容器内的文件是否发生变化;
所述属性信息获取模块,用于:
当监测到所述容器内的文件发生变化时,获取所述容器内的目标文件的属性信息。
可选的,所述装置还包括:
报警模块,用于在确定所述目标文件被修改之后,基于所述属性信息对所述目标文件进行报警操作。
可选的,所述属性信息包括文件的内容、文件的修改时间、文件的权限、文件的所有者及文件的路径中的至少一个。
可选的,所述目标文件包括系统配置文件和/或系统可执行文件。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行文件检测方法,该方法包括:
检测当前正在运行的容器;
获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;
当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的文件检测操作,还可以执行本发明任意实施例所提供的文件检测方法中的相关操作。
本发明实施例提供了一种服务器,该服务器中可集成本发明实施例提供的文件检测装置。图4为本发明实施例提供的一种服务器的结构框图。服务器400可以包括:存储器401,处理器402及存储在存储器401上并可在处理器运行的计算机程序,所述处理器402执行所述计算机程序时实现如本发明实施例所述的文件检测方法。
本发明实施例中提供的服务器,检测当前正在运行的容器;获取所述容器内目标文件的属性信息,并将所述属性信息与文件数据库进行比对;其中,所述文件数据库中包含目标镜像内各个文件的文件信息,所述目标镜像为用于启动所述容器的镜像;当确定所述文件数据库中不存在与所述属性信息匹配的文件信息时,确定所述目标文件被修改。通过本发明实施例提供的技术方案,能够有效监控正在运行的容器内的目标文件是否被修改,有助于保证容器的安全性。
上述实施例中提供的文件检测装置、存储介质及服务器可执行本发明任意实施例所提供的文件检测方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的文件检测方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:基于生成对抗网络的侧信道防护方法