对计算机硬件固件进行安全检测和防护的方法及装置与流程

文档序号:17161766发布日期:2019-03-20 00:50阅读:399来源:国知局
对计算机硬件固件进行安全检测和防护的方法及装置与流程

本发明涉及计算机安全防护领域,特别涉及一种对计算机硬件固件进行安全检测和防护的方法及装置。



背景技术:

现代计算机架构中,除了用于控制整个计算机系统的传统操作系统(如windows、linux),其众多组成硬件中,也包含有小型嵌入式的控制系统,这些控制系统运行的代码一般是硬件固件代码,如bios(主板固件)、网卡固件、硬盘固件等。硬件的固件代码一般独立于操作系统,并先于操作系统运行。

传统的安全防护体系是在通用操作系统层,对其上运行的二进制代码进行分析防护。某些能够操作硬件固件的代码,对硬件固件进行修改后,会对硬件原始行为进行感染/破坏,进而影响操作系统引导运行的过程,达到对其进行任意操作的目的,这样就彻底破坏传统安全防护体系。如bios病毒,方程式木马等,传统的安全解决方案很难做到检测和防护的目的。现有的对硬件固件进行防护的技术,只有主板bios写保护开关,但大部分默认处于关闭状态;其他硬件固件都没有相应的安全保护方案。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能有效的识别和防护针对硬件固件的危险行为、防止恶意软件对硬件固件的操作的对计算机硬件固件进行安全检测和防护的方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种对计算机硬件固件进行安全检测和防护的方法,包括如下步骤:

a)开启对计算机的操作系统的hal(硬件抽象层接口)层的监控;

b)过滤所述操作系统对计算机硬件固件的操作请求;

c)判断所述操作请求是否是标准协议命令,如是,执行步骤d);否则,对所述操作请求进行拦截并报警;

d)提取并记录所述操作请求的基本元信息,进入分析模块,执行步骤e);

e)将所述操作请求发送到对应的计算机硬件固件;

f)过滤从计算机硬件固件收到的数据;

g)判断所述数据的格式与对应的计算机硬件固件的相似度是否大于设定值,如是,对所述数据进行拦截并报警;否则,执行步骤h);

h)判断所述数据的格式是否符合标准协议返回格式,如是,执行步骤j);否则,进入分析模块,执行步骤i);

i)所述分析模块判断所述操作请求是否安全,如是,执行步骤j);否则,对所述数据进行拦截并报警;

j)将所述数据返回到所述操作系统。

在本发明所述的对计算机硬件固件进行安全检测和防护的方法中,所述步骤c)进一步包括:

c1)按照计算机硬件固件的标准文档,将所述操作请求进行解析得到所述操作请求的关键信息;所述关键信息包括请求命令和请求数据;

c2)判断所述请求命令是否是高危请求,如是,对所述请求命令进行拦截并报警;否则,执行步骤c3);

c3)判断所述请求数据是否含有高危数据格式或高危数据内容,如是,对所述请求数据进行拦截并报警;否则,执行步骤c4);

c4)基于统计和行为分析,判断所述操作请求是否是危险请求,如是,执行步骤c5);否则,执行步骤c6);

c5)将所述操作请求发送到计算机;

c6)对所述操作请求进行拦截并报警。

在本发明所述的对计算机硬件固件进行安全检测和防护的方法中,所述步骤c4)进一步包括:

c41)分析所述请求命令在所述计算机历史中所有请求中的比例;

c42)分析所述请求命令与前n条历史请求命令的关联;所述n为大于0的整数;

c43)分析所述请求命令在云端数据中的比例;

c44)识别出所述操作请求是否为危险请求。

本发明还涉及一种实现上述对计算机硬件固件进行安全检测和防护的方法的装置,包括:

监控开启单元:用于开启对计算机的操作系统的hal层的监控;

操作请求过滤单元:用于过滤所述操作系统对计算机硬件固件的操作请求;

标准协议命令判断单元:用于判断所述操作请求是否是标准协议命令;

信息提取单元:用于提取并记录所述操作请求的基本元信息,进入分析模块;

操作请求发送单元:用于将所述操作请求发送到对应的计算机硬件固件;

数据过滤单元:用于过滤从计算机硬件固件收到的数据;

相似度判断单元:用于判断所述数据的格式与对应的计算机硬件固件的相似度是否大于设定值;

