[发明专利]执行系统调用的方法及装置有效
申请号: | 201610159286.7 | 申请日: | 2016-03-18 |
公开(公告)号: | CN107203715B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 裘绍翔;许来光 | 申请(专利权)人: | 斑马智行网络(香港)有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 上海华诚知识产权代理有限公司 31300 | 代理人: | 徐颖聪 |
地址: | 中国香港九龙长沙湾道*** | 国省代码: | 香港;81 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 系统 调用 方法 装置 | ||
本申请公开了一种执行系统调用的方法及装置,同时公开了另一种执行系统调用的方法及装置。所述第一种执行系统调用的方法包括:接收执行系统调用的请求;判断所述系统调用的执行者是否具有对所述系统调用的访问权限;若具有,则允许所述执行者执行所述系统调用。本申请提供的上述方法,在判断某一系统调用能否被执行时,是以执行者是否具有相应的访问权限作为依据,即,通过对执行者的授权达到限制系统调用的目的,从而实现了基于执行者身份的差异化控制,而且并没有对开放哪些系统调用加以限制,因此可以灵活地满足用户空间对系统调用的合理访问需求。
技术领域
本申请涉及系统调用技术,具体涉及一种执行系统调用的方法及装置。本申请同时涉及另一种执行系统调用的方法及装置。
背景技术
为了保证安全性,操作系统(例如Linux)的运行空间通常可以被划分为内核空间与用户空间,它们各自运行在不同的级别中,逻辑上相互隔离。应用程序在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间函数。当用户程序需要获得系统服务或者访问系统核心功能时,这时就需要执行系统调用(syscall)。
执行系统调用时通常通过软中断机制陷入内核,即进入内核空间,然后才能执行相应的系统服务例程。从逻辑上来说,系统调用可被看成是内核与用户空间交互的接口:把来自用户空间的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。
在具体应用中,操作系统通常提供大量的系统调用,这些系统调用都暴露在用户空间,一方面在大多数应用程序的整个生命周期内,很多系统调用并没有被调用,另一方面,暴露在用户空间的系统调用有可能存在各种安全漏洞,如果被恶意利用,则可能为整个系统带来安全隐患,因此有必要对应用程序执行系统调用加以限制。例如,Linux系统支持一种简洁的Seccomp(secure computing—安全计算模式)沙箱机制,提供了一种安全运行模式,在该模式下的应用程序进程只能调用4种系统调用,即read、write、exit和sigreturn,否则应用程序便会被终止。
Seccomp沙箱机制虽然实现了对系统调用的限制,但是由于其对所有被控制进程是一视同仁的,不能做到差异化控制;而且由于仅开放了read、write、exit、sigreturn这4个系统调用,不具有可扩展性,无法满足用户空间对系统调用的合理访问需求。
发明内容
本申请实施例提供一种执行系统调用的方法及装置,以解决现有技术在对系统调用进行限制时无法实现差异化控制、以及开放的系统调用数量无法满足访问需求的问题。本申请实施例还提供另一种执行系统调用的方法及装置。
本申请提供一种执行系统调用的方法,包括:
接收执行系统调用的请求;
判断所述系统调用的执行者是否具有对所述系统调用的访问权限;
若具有,则允许所述执行者执行所述系统调用。
可选的,所述判断所述系统调用的执行者是否具有对所述系统调用的访问权限,包括:
获取所述系统调用所属类别;
获取所述执行者对各类别系统调用的访问权限;
根据所述获取的信息,判断所述执行者是否具有对所述系统调用所属类别的访问权限;
其中,所述系统调用所属类别、以及所述执行者对各类别系统调用的访问权限是预先设定的。
可选的,在所述接收执行系统调用的请求之前,执行下述操作:
根据预先划分的系统调用类别,指定所述系统调用所属类别;
设置所述执行者对各类别系统调用的访问权限。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于斑马智行网络(香港)有限公司,未经斑马智行网络(香港)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610159286.7/2.html,转载请声明来源钻瓜专利网。