一种监控方法及电子设备与流程

文档序号:17588879发布日期:2019-05-03 21:35阅读:185来源:国知局
一种监控方法及电子设备与流程

本申请涉及计算机技术,尤其涉及一种监控方法及电子设备。



背景技术:

固件层存在的安全漏洞已成为信息安全业界重要的威胁因素之一,利用其实时的攻击具有不易清除、难以检测、破坏性强等固有特点。因此,研究基于固件层的攻击,从底层为计算机安全提供了有力的保障,具有重要的应用价值和研究意义。

固件接口(extensiblefirmwareinterface,efi)驱动,比如:统一的可扩展固件接口(unifiedextensiblefirmwareinterface,uefi)驱动,定义了操作系统和硬件平台固件之间的接口规范。但是一些恶意厂商会在固件接口驱动中加入恶意的代码,不可避免地带来安全隐患。因此,在加载固件接口驱动时,需要识别出加入恶意代码的恶意固件接口驱动,以保证系统的安全性。

相关技术中,为了识别出恶意固件接口驱动,预先在系统和授权的固件接口驱动中加入证书,在加载固件接口驱动之前,通过预先加入的证书对待加载的固件接口驱动进行认证,对认证通过的固件接口驱动进行加载,认证未通过的固件接口驱动不加载。其中,将一些安全但未预先设置证书的固件接口驱动误认为是恶意固件接口驱动,导致这类驱动无法正常加载运行。



技术实现要素:

本申请实施例提供了一种监控方法及电子设备,能够有效监控固件接口驱动的安全性。

本申请实施例提供的监控方法,应用于电子设备,所述方法包括:

接收针对待加载的固件接口驱动的加载指令;所述加载指令用于指示加载所述固件接口驱动;

如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

本申请实施例提供的电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的监控方法的步骤。

本申请实施例中,在加载固件接口驱动时,如果加载的固件接口驱动为不受信任固件接口驱动,在加载不受信任的固件接口驱动的同时,对加载的固件接口驱动进行监控,以监控加载的固件接口驱动是否存在恶意行为;在有效识别出恶意的固件接口驱动的同时,不会通过简单的预先设置判断规则将不信任的固件接口驱动直接否定而不加载,从而避免一些安全但不符合预先设定的判断规则的固件接口驱动误认为是恶意固件接口驱动,导致这类驱动无法正常加载运行,有效识别固件接口的安全性。

附图说明

图1为本申请实施例监控方法的实现流程示意图一;

图2为本申请实施例监控方法的实现流程示意图二;

图3为本申请实施例监控方法的实现流程示意图三;

图4为本申请实施例监控方法的实现流程示意图四;

图5为本申请实施例基于efi系统的计算机系统组成示意图;

图6为本申请实施例efi启动执行流程示意图;

图7为本申请实施例监控装置的结构示意图;

图8为本申请实施例电子设备的结构示意图。

具体实施方式

以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。

在本发明的各种实施例中:接收针对待加载的固件接口驱动的加载指令;所述加载指令用于指示加载所述固件接口驱动;如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

本申请实施例提供一种监控方法,该方法应用于电子设备,该方法应用于电子设备,电子设备中的各功能模块可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

当然,本申请实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本申请实施例提供的监控方法的指令)。

本申请实施例提供一种监控方法,如图1所示,该监控方法包括:

s101、接收针对待加载的固件接口驱动的加载指令;

所述加载指令用于指示加载所述固件接口驱动。

当电子设备接收到开机指令或重启指令加电,进入驱动执行环境阶段中,遍历固件接口系统中所有的固件接口驱动,并调度所遍历的固件接口驱动至队列中,作为待加载的固件接口驱动等待被加载。

这里,固件接口系统中的固件接口驱动根据获取源不同,包括两种类型:系统固件接口驱动和外载固件接口驱动。其中,系统固件接口驱动为内嵌入系统中作为系统的一个模块的固件接口驱动,可由开发人员在嵌入到电子设备的系统的源代码中。外载固件接口驱动为系统中不包括源代码的通过外载的比如:内存卡、显卡、网卡等芯片装载到电子设备中的接口驱动。

固件接口系统中的每个固件接口驱动都是一个独立的模块,固件接口驱动之间通过protocol(程序)通信,每个protocol对应一个全局唯一标识符(globallyuniqueidentifier,guid)。一个固件接口驱动可通过启动服务中的开启protocol和guid打开对应的protocol,从而使用打开的protocol所提供的服务。

对于一待加载的固件接口驱动,当接收到加载指令时,判断该待加载的固件接口驱动是否为不受信任的固件接口驱动。

在判断待加载的固件接口驱动是否为不受信任的固件接口驱动时,可预设判断策略,如果待加载的固件接口驱动满足设定的判断策略,则待加载的固件接口驱动为受信任的固件接口驱动,如果待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动。

在本申请实施例中,判断策略可根据实际需求进行设置,比如:设置一受信任固件接口驱动列表,如果受信任列表中的接口驱动列表中包括有待加载的固件接口驱动,则确定待加载的固件接口驱动满足设定的判断策略,为受信任的固件接口驱动;否则确定待加载的固件接口驱动不满足设定的判断策略,为不受信任的固件接口驱动。又比如:通过设定的安全证书对待加载的固件接口驱动进行安全认证,如果待加载的固件接口驱动通过安全认证,确定待加载的固件接口驱动满足设定的判断策略,为受信任的固件接口驱动;如果待加载的固件接口驱动未通过安全认证,确定待加载的固件接口驱动不满足设定的判断策略,为不受信任的固件接口驱动。又比如:确定来自于电子设备对应的厂商以外的第三方厂商,且在固件接口系统中没有源代码的固件接口驱动,确定为可不受信任的固件接口驱动。

