发明名称 操作系统内核运行时安全验证方法
摘要 本发明一种操作系统内核运行时安全验证方法,包括确认目标操作系统的所有内核模块文件的合法性、验证内核中已经加载的模块的合法性、对随时加载的新内核模块进行合法性、验证重新设定处理器中所有从用户等级切换到特权等级的入口、对二进制翻译所要翻译的每条指令进行检查等步骤。这种方法可以用于计算机安全软件,能够从根本上对运行中的计算机操作系统进行检测,探知其中存在的内核病毒;并能对现有的操作系统进行防范,发现试图入侵的内核病毒,并有条件地进行清除。是对rootkit的彻底解决之道。
申请公布号 CN103473508B 申请公布日期 2016.07.27
申请号 CN201310425645.5 申请日期 2013.09.17
申请人 肖楠 发明人 肖楠
分类号 G06F21/57(2013.01)I;G06F21/51(2013.01)I;G06F21/56(2013.01)I 主分类号 G06F21/57(2013.01)I
代理机构 西安智邦专利商标代理有限公司 61211 代理人 王少文
主权项 一种操作系统内核运行时安全验证方法,其特征在于:包括以下步骤:步骤1)确认目标操作系统的所有内核模块文件的合法性:静态确认目标操作系统的所有内核模块文件的合法性,并保存目标操作系统中所有的合法内核模块的完整性验证信息;步骤2)验证内核中已经加载的模块的合法性:通过枚举操作系统已经加载的内核模块,与步骤1中保存的完整性验证信息进行对比,从而验证内核中已经加载的模块的合法性,同时获得每个模块的每个可执行节的地址范围;步骤3)对随时加载的新内核模块进行合法性验证:对操作系统随时加载的新内核模块,与步骤1中保存的完整性验证信息进行对比,从而验证该新加载模块的合法性,同时获得该模块的每个可执行节的地址范围;步骤4)重新设定处理器中所有从用户等级切换到特权等级的入口:拦截处理器中所有从用户等级切换到特权等级的指令,并重新设定这些指令的入口,使之指向二进制翻译入口;步骤5)对二进制翻译所要翻译的每条指令进行检查:对二进制翻译所要翻译的每条指令进行检查,如果该条指令不在某个合法内核模块的某个可执行节中,则按照异常指令处理;如果该条指令位于某个合法内核模块的某个可执行节中,则执行步骤6;所述按照异常指令处理是指:若系统处于最高安全要求下,则停止系统运行并收集相关信息自动上报,经人工检测无毒后再确认新的合法模块;若系统处于较高安全要求下,则允许系统继续运行或回避该指令并设法让系统能够继续正常运行,同时搜集相关信息上报进行安全性分析;若系统处于低安全性要求下,允许异常指令继续运行,同时搜集信息进行安全性分析;步骤6)对步骤5)中经过检查的每条指令进行动态二进制翻译,动态二进制翻译是采用直拷贝动态二进制翻译,其具体步骤如下:6.1)调用翻译接口函数,从某个本应执行指令的地址开始翻译;6.2)从该地址进行指令解码,获得一条指令;6.3)如果该指令为跳转指令,则翻译成跳到翻译接口函数,写入跳转目的地址为参数,并保留原跳转指令的跳转目的,这组指令跳转到翻译接口进行翻译,翻译结束后,跳转到生成指令缓冲区开始执行,直到最后一条指令执行完后回到原跳转指令的跳转目的;对于不带跳转的指令,不做任何变动,直接拷贝到生成指令缓冲区开始执行,同时移动地址到下一条指令;6.4)返回步骤6.1开始翻译下一条指令。
地址 710068 陕西省西安市电子三路3号西京国际电气中心A座1308