一种保护信创服务器制造技术

技术编号:39826935 阅读:8 留言:0更新日期:2023-12-29 16:02
本发明专利技术涉及一种保护信创服务器

【技术实现步骤摘要】
一种保护信创服务器Linux系统时间的方法


[0001]本专利技术属于系统时间管理
,尤其是一种保护信创服务器
Linux
系统时间的方法


技术介绍

[0002]目前大部分服务器可以使用
ntp、
自研校时程序进行网络校时,确保服务器时间的同步性和准确度

在实际使用过程中,难免会遇到时钟源不正确的情形,此时,对时间要求比较高的服务器应用就会做出错误的响应,例如删除了不该删除的文件,无法正常录像等错误行为


技术实现思路

[0003]本专利技术的目的在于克服现有技术的不足,提出一种保护信创服务器
Linux
系统时间的方法,能够用于对时间依赖度高的服务器,确保时间在可控的合理范围,防止系统时间骤减或暴增带来的各种异常

[0004]本专利技术解决其技术问题是采取以下技术方案实现的:
[0005]一种保护信创服务器
Linux
系统时间的方法,包括以下步骤:
[0006]步骤
1、
构建钩子函数;
[0007]步骤
2、
使用步骤1中构建的钩子函数替代服务器系统中的时间设置函数;
[0008]步骤
3、
当服务器系统进行时间修改时,服务器系统内核执行到被替代的时间设置函数位置,并进入步骤1中的钩子函数;
[0009]步骤
4、
钩子函数对传入的时间修改参数进行校验,判断是否在合理范围,若在合理范围则修改时间,否则返回参数错误,同时时间不变

[0010]而且,所述步骤1的具体实现方法为:在开源工程
khook
的源码中,声明并实现钩子函数,其中声明的格式为时间修改函数
do_settimeofday64。
[0011]而且,所述步骤2的具体方法为:编译生成内核
ko
模块文件,注册到服务器系统内核中,在
khook
源码中,添加操作系统内核时间设置函数的钩子函数,用于替代对应的时间设置函数,在替代前将原始函数的地址暂存以供后续调用

[0012]而且,所述步骤4中钩子函数对传入的时间修改参数进行校验的具体实现方法为:钩子函数体内实现对应的参数判断逻辑,时间设置函数的参数类型是结构体
timespec64
,将该参数的成员变量
tv_sec
转换成年月日时分秒,便于做日期或者时间的合理性判断,若在合理范围内,就调用暂存的原始函数,否则返回参数失败

[0013]本专利技术的优点和积极效果是:
[0014]本专利技术通过构建钩子函数;使用构建的钩子函数替代服务器系统中的时间设置函数;当服务器系统进行时间修改时,服务器系统内核执行到被替代的时间设置函数位置,并进入钩子函数;钩子函数对传入的时间修改参数进行校验,判断是否在合理范围,若在合理范围则修改时间,否则返回参数错误,同时时间不变

本专利技术利用操作系统内核的
hook
技术
(
基于开源工程
khook)
,不需要修改和重新编译内核源码,也不需要修改上层应用程序源码,只需要在内核中注册一个
ko
文件,就能实现对时间修改函数的参数进行合理化判断

附图说明
[0015]图1为本专利技术的流程图

具体实施方式
[0016]以下结合附图对本专利技术做进一步详述

[0017]一种保护信创服务器
Linux
系统时间的方法,包括以下步骤:
[0018]步骤
1、
构建钩子函数

[0019]在开源工程
khook
的源码中,声明并实现钩子函数,其中声明的格式为时间修改函数
do_settimeofday64。
[0020]步骤
2、
使用步骤1中构建的钩子函数替代服务器系统中的时间设置函数

[0021]编译生成内核
ko
模块文件,注册到服务器系统内核中,在
khook
源码中,添加操作系统内核时间设置函数的钩子函数,用于替代对应的时间设置函数,在替代前将原始函数的地址暂存以供后续调用

[0022]步骤
3、
当服务器系统进行时间修改时,服务器系统内核执行到被替代的时间设置函数位置,并进入步骤1中的钩子函数

[0023]步骤
4、
钩子函数对传入的时间修改参数进行校验,判断是否在合理范围,若在合理范围则修改时间,否则返回参数错误,同时时间不变

[0024]钩子函数对传入的时间修改参数进行校验的具体实现方法为:钩子函数体内实现对应的参数判断逻辑,时间设置函数的参数类型是结构体
timespec64
,将该参数的成员变量
tv_sec
转换成年月日时分秒,便于做日期或者时间的合理性判断,若在合理范围内,就调用暂存的原始函数,否则返回参数失败

[0025]根据上述一种保护信创服务器
Linux
系统时间的方法,结合附图1以及具体编程语言说明本专利技术的效果

[0026]如图1所示为本专利技术的流程图

[0027]步骤
1、

khook
源码中定义并实现对应的钩子函数,
khook
源码中有两个关键的宏:
KHOOK

KHOOK_ORIGIN
,分别用于定义钩子函数和被替代的内核原始函数,以函数
do_settimeofday64
为例,钩子函数定义为:
[0028]KHOOK(do_settimeofday64)

[0029]static int khook_do_settimeofday64(const struct timespec64*ts)

[0030]原始函数为:
[0031]KHOOK_ORIGIN(do_settimeofday64,ts)
[0032]步骤
2、
编译
ko
文件,在需要做保护的服务器上,使用
insmod
命令将
ko
文件注册成系统内核模块

[0033]步骤
3、
内核调用时间处理函数:当服务器被修改时间时,会调用内核的设置时间函数,如
do_settimeofday64
,由于函数已经被钩子函数替代,因此其实调用的是钩子函数

[0034]步骤
4、
进入钩子函数:
[0035]步骤
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种保护信创服务器
Linux
系统时间的方法,其特征在于:包括以下步骤:步骤
1、
构建钩子函数;步骤
2、
使用步骤1中构建的钩子函数替代服务器系统中的时间设置函数;步骤
3、
当服务器系统进行时间修改时,服务器系统内核执行到被替代的时间设置函数位置,并进入步骤1中的钩子函数;步骤
4、
钩子函数对传入的时间修改参数进行校验,判断是否在合理范围,若在合理范围则修改时间,否则返回参数错误,同时时间不变
。2.
根据权利要求1所述的一种保护信创服务器
Linux
系统时间的方法,其特征在于:所述步骤1的具体实现方法为:在开源工程
khook
的源码中,声明并实现钩子函数
。3.
根据权利要求1所述的一种保护...

【专利技术属性】
技术研发人员:于宏志王思俊吴迪李辰陈澎祥杜庆雨
申请(专利权)人:天地伟业技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1