需要说明的是,本申请实施例中,对判断策略的判断规则不进行任何的限定,用户可根据实际需求进行设置。

s102、如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

如果确定待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动,此时,基于加载指令加载该固件接口驱动,并对该固件接口驱动进行监控,以判断固件接口驱动是否存在恶意行为,识别该附件接口驱动是否为恶意固件接口驱动。

对一固件接口驱动进行监控时,可通过以下监控方式中的至少一种进行监控:

方式一、判断设定项信息在加载固件接口驱动之前和之后是否发生变化。

方式二、对设定的安全监控程序进行监控,确定设定的安全监控程序是否被调用。

方式三、监控是否存在与网络访问。

在方式一中,如果监控到设定项信息在加载固件接口驱动之前和之后发生变化,确定设定项信息被加载的不受信任的接口固件驱动修改,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。

其中,设定项可包括:主板芯片/cpu设定,uefi启动设定,中断设定等与系统安全关联的设定项。

在方式二中,如果确定设定的安全监控程序被调用,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。其中,在监控安全监控服务是否被调用时,可在安全监控服务中设置监控点,基于设置的监控点监控安全监控服务是否被调用。

其中,安全监控程序可包括:网络访问protocol、系统管理中断(systemmanagementinterrupt,smi)服务登记(smihandlerregister)程序等与系统安全关联的程序。这里,安全监控程序可根据用户实际需求进行设置,本申请实施例对安全监控程序不进行任何的限定。

在方式三中,如果确定存在网络访问,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。其中,网络访问可包括通过网络访问protocol进行的网络访问,也可包括绕过网络访问protocol直接通过电子设备的网卡进行的网络访问。

需要说明的是,本申请实施例中,对电子设备对加载的固件接口驱动进行监控的监控方式不进行任何的限定,用户可根据实际需求进行设置。

在实际应用中,可确定待加载的固件接口驱动对应的权限等级,根据对应的权项等级对固件接口驱动进行监控。其中,不同的权限等级对应不同的禁止行为,待加载的固件接口驱动对应的权限等级可预先设置。比如:待加载的固件接口驱动的权限等级为一级时,待加载的固件接口驱动,对应的禁止行为为网络访问,即不允许固件接口驱动进行网络访问,此时,通过监控方式三对固件接口驱动进行监控。又比如:待加载的固件接口驱动的权限等级为二级时,待加载的固件接口驱动,对应的禁止行为为设定项修改,即不允许固件接口驱动进行设定项信息的修改,此时,通过监控方式一对固件接口驱动进行监控。

本申请实施例中,通过对不受信任的固件接口驱动的加载过程进行监控,以有效判断出加载的固件接口驱动是否存在恶意行为,是否为恶意固件接口驱动。

当电子设备确定当前加载的固件接口驱动为恶意固件接口驱动时,停止该固件接口驱动的加载,并可将该固件接口驱动所申请的内存清除,也可向发出告警,以提示用户当前存在恶意固件接口驱动。

本申请实施例中,在加载固件接口驱动时,如果加载的固件接口驱动为不受信任固件接口驱动,在加载不受信任的固件接口驱动的同时,对加载的固件接口驱动进行监控,以监控加载的固件接口驱动是否存在恶意行为;在有效识别出恶意的固件接口驱动的同时,不会通过简单的预先设置判断规则将不信任的固件接口驱动直接否定而不加载,从而避免一些安全但不符合预先设定的判断规则的固件接口驱动误认为是恶意固件接口驱动,导致这类驱动无法正常加载运行,有效识别固件接口的安全性。

本申请实施例提供一种监控方法,该方法应用于电子设备,该方法应用于电子设备,电子设备中的各功能模块可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

当然,本申请实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本申请实施例提供的监控方法的指令)。

图2为本申请实施例的一种监控方法的实现流程示意图,如图2所示,该监控方法包括:

s201、接收针对待加载的固件接口驱动的加载指令;

所述加载指令用于指示加载所述固件接口驱动。

当电子设备接收到开机指令或重启指令加电,进入驱动执行环境阶段后,遍历固件接口系统中所有的固件接口驱动,并调度所遍历的固件接口驱动至队列中,作为待加载的固件接口驱动等待被加载。

这里,固件接口系统中的固件接口驱动根据获取源不同,包括两种类型:系统固件接口驱动和外载固件接口驱动。其中,系统固件接口驱动为内嵌入系统中作为系统的一个模块的固件接口驱动,可由开发人员在嵌入到电子设备的系统的源代码中。外载固件接口驱动为系统中不包括源代码的通过外载的比如:内存卡、显卡、网卡等芯片装载到电子设备中的接口驱动。

s202、确定所述固件接口驱动对应的硬件;

在加载待加载的固件接口驱动之前,确定待加载的固件接口驱动对应的硬件。其中,固件接口驱动对应的硬件为该固件接口驱动所作用的硬件,比如:内存、cpu、显卡、硬盘、网卡、线缆等电子设备中的硬件。