标准协议返回格式判断单元:用于判断所述数据的格式是否符合标准协议返回格式;

硬件操作请求判断单元:用于使所述分析模块判断所述操作请求是否安全;

数据返回单元:用于将所述数据返回到所述操作系统。

在本发明所述的装置中,所述标准协议命令判断单元进一步包括:

操作请求解析模块:用于按照计算机硬件固件的标准文档,将所述操作请求进行解析得到所述操作请求的关键信息;所述关键信息包括请求命令和请求数据;

第一高危请求判断模块:用于判断所述请求命令是否是高危请求;

高危数据格式判断模块:用于判断所述请求数据是否含有高危数据格式或高危数据内容;

第二高危请求判断模块:用于基于统计和行为分析,判断所述操作请求是否是危险请求;

操作请求发送模块:用于将所述操作请求发送到计算机;

拦截报警模块:对所述操作请求进行拦截并报警。

在本发明的装置中,所述第二高危请求判断模块进一步包括:

请求比例分析模块:用于分析所述请求命令在所述计算机历史中所有请求中的比例;

关联分析模块:用于分析所述请求命令与前n条历史请求命令的关联;所述n为大于0的整数;

运算数据比例分析模块:用于分析所述请求命令在云端数据中的比例;

危险请求识别模块:用于识别出所述操作请求是否为危险请求。

实施本发明的对计算机硬件固件进行安全检测和防护的方法及装置,具有以下有益效果:由于当操作请求不是标准协议命令时,对操作请求进行拦截并报警;当数据的格式与对应的计算机硬件固件的相似度较高时,对数据进行拦截并报警,当操作请求不安全时,对数据进行拦截并报警,因此能有效的识别和防护针对硬件固件的危险行为、防止恶意软件对硬件固件的操作。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明对计算机硬件固件进行安全检测和防护的方法及装置一个实施例中方法的流程图;

图2为所述实施例中判断操作请求是否是标准协议命令的具体流程图;

图3为所述实施例中基于统计和行为分析,判断操作请求是否是危险请求的具体流程图;

图4为所述实施例中装置的结构示意图;

图5为所述实施例中第二高危请求判断模块的具体结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明对计算机硬件固件进行安全检测和防护的方法及装置实施例中,其对计算机硬件固件进行安全检测和防护的方法的流程图1所示。图1中,该对计算机硬件固件进行安全检测和防护的方法包括如下步骤:

步骤s01开启对计算机的操作系统的hal层的监控:现代通用操作系统都提供有统一的hal层,用于处理所有直接与硬件交互的请求。本步骤中,开启对计算机的操作系统的hal层的监控,通过对这一层进行监控,可以对所有的硬件操作和硬件返回数据进行处理。

步骤s02过滤操作系统对计算机硬件固件的操作请求:本步骤中,过滤操作系统对计算机硬件固件的操作请求,也就是当有操作系统对计算机硬件固件的操作请求时,会进入本发明的方法的监控流程。

步骤s03判断操作请求是否是标准协议命令:本步骤中,判断上述操作请求是否是标准协议命令,如果判断的结果为是,则执行步骤s05;否则,执行步骤s04。

步骤s04对操作请求进行拦截并报警:如果上述步骤s03的判断结果为否,即上述操作请求不是标准协议命令,属于非标准的请求命令,则执行本步骤。本步骤中,对操作请求进行拦截并报警。

步骤s05提取并记录操作请求的基本元信息,进入分析模块:如果上述步骤s03的判断结果为是,即上述操作请求是标准协议命令,如对硬盘请求ata标准的指令、scsi指令等,则执行本步骤。本步骤中,提取并记录操作请求的基本元信息,进入分析模块。执行完本步骤,执行步骤s06。

步骤s06将操作请求发送到对应的计算机硬件固件:本步骤中,将操作请求发送到对应的计算机硬件固件,以完成对计算机硬件固件的请求。执行完本步骤,执行步骤s07。

步骤s07过滤从计算机硬件固件收到的数据:本步骤中,过滤从计算机硬件固件收到的数据,也就是说,当对计算机硬件固件的请求完成时,或者计算机硬件固件主动发数据给操作系统时,也会进入本发明的监控流程。

