一种基于国产tcm的动态度量方法

文档序号:10553235阅读:548来源:国知局
一种基于国产tcm的动态度量方法
【专利摘要】本发明公开了一种基于国产TCM的动态度量方法,通过TCM安全模块对进程的程序区段进行分页度量;当度量异常时,内核模块立即向用户告警,并暂停程序执行;用户根据告警信息做出自己的选择——恢复执行程序还是停止执行。该一种基于国产TCM的动态度量方法与现有技术相比,有效提高文件的安全性能,降低文件被攻击的概率,实时监护个人终端,降低安全风险,实用性强,易于推广。
【专利说明】
一种基于国产TCM的动态度量方法
技术领域
[0001]本发明涉及信息安全技术领域,尤具体地说是一种实用性强、基于国产TCM的动态度量方法。
【背景技术】
[0002]随着国产处理器的硬件性能提升,国家对研制自主可控的国产计算机越来越重视。硬件方面,目前我国拥有多种自主研制的CPU(如龙芯、飞腾、申威),也拥有研制相应主板的核心技术和成熟工艺,更兼有TCM这一核心国家安全可信部件,TcM安全芯片,是一种安全芯片,能有效保护PC,防止非法用户访问电脑。一些计算机的其他部件(如内存、硬盘)也早已国产化。软件方面,已有自主研制的B1S(如昆仑固件)。以中标麒麟为首的国产操作系统提供了 windows的替代品,其上的国产软件也逐渐丰富起来。
[0003]虽然自主可控的软硬件平台杜绝了x86系列计算机的安全后门,但是我国的安全防护技术仍然十分薄弱。以可信技术为支撑的安全可控软硬件技术正逐步发展起来,已成为我国个人终端抵御外界入侵的天然屏障。本发明基于安全可信技术开发,利用Iinux内核关键技术实现,提供一种对运行的进程的动态监控。
[0004]传统安全技术都是执行前对程序文件进行静态检测,而忽视了程序运行之后程序区被篡改的可能。一些黑客故意使用恶意工具启动被攻击程序,而不是直接启动被攻击程序,从而获得修改被攻击程序的内存的可能,这将产生极大的安全隐患。鉴于存在的问题,本发明提出一种基于国产TCM的动态度量方法。

【发明内容】

[0005]本发明的技术任务是针对以上不足之处,提供一种实用性强、基于国产TCM的动态度量方法。
[0006]—种基于国产TCM的动态度量方法,通过TCM安全模块对进程的程序区段进行分页度量;当度量异常时,内核模块立即向用户告警,并暂停程序执行;用户根据告警信息做出自己的选择恢复执行程序还是停止执行。
[0007]该方法通过以下三个模块实现:
内核度量模块,负责对进程的程序区段的分页度量及运行控制,并向用户汇报度量结果;
守护进程模块,负责接收内核度量模块的相关消息,并做相关处理;
用户管理模块,提供一个图形用户界面,以供用户操作与配置。
[0008]该动态度量方法的具体过程为:
通过用户管理模块,用户首先选择一个程序,向守护进程发出收集预期值的请求;守护进程自动完成预期值收集,并反馈给用户收集结果;用户在用户管理模块查看预期值,并添加额外的动态库,完善预期值的收集,并保存到预期值数据库;
当用户执行收集过预期值的程序时,内核会捕捉到进程启动,开始解析数据库中的相关预期值,并分配一个线程度量该进程;内核实时汇报度量信息到守护进程,用户亦可通过用户管理模块来查看该信息;
当度量发现异常时,内核度量模块挂起被度量进程,然后汇报异常情况;用户收到异常告警后,做出决策,这里的决策包括尝试修复、忽视异常、停止进程,其中尝试修复是指通知内核修正被污染的程序区段。
[0009]所述内核度量模块完成以下处理动作:
初始化工作:包括初始化线程池、全局变量和同步锁,这里的线程池是指每一个程序启动之后,内核启动一个线程去度量该进程,此时内核模块创建一个线程池;全局变量用于储存预期值,该预期值用于度量进程时使用,从数据库中读取;同步锁用于线程和被度量进程之间的同步处理;
捕捉工作:将内核关键函数与钩子函数对应挂接;
度量工作:度量线程首先获取进程程序区段的页框,将其映射到高端内存中去,即高端映射;执行完这一步之后,度量线程收集进程程序区的代码信息,然后对每一页调用TCM安全模块进行哈希值计算,对比预期值,即分页度量;
反馈和异常处理工作:度量线程每度量一页,会向守护进程汇报度量结果;在哈希值与预期值不一致时,即度量失败时,内核模块立即暂停该进程的执行,从而达到控制恶意代码运行的效果;守护进程接收到异常信息,向用户管理模块告警,由用户来决定如何处理该异常。
[00?0] 所述内核关键函数是指sys_execve、do_group_exit,这两个函数分别用于进程创建和销毁,钩子函数的作用是捕捉进程创建和销毁的消息;每当新程序启动时,就分配线程池中的一个线程与该进程绑定,以用于度量该进程,当进程结束时,就释放该线程到线程池。
[0011]所述度量工作过程是循环度量,即每隔一定时间会度量一遍进程的所有程序区段;
所述守护进程模块完成以下处理动作:
消息处理:解析由用户管理模块和内核度量模块发送过来的消息以及封装并发送守护进程模块的消息;
收集预期值:收集程序运行时程序区段的分页哈希值;
管理预期值:删除不再使用的预期值和添加缺失的预期值;
度量异常处理:收集内核模块发送过来的异常消息,并向用户管理模块转发;
管理日志:完成日志的维护和管理。
[0012]所述收集预期值是指使用Iinux的Idd工具获取程序运行时所加载的动态库;然后使用readelf工具可获得elf格式文件的程序区段,这里的elf格式是指动态库和可执行程序的文件格式;最后通过调用TCM安全模块计算出程序区段的每页的哈希值,即预期值。
[0013]所述日志包括预期值收集日志、预期值管理日志、异常产生日志、异常处理日志、程序度量运行日志。
[0014]所述用户管理模块提供的图形界面包括使用预期值管理操作界面、动态度量过程控制界面、日志管理界面。
[0015]本发明的一种基于国产TCM的动态度量方法,具有以下优点: 本发明的一种基于国产TCM的动态度量方法,有效提高文件的安全性能,降低文件被攻击的概率,实时监护个人终端,降低安全风险,实用性强,易于推广。
【附图说明】
[0016]附图1为本发明内核度量模块处理流程图。
[0017]附图2为本发明守护进程模块功能架构图。
[0018]附图3为本发明整体架构图。
【具体实施方式】
[0019]下面结合附图和具体实施例对本发明作进一步说明。
[0020]如附图1所示,本发明提供一种基于国产TCM的动态度量方法,通过TCM安全模块对进程的程序区段进行分页度量;当度量异常时,内核模块立即向用户告警,并暂停程序执行;用户根据告警信息做出自己的选择一一恢复执行程序还是停止执行。
[0021 ]该方法通过以下三个模块实现:
内核度量模块,负责对进程的程序区段的分页度量及运行控制,并向用户汇报度量结果;
守护进程模块,负责接收内核度量模块的相关消息,并做相关处理;
用户管理模块,提供一个图形用户界面,以供用户操作与配置。
[0022]如附图1、图2、图3所示,该动态度量方法的具体过程为:
通过用户管理模块,用户首先选择一个程序,向守护进程发出收集预期值的请求;守护进程自动完成预期值收集,并反馈给用户收集结果;用户在用户管理模块查看预期值,并添加额外的动态库,完善预期值的收集,并保存到预期值数据库;
当用户执行收集过预期值的程序时,内核会捕捉到进程启动,开始解析数据库中的相关预期值,并分配一个线程度量该进程;内核实时汇报度量信息到守护进程,用户亦可通过用户管理模块来查看该信息;
当度量发现异常时,内核度量模块挂起被度量进程,然后汇报异常情况;用户收到异常告警后,做出决策,这里的决策包括尝试修复、忽视异常、停止进程,其中尝试修复是指通知内核修正被污染的程序区段。
[0023]所述“内核度量模块”的主要功能及流程如附图1所示:
初始化工作:每一个程序启动之后,内核需要启动一个线程去度量该进程。为了降低度量线程的创建和销毁所带来的资源开销,内核模块很有必要事先创建一个线程池。全局变量主要是储存预期值。该预期值用于度量进程时使用,需要事先从数据库中读取。同步锁主要用于线程和被度量进程之间的同步处理。
[0024]捕捉工作:所述内核关键函数是指sys_execve、do_group_exit。这两个函数分别是进程创建和销毁的必经之路。钩子函数的作用就是捕捉进程创建和销毁的消息。每当新程序启动时,就分配线程池中的一个线程与该进程绑定,以用于度量该进程。当进程结束时,就释放该线程到线程池。
[0025]度量工作:度量线程会首先获取进程程序区段的页框,将其映射到高端内存中去,即高端映射。执行完这一步之后,度量线程才能收集进程程序区的代码信息,然后对每一页调用TCM安全模块进行哈希值计算,对比预期值,即分页度量。该过程是循环度量,即每隔一定时间会度量一遍进程的所有程序区段。
[0026]反馈和异常处理工作:度量线程每度量一页,会向守护进程汇报度量结果。在哈希值与预期值不一致时,即度量失败时,内核模块会立即暂停该进程的执行,从而达到控制恶意代码运行的效果。守护进程接收到异常信息,会向用户管理模块告警,由用户来决定如何处理该异常。处理方法有尝试修复、忽视异常、停止进程等。
[0027]所述“守护进程模块”的主要功能及流程如附图2所示:
守护进程的存在是很有必要的:因为有些被度量程序在图形界面启动之前就已经启动,必须由守护进程对内核模块消息做相应处理(此时用户管理模块还未能启动,因为图形库未加载)。
[0028]消息处理:主要负责解析由用户管理模块和内核度量模块发送过来的消息以及封装并发送守护进程模块的消息。
[0029]收集预期值:主要负责收集程序运行时程序区段的分页哈希值。使用Iinux的Idd工具可以获取程序运行时所加载的动态库。然后使用readelf工具可获得elf格式文件(动态库和可执行程序的文件格式)的程序区段。最后通过调用TCM安全模块计算出程序区段的每页的哈希值,即预期值。
[0030]管理预期值:负责删除不再使用的预期值和添加缺失的预期值。在收集完预期值之后,有些动态库可能未被收集到,尤其是使用dlopen打开的动态库。可通过该功能添加未收集到的动态库。
[0031]度量异常处理:主要是收集内核模块发送过来的异常消息,并向用户管理模块转发。用户管理模块收到异常信息后,会下发异常处理命令到守护进程,再由守护进程转发给内核度量模块。
[0032]管理日志:负责各种日志的维护和管理。日志包括预期值收集日志、预期值管理日志、异常产生日志、异常处理日志、程序度量运行日志。
[0033]所述“用户管理模块”主要是提供一个图形界面供用户使用。用户可操作该界面使用预期值管理、动态度量过程控制、日志管理功能。
[0034]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种基于国产TCM的动态度量方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
1.一种基于国产TCM的动态度量方法,其特征在于,通过TCM安全模块对进程的程序区段进行分页度量;当度量异常时,内核模块立即向用户告警,并暂停程序执行;用户根据告警信息做出自己的选择一一恢复执行程序还是停止执行。2.根据权利要求1所述的一种基于国产TCM的动态度量方法,其特征在于,该方法通过以下三个模块实现: 内核度量模块,负责对进程的程序区段的分页度量及运行控制,并向用户汇报度量结果; 守护进程模块,负责接收内核度量模块的相关消息,并做相关处理; 用户管理模块,提供一个图形用户界面,以供用户操作与配置。3.根据权利要求2所述的一种基于国产TCM的动态度量方法,其特征在于,该动态度量方法的具体过程为: 通过用户管理模块,用户首先选择一个程序,向守护进程发出收集预期值的请求;守护进程自动完成预期值收集,并反馈给用户收集结果;用户在用户管理模块查看预期值,并添加额外的动态库,完善预期值的收集,并保存到预期值数据库; 当用户执行收集过预期值的程序时,内核会捕捉到进程启动,开始解析数据库中的相关预期值,并分配一个线程度量该进程;内核实时汇报度量信息到守护进程,用户亦可通过用户管理模块来查看该信息; 当度量发现异常时,内核度量模块挂起被度量进程,然后汇报异常情况;用户收到异常告警后,做出决策,这里的决策包括尝试修复、忽视异常、停止进程,其中尝试修复是指通知内核修正被污染的程序区段。4.根据权利要求3所述的一种基于国产TCM的动态度量方法,其特征在于,所述内核度量模块完成以下处理动作: 初始化工作:包括初始化线程池、全局变量和同步锁,这里的线程池是指每一个程序启动之后,内核启动一个线程去度量该进程,此时内核模块创建一个线程池;全局变量用于储存预期值,该预期值用于度量进程时使用,从数据库中读取;同步锁用于线程和被度量进程之间的同步处理; 捕捉工作:将内核关键函数与钩子函数对应挂接; 度量工作:度量线程首先获取进程程序区段的页框,将其映射到高端内存中去,即高端映射;执行完这一步之后,度量线程收集进程程序区的代码信息,然后对每一页调用TCM安全模块进行哈希值计算,对比预期值,即分页度量; 反馈和异常处理工作:度量线程每度量一页,会向守护进程汇报度量结果;在哈希值与预期值不一致时,即度量失败时,内核模块立即暂停该进程的执行,从而达到控制恶意代码运行的效果;守护进程接收到异常信息,向用户管理模块告警,由用户来决定如何处理该异常。5.根据权利要求4所述的一种基于国产TCM的动态度量方法,其特征在于,所述内核关键函数是指sys_execve、do_group_exit,这两个函数分别用于进程创建和销毁,钩子函数的作用是捕捉进程创建和销毁的消息;每当新程序启动时,就分配线程池中的一个线程与该进程绑定,以用于度量该进程,当进程结束时,就释放该线程到线程池。6.根据权利要求4所述的一种基于国产TCM的动态度量方法,其特征在于,所述度量工作过程是循环度量,即每隔一定时间会度量一遍进程的所有程序区段。7.根据权利要求3所述的一种基于国产TCM的动态度量方法,其特征在于,所述守护进程模块完成以下处理动作: 消息处理:解析由用户管理模块和内核度量模块发送过来的消息以及封装并发送守护进程模块的消息; 收集预期值:收集程序运行时程序区段的分页哈希值; 管理预期值:删除不再使用的预期值和添加缺失的预期值; 度量异常处理:收集内核模块发送过来的异常消息,并向用户管理模块转发; 管理日志:完成日志的维护和管理。8.根据权利要求7所述的一种基于国产TCM的动态度量方法,其特征在于,所述收集预期值是指使用Iinux的Idd工具获取程序运行时所加载的动态库;然后使用readelf工具可获得elf格式文件的程序区段,这里的elf格式是指动态库和可执行程序的文件格式;最后通过调用TCM安全模块计算出程序区段的每页的哈希值,即预期值。9.根据权利要求7所述的一种基于国产TCM的动态度量方法,其特征在于,所述日志包括预期值收集日志、预期值管理日志、异常产生日志、异常处理日志、程序度量运行日志。10.根据权利要求3所述的一种基于国产TCM的动态度量方法,其特征在于,所述用户管理模块提供的图形界面包括使用预期值管理操作界面、动态度量过程控制界面、日志管理界面。
【文档编号】G06F21/56GK105912929SQ201610215411
【公开日】2016年8月31日
【申请日】2016年4月8日
【发明人】赵瑞东, 王晓明, 冯磊, 郭猛善
【申请人】山东超越数控电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1