在固件接口系统中,包括多个固件接口驱动,各固件接口驱动负责不同的功能,比如:内存对应的固件接口驱动初始化内存,cpu对应的固件接口驱动初始化cpu。其中,固件接口系统还有设置一个固件接口驱动用于遍历外载的芯片卡,还可设置一个固件接口驱动用于初始化硬盘、线缆等特定的硬件。

对于固件接口系统中各固件接口驱动,可通过系统固件接口检测各固件接口驱动对应的硬件,对于固件接口系统的系统固件接口而言,能够获知各固件接口驱动对应的硬件。

s203、如果电子设备中不存在所述固件接口驱动对应的硬件,不加载所述固件接口驱动;

在s202中确定待加载的固件接口驱动对应的硬件后,确定电子设备中是否包括有待加载的固件接口驱动对应的硬件。如果不包括,则不加载该待加载的固件接口驱动,此时,触发加载队列中的下一个等待加载的固件接口驱动中对应的加载指令。如果电子设备中包括有待加载的固件接口驱动对应的硬件,则判断该待加载的固件接口驱动是否为不受信任的固件接口驱动。

比如、待加载的固件接口驱动对应的硬件为芯片s,而电子设备中的硬件包括有:显卡、存储卡、网卡等芯片,但不包括芯片s。此时,不加载当前待加载的固件接口驱动。

这里,对于系统固件接口驱动和外载固件接口驱动,都可进行电子设备中是否存在对应的硬件的判断,从而将一些不需要加载或加载之后并不使用的固件接口驱动直接不加载。只有待加载的固件接口驱动对应硬件在电子设备中存在,该固件接口驱动才允许被加载运行。

在判断待加载的固件接口驱动是否为不受信任的固件接口驱动时,可预设判断策略,如果待加载的固件接口驱动满足设定的判断策略,则待加载的固件接口驱动为受信任的固件接口驱动,如果待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动。

s204、如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

如果确定待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动,此时,基于加载指令加载该固件接口驱动,并对该固件接口驱动进行监控,以判断固件接口驱动是否存在恶意行为,识别该附件接口驱动是否为恶意固件接口驱动。

在一实施例中,所述对所述固件接口驱动进行监控,包括:

记录第一设定项信息和第二设定项信息;所述第一设定项信息为加载所述固件接口驱动之前的设定项信息;所述第二设定项信息为加载所述固件接口驱动之后的设定项信息;对比所述第一设定项信息和所述第二设定项信息以判定所述固件接口驱动是否存在恶意修改行为。

这里,将加载固件接口驱动之前的设定项信息即第一设定项信息和加载固件接口驱动之后的设定项信息即第二设定项信息进行对比,如果第二设定项信息发生改变,则表征加载的固件接口驱动对设定项的信息进行了修改,存在恶意行为。

其中,设定项可为设定的chipset设定,主板芯片/cpu设定,uefisetup设定,中断设定。主板芯片/cpu设定可包括:英特尔可信任执行技术(trustedexecutiontechnology,txt)设定、英特尔管理引擎(managementengine,me)设定、内存写保护设定、串行外设接口(serialperipheralinterface,spi)只读存储器(readonlymemory,rom)写保护设定等;uefi启动设定可包括:安全引导secureboot设定、可信计算平台模块(trustedplatformmodule,tpm)设定、网络network设定、基板管理控制器(baseboardmanagementcontroller,bmc)设定等;中断设定包括:中断向量表、smi中断服务程序等。

比如:在加载不受信任固件接口驱动固件接口驱动a之前,中断向量表中的中断服务包括有:中断服务1、中断服务2和中断服务3,在加载固件接口驱动a之后,中断向量表中的中断服务包括有:中断服务1、中断服务2、中断服务3和中断服务4,此时,确定固件接口驱动a对中断向量表进行了修改,则固件接口驱动a存在恶意行为。

又比如:在加载不受信任固件接口驱动固件接口驱动b之前,中断向量表中的中断服务包括有:中断服务1、中断服务2和中断服务3,在加载固件接口驱动b之后,直到固件接口驱动加载完成,并运行后,中断向量表中的中断服务包括有:中断服务1、中断服务2和中断服务3,此时,确定固件接口驱动b未对中断向量表进行修改,则固件接口驱动a不存在恶意行为。

在一实施例中,所述对所述固件接口驱动进行监控,包括:

在所述网络访问程序中设置禁用监控点,所述禁用监控点用于指示所述网络访问程序禁止被调用;检测网络访问程序是否被调用;如果所述网络访问程序被调用,确定所述固件接口驱动存在恶意修改行为。

在网络访问protocol中设置监控点,禁止网络访问protocol提供服务,并对网络访问protocol的调用进行监控;当通过网络访问protocol张的监控点检测到网络访问protocol被调用时,则确定当前加载的不受信任的固件接口驱动存在恶意行为。

这里,可在待加载的固件接口驱动为不受信任度的固件接口驱动时,在加载该不受信任的固件接口驱动前,在网络访问protocol中启用监控点。在待加载的固件接口驱动为受信任度的固件接口驱动时,可不启用网络访问protocol中的监控点。

在一实施例中,所述对所述固件接口驱动进行监控,包括:监控网卡驱动是否存在数据传送;如果所述网卡驱动存在数据传送,确定所述固件接口驱动存在恶意修改行为。

如果待加载的固件接口驱动为不受信任度的固件接口驱动,电子设备的固件接口系统在加载不受信任的固件接口驱动之前,向网卡驱动发送通知消息,以通知网卡驱动设定网络访问禁用标识,并基于网络访问禁用标识进行数据传送的监控。在加载固件接口驱动过程中,如果网卡驱动发现有数据传送事件,在屏蔽传送数据事件的同时,向固件接口系统发送告警,此时,电子设备的固件接口系统确认当前加载的固件接口驱动存在恶意行为,为恶意固件接口驱动。

在一实施例中,所述对所述固件接口驱动进行监控,包括:检测系统管理中断登记程序是否被调用;如果所述系统管理中断登记程序被调用,确定所述固件接口驱动存在恶意修改行为。

系统管理中断登记程序,即smi服务登记程序用于smi服务的登记,如果待加载的固件接口驱动为不受信任度的固件接口驱动,电子设备的固件接口系统在加载不受信任的固件接口驱动之前,在smi服务登记程序中设置监控点,以监控smi服务登记程序是否被调用。如果smi服务登记程序被调用,则表明当前加载的固件接口驱动在注册并安装中断服务程序,确定所述固件接口驱动存在恶意修改行为。其中,通过smi服务登记程序注册并安装中断服务程序,能够在电子设备开机结束后,通过中断触发的方式调用运行smi。

当电子设备确定当前加载的固件接口驱动为恶意固件接口驱动时,停止该固件接口驱动的加载,并可将该固件接口驱动所申请的内存清除,也可向发出告警,以提示用户当前存在恶意固件接口驱动。

本申请实施例中,在加载固件接口驱动时,如果加载的固件接口驱动为不受信任固件接口驱动,在加载不受信任的固件接口驱动的同时,对加载的固件接口驱动进行监控,以监控加载的固件接口驱动是否存在恶意行为;在有效识别出恶意的固件接口驱动的同时,不会通过简单的预先设置判断规则将不信任的固件接口驱动直接否定而不加载,从而避免一些安全但不符合预先设定的判断规则的固件接口驱动误认为是恶意固件接口驱动,导致这类驱动无法正常加载运行,有效识别固件接口的安全性。进一步地,只有待加载的固件接口驱动对应硬件在电子设备中存在,该固件接口驱动才允许被加载运行,从而将一些不需要加载或加载之后并不使用的固件接口驱动直接不加载,提高系统的资源利用率和开机速度。

本申请实施例提供一种监控方法,该方法应用于电子设备,该方法应用于电子设备,电子设备中的各功能模块可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

当然,本申请实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本申请实施例提供的监控方法的指令)。

图3为本申请实施例的一种监控方法的实现流程示意图,如图3所示,该监控方法包括:

s301、遍历所述电子设备中外载固件接口驱动得到外载固件接口驱动列表;

当电子设备接收到开机指令或重启指令加电,进入驱动执行环境阶段中,遍历固件接口系统中所有的固件接口驱动,并调度所遍历的固件接口驱动至队列中,作为待加载的固件接口驱动等待被加载。

这里,固件接口系统中的固件接口驱动根据获取源不同,包括两种类型:系统固件接口驱动和外载固件接口驱动。其中,系统固件接口驱动为内嵌入系统中作为系统的一个模块的固件接口驱动,可由开发人员在嵌入到电子设备的系统的源代码中。外载固件接口驱动为系统中不包括源代码的通过外载的比如:内存卡、显卡、网卡等芯片装载到电子设备中的接口驱动。

此时,可根据所遍历的外载固件接口驱动的标识、名称、厂家、载入时间等固件接口驱动信息生成外载固件接口驱动列表,在外载固件接口驱动列表中包括有电子设备中的外载固件接口驱动的固件接口驱动信息。其中,外载固件接口驱动列表中可包括遍历的所有的外载固件接口驱动的固件接口驱动信息,也可包括有部分的外载固件接口驱动的固件接口驱动信息。

当外载固件接口驱动列表中包括部分的外载固件接口驱动时,可根据各固件接口驱动的固件接口驱动信息来确定添加的外载固件接口驱动列表中的外载固件接口驱动。比如:根据固件接口驱动的厂商信息来确定添加的外载固件接口驱动列表中的外载固件接口驱动,遍历的所有的外载固件接口驱动对应的厂商分别厂商a、厂商b、厂商c,可将厂商b和厂商c对应的固件接口驱动添加到外载固件接口驱动列表中。

s302、将所述外载固件接口驱动列表进行显示;

将s301中的外载固件接口驱动列表输出至显示界面,此时,用户可从电子设备的显示屏幕上看到外载固件接口驱动列表中的外载固件接口驱动。其中,在显示外载固件接口驱动列表时,可展示外载固件接口驱动列表中各外载固件接口驱动的固件接口驱动信息,以提示用户各外载固件接口驱动的信息。

在显示外载固件接口驱动列表时,可提供用于接收用户选择的接口,使得用户通过提供的接口对外载固件接口驱动列表中的外载固件接口驱动进行选择操作。

s303、接收用户的选择操作,根据所述选择操作确定所述外载固件接口驱动列表中的不受信任固件接口驱动;

