本发明涉及嵌入式系统安全技术领域,尤其涉及一种具备防攻击能力嵌入式linux设备看门狗喂狗方法及驱动模块。
背景技术:
随着物联网的发展,linux系统成为在嵌入式设备中应用最广泛的操作系统。针对物联网中嵌入式linux设备的攻击事件越来越多,攻击一般会导致设备丧失原有功能,当物联网系统部署了较多数量的嵌入式linux设备时,如果设备受到攻击发生故障,技术人员无法及时修复,将导致整个物联网系统瘫痪,防攻击能力较弱。
技术实现要素:
本发明的目的在于提供一种具备防攻击能力嵌入式linux设备看门狗喂狗方法及驱动模块,提高物联网中的嵌入式linux设备的防攻击能力。
为实现上述目的,第一方面,本发明提供了一种具备防攻击能力嵌入式linux设备看门狗喂狗方法,包括:
初始化看门狗硬件电路,获取看门狗溢出时间,并屏蔽驱动代码中的函数接口;
获取计数变量和第一时间间隔,并根据所述第一时间间隔进行周期性的喂狗操作;
根据所述第一时间间隔,向应用程序发出是否喂狗命令;
判断在设定的第二时间间隔内是否收到所述应用程序回复的喂狗确认命令;
超过所述看门狗溢出时间后,看门狗复位,重启系统。
其中,所述初始化看门狗硬件电路,获取看门狗溢出时间,并屏蔽驱动代码中的函数接口,包括:
利用linux内核层初始化看门狗硬件电路,并得到看门狗的溢出时间,并同时通过所述linux内核层屏蔽驱动代码中由应用程序间接调用的函数接口。
其中,所述获取计数变量和第一时间间隔,并根据所述第一时间间隔进行周期性的喂狗操作,包括:
启动内核定时器,并设定所述定时器周期为第一时间间隔,利用获取的第一时间间隔周期性地对所述看门狗硬件电路进行喂狗操作,并将获取的计数变量初始化为零。
其中,根据所述第一时间间隔,向应用程序发出是否喂狗命令,包括:
在每个所述第一时间间隔的周期内,向应用程序发出询问是否喂狗的命令,并同时将所述计数变量的值增加一个计数,并喂狗一次。
其中,所述判断在设定的第二时间间隔内是否收到所述应用程序回复的喂狗确认命令,包括:
若在设定的第二时间间隔内,所述linux内核层接收到所述应用程序回复的喂狗确认命令,则将所述计数变量的值清零;
若在设定的第二时间间隔内,所述linux内核层未接收到所述应用程序回复的喂狗确认命令,则将所述计数变量值与设定超时次数进行比较。
其中,将所述计数变量值与设定超时次数进行比较,包括:
若所述计数变量的值未超过设定超时次数,则由所述linux内核层重新向应用程序发出是否喂狗命令;
若所述计数变量的值超过设定超时次数,则停止喂狗操作。
第二方面,本发明提供一种具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块,所述具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块包括初始化模块、喂狗子模块、询问是否喂狗子模块、喂狗确认命令接收子模块、喂狗确认命令检测子模块和执行子模块,所述初始化模块、所述喂狗子模块、所述询问是否喂狗子模块、所述喂狗确认命令接收子模块、所述喂狗确认命令检测子模块和所述执行子模块依次电性连接,
所述初始化模块,用于初始化看门狗硬件电路,获取看门狗溢出时间,屏蔽驱动代码中由应用程序间接调用的函数接口;
所述喂狗子模块,用于按照获取的第一时间间隔周期性地进行喂狗操作,同时对获取的计数变量增加一个计数;
所述询问是否喂狗子模块,用于向应用程序按照所述第一时间间隔周期性地发送询问是否喂狗的命令;
所述喂狗确认命令接收子模块,用于接收所述应用程序针对询问是否喂狗命令的回复确认指令;
所述喂狗确认命令检测子模块,用于检测所述喂狗确认命令接收子模块是否在第二时间间隔内收到应用程序返回的确认命令;
所述执行子模块,根据所述喂狗确认命令检测子模块的检测结果控制喂狗子模块是否继续进行喂狗操作。
本发明的一种具备防攻击能力嵌入式linux设备看门狗喂狗方法及驱动模块,所述具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块包括初始化模块、喂狗子模块、询问是否喂狗子模块、喂狗确认命令接收子模块、喂狗确认命令检测子模块和执行子模块,所述初始化模块、所述喂狗子模块、所述询问是否喂狗子模块、所述喂狗确认命令接收子模块、所述喂狗确认命令检测子模块和所述执行子模块依次电性连接,初始化看门狗硬件电路,获取看门狗溢出时间,并屏蔽驱动代码中的函数接口,获取计数变量和第一时间间隔,并根据所述第一时间间隔进行周期性的喂狗操作,根据所述第一时间间隔,向应用程序发出是否喂狗命令,并判断在设定的第二时间间隔内,所述linux内核层是否收到所述应用程序回复的喂狗确认命令,判断所述计数变量的值是否超过设定超时次数,当所述计数变量超过所述溢出时间后,看门狗复位,重启系统,提高物联网中的嵌入式linux设备的防攻击能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种具备防攻击能力嵌入式linux设备看门狗喂狗方法的步骤示意图。
图2是本发明提供的一种具备防攻击能力嵌入式linux设备看门狗喂狗方法的流程示意图。
图3是本发明提供的一种具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块的结构示意图。
1-初始化模块、2-喂狗子模块、3-询问是否喂狗子模块、4-喂狗确认命令接收子模块、5-喂狗确认命令检测子模块、6-执行子模块。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1和图2,本发明提供一种具备防攻击能力嵌入式linux设备看门狗喂狗方法,包括:
s101、初始化看门狗硬件电路,获取看门狗溢出时间,并屏蔽驱动代码中的函数接口。
具体的,利用linux内核层初始化看门狗硬件电路,并得到看门狗的溢出时间,并同时通过所述linux内核层屏蔽驱动代码中由应用程序间接调用的函数接口,确保设备受到攻击程序的干扰时,攻击程序无法通过系统调用函数控制看门狗硬件电路。
s102、获取计数变量和第一时间间隔,并根据所述第一时间间隔进行周期性的喂狗操作。
具体的,启动内核定时器,并设定所述定时器周期为第一时间间隔,利用获取第一时间间隔周期性地对所述看门狗硬件电路进行喂狗操作,并将获取的计数变量初始化为零,其中,所述第一时间间隔小于所述看门狗的溢出时间。
s103、根据所述第一时间间隔,向应用程序发出是否喂狗命令。
具体的,在每个所述第一时间间隔的周期内,由所述linux内核层向应用程序发出询问是否喂狗的命令,并同时将所述计数变量的值增加一个计数,并喂狗一次。
s104、判断在设定的第二时间间隔内是否收到所述应用程序回复的喂狗确认命令。
具体的,若在设定的第二时间间隔内,所述linux内核层接收到应用层中的所述应用程序回复的喂狗确认命令,则将所述计数变量的值清零,并将所述计数变量与设定的超时次数进行比较;若在设定的第二时间间隔内,所述linux内核层未接收到应用层中的所述应用程序回复的喂狗确认命令,则将所述计数变量值与设定超时次数进行比较,其中,若所述计数变量的值未超过设定超时次数,则所述linux内核层重新向应用程序发出是否喂狗命令;若所述计数变量的值超过设定超时次数,则停止喂狗操作,其中,所述第二时间间隔大于所述第一时间间隔,所述设定超时次数大于或等于所述第二时间间隔与所述第一时间间隔的比值。
s105、超过所述看门狗溢出时间后,看门狗复位,重启系统。
具体的,当看门狗模块在达到所述溢出时间后,所述linux内核层停止喂狗操作,看门狗复位,重启整个系统,嵌入式linux设备在达到所述溢出时间后自动复位重启,使位于ram(随机存储器)中的攻击程序也随着重启掉电丢失,提高嵌入式linux设备的防攻击能力。
请参阅图3,本发明提供一种具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块,所述具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块包括初始化模块1、喂狗子模块2、询问是否喂狗子模块3、喂狗确认命令接收子模块4、喂狗确认命令检测子模块5和执行子模块6,所述初始化模块1、所述喂狗子模块2、所述询问是否喂狗子模块3、所述喂狗确认命令接收子模块4、所述喂狗确认命令检测子模块5和所述执行子模块6依次电性连接,
所述初始化模块1,用于初始化看门狗硬件电路,获取看门狗溢出时间,屏蔽驱动代码中由应用程序间接调用的函数接口;
所述喂狗子模块2,用于按照获取的第一时间间隔周期性地进行喂狗操作,同时对获取的计数变量增加一个计数;
所述询问是否喂狗子模块3,用于向应用程序按照所述第一时间间隔周期性地发送询问是否喂狗的命令;
所述喂狗确认命令接收子模块4,用于接收所述应用程序针对询问是否喂狗命令的回复确认指令;
所述喂狗确认命令检测子模块5,用于检测所述喂狗确认命令接收子模块4是否在第二时间间隔内收到应用程序返回的确认命令;
所述执行子模块6,根据所述喂狗确认命令检测子模块5的检测结果控制喂狗子模块2是否继续进行喂狗操作。
在本实施方式中,所述具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块包括初始化模块1、喂狗子模块2、询问是否喂狗子模块3、喂狗确认命令接收子模块4、喂狗确认命令检测子模块5和执行子模块6,所述初始化模块1、所述喂狗子模块2、所述询问是否喂狗子模块3、所述喂狗确认命令接收子模块4、所述喂狗确认命令检测子模块5和所述执行子模块6依次电性连接,利用所述初始化模块1初始化看门狗硬件电路,获取看门狗溢出时间,屏蔽驱动代码中由应用程序间接调用的函数接口,确保设备受到攻击程序的干扰时,攻击程序无法通过系统调用函数控制看门狗硬件电路,并按照获取的第一时间间隔周期性地进行喂狗操作,同时对获取的计数变量增加一个计数,并通过所述询问是否喂狗子模块3向应用程序按照所述第一时间间隔周期性地发送询问是否喂狗的命令,并由所述喂狗确认命令接收子模块4接收所述应用程序针对询问是否喂狗命令的回复确认指令,若接收到所述应用程序返回的确认命令时,由所述喂狗确认命令检测子模块5检测所述喂狗确认命令接收子模块4是否在第二时间间隔内收到应用程序返回的确认命令,若是,则将计数变量值清零,若否,则判断所述计数变量的值与设定超时次数的值进行比较,当所述计数变量的值超过所述设定超时次数后,停止喂狗操作。
本发明的一种具备防攻击能力嵌入式linux设备看门狗喂狗方法及驱动模块,所述具备防攻击能力嵌入式linux设备看门狗喂狗驱动模块包括初始化模块1、喂狗子模块2、询问是否喂狗子模块3、喂狗确认命令接收子模块4、喂狗确认命令检测子模块5和执行子模块6,所述初始化模块1、所述喂狗子模块2、所述询问是否喂狗子模块3、所述喂狗确认命令接收子模块4、所述喂狗确认命令检测子模块5和所述执行子模块6依次电性连接,初始化看门狗硬件电路,获取看门狗溢出时间,并屏蔽驱动代码中的函数接口,获取计数变量和第一时间间隔,并根据所述第一时间间隔进行周期性的喂狗操作,根据所述第一时间间隔,向应用程序发出是否喂狗命令,并判断在设定的第二时间间隔内是否收到所述应用程序回复的喂狗确认命令,判断所述计数变量的值是否超过设定超时次数,当超过所述看门狗溢出时间后,看门狗复位,重启系统,提高物联网中的嵌入式linux设备的防攻击能力。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。