步骤s08判断数据的格式与对应的计算机硬件固件的相似度是否大于设定值:本步骤中,判断数据的格式与对应的计算机硬件固件的相似度是否大于设定值,也就是判断数据的格式是否与对应的计算机硬件固件有很高的相似性,如果判断的结果为是,则执行步骤s12;否则,执行步骤s09。值得一提的是,本实施例中通过设定值的设置就可以判断出数据的格式与对应的计算机硬件固件的相似度,这个设定值就是相似度阈值,当数据的格式与对应的计算机硬件固件的相似度大于该相似度阈值时,则认为数据的格式与对应的计算机硬件固件具有很高的相似性,否则,则认为数据的格式与对应的计算机硬件固件不具有很高的相似性。

步骤s09对数据进行拦截并报警:如果上述步骤s08判断的结果为是,则执行本步骤。本步骤中,对数据进行拦截并报警。

步骤s10判断数据的格式是否符合标准协议返回格式:如果上述步骤s08的判断结果为否,则执行本步骤。本步骤中,判断数据的格式是否符合标准协议返回格式,如果判断的结果为是,则执行步骤s14;否则,执行步骤s11。

步骤s11进入分析模块:如果上述步骤s10的判断结果为否,即数据的格式不符合标准协议返回格式,则执行本步骤。本步骤中,进入分析模块。执行完本步骤,执行步骤s12。

步骤s12分析模块判断操作请求是否安全:本步骤中,分析模块判断操作请求是否安全,如果判断的结果为是,则执行步骤s14;否则,执行步骤s13。

步骤s13对数据进行拦截并报警:如果上述步骤s12的判断结果为否,则执行本步骤。本步骤中,对数据进行拦截并报警。

步骤s14将数据返回到操作系统:如果上述步骤s12的判断结果为是,则执行本步骤。本步骤中,将数据返回到操作系统。本发明的方法通过在传统安全防护体系的基础上,增加对硬件固件的安全检测与防护技术,因此能有效的识别和防护针对硬件固件的危险行为、防止恶意软件对硬件固件的操作。

对于本实施例而言,上述步骤s03还可进一步细化,其细化后的流程图如图2所示。图2中,该步骤s03进一步包括:

步骤s31按照计算机硬件固件的标准文档,将操作请求进行解析得到操作请求的关键信息:本步骤中,按照计算机硬件固件的标准文档,将操作请求进行解析得到操作请求的关键信息,该关键信息包括请求命令和请求数据。

步骤s32判断请求命令是否是高危请求:本步骤中,判断请求命令是否是高危请求,如果判断的结果为是,则执行步骤s33;否则,执行步骤s34。

步骤s33对请求命令进行拦截并报警:如果上述步骤s32的判断结果为是,则执行本步骤。本步骤中,对请求命令进行拦截并报警,具体的,对已知的高危请求命令,如更新微码(updatemicrocode),读取设备内存(readmemory)等安全相关又与设备功能无关的命令进行拦截。

步骤s34判断请求数据是否含有高危数据格式或高危数据内容:如果上述步骤s32的判断结果为否,则执行本步骤。本步骤中,判断请求数据是否含有高危数据格式或高危数据内容,如果判断的结果为是,则执行步骤s35;否则,执行步骤s36。

步骤s35对请求数据进行拦截并报警:如果上述步骤s34的判断结果为是,则执行本步骤。本步骤中,对请求数据进行拦截并报警,也就是对符合高危请求数据格式的请求(如请求数据与固件文件的格式一致)进行拦截,对符合高危请求数据内容的请求(如请求数据内容明显包含固件文件名等)进行拦截。

步骤s36基于统计和行为分析,判断操作请求是否是危险请求:如果上述步骤s34的判断结果为否,则执行本步骤。本步骤中,基于统计和行为分析,判断操作请求是否是危险请求,也就是对操作请求进一步进行智能判断,分析是否含有危险行为,如果判断的结果为是,则执行步骤s38;否则,执行步骤s37。

步骤s37对操作请求进行拦截并报警:如果上述步骤s36的判断结果为否,则执行本步骤。本步骤中,对操作请求进行拦截并报警。

步骤s38将操作请求发送到计算机:如果上述步骤s36的判断结果为是,则执行本步骤。本步骤中,将操作请求发送到计算机。

对于本实施例而言,上述步骤s36还可进一步细化,其细化后的流程图如图3所示。图3中,上述步骤s36进一步包括:

步骤s361分析请求命令在计算机历史中所有请求中的比例:本步骤中,分析请求命令在计算机历史中所有请求中的比例,具体的,将请求命令与该计算机历史请求统计数据进行对比,对于正常的请求命令,应该有大量相同的请求命令已经执行,并有一定的占比,这样就可以确定请求指令是否是正常的请求命令。

步骤s362分析请求命令与前n条历史请求命令的关联:本步骤中,将请求指令与前n条历史请求命令进行关系分析,若出现无明显关联(关联是指如果之前是读操作,现在进行写入有逻辑顺序/关系),则需要继续关注。上述n为大于0的整数。

步骤s363分析请求命令在云端数据中的比例:本步骤中,分析请求命令在云端数据中的比例,具体就是结合云端服务器的大数据,统计大量范围内的请求命令,由于样本数据进一步扩大,对任何的正常命令,将会有很大的统计数据,而恶意命令在统计数据中将十分明显,也就是恶意命令在统计数据中所占的比例比较少。

步骤s364识别出操作请求是否为危险请求:根据上述步骤s361至步骤s363的结果,出操作请求是否为危险请求。

本实施例还涉及一种实现上述对计算机硬件固件进行安全检测和防护的方法的装置,该装置的结构示意图如图4所示。图4中,该装置包括监控开启单元1、操作请求过滤单元2、标准协议命令判断单元3、信息提取单元4、操作请求发送单元5、数据过滤单元6、相似度判断单元7、标准协议返回格式判断单元8、硬件操作请求判断单元9和数据返回单元10;其中,监控开启单元1用于开启对计算机的操作系统的hal层的监控;操作请求过滤单元2用于过滤操作系统对计算机硬件固件的操作请求;标准协议命令判断单元3用于判断操作请求是否是标准协议命令;信息提取单元4用于提取并记录操作请求的基本元信息,进入分析模块;操作请求发送单元5用于将操作请求发送到对应的计算机硬件固件;数据过滤单元6用于过滤从计算机硬件固件收到的数据;相似度判断单元7用于判断数据的格式与对应的计算机硬件固件的相似度是否大于设定值;标准协议返回格式判断单元8用于判断数据的格式是否符合标准协议返回格式;硬件操作请求判断单元9用于使分析模块判断操作请求是否安全;数据返回单元10用于将数据返回到操作系统。本发明的装置通过在传统安全防护体系的基础上,增加对硬件固件的安全检测与防护技术,因此能有效的识别和防护针对硬件固件的危险行为、防止恶意软件对硬件固件的操作。

本实施例中,标准协议命令判断单元3进一步包括操作请求解析模块31、第一高危请求判断模块32、高危数据格式判断模块33、第二高危请求判断模块34、操作请求发送模块35和拦截报警模块36;其中,操作请求解析模块31用于按照计算机硬件固件的标准文档,将操作请求进行解析得到操作请求的关键信息;上述关键信息包括请求命令和请求数据;第一高危请求判断模块32用于判断请求命令是否是高危请求;高危数据格式判断模块33用于判断请求数据是否含有高危数据格式或高危数据内容;第二高危请求判断模块34用于基于统计和行为分析,判断操作请求是否是危险请求;操作请求发送模块35用于将操作请求发送到计算机;拦截报警模块36对操作请求进行拦截并报警。

图5为本实施例中第二高危请求判断模块的具体结构示意图。图5中,第二高危请求判断模块34进一步包括请求比例分析模块341、关联分析模块342、运算数据比例分析模块343和危险请求识别模块344;请求比例分析模块341用于分析请求命令在计算机历史中所有请求中的比例;关联分析模块342用于分析请求命令与前n条历史请求命令的关联;上述n为大于0的整数;运算数据比例分析模块343用于分析请求命令在云端数据中的比例;危险请求识别模块344用于识别出操作请求是否为危险请求。

总之,本发明能有效的识别和防护针对计算机硬件固件的危险行为,防止恶意软件对计算机硬件固件的操作,能抵御包括但不限于bios病毒、方程式后门等超高技术难度的恶意软件。本发明能有效的识别和防护已知和未知的针对计算机硬件固件的恶意软件。本发明是针对计算机硬件固件的通用性安全解决方案,能提供包括但不限于对bios、机械硬盘、固态硬盘、网卡、显卡等通用硬件的安全防御能力。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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