通过显示界面提供的接口接收用户的选择操作,根据接收的选择操作确定不受信任固件接口驱动。

用户的选择操作可为针对受信任固件接口驱动的第一选择操作,将第一选择操作对应的外载固件接口驱动作为受信任固件接口驱动,将外载固件接口驱动列表中除第一选择操作对应的外载固件接口驱动以外的外载固件接口驱动作为不受信任固件接口驱动。

用户的选择操作可为针对不受信任固件接口驱动的第二选择操作,将第二选择操作对应的外载固件接口驱动作为不受信任固件接口驱动,将外载固件接口驱动列表中除第二选择操作对应的外载固件接口驱动以外的外载固件接口驱动作为受信任固件接口驱动。

这里,可根据用户对外载固件接口驱动列表的选择操作所确定的受信任固件接口驱动生成受信任固件接口驱动列表,以通过受信任固件接口驱动列表确定待加载的固件接口驱动为受信任的固件接口驱动还是不受信任的固件接口驱动。

s304、接收针对待加载的固件接口驱动的加载指令;

所述加载指令用于指示加载所述固件接口驱动。

对于一待加载的固件接口驱动,当接收到加载指令时,判断该待加载的固件接口驱动是否为不受信任的固件接口驱动。

在判断待加载的固件接口驱动是否为不受信任的固件接口驱动时,可预设判断策略,如果待加载的固件接口驱动满足设定的判断策略,则待加载的固件接口驱动为受信任的固件接口驱动,如果待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动。

s305、如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

如果确定待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动,此时,基于加载指令加载该固件接口驱动,并对该固件接口驱动进行监控,以判断固件接口驱动是否存在恶意行为,识别该附件接口驱动是否为恶意固件接口驱动。

对一固件接口驱动进行监控时,可通过以下监控方式中的至少一种进行监控:

方式一、判断设定项信息在加载固件接口驱动之前和之后是否发生变化。

方式二、对设定的安全监控程序进行监控,确定设定的安全监控程序是否被调用。

方式三、监控是否存在与网络访问。

在方式一中,如果监控到设定项信息在加载固件接口驱动之前和之后发生变化,确定设定项信息被加载的不受信任的接口固件驱动修改,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。

在方式二中,如果确定设定的安全监控程序被调用,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。其中,在监控安全监控服务是否被调用时,可在安全监控服务中设置监控点,基于设置的监控点监控安全监控服务是否被调用。

在方式三中,如果确定存在网络访问,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。

在实际应用中,可确定待加载的固件接口驱动对应的权限等级,根据对应的权项等级对固件接口驱动进行监控。其中,不同的权限等级对应不同的禁止行为,待加载的固件接口驱动对应的权限等级可预先设置。比如:待加载的固件接口驱动的权限等级为一级时,待加载的固件接口驱动,对应的禁止行为为网络访问,即不允许固件接口驱动进行网络访问,此时,通过监控方式三对固件接口驱动进行监控。又比如:待加载的固件接口驱动的权限等级为二级时,待加载的固件接口驱动,对应的禁止行为为设定项修改,即不允许固件接口驱动进行设定项信息的修改,此时,通过监控方式一对固件接口驱动进行监控。

需要说明的是,本申请实施例中,对电子设备对加载的固件接口驱动进行监控的监控方式不进行任何的限定,用户可根据实际需求进行设置。

本申请实施例中,通过对不受信任的固件接口驱动的加载过程进行监控,以有效判断出加载的固件接口驱动是否存在恶意行为,是否为恶意固件接口驱动。

当电子设备确定当前加载的固件接口驱动为恶意固件接口驱动时,停止该固件接口驱动的加载,并可将该固件接口驱动所申请的内存清除,也可向发出告警,以提示用户当前存在恶意固件接口驱动。

本申请实施例中,在加载固件接口驱动时,如果加载的固件接口驱动为不受信任固件接口驱动,在加载不受信任的固件接口驱动的同时,对加载的固件接口驱动进行监控,以监控加载的固件接口驱动是否存在恶意行为。进一步地,在遍历固件接口系统中的固件接口驱动后,将外载固件接口驱动及时显示给用户,提示用户电子设备中的外载固件接口驱动,并通过用户的选择操作确定不受信任的外载固件接口驱动,从而基于与用户的交互在第一时间确定出不受信任的外载固件接口驱动。

本申请实施例提供一种监控方法,该方法应用于电子设备,该方法应用于电子设备,电子设备中的各功能模块可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

当然,本申请实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本申请实施例提供的监控方法的指令)。

图4为本申请实施例的一种监控方法的实现流程示意图,如图4所示,该监控方法包括:

s401、接收针对待加载的固件接口驱动的加载指令;

所述加载指令用于指示加载所述固件接口驱动。

当电子设备接收到开机指令或重启指令加电,进入驱动执行环境阶段中,遍历固件接口系统中所有的固件接口驱动,并调度所遍历的固件接口驱动至队列中,作为待加载的固件接口驱动等待被加载。

这里,固件接口系统中的固件接口驱动根据获取源不同,包括两种类型:系统固件接口驱动和外载固件接口驱动。其中,系统固件接口驱动为内嵌入系统中作为系统的一个模块的固件接口驱动,可由开发人员在嵌入到电子设备的系统的源代码中。外载固件接口驱动为系统中不包括源代码的通过外载的比如:内存卡、显卡、网卡等芯片装载到电子设备中的接口驱动。

固件接口系统中的每个固件接口驱动都是一个独立的模块,固件接口驱动之间通过protocol(程序)通信,每个protocol对应一个全局唯一标识符(globallyuniqueidentifier,guid)。一个固件接口驱动可通过启动服务中的开启protocol和guid打开对应的protocol,从而使用打开的protocol所提供的服务。

对于一待加载的固件接口驱动,当接收到加载指令时,判断该待加载的固件接口驱动是否为不受信任的固件接口驱动。

在判断待加载的固件接口驱动是否为不受信任的固件接口驱动时,可预设判断策略,如果待加载的固件接口驱动满足设定的判断策略,则待加载的固件接口驱动为受信任的固件接口驱动,如果待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动。

s402、记录加载所述固件接口驱动之前的内存配置信息;

在基于加载指令时加载待加载的不受信任的固件接口驱动之前,对电子设备中的内存配置信息进行记录,确定加载不受信任的固件接口驱动之前的内存的分配情况。

s403、如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控;

如果确定待加载的固件接口驱动不满足设定的判断策略,则待加载的固件接口驱动为不受信任的固件接口驱动,此时,基于加载指令加载该固件接口驱动,并对该固件接口驱动进行监控,以判断固件接口驱动是否存在恶意行为,识别该附件接口驱动是否为恶意固件接口驱动。

对一固件接口驱动进行监控时,可通过以下监控方式中的至少一种进行监控:

方式一、判断设定项信息在加载固件接口驱动之前和之后是否发生变化。

方式二、对设定的安全监控程序进行监控,确定设定的安全监控程序是否被调用。

方式三、监控是否存在与网络访问。

在方式一中,如果监控到设定项信息在加载固件接口驱动之前和之后发生变化,确定设定项信息被加载的不受信任的接口固件驱动修改,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。

在方式二中,如果确定设定的安全监控程序被调用,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。其中,在监控安全监控服务是否被调用时,可在安全监控服务中设置监控点,基于设置的监控点监控安全监控服务是否被调用。

在方式三中,如果确定存在网络访问,表明不受信任的接口固件驱动存在恶意行为,为恶意接口固件驱动。

需要说明的是,本申请实施例中,对电子设备对加载的固件接口驱动进行监控的监控方式不进行任何的限定,用户可根据实际需求进行设置。

本申请实施例中,通过对不受信任的固件接口驱动的加载过程进行监控,以有效判断出加载的固件接口驱动是否存在恶意行为,是否为恶意固件接口驱动。

s404、如果确定所述固件接口驱动存在恶意修改行为,根据所述内存配置信息清除所述固件接口驱动申请的内存。

如果确定当前加载的固件接口驱动存在恶意修改行为,为恶意固件驱动时,将当前加载的固件接口驱动所申请的内存清除,将内存配置恢复到加载当前加载的固件接口驱动之前的内存配置。

确定当前加载的固件接口驱动所申请的内存时,可在内存申请的程序里面加上监控点,记录当前加载的固件接口驱动时内存申请的程序分配出去的内存位置和大小,根据内存申请的程序记录的为当前加载的固件接口驱动所分配的内存位置和大小,将当前加载的固件接口驱动申请的内存清除。

在一实施例中,如果确定所述固件接口驱动存在恶意修改行为,所述方法还包括以下至少之一:显示告警信息;禁止运行所述固件接口驱动;停止所述电子设备的运行;移除所述固件接口驱动所在的硬件。

如果确定当前加载的固件接口驱动存在恶意修改行为,为恶意固件驱动时,可确定当前加载的固件接口驱动的监控等级,根据监控等级进行对应的处理。

不同的监控等级对应不同的处理方式:比如:监控等级为一级,显示一个警告信息,继续开机;监控等级为二级,显示警告信息,并将该恶意固件接口驱动记录为永久禁运行,然后继续开机;监控等级为二级,显示警告信息,并将该恶意驱动记录为永久禁运行,并且停机提示用户将当前固件接口驱动对应的硬件拔除。

固件接口驱动的监控等级可由用户预先设置,也可根据固件接口驱动的恶意行为确定,比如:固件接口驱动进行网络访问时,监控等级为一级;固件接口驱动修改设定项信息时,监控等级为二级;固件接口驱动进行网络访问且修改设定项信息时,监控等级为三级。

在本申请实施例中,固件接口驱动的监控等级的设定可根据实际需求进行设置。在实际应用中,如果待加载的固件接口驱动设置对应的权限等级时,监控等级可对应权项等级设置,比如:固件接口驱动的权项等级为一级时,对应的监控等级为一级;又比如,固件接口驱动的权项等级为一级时,对应的监控等级为二级。

本申请实施例中,在加载固件接口驱动时,如果监控到加载的固件接口驱动存在恶意行为,则将加载的固件接口驱动所申请的内存清除,恢复到加载该固件接口驱动之前的内存配置情况。这里,如果监控到加载的固件接口驱动存在恶意行为,可通过告警、禁止运行、停止电子设备的运行以及移除加载的固件接口驱动所在的硬件等方式对电子设备进行保护,最大程度地减小恶意固件驱动的行为对电子设备带来的损害。

电子设备的基于固件接口的计算机系统如图5所示,efi提供给操作系统(operatingsystem,os)的接口包括:efi启动服务(bootservices,bs)和efi运行时服务(runtimeservice,rt)以及隐藏在bs之后的丰富的protocol。efi驱动和服务以protocol的形式通过bs提供给os。其中,efi操作系统加载器负责将计算机系统由firmware环境进入os环境。

当电子设备接收到开机指令或重启指令加电从开机到关机,如图6所示,固件接口系统依次进入安全验证(security,sec)阶段、固件接口前期初始化(pre-efiinitilization,pei)阶段、驱动执行环境(driverexecutionenvironment,dxe)阶段、启动设备选择(bootdeviceselection,bds)阶段、操作系统加载前期(transientsystemload,tsl)阶段、系统运行(runtime,rt)阶段和灾难恢复(afterlife,al)阶段。每个阶段由不同的模块来实现,各阶段之间都有定义好的接口。在操作系统启动前有四个阶段:sec阶段、pei阶段、dxe阶段、bds阶段。操作系统启动后有三个阶段:tsl阶段、rt阶段、运al阶段。如图6所示,前三个阶段是efi平台初始化阶段,dxe阶段结束后,efi环境已经准备完毕。bds和tsl是操作系统加载器(osloader)作为efi应用程序运行的加载操作系统阶段。

当电子设备接收到开机指令或重启指令加电,进入dxe阶段中,遍历固件接口系统中所有的固件接口驱动,并调度所遍历的固件接口驱动至队列中,作为待加载的固件接口驱动等待被加载。

这里,以efi驱动为uefi驱动为例,对本申请实施例提供的监控方法进行示例性说明。

(1)、uefi系统建立一个外载uefi驱动“信任/不受信任”列表。可信列表包含:有源代码的驱动。不受信任列表包含不在电子设备的准入供应商列表(pprovedvendorlist,avl)中的外插卡加载的uefi驱动。

这里,电子设备也可以提供一个“信任/不受信任”参考列表,让用户通过用户界面进行设定和修改。对于不信任列表中的uefi驱动的权限等级以及监控等级也可以通过用户界面进行设定和修改。

uefi驱动的权限等级不同,行为权限不同,行为权限可包括:是否允许在没有硬件的情况下允许运行,是否允许使用网络,是否允许修改安全设定。

监控等级表征当监控到恶意uefi驱动之后对恶意uefi驱动的处理方式。根据处理方式不同,监控等级可分为:

a.只是显示一个警告信息,继续开机

b.显示一个警告信息,并将该恶意驱动记录为永久禁运行,然后继续开机

c.显示一个警告信息,并将该恶意驱动记录为永久禁运行,并且停机提示用户将对应的硬件拔除。

在实际应用中,权限等级和监控等级可对应设置,比如:

a.权限为没有硬件时候不允许运行,监控等级对应的处理方式为:显示警告信息;

b.权限为没有硬件时候不允许运行+不允许使用网络,监控等级对应的处理方式为:显示警告信息+永久禁运行。

c.权限为没有硬件时候不允许运行+不允许使用网络+不允许修改安全设定,监控等级对应的处理方式:显示警告信息+永久禁运行+停机并提示用户拔除硬件。

权限等级和监控等级可根据实际需求进行设置。

(2)、在开机过程中,当一个不受信任的uefi驱动需要被加载进来的时候,uefi系统先确认对应的硬件是否存在于系统上。只有对应硬件存在,该uefi驱动才允许被加载运行。

uefi驱动有两种加载来源:一个是基于外插硬件加载的外载uefi驱动,一个是systemuefi驱动。当是外插硬件时,uefi系统检测到该硬件时候,会询问改硬件是否有uefi驱动需要加载,这种情况uefi系统能够同时记录到改硬件和其驱动的对应信息。当另外一种情况,uefi驱动是从systemuefi驱动直接加载的时候,uefi系统在设计的时候就可以在代码中增加判断,在加载某一个特定的uefi驱动之前检查特定的硬件信息。

对于外载uefi驱动,是先检测到硬件,然后再询问硬件是否有uefi驱动需要加载,若有,再加载其uefi驱动。检测硬件的时候,可以通过读取硬件的外围期间互联(peripheralcomponentinterconnect,pci)配置空间或者内存信息来得到硬件的厂商、硬件类型等信息。这些检测在开机加载该uefi驱动前执行。

(3)、在该uefi驱动加载之前和之后,uefi系统检查是否有系统安全设定的修改,例如一些重要的chipset设定、中断设定,如果系统安全设定被修改,则确定当前加载的uefi驱动存在恶意行为,为恶意uefi驱动,从而防止uefi驱动的恶意行为。

(4)、uefi系统在网络访问的protocol和内存申请的protocol里面加上监控点。当一个不受信任的uefi驱动被加载前,uefi系统设定网络访问protocol禁用的标志,并在内存申请的protocol里面记录被调用分配出去的内存位置以及大小信息。在加载的uefi驱动运行期间,如果有网络protocol被调用的情况,uefi系统则就发出警告或者停止该uefi驱动的运行,并且清除该uefi驱动在被停止之前申请的内存。

