CN110798356A - 固件监控方法、装置、存储介质和计算机设备 - Google Patents
固件监控方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN110798356A CN110798356A CN201911066601.1A CN201911066601A CN110798356A CN 110798356 A CN110798356 A CN 110798356A CN 201911066601 A CN201911066601 A CN 201911066601A CN 110798356 A CN110798356 A CN 110798356A
- Authority
- CN
- China
- Prior art keywords
- firmware
- monitored
- analysis
- measurement
- discrete
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/065—Generation of reports related to network devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种固件监控方法、装置、存储介质和计算机设备,所述方法包括:采集待监控固件的固件镜像;解析所述固件镜像得到待监控类型对应的解析结果;对所述解析结果进行离散度量,得到每个解析结果对应的度量结果;将携带所述度量结果的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。本申请提供的方案能够提高固件监控的可靠性,从而提高固件的安全性。
Description
技术领域
本申请涉及计算机安全技术领域,特别是涉及一种固件监控方法、装置、存储介质和计算机设备。
背景技术
随着计算机技术的发展,出现了计算机安全技术,这为计算机设备的安全运行提供了一定的保障。针对计算机设备的网络攻防已从软件层面蔓延到硬件,攻击者通过渗透并篡改计算机设备固件,并植入Rootkit、Bootkit等硬件木马,从而达到持久化控制计算机设备的效果。由此,如何对计算机设备的底层硬件进行安全防护是值得关注的问题。
目前,通常是在开机启动过程中,对计算机设备固件进行整体度量,以根据整体度量结果实现对固件的监控,从而实现对底层硬件的安全防护。但是,该种方式下,需要将整体度量结果与存储于固件芯片的日志文件相结合来定位固件异常,而日志文件的可靠性依赖于计算机设备厂商的安全技术实现,由此,存在固件监控的可靠性低的问题。
发明内容
基于此,有必要针对固件监控的可靠性低的技术问题,提供一种固件监控方法、装置、存储介质和计算机设备。
一种固件监控方法,包括:
采集待监控固件的固件镜像;
解析所述固件镜像得到待监控类型对应的解析结果;
对所述解析结果进行离散度量,得到每个解析结果对应的度量结果;
将携带所述度量结果的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。
一种固件监控装置,所述装置包括:
采集模块,用于采集待监控固件的固件镜像;
解析模块,用于解析所述固件镜像得到待监控类型对应的解析结果;
度量模块,用于对所述解析结果进行离散度量,得到每个解析结果对应的度量结果;
上报模块,用于将携带所述度量结果的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述固件监控方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述固件监控方法的步骤。
上述固件监控方法、装置、存储介质和计算机设备,通过解析待监控固件的固件镜像,得到待监控类型对应的解析结果,以减少待度量的解析结果数量,并对每个解析结果分别进行离散度量得到相应度量结果,由此,在减少处理数据量的情况下,通过解析结果的细粒度度量能够实现固件镜像的完整性度量。将携带每个解析结果的度量结果的上报数据上报至数据分析服务器,以使得数据分析服务器构建包含该细粒度的度量结果的离散度量树,进而基于所构建的离散度量树和相应基准离散度量树,对固件镜像进行细粒度的完整性分析,能够提高固件监控的可靠性,从而能够提高固件的安全性。
一种固件监控方法,所述方法包括:
接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;所述解析结果由所述待监控设备解析自身的待监控固件的固件镜像得到;所述解析结果与待监控类型相对应;
构建与所述上报数据对应的离散度量树;
基于所述离散度量树与预配置的相应基准离散度量树,对所述待监控固件进行安全性分析。
一种固件监控装置,所述装置包括:
接收模块,用于接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;所述解析结果由所述待监控设备解析自身的待监控固件的固件镜像得到;所述解析结果与待监控类型相对应;
构建模块,用于构建与所述上报数据对应的离散度量树;
分析模块,用于基于所述离散度量树与预配置的相应基准离散度量树,对所述待监控固件进行安全性分析。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述固件监控方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述固件监控方法的步骤。
上述固件监控方法、装置、存储介质和计算机设备,接收待监控设备对应于待监控固件上报的、携带有待监控类型下每个解析结果对应的度量结果的上报数据,以根据该上报数据构建包含每个度量结果的离散度量树,并基于该离散度量树和相应基准离散度量树,对待监控固件的固件镜像进行细粒度的完整性度量。这样,基于较少的解析结果,能够对待监控固件进行细粒度的完整性监控,从而能够提高固件监控的可靠性,进而能够提高固件的安全性。
附图说明
图1为一个实施例中固件监控方法的应用环境图;
图2为一个实施例中固件监控方法的流程示意图;
图3为一个实施例中固件版本所对应的离散度量树的结构示意图;
图4为一个实施例中遍历固件镜像得到待监控的文件类型对应的文件的流程示意图;
图5为一个实施例中待监控设备获取待监控固件对应的上报数据的流程示意图;
图6为另一个实施例中固件监控方法的流程示意图;
图7为又一个实施例中固件监控方法的流程示意图;
图8为一个实施例中更新基准离散度量树中的黑白名单度量结果的结构示意图;
图9为一个实施例中基于上报数据对待监控固件进行安全性分析的步骤的流程示意图;
图10为一个实施例中基于固件镜像的离散度量实现固件监控方法的流程示意图;
图11为一个实施例中固件监控装置的结构框图;
图12为另一个实施例中固件监控装置的结构框图;
图13为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中固件监控方法的应用环境图。参照图1,该固件监控方法应用于固件监控系统。该固件监控系统包括待监控设备110和数据分析服务器120。待监控设备110和数据分析服务器120通过网络连接。待监控设备110可以是服务器或终端,终端具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。数据分析服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,待监控设备110可以是独立的服务器,也可以是服务器集群中的一个服务器。比如,在企业内网大规模服务器应用场景中,待监控设备110可以是该服务器集群中的任一个服务器,通过对该服务器集群中每个服务器固件进行监控来保证固件的安全性,能够实现对每个服务器的安全防护,从而能够实现对该服务器集群的安全防护,由此,能够提升企业内网的安全性。
如图2所示,在一个实施例中,提供了一种固件监控方法。本实施例主要以该方法应用于上述图1中的待监控设备110来举例说明。参照图2,该固件监控方法具体包括如下步骤:
S202,采集待监控固件的固件镜像。
其中,待监控固件是指待进行安全性监控的固件。固件是计算机设备开机启动时首先执行的固件程序,能够为计算机设备提供最底层、最直接的硬件控制,固件具体可以是UEFI BIOS(Unified Extensible Firmware Interface Basic Input Output System,统一的可扩展固件接口的基本输入输出系统)。固件镜像是固件对应的固件信息副本,具体可包括固件对应的配置和文件。可以理解,固件用于支持硬件的运行,固件镜像可包括固件支持硬件运行所需的驱动、程序和文件等。
具体地,待监控设备采集本地部署的待监控固件的固件镜像。待监控设备具体可通过本地部署的代理装置采集本地部署的待监控固件的固件镜像。代理装置具体可以是通过软件或硬件实现的。
在一个实施例中,待监控设备在操作系统运行过程中,通过采集并分析本地部署的待监控固件当前的固件镜像,能够对该待监控固件的固件镜像进行健康度监控,从而实现对该待监控固件的安全性监控。
在一个实施例中,当满足固件镜像采集条件时,待监控设备采集待监控固件的固件镜像。固件镜像采集条件,比如接收到其他设备发送的固件监控指令,或者,自前一次采集固件镜像起达到预设等待时长等。其他设备比如待监控设备的管理员所对应终端或服务器。预设等待时长比如1小时、5小时或一天。
S204,解析固件镜像得到待监控类型对应的解析结果。
其中,待监控类型是指待监控对象或目标的类型,具体可以是指待监控的解析结果的类型。待监控类型具体可包括至少一个文件类型,和/或,至少一个配置类型。解析结果是指解析固件镜像得到的、且待进行离散度量的对象或目标。解析结果具体可包括但不限于是配置和文件。通过对每个解析结果分别进行度量来实现对解析结果的离散度量,以实现对每个解析结果的监控,从而能够实现对固件镜像的监控。一个待监控类型可对应一个或多个解析结果,由此,待监控类型可用于指定待进行监控的对象范围。
具体地,待监控设备确定待监控类型,并根据所确定的待监控类型解析所采集到的固件镜像,得到待监控类型所对应的解析结果。待监控设备解析固件镜像得到多个候选解析结果,并从候选解析结果中选取与待监控类型对应的解析结果。
在一个实施例中,待监控设备根据预配置的监控策略参数确定至少一个待监控设备类型。待监控设备也可将预标记的设备类型确定为待监控设备类型。预标记的设备类型具体可以是对待监控固件的固件镜像进行首次度量时,基于监控策略参数确定并进行标记得到的,也可以是从配置设备预先获取的。
在一个实施例中,待监控设备解析固件镜像得到待监控类型对应的解析结果,并获取解析结果所对应的数据。比如,当解析结果为配置时,配置对应的配置数据为配置状态值;当解析结果为文件时,文件对应的文件数据为文件信息和文件内容等。在一个实施例中,待监控设备分别对每个解析结果对应的数据进行度量,以实现对解析结果的离散度量,并得到每个解析结果对应的度量结果。
S206,对解析结果进行离散度量,得到每个解析结果对应的度量结果。
其中,离散度量是指对每个解析结果分别进行度量,以实现对相应固件镜像的离散度量。
具体地,待监控设备对解析固件镜像得到的每个解析结果分别进行度量,得到每个解析结果所对应的度量结果。在一个实施例中,待监控设备对所得到的每个解析结果分别进行哈希度量,并将所得到的哈希值确定为该解析结果所对应的度量结果。
在一个实施例中,待监控设备基于所得到的度量结果构建与固件镜像对应的离散度量树。具体地,待监控设备可在得到所有解析结果各自对应的度量结果后,构建携带各个解析结果的度量结果的离散度量树。待监控设备也可在得到每个解析结果对应的度量结果后,根据所得到的度量结果更新已构建的离散度量树,直至将所有解析结果对应的度量结果更新存储至离散度量树中,得到对应于待监控固件的固件镜像构建的离散度量树。
在一个实施例中,待监控固件对应有固件版本和固件镜像,由此固件镜像与固件版本相对应。待监控设备解析固件镜像得到每个待监控类型对应的解析结果后,根据该固件镜像对应的固件版本、待监控类型和每个待监控类型对应的解析结果,构建与固件版本对应的初始离散度量树。在进行离散度量时,待监控设备将各个解析结果所对应的度量结果,对应于该解析结果存储至离散度量树中,得到固件版本所对应的离散度量树。
图3为一个实施例中固件版本所对应的离散度量树的结构示意图。如图3所示,离散度量树的深度为3,具体包括根节点、路径节点和叶子节点,根节点与固件版本对应,用于记录固件版本标识,路径节点与待监控类型相对应,用于记录待监控类型标识,叶子节点与解析结果相对应,用于记录每个待监控类型对应的每个解析结果标识,以及解析结果标识所对应的度量结果。每个叶子节点同时记录有解析结果标识和相应的度量结果。待监控类型包括配置类型和文件类型,解析结果包括配置和/或文件。待监控设备对所得到的每个配置和/或文件分别进行度量,得到相应的度量结果。
在一个实施例中,待监控设备可分别构建携带有配置的度量结果,与文件的度量结果的离散度量树,也可构建同时携带有配置与文件各自的度量结果的离散度量树。
S208,将携带度量结果的上报数据上报至数据分析服务器;上报数据用于指示数据分析服务器构建上报数据对应的离散度量树,并基于离散度量树与相应基准离散度量树对待监控固件进行安全性分析。
具体地,待监控设备在得到每个解析结果对应的度量结果后,触发生成携带有每个解析结果的度量结果的上报数据,并将所生成的上报数据上报至数据分析服务器。数据分析服务器根据所接收到的上报数据构建离散度量树,并确定该上报数据对应的固件版本所对应的基准离散度量树,以根据离散数量数和基准离散度量树对上报数据所对应的待监控固件进行安全性分析。上报数据中具体可携带有各个解析结果和每个解析结果对应的度量结果。
在一个实施例中,上报数据中还携带有待监控固件的固件版本和待监控类型。上报数据中具体还可携带有每个待监控类型与解析结果之间的对应关系,或者,携带有每个解析结果对应的解析结果标识和字符串标识。解析结果标识比如GUID(globally uniqueidentifier,全局唯一标识符)编号,字符串标识能够用于确定待监控类型与解析结果之间的对应关系。这样,数据分析服务器根据所接收到的上报数据能够构建相应的离散度量树,并根据上报数据中的固件版本确定相应的基准离散度量树。
在一个实施例中,上报数据中还携带有上报时间、上报编号,以及待监控设备对应的厂商、设备型号信息和运行主机标识等。由此,上报数据包含了用于定位待监控固件出现异常变更时的全部信息,基于该上报数据对待监控固件进行安全性分析,能够提高分析的可靠性。上报数据具体可以是轻量级的结构化数据,该上报数据的数据量相较于相应固件镜像的数据量,压缩比可达数百倍以上,能够减少传输和处理的数据量,显著降低了安全监控对应待监控设备正常业务的带宽影响,从而能够提高数据传输和处理效率。
在一个实施例中,上报数据中还携带有固件镜像对应的解析结果数和整体度量结果,以便于数据分析服务器基于该解析结果数和整体度量结果,对固件镜像进行整体分析,并在整体分析的基础上基于所构建的离散度量树和基准离散度量树对固件镜像进行安全性分析,从而实现对待监控固件的安全性分析。
在一个实施例中,待监控设备以插件的方式与本地部署的用于数据采集的代理装置相结合,将离散度量阶段生成的结构化数据自动上报至数据分析服务器。使用插件进行结构化数据的上报,不必改造已有的EDR(端点检测与响应系统)工作模式,从而实现渐进式部署。
在一个实施例中,基准离散度量树是根据基准固件镜像对应的基准上报数据构建的。基准上报数据用于表征基准固件镜像对应的固件版本所对应的固件基准状态,具体可理解为固件基线。一个固件版本可对应有多个相同的固件镜像,而基准固件镜像是指安全可靠的、且用于判断具有相同固件版本的其他固件镜像的安全性的固件镜像。数据分析服务器将待监控设备上报的上报数据,与固件版本一致的固件基线进行匹配,以实现对上报数据的安全性分析,从而实现对待监控固件的安全性分析。可以理解,由于每个固件镜像对应的解析结果可能会有数百个,在安全性分析过程中,采用树形结构的离散度量树和基准离散度量树进行基线匹配,能够提高检索速度和准确性,从而能够提高固件镜像的分析效率和准确性。
在一个实施例中,当判定对应于相同固件版本的离散度量树和基准离散度量树相匹配时,数据分析服务器则结束当前的分析流程,并判定该离散度量树对应的固件镜像是正常的,也即判定相应待监控固件是安全可靠的,否则,表明待监控固件可能存在异常,则进一步对待监控固件进行多个维度的安全性分析,以识别可疑的固件变更操作。多个维度比如群组异常检测、基于白名单的误报过滤和基于威胁情报的黑名单机制等。
上述固件监控方法,通过解析待监控固件的固件镜像,得到待监控类型对应的解析结果,以减少待度量的解析结果数量,并对每个解析结果分别进行离散度量得到相应度量结果,由此,在减少处理数据量的情况下,通过解析结果的细粒度度量能够实现固件镜像的完整性度量。将携带每个解析结果的度量结果的上报数据上报至数据分析服务器,以使得数据分析服务器构建包含该细粒度的度量结果的离散度量树,进而基于所构建的离散度量树和相应基准离散度量树,对固件镜像进行细粒度的完整性分析,能够提高固件监控的可靠性,从而能够提高固件的安全性。
在一个实施例中,步骤S202包括:获取本地部署的芯片组型号;当芯片组型号与目标芯片组型号相匹配时,从内存映射文件中读取待监控固件的固件镜像;固件镜像通过内存映射的方式,由待监控固件所在的固件芯片同步至内存映射文件。
其中,芯片组型号是指存储有PCI(Peripheral Component Interconnect,外设部件互连标准)总线协议的芯片组的型号。内存映射是指由一个文件到一块内存的映射,具体可以是将待监控固件的固件镜像由固件芯片同步至内存,以实现固件镜像到内存的映射。内存映射文件是指将固件镜像由固件芯片同步映射至内存所得到的文件。
具体地,当满足固件镜像采集条件时,待监控设备获取本地部署的芯片组型号,并将所获取到的芯片组型号与预配置的目标芯片组型号进行匹配。当判定所获取到的芯片组型号与目标芯片组型号相匹配时,待监控设备从本地的内存映射文件中读取待监控固件的固件镜像。内存映射文件中的固件镜像,由待监控设备通过内存映射的方式,由待监控固件的固件芯片同步映射至内存映射文件。
在一个实施例中,当判定芯片组型号与目标芯片组型号相匹配时,待监控设备通过内存映射的方式,将待监控固件的固件芯片中的固件镜像同步映射至内存得到内存映射文件,并从内存映射文件中读取该固件镜像,以实现对待监控固件的固件镜像的采集。
在一个实施例中,待监控设备预先将待监控固件的固件镜像,由固件芯片同步映射至内存映射文件,并在判定芯片组型号与目标芯片组型号相匹配时,从内存映射文件中读取该固件镜像。待监控设备可按照预设周期定期将固件芯片中的固件镜像同步映射至内存映射文件,以动态更新内存映射文件中的固件镜像,从而保证内存映射文件中的固件镜像与固件芯片中的固件镜像的一致性。
在一个实施例中,待监控设备通过PCI master控制器判断自身的芯片组是否为目标芯片组。若判定当前的芯片组不是既定的目标芯片组,待监控设备则终止对固件镜像的采集流程,并返回出错的提示信息。
在一个实施例中,当判定芯片组型号与目标芯片组型号相匹配时,待监控设备在用户态下,通过内存映射的方式采集待监控固件的固件镜像。具体地,在用户态,待监控设备通过内存映射,对SPI(Serial Peripheral Interface,串行外设接口)设备进行读操作,以获取到待监控固件的固件镜像。这样,通过用户态下的内存映射,能够保证固件镜像的采集对待监控设备运行的干扰最小,从而能够避免设备崩溃的问题。
上述实施例中,通过对待监控设备的芯片组型号的判定,能够减少固件镜像的错误采集,且能够避免因基于不匹配的芯片组采集固件镜像,而导致设备宕机的问题。而且,通过内存读写方式可直接操作内存映射文件,而无需额外调用接口函数,由此,通过内存映射的方式采集固件镜像,能够提高固件镜像的采集效率,降低采集流程对待监控设备的运行干扰度,以能够提升待监控设备的运行性能,从而能够进一步避免因固件镜像的采集而导致设备宕机的问题。
在一个实施例中,当待监控类型为文件类型时,步骤S204包括:通过深度优先搜索的方式遍历固件镜像,得到文件类型对应的文件。
其中,文件类型是指待进行离散度量的文件的类型。深度优先搜索也即深度优先遍历,是指从一个顶点开始沿一条搜索路径逐级向下遍历,当遍历至原子文件时,返回至上一节点,并沿另一条搜索路径继续向下遍历,当自该上一节点起逐级向下遍历的每条搜索路径均被遍历完毕时,返回至该上一节点的上一节点继续向下遍历,依次类推,直至遍历得到所有原子文件。原子文件是文件的最小单元,具体可以是未包含任何子文件的文件。原子文件与非原子文件相应,一个非原子文件可包括至少一个原子文件。
具体地,待监控设备确定待监控的文件的文件类型。待监控设备以所采集到的固件镜像为中心,通过深度优先搜索的方式遍历该固件镜像,直至得到该固件镜像中与所确定的每个文件类型对应的所有原子文件,将所得到的原子文件确定为相应文件类型所对应的文件。
在一个实施例中,待监控设备通过深度优先搜索的方式遍历固件镜像,直至得到该固件镜像中的所有原子文件,并从所得到的多个原子文件中,选取与所确定的每个文件类型对应的原子文件,作为该文件类型所对应的文件。
在一个实施例中,待监控设备在通过深度优先搜索的方式遍历固件镜像的过程中,判断所遍历的原子文件是否与任一待监控的文件类型相对应,若是,则将该原子文件确定为从固件镜像中提取的、且与待监控的文件类型对应的文件。待监控设备将原子文件的字符串与每个待监控的文件类型进行比较,以判定该原子文件与每个文件类型的对应关系。
在一个实施例中,待监控设备根据预配置的监控策略参数确定待监控的文件类型,或者,将预标记的文件类型确定为待监控的文件类型。可以理解,通过监控待监控固件的固件镜像中的解析结果,实现对该待监控固件的监控,而待监控的解析结果通过待监控类型来限定。当待监控类型为文件类型时,通过确定待监控的文件类型,并从固件镜像中获取与所确定的文件类型对应的文件,得到待监控的文件。
在一个实施例中,待监控设备将遍历固件镜像得到的原子文件确定为候选文件,并将与待监控的文件类型对应的候选文件,确定为该文件类型所对应的文件。
在一个实施例中,待监控设备得到固件镜像中与待监控的文件类型对应的文件时,从该固件镜像中获取与该文件对应的文件数据,以便于对该文件数据进行离散度量得到该文件所对应的度量结果。文件对应的文件数据比如文件信息和文件内容。
在一个实施例中,待监控的文件类型具体可以是UEFI启动过程中待进行离散度量的关键EFI文件类型,能够有效覆盖SEC(Security Phase,安全验证阶段)、PEI(Pre-EFIInitialization,PEI前期初始化)、DXE(Driver Execution Environment,驱动执行环境)三个启动阶段中被调用的执行程序或代码。例如,关键EFI文件类型比如EFI_FV_FILETYPE_SECURITY_CORE和EFI_FV_FILETYPE_PEI_CORE等,在此不再一一列举。
在一个实施例中,不同厂商的固件所对应的关键EFI文件类型通常相同,但是相同关键EFI文件类型所对应的文件可能不同。类似地,不同固件版本的固件所对应的关键EFI文件类型通常相同,但是相同关键EFI文件类型所对应的文件可能不同。由此,所有待监控固件所对应的待监控的文件类型,可通过相同的监控策略参数进行统一配置,而通过深度优先搜索的方式遍历固件镜像,能够对应于不同厂商和/或固件版本的待监控固件得到差异化的文件,从而能够实现对每个待监控固件的完整性监控。
图4为一个实施例中,遍历固件镜像得到待监控的文件类型对应的文件的流程示意图。如图4所示,每个固件镜像在文件系统结构上,细分为卷(Volume)、文件(File)、节(Section)等多级关系,在数据内容上存在逐级包含特性。例如,文件可包括非原子文件和原子文件,非原子文件可进一步包括节、卷和原子文件,而原子文件则未包括其他子文件。待监控设备以固件镜像为中心,通过深度优先搜索的方式,从第一级的卷开始不断向下遍历,直至得到该固件镜像中的所有原子文件,并根据预设的监控范围,将与待监控的文件类型对应的原子文件进行标记,也即对所得到的文件进行标记。如图4中通过实心圆圈来标记待监控的文件类型所对应的原子文件。
如图4所示,Si表示固件镜像中的节,V1至V3表示固件镜像中的卷,402表示非原子文件,404表示原子文件,一个虚线圈对应一个层级,而图4中节和原子文件两个层级之间的虚线圈可能包含多级卷-文件-节关系。图4中所示的卷、非原子文件、节和与原子文件的数量仅作为示例,以及用于表征卷、非原子文件、节和与原子文件的图标也仅作为示例,并不用于具体限定。
上述实施例中,通过深度优先搜索的方式遍历固件镜像,得到每个待监控的文件类型下的文件,以便于通过对每个文件进行离散度量,实现对固件镜像的细粒度度量,从而实现对固件的安全性监控。
在一个实施例中,当待监控类型为配置类型时,步骤S204还包括:从固件镜像中读取配置类型对应的配置。步骤S206包括:对每个解析结果分别进行哈希度量,并将所得到的哈希值确定为相应解析结果所对应的度量结果。
其中,配置类型是指待进行离散度量的配置的类型,比如Secure Boot配置、TPM/TXT状态、SPI Flash写保护开/关闭状态等,在此不作具体限定。哈希度量是指通过哈希算法对解析结果进行哈希运算得到度量结果。常用的哈希算法比如,MD5(Message DigestAlgorithm,消息摘要算法第五版)、SHA1(Secure Hash Algorithm,安全哈希算法)、SHA2和SHA3等,在此不作具体限定。
具体地,待监控设备确定待监控的配置的配置类型,并从所采集到的固件镜像中,分别读取所确定的每个配置类型所对应的配置。待监控设备从固件镜像中获取到配置后,通过哈希算法分别对每个配置进行哈希运算得到相应的哈希值,并将每个配置对应的哈希值确定为该配置对应的度量结果。相应地,待监控设备从固件镜像中获取到文件后,通过哈希算法分别对每个文件进行哈希运算得到相应的哈希值,并将每个文件对应的哈希值确定为该文件对应的度量结果。
在一个实施例中,待监控设备根据预配置的监控策略参数确定待监控的配置类型,或者,将预标记的配置类型确定为待监控的配置类型。待监控设备从固件镜像中获取与所确定的配置类型对应的配置,得到待监控的配置。
在一个实施例中,待监控设备解析所采集到的固件镜像,并从解析后的固件镜像中读取每个配置类型所对应的配置,以及每个配置所对应的配置数据。配置所对应的配置数据比如配置状态值。
在一个实施例中,待监控设备通过两个线程并行的从固件镜像中获取文件和配置,并分别对所获取到的文件和配置进行哈希度量,得到各自对应的度量结果。这样,通过两个线程并行操作,能够提高解析结果的提取和度量效率,从而能够提高固件镜像的度量效率。
上述实施例中,将配置与文件均作为固件镜像度量的依据,以提高固件镜像度量的完整性和全面性,从而能够提高固件监控的可靠性。而且,通过对每个解析结果进行哈希度量,能够提高度量结果的可靠性,从而能够进一步提高固件监控的可靠性,进而能够提高固件的安全性。
图5为一个实施例中待监控设备获取待监控固件对应的上报数据的流程示意图。待监控设备在采集本地部署的待监控固件的固件镜像之前,首先进行自身的芯片组型号判断。当判定芯片组型号与目标芯片组型号一致时,待监控设备在用户态读取待监控固件的固件镜像,并解析固件镜像得到待监控类型对应的解析结果,作为固件镜像对应的目标监控对象。待监控设备对所得到的解析结果进行离散度量,以实现目标监控对象的离散度量,并对离散度量结果进行封装,以实现上报数据的生成。其中,上报数据具体可以是轻量级的结构化数据。
在一个实施例中,步骤S208包括:确定固件镜像对应的解析结果数;根据所得到的度量结果得到固件镜像对应的整体度量结果;将携带度量结果、解析结果数和整体度量结果的上报数据,上报至数据分析服务器;上报数据用于指示数据分析服务器,当解析结果数与整体度量结果不满足相应整体基准条件时,构建上报数据对应的离散度量树,并基于离散度量树与相应基准离散度量树对待监控固件进行安全性分析。
其中,解析结果数是指固件镜像中待进行离散度量的解析结果的总数。整体度量结果是指基于固件镜像对应各解析结果所对应的度量结果确定的、用于对该固件镜像进行整体分析的度量结果。整体基准条件是用于对固件镜像进行整体分析的判断依据,具体可以是解析结果数与基准解析结果数一致,且整体度量结果与整体基准度量结果一致。
具体地,待监控设备基于解析固件镜像得到的解析结果,确定该固件镜像所对应的解析结果数,并根据各解析结果对应的度量结果得到该固件镜像所对应的整体度量结果。待监控设备触发生成携带有与固件镜像对应的度量结果、解析结果数和整体度量结果的上报数据,并将所生成的上报数据上报至数据分析服务器。数据分析服务器根据所接收的上报数据获取相应整体基准条件,并将上报数据中的解析结果数和整体度量结果与该整体基准条件进行比较,以实现对相应固件镜像的整体分析。当判定解析结果数和整体度量结果不满足整体基准条件时,表明上报数据对应的固件镜像可能存在异常,数据分析服务器则基于上报数据构建携带有各度量结果的离散度量树,并确定基准离散度量数,以基于该离散度量树和基准离散度量树对上报数据对应的待监控固件进行安全性分析。整体基准条件、基准离散度量树和上报数据对应的固件版本一致。
在一个实施例中,当判定解析结果数和整体度量结果满足整体基准条件时,表明上报数据对应的固件镜像正常,数据分析服务器则结束当前的分析流程,并判定该固件镜像对应的待监控固件是安全可靠的。可以理解,当判定解析结果数和整体度量结果满足整体基准条件时,数据分析服务器也可进一步对离散度量树和基准离散度量树进行一致性判断。
在一个实施例中,待监控设备对解析固件镜像得到的解析结果进行统计,或者,对对应于固件镜像构建的离散度量树中的叶子节点数进行统计,得到该固件镜像对应的解析结果数。
在一个实施例中,待监控设备对固件镜像所对应的各个度量结果进行拼接,并对拼接后的度量结果进行整体度量得到相应的整体度量结果。在一个实施例中,待监控设备通过哈希算法对每个解析结果进行哈希运算得到相应哈希值后,对所得到的各个哈希值进行拼接,并通过哈希算法对拼接后的哈希值进行整体哈希运算,将所得到的整体哈希值确定为固件镜像所对应的整体度量结果。
在一个实施例中,待监控设备根据文件度量数和配置度量数得到固件镜像对应的解析结果数,并根据各文件对应的度量结果和各配置对应的度量结果,确定该固件镜像所对应的整体度量结果。待监控设备具体可根据各文件和配置所对应的度量结果,按照下述公式计算固件镜像对应的整体度量结果,
Hashall=H(H(C1)||...||H(Cn)||H(F1)||...||H(Fm))
其中,Hashall表示固件镜像对应的整体度量结果,H()表示对括号内的对象进行哈希运算得到哈希值,H(Ci)表示第i个配置对应的度量结果,H(Fj)表示第j个文件对应的度量结果,i的取值范围为[1,n],n为固件镜像中的配置数,j的取值范围为[1,m],m为固件镜像中的文件数。在一个实施例中,H()具体可以是SHA3()。
在一个实施例中,数据分析服务器可根据上报数据对应的固件版本,从本地获取相应的整体基准条件和基准离散度量树,还可根据上报数据对应的固件版本和待监控设备的设备型号,获取相应的整体基准条件和基准离散度量树。
在一个实施例中,若上报数据中未携带固件镜像对应的解析结果数和整体度量结果,数据分析服务器也可根据上报数据确定该固件镜像对应的解析结果数和整体度量结果。
上述实施例中,通过上报携带有解析结果数和整体度量结果的上报数据,使得数据分析服务器基于上报数据能够快速对固件镜像进行整体分析,并在整体分析的基础上基于各度量结果对固件镜像进行细粒度分析,从而实现对固件镜像的细粒度完整性分析,由此,在保证固件监控的可靠性的情况下,能够提高监控效率。
在一个实施例中,步骤S208包括:将携带度量结果、待监控固件的固件版本和自身设备型号的上报数据上报至数据分析服务器;上报数据用于指示数据分析服务器,当根据上报数据构建的离散度量树与相应基准离散度量树不匹配时,对待监控固件从以下多个维度中的至少一个进行安全性分析;多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于固件版本和设备型号进行对等设备异常检测。
其中,威胁情报是指基于已知资源预测潜在的威胁或攻击,具体可以是指基于已知的恶意文件或风险文件预测固件镜像中的异常解析结果。对等设备是指设备型号和设备本地部署的固件版本均一致的至少两个设备,任意两个设备型号和固件版本均一致的待监控设备互为对等设备。
具体地,待监控设备在确定本地部署的待监控固件所对应的固件版本和各度量结果,以及自身的设备型号后,触发生成携带有该固件版本、设备型号和各度量结果的上报数据,并将所生成的上报数据上报至数据分析服务器。数据分析服务器根据所接收的上报数据构建相应离散度量树,并基于该离散度量树与固件版本一致的基准离散度量树对相应待监控固件进行安全性分析。当判定离散度量树与相应基准离散度量树不匹配时,数据分析服务器进一步从基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于固件版本和设备型号进行对等设备异常检测等多个分析维度中的一个或多个维度,对相应待监控固件进行安全性分析。
在一个实施例中,数据分析服务器通过离散度量树与相应基准离散度量树的比对分析,实现对相应固件镜像的细粒度完整性检测。通过细粒度的完整性检测能够直接定位出固件镜像中的异常解析结果。数据分析服务器将离散度量树中与相应基准解析结果所对应的度量结果不一致的解析结果,确定为异常解析结果。当通过该种方式判定固件镜像中存在异常解析结果时,表明待监控固件相较于相同固件版本的基准固件存在固件变更,数据分析服务器进一步对该异常解析结果进行分析,以进一步判断待监控固件的固件变更是否为正常变更。
数据分析服务器可根据基准离散度量树对应的白名单,进一步对固件镜像中的异常解析结果进行异常分析,若该异常解析结果对应的度量结果与白名单相匹配,则判定该异常解析结果为正常变更的解析结果,以实现误报过滤,从而能够降低误报率。数据分析服务器也可通过威胁情报进一步对异常解析结果进行风险判断,当判定异常解析结果为已知风险的解析结果时,将该异常解析结果对应的度量结果更新至相应基准离散度量树所对应的黑名单中,并触发告警。数据分析服务器还可基于待监控固件的固件版本和待监控设备的设备型号,确定该待监控设备的对等设备,并基于该对等设备的上报数据进一步对该异常解析结果进行异常检测。
在一个实施例中,数据分析服务器基于固件版本和设备型号确定多个对等设备,获取每个对等设备的上报数据,并进一步统计该多个上报数据中,度量结果与待监控设备的上报数据中的度量结果一致的上报数据总数,当统计的上报数据总数大于或等于预设数量阈值时,则判定异常解析结果为正常变更的解析结果。预设数量阈值比如所确定的对等设备总数的一半。
上述实施例中,通过上报携带有固件版本和设备型号的上报数据,使得数据分析服务器在基于离散度量树和基准离散度量树判定待监控固件存在异常的基础上,进一步对待监控固件进行一个或多个维度的安全性分析,以提高固件监控的可靠性,从而提高固件的安全性。
在一个实施例中,步骤S202按照预设周期定期执行。
其中,预设周期是指预先设定的相邻两次采集待监控固件的固件镜像的时间间隔或时间长度,具体可根据实际情况自定义,比如1小时或1天。
具体地,待监控设备统计自前一次采集待监控固件的固件镜像起的采集等待时长,当统计的采集等待时长与预设周期一致时,采集该待监控设备当前的固件镜像。进一步地,待监控设备解析当次采集的固件镜像得到待监控类型下的解析结果,对所得到的每个解析结果分别进行离散度量,得到相应的度量结果,并将携带每个解析结果的度量结果的上报数据上报至数据分析服务器,以指示数据分析服务器基于该上报数据对待监控固件进行安全性分析。
在一个实施例中,当自前一次采集待监控固件的固件镜像后达到预设时长,待监控设备动态采集该待监控固件当前的固件镜像,并通过度量当次采集的固件镜像,实现对待监控固件的安全性的动态监控。预设时长由预设周期确定。这样,通过调整预设周期,能够实现对待监控固件进行近实时的健康度或安全性检查,从而提高对待监控设备的底层硬件渗透的感知和防护能力。
在一个实施例中,当判定待监控固件存在异常变更时,数据分析服务器触发告警信息,并将告警信息推送至管控端。管控端具体可以是待监控设备对应的管理员或该待监控设备所归属的用户所对应的终端。数据分析服务器具体可通过移动端或WEB端推送告警信息。
传统的底层硬件防护方案,通常是通过启动阶段检测来保证待监控设备的安全启动,比如启动阶段校验和启动阶段度量。启动阶段校验是在开机启动过程中,对待监控固件的各个阶段涉及的固件内容进行签名校验,并基于签名校验的结果进行启动过程的入侵防护。该种方式下,由于引入数字签名,带来了不可忽视的证书管理成本,且难以保证对于所有启动阶段关键EFI文件的安全性校验,由此无法保证对于APT(Advanced PersistentThreat,高级持续性威胁)攻击的防护效果,而且,当签名校验失败时,开机过程会陷入阻断模式,且没有相应的消息被同步至管控端,故而很难应用于大规模服务器。
启动阶段度量通常是对待监控固件的固件镜像进行嵌套哈希运算,以实现对固件镜像的整体度量。但是该种粗粒度的度量方式存在因聚合而产生的不确定性,也即固件镜像中多个解析结果的变化对应同一个哈希值的变化,在异常分析阶段,需要进一步通过日志文件定位哈希变化的原因,而日志文件本身存储于待监控固件中,该日志文件的可用性和可信性均依赖于待监控设备厂商本身的安全技术实现。由此,该种验证方式也存在待监控固件的监控可靠性低的问题,从而存在固件安全性低的问题,也即无法保证对于APT攻击的防护效果。
基于上述分析可知,基于启动阶段检测来进行待监控设备的安全防护存在不足,比如若启动阶段未能成功拦截恶意硬件木马的运行,则启动后待监控设备的操作系统状态已不可信,还比如,在待监控设备未重启之前的相当长的时间内,未执行入侵行为的检测和分析,该种延迟性防护给攻击者带来了更多可乘之机。
而本申请提供的固件监控方法中,通过对固件镜像中待监控类型下的每个解析结果分别进行离散度量,实现对固件镜像的细粒度完整性度量,且基于对应于细粒度的度量结果构建的离散度量树和相应基准离散度量树,对相应待监控固件进行安全性分析,能够提高固件监控的可靠性,从而提高固件的安全性。而按照预设周期定期采集待监控固件的固件镜像,以基于采集的固件镜像实现对待监控固件的近实时监控,能够进一步保证固件的安全性,从而能够有效提高对于APT攻击的感知和防护能力。另外,当判定待监控固件存在异常时触发告警信息,以使得异常的待监控固件能够被及时处理,该种防护方式适用于大规模服务器场景。
在一个实施例中,数据分析服务器接收配置设备上报的与基准固件镜像对应的基准上报数据,根据该基准上报数据构建相应的基准离散度量树,并将该基准上报数据和基准离散度量树存储在本地,以便于在接收到待监控设备上报的上报数据时,基于与该上报数据对应的固件版本一致的基准上报数据,对该上报数据进行分析,达到监控待监控固件的效果。在一个实施例中,配置设备上报的基准上报数据,具体可以是根据最新的固件版本的基准固件镜像确定的。
如图6所示,在一个实施例中,提供了一种固件监控方法。本实施例主要以该方法应用于上述图1中的待监控设备110来举例说明。参照图6,该方法具体包括以下步骤:
S602,按照预设周期定期采集待监控固件的固件镜像。
S604,当待监控类型为文件类型时,通过深度优先搜索的方式遍历固件镜像,得到文件类型对应的文件。
S606,当待监控类型为配置类型时,从固件镜像中读取配置类型对应的配置。
S608,对每个解析结果分别进行哈希度量,并将所得到的哈希值确定为相应解析结果所对应的度量结果;解析结果包括文件和配置。
S610,确定固件镜像对应的解析结果数。
S612,根据所得到的度量结果得到固件镜像对应的整体度量结果。
S614,将携带度量结果、解析结果数和整体度量结果的上报数据,上报至数据分析服务器;上报数据用于指示数据分析服务器,当解析结果数与整体度量结果不满足相应整体基准条件时,构建上报数据对应的离散度量树,并基于离散度量树与相应基准离散度量树对待监控固件进行安全性分析。
上述实施例中,按照预设周期定期采集本地部署的待监控固件的固件镜像,通过对当次采集的固件镜像的度量,实现对固件镜像健康度的持续检查,以实现对待监控固件的近实时监控,从而能够提高待监控固件的安全性。通过解析所采集的固件镜像,分别得到待监控的每个文件类型下的文件,和每个配置文件类型下的配置,并对每个配置和文件分别进行哈希度量,以实现对固件镜像的细粒度完整性度量。通过将携带各度量结果、解析结果数和整体度量结果的上报数据上报至数据分析服务器,以指示数据分析服务器在基于解析结果数和整体度量结果对固件镜像进行整体度量的基础上,基于上报数据对应的离散度量树和基准离散度量树对待监控固件进行安全性分析,在提高监控效率的基础上能够提高监控的可靠性,从而能够进一步提高固件的安全性。
如图7所示,在一个实施例中,提供了一种固件监控方法。本实施例主要以该方法应用于上述图1中的数据分析服务器120来举例说明。参照图7,该方法具体包括以下步骤:
S702,接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;解析结果由待监控设备解析自身的待监控固件的固件镜像得到;解析结果与待监控类型相对应。
具体地,待监控设备采集本地部署的待监控固件的固件镜像,解析所采集到的固件镜像得到待监控类型所对应的解析结果,对所得到的每个解析结果分别进行离散度量得到相应的度量结果,触发生成携带有每个解析结果的度量结果的上报数据,并将所生成的上报数据上报至数据分析服务器。相应地,数据分析服务器接收待监控设备上报的、且携带有各度量结果的上报数据。
在一个实施例中,数据分析服务器接收多个待监控设备分别上报的上报数据。该多个待监控设备可同属于一个设备集群,以待监控设备为服务器为例,该多个待监控设备可以是企业服务器场景中的服务器集群。通过对每个待监控设备上的待监控固件进行安全性监控,能够在企业内网大规模服务器应用场景中,提升对硬件底层渗透的感知和防护能力,从而提升企业内网的安全性。
在一个实施例中,数据分析服务器接收每个待监控设备,按照预设周期定期采集并上报的上报数据,并基于所接收的上报数据对相应待监控固件进行安全性分析,以基于定期执行的安全性分析实现对待监控固件的持续监控。
在一个实施例中,待监控类型包括文件类型和配置类型,相应地,解析结果包括文件和配置。上报数据中包括文件和/或配置各自对应的度量结果。
S704,构建与上报数据对应的离散度量树。
具体地,数据分析服务器基于所接收到的上报数据构建相应的离散度量树。数据分析服务器解析上报数据得到每个解析结果对应的度量结果和待监控类型,并基于该上报数据对应的固件版本,以及每个解析结果对应的度量结果和待监控类型,构建相应的离散度量树。
S706,基于离散度量树与预配置的相应基准离散度量树,对待监控固件进行安全性分析。
具体地,数据分析服务器根据所接收的上报数据确定相应基准离散度量树,并基于所确定的基准离散度量树与所构建的离散度量树,对相应固件镜像进行安全性分析,以实现对待监控固件的安全性分析。
在一个实施例中,数据分析服务器将上报数据对应的离散度量树与相应基准离散度量树进行比对,以实现对待监控固件的安全性分析。数据分析服务器可基于离散度量树和基准离散度量树对固件镜像进行整体度量,并在整体度量的基础上上,基于该离散度量树和基准离散度量树对固件镜像进行细粒度的完整性度量。
在一个实施例中,当基于离散度量树和基准离散度量树判定待监控固件存在异常时,数据分析服务器进一步对该待监控固件进行一个或多个维度的分析,以提高监控的可靠性,从而提高固件的安全性。
在一个实施例中,数据分析服务器在本地针对每个固件版本,分别预配置有相应的基准离散度量树。数据分析服务器基于上报数据对应的固件版本查询预配置的基准离散度量树,并基于所查询的基准离散度量数进行待监控固件的安全性分析。这样,基于预配置的基准离散度量树进行待监控固件的安全性分析,能够提高分析的效率和准确性。
上述固件监控方法,接收待监控设备对应于待监控固件上报的、携带有待监控类型下每个解析结果对应的度量结果的上报数据,以根据该上报数据构建包含每个度量结果的离散度量树,并基于该离散度量树和相应基准离散度量树,对待监控固件的固件镜像进行细粒度的完整性度量。这样,基于较少的解析结果,能够对待监控固件进行细粒度的完整性监控,从而能够提高固件监控的可靠性,进而能够提高固件的安全性。
在一个实施例中,步骤S704包括:根据上报数据得到固件镜像对应的解析结果数和整体度量结果;确定待监控固件的固件版本所对应的整体基准条件;当解析结果数与整体度量结果不满足整体基准条件时,构建与上报数据对应的离散度量树。
具体地,待监控设备确定所采集的固件镜像对应的解析结果数,并基于每个解析结果的度量结果确定该固件镜像对应的整体度量结果,将携带有每个解析结果的度量结果、固件镜像对应的解析结果数和整体度量结果的上报数据上报至数据分析服务器。数据分析服务器解析所接收到的上报数据,得到固件镜像对应的解析结果数和整体度量结果,并确定待监控固件的固件版本。数据分析服务器确定固件版本对应的整体基准条件,并将解析得到的解析结果数和整体度量结果与该整体基准条件进行比对分析。当解析结果数和整体度量结果不满足整体基准条件时,数据分析服务器基于上报数据构建相应离散度量树,以基于该离散度量树和相应基准离散度量树对待监控固件进行安全性分析。
在一个实施例中,数据分析服务器基于上报数据中的解析结果数,对上报数据进行完整性检测,以避免因丢包、恶意篡改等问题而导致所接收的上报数据不完整的问题。数据分析服务器具体可根据解析结果数,对上报数据所携带的度量结果总数进行校验。
在一个实施例中,数据分析服务器解析上报数据得到待监控固件的固件版本,或者,接收待监控设备对应于上报数据一并上报的固件版本。
在一个实施例中,数据分析服务器获取固件版本对应的基准解析结果数和整体基准度量结果,并将固件镜像对应的解析结果数与该基准解析结果数进行比对,以及将固件镜像对应的整体度量结果与该整体基准度量结果进行比对,以实现对该固件镜像的整体度量。当判定解析结果数与基准解析结果数不一致、且整体度量结果与整体基准度量结果不一致时,数据分析服务器则判定固件镜像对应的解析结果数和整体度量结果不满足整体基准条件。
上述实施例中,基于固件镜像对应的解析结果数和整体基准条件,对该固件镜像进行整体度量,通过整体度量能够实现对固件镜像中解析结果的完整性检测,而在整体度量的基础上,基于上报数据对应的离散度量树和基准离散度量树,对固件镜像进行细粒度分析,能够实现对固件镜像的细粒度完整性检测,从而能够提高固件监控的可靠性。
在一个实施例中,步骤S706包括:将离散度量树与预配置的相应基准离散度量树进行匹配;当离散度量树与基准离散度量树不匹配时,对待监控固件从以下多个维度中的至少一个进行安全性分析;多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测。
具体地,数据分析服务器将对应于上报数据构建的离散度量树与相应基准离散度量树进行匹配。当判定离散度量树与相应基准离散度量树不匹配时,数据分析服务器从基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测等多个分析维度中的一个或多个维度,进一步对相应监控固件进行安全性分析。
在一个实施例中,基准离散度量树中包括基准固件镜像的每个基准解析结果对应的度量结果,相应地,离散度量树中包括待监控固件的固件镜像中每个解析结果的度量结果。数据分析服务器将离散度量树中每个解析结果对应的度量结果,分别与基准离散度量树中相应基准解析结果所对应的度量结果进行匹配。当离散度量树中存在与相应基准解析结果的度量结果匹配失败的解析结果时,数据分析服务器则判定该离散度量树与基准离散度量树不匹配,并判定相应待监控固件可能存在异常变更,由此通过一个或多个维度对该异常变更进行进一步分析,以提高监控的可靠性。
在一个实施例中,上报数据中携带的数据字段包括但不限于是:上报时间、待监控设备对应的厂商、设备型号信息和运行主机标识、待监控固件的固件版本、待监控类型、每个解析结果对应的度量结果、GUID编号和字符串标识、上报数据对应的上传编号、当前采集的固件镜像对应的解析结果数和整体度量结果等。这样,上报数据包含用于定位待监控固件出现异常变更时的全部信息,且该上报数据的数据量大小相较于待监控固件中的原始数据量大小,压缩包可达数百倍以上,显著降低了安全监控对于待监控设备正常业务的影响。
在一个实施例中,当判定固件镜像对应的解析结果数与整体度量结果不满足相应整体基准条件,且该固件镜像对应的离散度量树与相应基准离散度量树不匹配时,数据分析服务器进一步对待监控固件进行一个或多个维度的安全性分析。
上述实施例中,在基于上报数据判定待监控固件可能存在异常的情况下,进一步对该待监控固件进行一个或多个维度的安全性分析,以进一步提高固件监控的可靠性,从而进一步提高固件的安全性。
在一个实施例中,基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测的步骤,包括:确定待监控固件的固件版本和待监控设备的设备型号;根据固件版本和设备型号获取对等设备上报数据;对等设备上报数据由待监控固件的对等设备上报;基于对等设备上报数据对上报数据进行异常检测。
具体地,数据分析服务器确定当前分析的待监控固件的固件版本,以及相应待监控设备的设备型号,并根据所确定的固件版本和设备型号,获取由该待监控设备的对等设备上报的对等设备上报数据。数据分析服务器基于该对等设备上报数据与相应基准上报数据,或者,基于该对等设备上报数据与待监控设备的上报数据,对该待监控设备的上报数据进行异常检测。
在一个实施例中,数据分析服务器构建与所获取到的对等设备上报数据对应的离散度量树,将该离散度量树与固件版本一致的基准离散度量树进行匹配,以实现对待监控设备的上报数据的异常检测。当判定对等设备上报数据对应的离散度量树与基准离散度量树不匹配、且该离散度量树中匹配失败的度量结果与待监控设备对应的离散度量树中匹配失败的度量结果一致时,数据分析服务器则判定上报数据中的异常解析结果为正常变更的解析结果,并判定相应待监控固件是安全可靠的。
在一个实施例中,数据分析服务器将对等设备上报数据中每个解析结果对应的度量结果,与待监控设备的上报数据中相应解析结果的度量结果分别进行比对,以根据比对结果实现上报数据的异常检测。当每个解析结果在对等设备上报数据与待监控设备的上报数据中所对应的度量结果均一致时,则判定相应待监控固件存在正常的固件变更。
在一个实施例中,数据分析服务器根据固件版本和设备型号,确定待监控设备对应的一个或多个对等设备,并获取由该一个或多个对等设备上报的对等设备上报数据。数据分析服务器具体可获取由该一个或多个对等设备,在预设的时间窗口内上报的对等设备上报数据。基于时间窗口内的对等设备上报数据进行上报数据的异常检测,能够保证对等设备上报数据的时效性和可靠性,从而能够提高异常检测的可靠性。时间窗口具体可以是指覆盖当前时间、且时间长度设定的时间段,比如以当前时间为起始时间/结束时间/中点时间、且时间长度设定的时间段。
在一个实施例中,当获取到由多个对等设备分别上报的对等设备上报数据时,数据分析服务器则基于该多个对等设备上报数据对相应上报数据进行异常检测。当度量结果与上报数据中的度量结果一致的对等设备上报数据总数,大于或等于预设数量阈值一致时,则判定待监控固件的固件变更为正常变更。比如,假设待监控设备对应的对等设备群组中对等设备数量为N,若超过N/2个对等设备上报的度量结果与待监控设备上报的度量结果一致时,表明待监控设备的固件变更属于正常变更,则不会触发告警进行,否则,表明待监控设备的固件变更确为异常变更,则针对该异常变更触发告警信息或再确认流程。这样,通过对等设备群组的异常度分析来进一步判定待监控固件的异常性,能够提高固件监控的可靠性。
在一个实施例中,当判定待监控设备对应的离散度量树与相应基准离散度量树不匹配时,数据分析服务器则触发上述基于待监控固件的固件版本,与该待监控设备的设备型号进行对等设备异常检测的流程。
上述实施例中,在分析待监控设备上报的度量结果存在异常时,不会立即触发异常告警,而是基于对等设备上报的对等设备上报数据,进一步确认待监控固件的异常性,能够提高固件监控的可靠性。
在一个实施例中,基于对等设备上报数据对上报数据进行异常检测,包括:当对等设备上报数据符合异常检测条件时,执行下述基于威胁情报进行黑名单判定的步骤:基于威胁情报对上报数据中的异常度量结果进行风险判定;当判定异常度量结果存在风险时,将异常度量结果更新至基准离散度量树对应的黑名单中。
其中,异常检测条件是用于判定上报数据中的异常解析结果为异常变更的解析结果的依据。异常检测条件比如,对等设备上报数据中的度量结果与上报数据中的度量结果不一致,或者,度量结果与上报数据中的度量结果一致的对等设备上报数据总数小于预设数量阈值。
具体地,当判定对等设备上报数据符合异常检测条件时,表明上报数据中的异常解析结果为异常变更的解析结果,数据分析服务器则基于威胁情报进一步对该异常解析结果对应的异常度量结果进行风险判定。当判定该异常度量结果存在风险时,表明相应待监控固件存在被攻击的风险,数据分析服务器则触发告警信息,并将该异常度量结果更新至相应基准离散度量树所对应的黑名单中,以便于在再次接收到携带该异常解析结果所对应的异常度量结果的上报数据时,直接触发告警信息。
在一个实施例中,基于威胁情报对上报数据中的异常度量结果进行风险判定的步骤,具体可包括:数据分析服务器将上报数据中的异常度量结果,与已知的恶意文件进行比对,以根据比对结果对该异常度量结果进行风险判断。比如基于VirusTotal(一个可疑文件分析平台)数据库对异常度量结果进行风险判断,若VirusTotal判黑,表明该异常度量结果对应的解析结果为已知恶意文件,比如该解析结果中包括高级APT木马。
在一个实施例中,当判定离散度量树与相应基准离散度量树不匹配时,数据分析服务器基于该离散度量树与基准离散度量树,确定上报数据中的异常解析结果和相应的异常度量结果,并将所确定的异常度量结果与该基准离散度量树对应的黑名单进行匹配。当判定异常度量结果与黑名单不匹配时,数据分析服务器则触发上述基于待监控固件的固件版本,与待监控设备的设备型号进行对等设备异常检测的步骤。这样,基于黑名单预先对异常度量结果的异常性进行判定,能够提高判定效率。
在一个实施例中,当判定对等设备上报数据不符合异常检测条件时,表明上报数据中的异常解析结果为正常变更的解析结果,数据分析服务器则判定相应待监控固件的固件变更为正常变更。或者,在判定对等设备上报数据符合异常检测条件的基础上,当基于威胁情报判定上报数据中异常解析结果对应的异常度量结果为正常变更的度量结果时,数据分析服务器则判定相应待监控固件的固件变更为正常变更。
进一步地,数据分析服务器可将该正常变更的解析结果所对应的度量结果,更新至相应基准离散度量树所对应的白名单中,以便于在再次接收到携带该正常变更的解析结果所对应的度量结果的上报数据时,直接判定该度量结果为正常变更的度量结果。
图8为一个实施例中更新基准离散度量树中的黑白名单度量结果的结构示意图。如图8中的左图所示,对应于固件版本构建的基准离散度量树的深度为3,该基准离散度量树中包括固件版本对应的根节点、待监控类型对应的路径节点和基准解析结果对应的度量结果所对应的叶子节点。其中,一个固件版本对应有多个待监控类型,一个待监控类型对应有多个基准解析结果。待监控类型包括文件类型和配置类型。基准解析结果包括基准配置和基准文件。
当通过上述方式判定上报数据中的异常度量结果存在风险时,则在与该异常度量结果对应的基准解析结果所对应的叶子节点下,插入带有黑名单标识的度量结果,如图8中的右图所示,在相应叶子节点下新增与该黑名单度量结果对应的叶子节点。当通过上述方式判定上报数据中的异常度量结果为正常变更的度量结果时,则在与该异常度量结果对应的基准解析结果所对应的叶子节点下,插入带有白名单标识的度量结果,如图8中的右图所示,在相应叶子节点下新增与该白名单度量结果对应的叶子节点。
可以理解,如图8所示,通过在基准离散度量树中的相应叶子节点下,新增与白名单度量结果或黑名单度量结果对应的叶子节点的方式,来更新该基准离散度量树对应的黑白名单度量结果,仅作为示例,并不用于具体限定。比如,数据分析服务器可对应于该基准离散度量树,在本地存储有相应的黑名单或白名单。
在一个实施例中,数据分析服务器可在基准离散度量树的叶子节点下,新增空值的白名单度量结果所对应的叶子节点。当在初始的叶子节点下新增空值的叶子节点,则表明该初始的叶子节点可以不存在,也即表明当相同固件版本的上报数据中仅未包括该叶子节点所对应的度量结果时,仍然判定该上报数据是完整可靠的。当离散度量树中的解析结果数与基准离散度量树中的基准解析结果数不一致时,空值的叶子节点为相应异常度量结果的判定提供了加白方式。其他的加白方式也属于本申请的保护范畴,在此不一一赘述。
在一个实施例中,当判定上报数据中的异常度量结果存在风险,或者,判定上报数据中的度量结果与相应固件基线的差异值大于或等于预设的差异阈值时,表明相应待监控固件的完整性存在异常,数据分析服务器则通过移动端、WBE端方式将告警信息推送至管理员或待监控设备所归属的用户。该告警信息可理解为工单信息,具体可包括但不限于:上报事件时间、上报的固件版本与厂商信息、运行主机标识、业务信息、异常类型、发生变更的待监控类型(配置类型和/或文件类型)、异常解析结果的GUID编号、字符串标识和度量结果。其中,业务信息比如设备负责人、所属区域、所属业务等。异常类型比如配置异常、解析结果数异常和文件异常等。若工单确认为入侵,则进行应急响应流程,如将相应待监控设备进行网络隔离并进行详细安全审查。
上述实施例中,借助于威胁情报进一步对上报数据进行风险判定,以提高固件监控的可靠性,且在判定上报数据中的异常度量结果存在风险时,将该异常度量结果更新至相应黑名单,以便于再次检测到该异常度量结果时,基于黑名单直接触发告警,能够提高告警效率。
在一个实施例中,基于白名单进行误报过滤的步骤,包括:根据离散度量树与基准离散度量树,确定上报数据中的异常度量结果;当异常度量结果与基准离散度量树对应的白名单相匹配时,将异常度量结果判定为正常变更的度量结果;当异常度量结果与基准离散度量树对应的白名单不匹配时,执行基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测的步骤。
具体地,当判定上报数据对应的离散度量树和相应基准离散度量树不匹配时,数据分析服务器通过比对该离散度量树和基准离散度量树,确定该上报数据中的异常度量结果,并将所确定的异常度量结果与该基准离散度量树对应的白名单进行匹配。当判定异常度量结果与白名单相匹配时,数据分析服务器则将该异常度量结果判定为正常变更的度量结果,并判定相应待监控固件是安全可靠的。当判定异常度量结果与白名单不匹配时,数据分析服务器则触发基于待监控固件的固件版本,与待监控设备的设备型号进行对等设备异常检测的步骤,以便于进一步对该异常度量结果进行风险判定。
在一个实施例中,当基于离散度量树判定上报数据中存在异常度量结果,而基于对等设备异常检测判定该异常度量结果为正常变更的度量结果时,表明基于离散度量树和基准离散度量树进行异常判断时,存在误判的情形,通过将该存在误判的度量结果加入白名单,以使得后续基于该白名单能够进行误判的过滤,从而能够实现误报过滤,以减少误报的出现。
上述实施例中,基于白名单进行误报过滤,能够减少误报的频率,实现误报控制,且通过动态更新白名单,能够进一步提高误报控制效率。
在一个实施例中,基准离散度量树的配置步骤,包括:接收配置设备上报的、且携带有每个基准解析结果的度量结果的基准上报数据;基准解析结果由配置设备解析基准固件镜像得到;基准解析结果与待监控类型相对应;基准固件镜像对应的固件版本,与待监控固件的固件版本一致;根据基准上报数据配置基准离散度量树。
具体地,当满足基准数据配置条件时,配置设备确定待配置的固件版本,并获取该固件版本对应的基准固件镜像。配置设备根据预配置的监控策略参数确定待监控类型,解析基准固件镜像得到每个待监控类型所对应的基准解析结果。配置设备对每个基准解析结果进行离散度量得到相应的度量结果,并将携带每个基准解析结果的度量结果的基准上报数据上报至数据分析服务器。数据分析服务器将接收到的基准上报数据存储在本地,并基于该基准上报数据构建相应的基准离散度量树,以实现基准离散度量树的配置。基准数据配置条件比如检测到基准数据配置指令。
在一个实施例中,配置设备从供应商设备获取最新的固件版本所对应的基准固件镜像,并将对应于该基准固件镜像触发生成的基准上报数据上报至数据分析服务器。配置设备可按照指定周期定期从供应商设备获取最新的固件版本所对应的基准固件镜像,并在当次获取的基准固件镜像与前一次获取的基准固件镜像不一致时,触发上述基准数据配置流程。
在一个实施例中,配置设备将所获取到的最新固件版本的基准固件镜像,与相应的厂商和设备型号相匹配,建立如以下表1所示的固件版本-设备型号映射关系表。这样,在获取到新增的固件版本的基准固件镜像后,通过更新该映射关系表,以便于在后续处理流程中,根据固件版本能够确定相应的设备型号,通过设备型号也能够反向确定相应的固件版本。
表1固件版本-设备型号映射关系表
厂商 | 固件版本 | 设备型号 |
BRAND_NAME1 | 20190721_v1 | INRX7755AA |
BRAND_NAME2 | 20200812_v2 | TES3CV100G |
… | … | … |
在一个实施例中,配置设备从供应商设备获取到基准固件镜像后,根据供应商公钥对该基准固件镜像进行签名认证,并在签名通过认证时判定该基准固件镜像是安全可靠的。这样,能够防止因供应链攻击而获取到已被攻击的基准固件镜像。在一个实施例中,配置设备具体可以是终端或服务器。
在一个实施例中,配置设备根据由基准固件镜像得到的各度量结果,构建携带每个基准解析结果的度量结果的基准离散度量树,并对该基准离散度量树进行基线标记,得到该基准固件镜像对应的基准解析结果数和整体基准度量结果,并作为相应固件版本的整体基线信息。配置设备可将还携带有该整体基线信息的基准上报数据上报至数据分析服务器,以便于数据分析服务器基于该整体基线信息对待监控设备的上报数据进行整体分析。
上述实施例中,通过配置设备采集基准固件镜像并触发生成基准上报数据,以便于数据分析服务器基于该基准上报数据构建基准离散度量树,并基于该基准离散度量树和固件版本一致的上报数据,对相应待监控设备进行安全性分析,能够提高固件监控的效率和可靠性。
图9为一个实施例中基于上报数据对待监控固件进行安全性分析的步骤的流程示意图。数据分析服务器在接收到待监控设备上报的上报数据后,基于上报数据中的解析结果数和整体度量结果,对固件镜像进行整体度量,以实现对固件镜像中的配置与文件的完整性检测。数据分析服务器在整体度量的基础上,根据对应于上报数据构建的离散度量树,与对应于相同固件版本的固件基线构建的基准离散度量树,对固件镜像进行细粒度度量。数据分析服务器基于离散度量树和基准离散度量树,能够确定上报数据中的异常度量结果,由此判定相应待监控设备可能存在异常。
数据分析服务器基于待监控设备的设备型号和相应待监控固件的固件版本,进行对等设备群组异常度分析,以进一步实现对该待监控固件的异常分析。数据分析服务器基于对等设备群组异常度分析的分析结果,进行相应固件版本的白名单更新与误报控制,或者,进行威胁情报关联分析。若通过对等设备群组异常度分析,判定上报数据中的异常度量结果为正常变更的度量结果,则表明存在正常变更的误判情形,并将该正常变更的度量结果更新至相应白名单,以便于再次检测到处于白名单中的度量结果时,能够直接判定为正常变更的度量结果。若通过对等设备群组异常度分析,判定上报数据中的异常度量结果确为异常变更的度量结果,则基于威胁情报进一步对该异常度量结果进行风险判定,并在判定存在风险时,对该待监控设备所在的设备群组进行设备群组的黑名单更新,以便于再次接收到处于黑名单中的度量结果时,能够直接判定为异常变更的度量结果。
其中,上述设备群组中的每个设备所对应的设备型号一致,每个设备本地部署的固件的固件版本也一致。更新的白名单与黑名单均与该设备群组对应,设备群组中的每个设备共享该白名单和黑名单。
图10为一个实施例中基于固件镜像的离散度量实现固件监控方法的流程示意图。在满足基准数据配置条件时,配置设备获取最新的固件版本的基准固件镜像,确定监控范围并离线解析基准固件镜像,得到基准上报数据。配置设备具体可基于监控策略参数确定待监控类型作为监控范围,并基于待监控类型解析基准固件镜像,以确定基准该固件版本对应的基准上报数据,并将基准上报数据上报至数据分析服务器。待监控设备采集待监控固件的固件镜像并进行离散度量,基于离散度量的度量结果触发生成结构化的上报数据,并进行结构化上报数据的上报。数据分析服务器在接收到待监控设备上报的上报数据后,基于固件版本一致的基准上报数据对上报数据进行安全性分析,以实现对待监控固件的固件安全监控。待监控设备的设备型号具体可与固件版本对应。
应该理解的是,虽然本申请各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图11所示,在一个实施例中,提供了一种固件监控装置1100,该固件监控装置包括:采集模块1102、解析模块1104、度量模块1106和上报模块1108,其中,
采集模块1102,用于采集待监控固件的固件镜像;
解析模块1104,用于解析固件镜像得到待监控类型对应的解析结果;
度量模块1106,用于对解析结果进行离散度量,得到每个解析结果对应的度量结果;
上报模块1108,用于将携带度量结果的上报数据上报至数据分析服务器;上报数据用于指示数据分析服务器构建上报数据对应的离散度量树,并基于离散度量树与相应基准离散度量树对待监控固件进行安全性分析。
在一个实施例中,采集模块1102,还用于获取本地部署的芯片组型号;当芯片组型号与目标芯片组型号相匹配时,从内存映射文件中读取待监控固件的固件镜像;固件镜像通过内存映射的方式,由待监控固件所在的固件芯片同步至内存映射文件。
在一个实施例中,当待监控类型为文件类型时,解析模块1104,还用于通过深度优先搜索的方式遍历固件镜像,得到文件类型对应的文件。
在一个实施例中,当待监控类型为配置类型时,解析模块1104,还用于从固件镜像中读取配置类型对应的配置。度量模块1106,还用于对每个解析结果分别进行哈希度量,并将所得到的哈希值确定为相应解析结果所对应的度量结果。
在一个实施例中,上报模块1108,还用于确定固件镜像对应的解析结果数;根据所得到的度量结果得到固件镜像对应的整体度量结果;将携带度量结果、解析结果数和整体度量结果的上报数据,上报至数据分析服务器;上报数据用于指示数据分析服务器,当解析结果数与整体度量结果不满足相应整体基准条件时,构建上报数据对应的离散度量树,并基于离散度量树与相应基准离散度量树对待监控固件进行安全性分析。
在一个实施例中,上报模块1108,还用于将携带度量结果、待监控固件的固件版本和自身设备型号的上报数据上报至数据分析服务器;上报数据用于指示数据分析服务器,当根据上报数据构建的离散度量树与相应基准离散度量树不匹配时,对待监控固件从以下多个维度中的至少一个进行安全性分析;多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于固件版本和设备型号进行对等设备异常检测。
在一个实施例中,采集模块1102,还用于按照预设周期定期采集待监控固件的固件镜像。
如图12所示,在一个实施例中,提供了一种固件监控装置1200,该固件监控装置包括:接收模块1202、构建模块1204和分析模块1206,其中,
接收模块1202,用于接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;解析结果由待监控设备解析自身的待监控固件的固件镜像得到;解析结果与待监控类型相对应;
构建模块1204,用于构建与上报数据对应的离散度量树;
分析模块1206,用于基于离散度量树与预配置的相应基准离散度量树,对待监控固件进行安全性分析。
在一个实施例中,构建模块1204,还用于根据上报数据得到固件镜像对应的解析结果数和整体度量结果;确定待监控固件的固件版本所对应的整体基准条件;当解析结果数与整体度量结果不满足整体基准条件时,构建与上报数据对应的离散度量树。
在一个实施例中,分析模块1206,还用于将离散度量树与预配置的相应基准离散度量树进行匹配;当离散度量树与基准离散度量树不匹配时,对待监控固件从以下多个维度中的至少一个进行安全性分析;多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测。
在一个实施例中,分析模块1206,还用于确定待监控固件的固件版本和待监控设备的设备型号;根据固件版本和设备型号获取对等设备上报数据;对等设备上报数据由待监控固件的对等设备上报;基于对等设备上报数据对上报数据进行异常检测。
在一个实施例中,分析模块1206,还用于当对等设备上报数据符合异常检测条件时,基于威胁情报进行黑名单判定,具体包括:基于威胁情报对上报数据中的异常度量结果进行风险判定;当判定异常度量结果存在风险时,将异常度量结果更新至基准离散度量树对应的黑名单中。
在一个实施例中,分析模块1206,还用于根据离散度量树与基准离散度量树,确定上报数据中的异常度量结果;当异常度量结果与基准离散度量树对应的白名单相匹配时,将异常度量结果判定为正常变更的度量结果;当异常度量结果与基准离散度量树对应的白名单不匹配时,基于待监控固件的固件版本和待监控设备的设备型号进行对等设备异常检测。
在一个实施例中,上述固件监控装置1200,还包括:配置模块;
配置模块,用于接收配置设备上报的、且携带有每个基准解析结果的度量结果的基准上报数据;基准解析结果由配置设备解析基准固件镜像得到;基准解析结果与待监控类型相对应;基准固件镜像对应的固件版本,与待监控固件的固件版本一致;根据基准上报数据配置基准离散度量树。
图13示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的待监控设备110或数据分析服务器120。如图13所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现固件监控方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行固件监控方法。可以理解,当图13中的计算机设备为作为待监控设备110的终端时,该计算机设备还可包括显示屏和输入装置等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的固件监控装置可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备上运行。计算机设备的存储器中可存储组成该固件监控装置的各个程序模块,比如,图11所示的采集模块1102、解析模块1104、度量模块1106和上报模块1108;还比如,图12所示的接收模块1202、构建模块1204和分析模块1206。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的固件监控方法中的步骤。
例如,图13所示的计算机设备可以通过如图11所示的固件监控装置中的采集模块1102执行步骤S202。计算机设备可通过解析模块1104执行步骤S204。计算机设备可通过度量模块1106执行步骤S206。计算机设备可通过上报模块1108执行步骤S208。
还例如,图13所示的计算机设备可以通过如图12所示的固件监控装置中的接收模块1202执行步骤S702。计算机设备可通过构建模块1204执行步骤S704。计算机设备可通过分析模块1206执行步骤S706。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述固件监控方法的步骤。此处固件监控方法的步骤可以是上述各个实施例的固件监控方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述固件监控方法的步骤。此处固件监控方法的步骤可以是上述各个实施例的固件监控方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种固件监控方法,包括:
采集待监控固件的固件镜像;
解析所述固件镜像得到待监控类型对应的解析结果;
对所述解析结果进行离散度量,得到每个解析结果对应的度量结果;
将携带所述度量结果的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。
2.根据权利要求1所述的方法,其特征在于,所述采集待监控固件的固件镜像,包括:
获取本地部署的芯片组型号;
当所述芯片组型号与目标芯片组型号相匹配时,从内存映射文件中读取待监控固件的固件镜像;所述固件镜像通过内存映射的方式,由所述待监控固件所在的固件芯片同步至所述内存映射文件。
3.根据权利要求1所述的方法,其特征在于,当所述待监控类型为文件类型时,所述解析所述固件镜像得到待监控类型对应的解析结果,包括:
通过深度优先搜索的方式遍历所述固件镜像,得到所述文件类型对应的文件。
4.根据权利要求3所述的方法,其特征在于,当所述待监控类型为配置类型时,所述解析所述固件镜像得到待监控类型对应的解析结果,还包括:
从所述固件镜像中读取所述配置类型对应的配置;
所述对所述解析结果进行离散度量,得到每个解析结果对应的度量结果,包括:
对每个解析结果分别进行哈希度量,并将所得到的哈希值确定为相应解析结果所对应的度量结果。
5.根据权利要求1所述的方法,其特征在于,所述将携带所述度量结果的上报数据上报至数据分析服务器,包括:
确定所述固件镜像对应的解析结果数;
根据所得到的度量结果得到所述固件镜像对应的整体度量结果;
将携带所述度量结果、所述解析结果数和所述整体度量结果的上报数据,上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器,当
所述解析结果数与所述整体度量结果不满足相应整体基准条件时,构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。
6.根据权利要求1所述的方法,其特征在于,所述将携带所述度量结果的上报数据上报至数据分析服务器,包括:
将携带所述度量结果、所述待监控固件的固件版本和自身设备型号的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器,当
根据所述上报数据构建的离散度量树与相应基准离散度量树不匹配时,对所述待监控固件从以下多个维度中的至少一个进行安全性分析;
所述多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于所述固件版本和所述设备型号进行对等设备异常检测。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述采集待监控固件的固件镜像的步骤按照预设周期定期执行。
8.一种固件监控方法,所述方法包括:
接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;所述解析结果由所述待监控设备解析自身的待监控固件的固件镜像得到;所述解析结果与待监控类型相对应;
构建与所述上报数据对应的离散度量树;
基于所述离散度量树与预配置的相应基准离散度量树,对所述待监控固件进行安全性分析。
9.根据权利要求8所述的方法,其特征在于,所述构建与所述上报数据对应的离散度量树,包括:
根据所述上报数据得到所述固件镜像对应的解析结果数和整体度量结果;
确定所述待监控固件的固件版本所对应的整体基准条件;
当所述解析结果数与所述整体度量结果不满足所述整体基准条件时,构建与所述上报数据对应的离散度量树。
10.根据权利要求8所述的方法,其特征在于,所述基于所述离散度量树与预配置的相应基准离散度量树,对所述待监控固件进行安全性分析,包括:
将所述离散度量树与预配置的相应基准离散度量树进行匹配;
当所述离散度量树与所述基准离散度量树不匹配时,对所述待监控固件从以下多个维度中的至少一个进行安全性分析;
所述多个维度包括基于白名单进行误报过滤、基于威胁情报进行黑名单判定、基于所述待监控固件的固件版本和所述待监控设备的设备型号进行对等设备异常检测。
11.根据权利要求10所述的方法,其特征在于,所述基于所述待监控固件的固件版本和所述待监控设备的设备型号进行对等设备异常检测的步骤,包括:
确定所述待监控固件的固件版本和所述待监控设备的设备型号;
根据所述固件版本和所述设备型号获取对等设备上报数据;所述对等设备上报数据由所述待监控固件的对等设备上报;
基于所述对等设备上报数据对所述上报数据进行异常检测。
12.根据权利要求11所述的方法,其特征在于,所述基于所述对等设备上报数据对所述上报数据进行异常检测,包括:
当所述对等设备上报数据符合异常检测条件时,执行下述基于威胁情报进行黑名单判定的步骤:
基于威胁情报对所述上报数据中的异常度量结果进行风险判定;
当判定所述异常度量结果存在风险时,将所述异常度量结果更新至所述基准离散度量树对应的黑名单中。
13.根据权利要求10所述的方法,其特征在于,所述基于白名单进行误报过滤的步骤,包括:
根据所述离散度量树与所述基准离散度量树,确定所述上报数据中的异常度量结果;
当所述异常度量结果与所述基准离散度量树对应的白名单相匹配时,将所述异常度量结果判定为正常变更的度量结果;
当所述异常度量结果与所述基准离散度量树对应的白名单不匹配时,执行所述基于所述待监控固件的固件版本和所述待监控设备的设备型号进行对等设备异常检测的步骤。
14.根据权利要求8至13中任一项所述的方法,其特征在于,所述基准离散度量树的配置步骤,包括:
接收配置设备上报的、且携带有每个基准解析结果的度量结果的基准上报数据;所述基准解析结果由所述配置设备解析基准固件镜像得到;所述基准解析结果与所述待监控类型相对应;所述基准固件镜像对应的固件版本,与所述待监控固件的固件版本一致;
根据所述基准上报数据配置基准离散度量树。
15.一种固件监控装置,其特征在于,所述装置包括:
采集模块,用于采集待监控固件的固件镜像;
解析模块,用于解析所述固件镜像得到待监控类型对应的解析结果;
度量模块,用于对所述解析结果进行离散度量,得到每个解析结果对应的度量结果;
上报模块,用于将携带所述度量结果的上报数据上报至数据分析服务器;所述上报数据用于指示所述数据分析服务器构建所述上报数据对应的离散度量树,并基于所述离散度量树与相应基准离散度量树对所述待监控固件进行安全性分析。
16.一种固件监控装置,其特征在于,所述装置包括:
接收模块,用于接收待监控设备上报的、且携带有每个解析结果的度量结果的上报数据;所述解析结果由所述待监控设备解析自身的待监控固件的固件镜像得到;所述解析结果与待监控类型相对应;
构建模块,用于构建与所述上报数据对应的离散度量树;
分析模块,用于基于所述离散度量树与预配置的相应基准离散度量树,对所述待监控固件进行安全性分析。
17.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至14中任一项所述方法的步骤。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至14中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911066601.1A CN110798356B (zh) | 2019-11-04 | 2019-11-04 | 固件监控方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911066601.1A CN110798356B (zh) | 2019-11-04 | 2019-11-04 | 固件监控方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798356A true CN110798356A (zh) | 2020-02-14 |
CN110798356B CN110798356B (zh) | 2021-12-14 |
Family
ID=69442590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911066601.1A Active CN110798356B (zh) | 2019-11-04 | 2019-11-04 | 固件监控方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798356B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782511A (zh) * | 2020-06-17 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050039117A1 (en) * | 2003-08-15 | 2005-02-17 | Fuhwei Lwo | Method, system, and computer program product for comparing two computer files |
CN102135932A (zh) * | 2011-03-08 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种监控系统及监控方法 |
CN106909349A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于服务器的uefi固件实现方法 |
CN109240902A (zh) * | 2017-05-27 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种获取电子设备的固件代码的方法和装置 |
CN110245495A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | Bios校验方法、配置方法、设备及系统 |
US20190294802A1 (en) * | 2018-03-22 | 2019-09-26 | ReFirm Labs, Inc. | Continuous Monitoring for Detecting Firmware Threats |
CN110363011A (zh) * | 2019-07-19 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 用于验证基于uefi的bios的安全性的方法和设备 |
-
2019
- 2019-11-04 CN CN201911066601.1A patent/CN110798356B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050039117A1 (en) * | 2003-08-15 | 2005-02-17 | Fuhwei Lwo | Method, system, and computer program product for comparing two computer files |
CN102135932A (zh) * | 2011-03-08 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种监控系统及监控方法 |
CN106909349A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于服务器的uefi固件实现方法 |
CN109240902A (zh) * | 2017-05-27 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种获取电子设备的固件代码的方法和装置 |
CN110245495A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | Bios校验方法、配置方法、设备及系统 |
US20190294802A1 (en) * | 2018-03-22 | 2019-09-26 | ReFirm Labs, Inc. | Continuous Monitoring for Detecting Firmware Threats |
CN110363011A (zh) * | 2019-07-19 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 用于验证基于uefi的bios的安全性的方法和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782511A (zh) * | 2020-06-17 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
CN111782511B (zh) * | 2020-06-17 | 2022-12-09 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110798356B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112929326B (zh) | 恶意域名访问的检测方法、装置及计算机可读存储介质 | |
US9652632B2 (en) | Method and system for repairing file at user terminal | |
US8984331B2 (en) | Systems and methods for automated memory and thread execution anomaly detection in a computer network | |
US10917793B2 (en) | Verifying network subsystem integrity with blockchain | |
CN110830470B (zh) | 一种失陷主机检测方法、装置、设备及可读存储介质 | |
US8806643B2 (en) | Identifying trojanized applications for mobile environments | |
US10372909B2 (en) | Determining whether process is infected with malware | |
US8078909B1 (en) | Detecting file system layout discrepancies | |
CN113282928B (zh) | 恶意文件的处理方法、装置、系统、电子装置和存储介质 | |
CN110647750B (zh) | 文件完整性度量方法、装置、终端及安全管理中心 | |
JP2019003598A (ja) | 異常な事象を検出するシステム及び方法 | |
KR101902747B1 (ko) | 클라이언트 측 웹 취약점 분석 방법 및 장치 | |
CN112818307A (zh) | 用户操作处理方法、系统、设备及计算机可读存储介质 | |
CN110798356B (zh) | 固件监控方法、装置、存储介质和计算机设备 | |
CN113961936A (zh) | 可信白名单建设方法、系统、装置和计算机设备 | |
JP2006146600A (ja) | 動作監視サーバ、端末装置及び動作監視システム | |
JP2020028092A (ja) | 攻撃検知装置、攻撃検知システム、攻撃検知方法および攻撃検知プログラム | |
CN116992438A (zh) | 基于代码疫苗的实时漏洞修复的方法、装置、设备及介质 | |
CN113127873A (zh) | 堡垒机的可信度量系统及电子设备 | |
CN112241529A (zh) | 恶意代码检测方法、装置、存储介质和计算机设备 | |
CN114969744A (zh) | 进程拦截方法及系统、电子设备、存储介质 | |
CN116155519A (zh) | 威胁告警信息处理方法、装置、计算机设备和存储介质 | |
CN113656809A (zh) | 镜像的安全检测方法、装置、设备及介质 | |
CN111935180A (zh) | 安防设备主动防御方法、装置及系统 | |
CN113591087A (zh) | 进程注入攻击检测方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021142 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |