【技术实现步骤摘要】
一种操作系统的系统调用合法性校验方法和系统
[0001]本专利技术涉及系统调用
,尤其涉及一种操作系统的系统调用合法性校验方法和系统。
技术介绍
[0002]在linux操作系统中,内核提供了用户进程与内核交互的一组接口。这些接口让应用程序受限地访问硬件设备,提供了创建新进程并与已有进程进行通信的机制,也提供了申请操作系统其他资源的能力。这些接口在应用程序和内核之间扮演了使者的角色,应用程序发出各种请求,而内核负责满足这些请求(或者无法满足时返回一个错误)。实际上提供这些接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行。但是在操作系统中,大量的系统调用接口直接暴露给应用程序,潜在的增加了系统受攻击面。然而并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。
[0003]由于系统调用攻击成为黑客常用的一项技术,针对系统调用攻击的解决方案也提出了很多,如《Linux系统调用劫持:技术原理、应用及检测》,《基于系统调用限制的容器安全防护方案》,Android系统通过限制部分系统调用的使用减少系统调用的暴露面,等等,像这样的方案有很多,这些安全方案有些是针对系统某一漏洞,或者是特定领域如文献的容器安全领域,不具有通用性。
技术实现思路
[0004]鉴于上述的分析,本专利技术实施例旨在提供一种操作系统的系统调用合法性校验方法和系统,用以解决现有安全方案针对某一漏洞或者是特定领域不具有通用性的问题。
[0005]一方面,本专利技术实施例提供了一种操作系统的系统 ...
【技术保护点】
【技术特征摘要】
1.一种操作系统的系统调用合法性校验方法,其特征在于,包括以下步骤:以inode节点为仲裁对象基于LSM框架在内核空间实现LSM安全模块;采用seccomp
‑
bpf在用户空间为不同应用程序配置对应的安全策略;将安全策略注入LSM安全模块中应用程序对应的inode节点的安全域中;拦截应用程序的进程启动系统调用,将应用程序对应的inode节点的安全域中存储的安全策略载入进程空间,根据安全策略对进程的系统调用进行校验。2.根据权利要求1所述的操作系统的系统调用合法性校验方法,其特征在于,所述LSM安全模块实现了inode_alloc_security和inode_init_security钩子函数;所述inode_alloc_security钩子函数用于当操作系统启动为新建的文件创建inode节点时,为创建的inode节点申请和分配inode安全域;所述inode_init_security钩子函数用于初始化所述inode安全域。3.根据权利要求1所述的操作系统的系统调用合法性校验方法,其特征在于,将安全策略注入LSM安全模块中应用程序对应的inode节点的安全域中,包括:通过系统调用setxattr(const char*path,const char*name,const void*value,size_t size,int flags)将安全策略注入内核空间,其中,参数path表示应用程序可执行文件的路径,参数name表示LSM安全模块的标识,参数value表示安全策略,参数size表示安全策略的大小,flags为缺省值;所述LSM安全模块还实现了inode_setxattr钩子函数,所述inode_setxattr钩子函数用于拦截所述setxattr系统调用,根据setxattr系统调用的path和name参数找到LSM安全模块中应用程序对应的inode节点,将所述安全策略存储到所述inode节点的安全域中。4.根据权利要求1所述的操作系统的系统调用合法性校验方法,其特征在于,所述LSM安全模块还实现了bprm_set_creds钩子函数,所述bprm_set_creds钩子函数用于拦截应用程序的进程启动系统调用,根据进程启动系统调用的参数找到该应用程序的inode节点,从所述inode节点中提取安全策略,将所述安全策略存储在所述进程的进程空间中。5.根据权利要求4所述的操作系统的系统调用合法性校验方法,其特征在于,将所述安全策略存储在所述进程的task结构体的seccomp字段。6.一种操作系统的系统调用合法性校验系统,其...
【专利技术属性】
技术研发人员:武耀威,张志成,杨沙洲,赵峰,
申请(专利权)人:麒麟软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。