这里,在网络访问protocol里面设定一个标志位作为网络禁用标志。其中,网络访问protocol是系统uefi建立的服务,其他所有的uefi驱动都是可以使用的。在一个不受信任的uefi驱动加载之前,将网络禁用标志启动,然后再加载这个不受信任的uefi驱动。如果在加载的不受信任的uefi驱动的运行期间,未检测到加载的uefi驱动调用网络访问protocol使用网络服务,那么在加载的uefi驱动运行结束之后,uefi系统会同时撤销这个网络禁用标志,接下来加载uefi驱动(包括systemuefi自身的驱动即systemuefi驱动或者是受信任的uefi驱动)是可以使用网络服务的。

(5)、当一个不受信任的uefi驱动被加载前,在网卡数据包收发端设定网络访问禁用的标志。在uefi驱动运行期间,如果网卡发现有数据传送事件,网卡固件则就发出警告,从防止有某些更加恶意的uefi驱动不通过systemuefi的网络protocol做网络访问,可以增加从网卡数据包收发端的监控。

(6)、为了防止另外一种恶意驱动在初始化之后仍有活动痕迹,uefi系统在不受信任的uefi驱动被加载之前和之后,检查中断服务列表是否有被修改,包括smihandlerregister服务是否有被调用来安装新的smi服务,以及中断向量表是否有被更改。

中断是在开机结束后,仍然可以通过中断触发的方式调用运行的服务。smi的使用需要事先安装好对应的中断服务程序。对smi的监控是在smi服务登记程序中增加监控点,监控不受信任的uefi驱动是否有调用这个安装程序来登记新的smi程序(恶意smi程序)。

需要说明的是,本申请实施例提供的监控方法可由固件系统中的系统uefi执行。

为实现本申请实施例的方法,本申请实施例提供一种监控装置700,应用于电子设备,该监控装置所包括的各单元、以及各单元所包括的各模块,可以通过贴片设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)或现场可编程门阵列(fpga,field-programmablegatearray)等。

如图8所示,该装置包括:接收单元701、加载单元702和监控单元703;其中,

接收单元701,用于接收针对待加载的固件接口驱动的加载指令;所述加载指令用于指示加载所述固件接口驱动;

加载单元702,用于如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动;

监控单元703,用于对所述固件接口驱动进行监控。

在一实施例中,所述装置还包括:

确定单元,用于确定所述固件接口驱动对应的硬件;

加载单元702,还用于如果电子设备中不存在所述固件接口驱动对应的硬件,不加载所述固件接口驱动。

在一实施例中,所述装置还包括:遍历单元、显示单元和选择单元;其中,

遍历单元,用于遍历所述电子设备中外载固件接口驱动得到外载固件接口驱动列表;

显示单元,用于将所述外载固件接口驱动列表进行显示;

选择单元,用于接收用户的选择操作,根据所述选择操作确定所述外载固件接口驱动列表中的不受信任固件接口驱动。

在一实施例中,监控单元703,用于:

记录第一设定项信息和第二设定项信息;所述第一设定项信息为加载所述固件接口驱动之前的设定项信息;所述第二设定项信息为加载所述固件接口驱动之后的设定项信息;

对比所述第一设定项信息和所述第二设定项信息以判定所述固件接口驱动是否存在恶意修改行为。

在一实施例中,监控单元703,用于:

在所述网络访问程序中设置禁用监控点,所述禁用监控点用于指示所述网络访问程序禁止被调用;

检测网络访问程序是否被调用;

如果所述网络访问程序被调用,确定所述固件接口驱动存在恶意修改行为。

在一实施例中,监控单元703,用于:

监控网卡驱动是否存在数据传送;

如果所述网卡驱动存在数据传送,确定所述固件接口驱动存在恶意修改行为。

在一实施例中,监控单元703,用于:

检测系统管理中断登记程序是否被调用;

如果所述系统管理中断登记程序被调用,确定所述固件接口驱动存在恶意修改行为。

在一实施例中,所述装置还包括:清除单元,用于:

记录加载所述固件接口驱动之前的内存配置信息;

如果确定所述固件接口驱动存在恶意修改行为,根据所述内存配置信息清除所述固件接口驱动申请的内存。

在一实施例中,所述装置还包括:保护单元,用于如果确定所述固件接口驱动存在恶意修改行为,执行以下至少之一:

显示告警信息;

禁止运行所述固件接口驱动;

停止所述电子设备的运行;

移除所述固件接口驱动所在的硬件。

需要说明的是,装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

本申请实施例提供一种电子设备,图8为本申请实施例电子设备的组成结构示意图,如图8所示,所述设备800包括:一个处理器801、至少一个通信总线802、用户接口803、至少一个外部通信接口804和存储器805。其中,通信总线802配置为实现这些组件之间的连接通信。其中,用户接口803可以包括显示屏,外部通信接口804可以包括标准的有线接口和无线接口。

其中,所述处理器801,配置为执行存储器中存储的计算机程序,以实现以下步骤:

接收针对待加载的固件接口驱动的加载指令;所述加载指令用于指示加载所述固件接口驱动;

如果所述固件接口驱动为不受信任固件接口驱动,加载所述固件接口驱动,并对所述固件接口驱动进行监控。

相应地,本申请实施例再提供一种存储介质,即计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的监控方法的步骤。

以上电子设备和计算机可读存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请贴片设备和计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

本申请实施例中,如果以软件功能模块的形式实现上述的监控方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为

单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1