公开/公告号CN102375956A
专利类型发明专利
公开/公告日2012-03-14
原文格式PDF
申请/专利权人 北京市国路安信息技术有限公司;
申请/专利号CN201010257408.9
申请日2010-08-19
分类号G06F21/22(20060101);
代理机构
代理人
地址 100089 北京市海淀区紫竹桥广源大厦二层
入库时间 2023-12-18 04:38:40
法律状态公告日
法律状态信息
法律状态
2022-07-29
未缴年费专利权终止 IPC(主分类):G06F21/57 专利号:ZL2010102574089 申请日:20100819 授权公告日:20160525
专利权的终止
2017-07-21
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F21/57 变更前: 变更后: 申请日:20100819
专利权人的姓名或者名称、地址的变更
2016-05-25
授权
授权
2012-11-14
实质审查的生效 IPC(主分类):G06F21/22 申请日:20100819
实质审查的生效
2012-03-14
公开
公开
技术领域
本发明涉及一种在Unix系统下使用系统调用重定向机制,构建Unix可信 平台的方法,属于信息安全领域。
背景技术
根据TCG可信传递的概念,在计算平台的运行控制传递过程中,构建一个 可信根,由可信根确定其下一级功能的执行代码的可信度,如果可信,系统将 运行控制传递到下一级可信执行代码,系统的可信范围因此就从可信根扩大到 下一级功能,同样,第二级功能如果确定第三级功能可信,可信范围就扩大到 第三级功能,这个过程不断重复。通过可信传递,可以实现系统可信范围的延 伸。TCG的信任链以BIOS Boot Block和TPM芯片为可信根,经过BlOS-OS loader-OS-Application,信任链逐一传递,一级测量认证一级,一级信任一级, 以确保整个平台的系统资源的完整性,构建可信平台。
从系统加电开始到BIOS,再从BIOS到MBR、OS LOADER、OS内核的 可信传递已经有很多相关研究,本方法适用于在OS内核加载完毕后构建可信 Unix平台的方法。
发明内容
本方法在OS内核加载完成后,使用系统调用重定向技术,拦截可执行代 码的执行和加载,可执行代码的执行和加载必须通过验证模块的验证。验证模 块根据可执行代码白名单验证所有系统服务和应用程序的完整性,构建一个可 信的Unix平台。
本发明的目的是通过以下技术方案来实现:
基于Unix系统调用重定向的机制构建Unix可信平台的方法,利用Unix系 统调用重定向技术拦截系统,修改内核可执行代码加载运行系统调用表地址, 在系统调用中加入验证模块,当可执行代码加载执行时,由验证模块验证其是 否可信。
对于系统服务内核模块,使用x509证书签名验签机制验证其是否可信,通 过在内核模块增加新的签名段(section),内核模块的签名附加在模块本身,可 以随模块迁移。只要用户信任其签名的证书,内核模块就可以加载,具有很好 的迁移性。并且签名只关注模块代码段和数据段,验证更加准确、灵活。
对于一把应用程序和脚本,采用文件本身hash值做白名单。白名单能根据 用户需求定制,并且提供专门的生成工具生成。
Unix内核加载以后,系统服务和应用程序可以分为两种类型,一为内核模 块形式,另一种为普通应用程序和脚本。
对于内核模块形式,本方法采取x509证书签名作为可执行代码白名单,根 据签名验证内核模块的可信。根据ELF文件的特点,本方法在内核模块的ELF 格式中添加新的section(签名段),可信的内核模块的代码段和数据段经过有效 私钥的签名,其签名值会添加在内核模块中新的签名段中。内核模块加载的时 候,验证模块根据特定section中的签名对此内核模块的代码段和数据段进行验 签,判定模块的可信与否。用户可以指定所信任的证书,也可以自己提供证书 对模块进行签名。
对于普通的应用程序和脚本,可执行代码白名单为应用程序和脚本的hash 值形式。由白名单的生成模块采集生成可信程序的初始hash值,供验证模块判 定。
系统组成:
主要模块包括白名单生成模块、可执行代码验证模块和验证模块的装载模 块。
白名单生成模块主要完成白名单的生成、添加和删除功能,为可执行代码 验证模块提供验证依据(白名单)。装载模块主要完成在系统启动过程中加载验 证模块。可执行代码验证模块主要完成拦截系统调用,验证系统调用中的执行 代码。
该方法使用系统调用重定向机制,在系统内核层HOOK可执行代码装载和执 行的系统调用,对可执行代码进行可信验证,杜绝不可信代码在平台的加载执 行,保证整个系统执行环境的可信,最终构建一个可信的Unix平台。
附图说明
下面根据附图和实施例对本发明作进一步详细说明。
图1是本发明实施例所述的系统调用重定向的方法流程图。
图2是本发明实施例所述的内核模块加签示意图。
图3是本发明实施例所述的系统模块结构图。
具体实施方式
本发明所述的基于Unix系统调用重定向的机制构建Unix可信平台的方法, 利用Unix系统调用重定向技术拦截系统,修改内核可执行代码加载运行系统调 用表地址,在系统调用中加入验证模块,当可执行代码加载执行时,由验证模 块验证其是否可信。
对于系统服务内核模块,使用x509证书签名验签机制验证其是否可信,通 过在内核模块增加新的签名段(section),内核模块的签名附加在模块本身,可 以随模块迁移。只要用户信任其签名的证书,内核模块就可以加载,具有很好 的迁移性。并且签名只关注模块代码段和数据段,验证更加准确、灵活。
对于一把应用程序和脚本,采用文件本身hash值做白名单。白名单能根据 用户需求定制,并且提供专门的生成工具生成。
如图1-2所示,Unix内核加载以后,系统服务和应用程序可以分为两种类 型,一为内核模块形式,另一种为普通应用程序和脚本。
对于内核模块形式,本方法采取x509证书签名作为可执行代码白名单,根 据签名验证内核模块的可信。根据ELF文件的特点,本方法在内核模块的ELF 格式中添加新的section(签名段),可信的内核模块的代码段和数据段经过有效 私钥的签名,其签名值会添加在内核模块中新的签名段中。内核模块加载的时 候,验证模块根据特定section中的签名对此内核模块的代码段和数据段进行验 签,判定模块的可信与否。用户可以指定所信任的证书,也可以自己提供证书 对模块进行签名。
对于普通的应用程序和脚本,可执行代码白名单为应用程序和脚本的hash 值形式。由白名单的生成模块采集生成可信程序的初始hash值,供验证模块判 定。
如图3所示,系统组成:
主要模块包括白名单生成模块、可执行代码验证模块和验证模块的装载模 块。
白名单生成模块主要完成白名单的生成、添加和删除功能,为可执行代码 验证模块提供验证依据(白名单)。装载模块主要完成在系统启动过程中加载验 证模块。可执行代码验证模块主要完成拦截系统调用,验证系统调用中的执行 代码。
该方法使用系统调用重定向机制,在系统内核层HOOK可执行代码装载和执 行的系统调用,对可执行代码进行可信验证,杜绝不可信代码在平台的加载执 行,保证整个系统执行环境的可信,最终构建一个可信的Unix平台。
机译: 在UNIX操作系统中控制系统调用和动态更改内核的方法
机译: UNIX操作系统中控制系统调用和更改动态内核的方法
机译: 对于使用UNIX行操作系统的基于计算机的系统,使用面向对象规则的安全平台和方法