CN113225344A - 一种访问控制方法、装置、设备及可读存储介质 - Google Patents
一种访问控制方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113225344A CN113225344A CN202110506793.4A CN202110506793A CN113225344A CN 113225344 A CN113225344 A CN 113225344A CN 202110506793 A CN202110506793 A CN 202110506793A CN 113225344 A CN113225344 A CN 113225344A
- Authority
- CN
- China
- Prior art keywords
- network
- authority
- application program
- access
- protocol stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种访问控制方法、装置、设备及可读存储介质,该方法包括:接收应用程序发送的网络访问请求;若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈;利用网络协议栈,判断应用程序是否具有网络访问权限;第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限;如果是,则允许应用程序访问网络。利用硬件虚拟化技术,将网络协议栈与其应用程序进行权限隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
Description
技术领域
本申请涉及安全保障技术领域,特别是涉及一种访问控制方法、装置、设备及可读存储介质。
背景技术
目前实现高性能(高吞吐、低延迟)网络***的方法有绕过内核直接在用户态构建协议栈处理网络数据报文。
具体的,绕过内核在用户态处理网络数据报文,在用户态接管物理网卡并搭建网络协议栈进行数据报文处理。网络协议栈绕过内核接管物理网卡可以实现高性能网络数据包处理,但由于脱离了内核资源管理机制的保护会产生可靠性与安全性问题。即,绕过内核后网络***不再受到内核资源管理机制的保护,应用程序与网络协议栈位于同一内存地址空间,应用程序的bug(漏洞)容易导致整个网络协议栈的崩溃。
综上所述,如何有效地使得网络协议栈安全且可靠等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种访问控制方法、***、设备及可读存储介质,利用硬件虚拟化技术,将网络协议栈与其应用程序进行权限隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
为解决上述技术问题,本申请提供如下技术方案:
第一方面,本申请提供了一种访问控制方法,包括:
接收应用程序发送的网络访问请求;
若所述应用程序具有第二权限,则将所述网络访问请求发送给具有第一权限的网络协议栈;
利用所述网络协议栈,判断所述应用程序是否具有网络访问权限;所述第一权限和所述第二权限为硬件虚拟化对应的非根模式权限,且所述第一权限高于所述第二权限;
如果是,则允许所述应用程序访问网络。
在一种可选实施方式中,所述接收应用程序发送的网络访问请求,包括:
接收每个所述应用程序用不同网络协议栈实例进行网络数据包处理后,发送的所述网络访问请求。
在一种可选实施方式中,所述接收应用程序发送的网络访问请求,包括:
接收由所述应用程序生成,并经用户态网络服务接口转发的所述网络访问请求;所述用户态网络服务接口具有所述第二权限。
在一种可选实施方式中,允许所述应用程序访问网络,包括:
利用所述网络协议栈,将所述网络访问请求转发给网卡,以使所述应用程序访问网络。
在一种可选实施方式中,还包括:
接收所述应用程序发送的访问请求;其中,所述访问请求非所述网络访问请求;
将所述访问请求转发给Linux内核。
在一种可选实施方式中,将所述访问请求转发给Linux内核,包括:
利用硬件虚拟化管理模块,切换所述网络协议栈的权限;
在所述网络协议栈无所述第一权限后,将所述访问请求转发给所述Linux内核。
在一种可选实施方式中,所述硬件虚拟化管理模块对应Intel VT,且所述硬件虚拟化管理模块具有根模式最高权限,在所述接收应用程序发送的网络访问请求之前,还包括:
利用所述硬件虚拟化管理模块,将所述第一权限赋予所述网络协议栈,将所述第二权限赋予待被所述网络协议栈进行资源管理的应用程序;
其中,所述第一权限对应非根模式0号特权级,所述第二权限对应非根模式3号特权级。
第二方面,本申请提供了一种访问控制装置,包括:
请求接收模块,用于接收应用程序发送的网络访问请求;
请求转发模块,用于若所述应用程序具有第二权限,则将所述网络访问请求发送给具有第一权限的网络协议栈;
权限确定模块,用于利用所述网络协议栈,判断所述应用程序是否具有网络访问权限;所述第一权限和所述第二权限为硬件虚拟化对应的非根模式权限,且所述第一权限高于所述第二权限;
访问允许模块,用于如果所述应用程序具有所述网络访问权限,则允许所述应用程序访问网络。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述访问控制方法的步骤。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述访问控制方法的步骤。
应用本申请实施例所提供的方法,接收应用程序发送的网络访问请求;若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈;利用网络协议栈,判断应用程序是否具有网络访问权限;第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限;如果是,则允许应用程序访问网络。
在接收到网络访问请求之后,便可确定发送网络访问请求的应用程序是否具有第二权限,如果有,则表明网络协议栈可以对应用程序的资源访问进行管理控制。因而,可以利用网络协议栈判断应用程序具有网络访问权限,从而控制应用程序对网络的访问,即有网络访问权限则允许其访问网络,无网络访问权限则禁止其访问网络。利用硬件虚拟化技术,将网络协议栈与其应用程序进行权限隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
也就是说,通过硬件虚拟化技术,可以使得网络协议栈具有硬件虚拟化所对应的非根模式权限中的第一权限;而需要被网络协议栈管理的应用程序,通过硬件虚拟化技术,可以使得其具有硬件虚拟化所对应的非根模式权限中的第二权限;由于第一权限高于第二权限,因而网络协议栈可以对具有第二权限的应用程序进行访问控制,从而实现控制应用程序,以保障网络协议栈的安全性和可靠性,进一步保障网络***的稳定性。
相应地,本申请实施例还提供了与上述访问控制方法相对应的访问控制装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种访问控制方法的实施流程图;
图2为本申请实施例中一种访问控制方法的流程示意图;
图3为本申请实施例中一种网络***的具体架构图;
图4为本申请实施例中一种访问控制装置的结构示意图;
图5为本申请实施例中一种电子设备的结构示意图;
图6为本申请实施例中一种电子设备的具体结构示意图;
图7为本申请实施例中一种应用场景示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种访问控制方法的流程图。该方法可以应用于通过绕过内核直接在用户态构建网络协议栈处理网络数据报文,以提高网络数据报文处理效率的处理器中。由于绕过内核在用户态处理网络数据报文,在用户态接管物理网卡并搭建网络协议栈进行数据报文处理,存在缺点:在绕过内核后网络***不再受到内核资源管理机制的保护,用户程序与协议栈位于同一内存地址空间,用户程序的bug容易导致整个协议栈的崩溃,恶意程序可以利用这一弱点对协议栈本身和使用协议栈的其他程序进行攻击。在本申请中,所提供的访问控制方法,可以针对网络协议栈的安全性和可靠性进行提升。该方法可以应用于包括以下步骤:
S101、接收应用程序发送的网络访问请求。
应用程序可以具体为需要使用网络协议栈的程序,在本实施例中对该应用程序本身属于何种应用,具有哪些功能并不做限定。
该网络访问请求即与网络设置、查询等相关的请求,如通过网络获取相关资源,或设置网络权限等。具体的,可以通过请求本身所携带的内容确定其为网络访问请求,也可以通过接收请求的接口类型,从而确定请求具体为网络服务请求。
其中,接收应用程序发送的网络访问请求,可具体为:接收由应用程序生成,并经用户态网络服务接口转发的网络访问请求;用户态网络服务接口具有第二权限。一般地,应用程序是通过用户态网络服务接口来调用网络协议栈中的网络服务。因而,可直接将用户态网络服务接口运行在第二权限对应模式下,如此,网络协议栈便可对用户态网络服务接口进行管理,进而可以对通过用户态网络服务接口转发的网络访问请求进行控制管理。
S102、若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈。
该网络协议栈可以具体为NetStack,即高性能网络协议栈模块。
其中,确定应用程序是否具有第二权限,可以通过获取应用程序的运行模式,从而确定是否具有第二权限。例如,当发现应用程序运行在第二权限对应的模式下,则可以确定应用程序具有第二权限。
需要注意的是,若该应用程序不具有第二权限,则表明具有第一权限的网络协议栈无权管理该应用程序,此时可直接将应用程序发送的访问访问请求发送给提供网络服务的网卡,以便应用程序访问网络。当然,该应用程序不具有第二权限,还可能是因为进行权限设置时,该应用程序被遗漏,或因应用程序的业务变更等导致其产生了需访问网络的需求,但还未其赋予第二权限,因而,在确定应用程序无第二权限时,还可输出相应的告警提示,以便及时为该应用程序赋予第二权限,使其接受网络协议栈的访问控制管理。
其中,网络协议栈即绕过内核直接在用户态构建的协议栈,以处理网络数据报文,如在mTCP中的网络协议栈。mTCP即一种适用于多核***的高性能、高可扩展的用户态TCP协议栈实现方案。
需要注意的是,在本申请中,第一权限和第二权限均指硬件虚拟化对应的非根模式权限,且第一权限高于第二权限。在本实施例中,权限更高,表明高权限的应用/程序具有管理低权限的应用/程序。例如,第一程序具有第一权限,第二程序具有第二权限,则第一程序可以对第二程序进行控制管理。
在本实施例中,对于具体采用何种硬件虚拟化技术并不做限定,仅要求进行硬件虚拟化后,具有区别于根模式的非根模式,非根模式具体包括第一权限和第二权限,且第一权限高于第二权限,具有第一权限的应用/程序可以对具有第二权限的应用/程序进行访问控制即可。
特别地,具有第一权限的网络协议栈,指网络协议栈运行在第一权限对应的模式下。
S103、利用网络协议栈,判断应用程序是否具有网络访问权限。
其中,第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限。
从上文可知,若应用程序具有第二权限,则表明网络协议栈可以对该应用程序进行控制管理。因而,在确定应用程序具有第二权限的情况下,将网络访问请求发送给网络协议栈之后,便可利用网络协议栈判断应用程序是否具有网络访问权限的具体情况,从而确定是否允许该应用程序访问网络。
其中,网络访问权限可以基于可信赖名单进行确认,如若应用程序在可信赖名单中,则确定应用程序具有网络访问权限。当然,网络访问权限还可以通过其他管理模块进行确认,如向硬件虚拟化管理模块发出查询请求,接收查询结果的方式确定应用程序是否被赋予网络访问权限,也就是说,是否允许某个应用程序访问网络,可以由硬件虚拟化管理模块进行管理控制。
得到具体的判断结果之后,便可根据具体的判断结果,执行不同的处理操作。具体的,若判断结果为是,则执行步骤S104,若判断结果为否,则执行步骤S105。
S104、允许应用程序访问网络。
确定应用程序具有网络访问权限后,则可允许应用程序访问网络。具体的,可直接将访问请求发送给提供网络服务的网卡。
在本申请中的一种具体实施方式中,允许应用程序访问网络,即可利用网络协议栈将网络访问请求发送给网卡。如此,网卡便可对网络访问请求进行响应处理,从而实现应用程序访问网络。如此,便可在利用网络协议栈通过接管网卡,实现高效率网络数据包处理的同时,避免因应用程序漏洞导致网络协议栈被攻击,进一步可以保障网络***稳定运行。
对于应用程序访问该网络服务的目的,该网络服务具体包括何种内容等均可参照网络服务的具体实现内容及作用,在此不再一一赘述。
S105、禁止应用程序访问网络。
确定应用程序无网络访问权限后,则可禁止应用程序访问网络。具体的,可以通过不对网络访问请求进行处理,或向用于程序反馈请求无效等方式,来实现禁止应用程序访问网络访问。
应用本申请实施例所提供的方法,接收应用程序发送的网络访问请求;若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈;利用网络协议栈,判断应用程序是否具有网络访问权限;第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限;如果是,则允许应用程序访问网络。
在接收到网络访问请求之后,便可确定发送网络访问请求的应用程序是否具有第二权限,如果有,则表明网络协议栈可以对应用程序的资源访问进行管理控制。因而,可以利用网络协议栈判断应用程序具有网络访问权限,从而控制应用程序对网络的访问,即有网络访问权限则允许其访问网络,无网络访问权限则禁止其访问网络。利用硬件虚拟化技术,将网络协议栈与其应用程序进行权限隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
也就是说,通过硬件虚拟化技术,可以使得网络协议栈具有硬件虚拟化所对应的非根模式权限中的第一权限;而需要被网络协议栈管理的应用程序,通过硬件虚拟化技术,可以使得其具有硬件虚拟化所对应的非根模式权限中的第二权限;由于第一权限高于第二权限,因而网络协议栈可以对具有第二权限的应用程序进行访问控制,从而实现控制应用程序,以保障网络协议栈的安全性和可靠性,进一步保障网络***的稳定性。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本申请的一种具体实施方式中,除网络服务相关接口之外,应用程序使用的其它***调用不受影响,应用程序发出的***调用经由NetStack转发给Linux Kernel,最终得到相应的正常处理,保证应用程序的正常运行。具体的实现过程,包括:
步骤一、接收应用程序发送的访问请求;其中,访问请求非网络访问请求;
步骤二、将访问请求转发给Linux内核。
为便于描述,下面将上述两个步骤结合起来进行说明。
在接收到应用程序发送的非网络访问请求的其他访问请求。即该访问请求并非请求访问网络。此时,可将该访问请求转发给Linux内核。Linux内核便可对该访问请求进行处理。
具体的,将访问请求转发给Linux内核,具体实现步骤包括:
步骤1、利用硬件虚拟化管理模块,切换网络协议栈的权限;
步骤2、在网络协议栈无第一权限后,将访问请求转发给Linux内核。
也就是说,为了向Linux内核转发访问请求,还需切换网络协议栈的权限模式,以避免网络协议栈因其所具有的第一权限所带来的管理能力,对访问请求进行错误地资源访问控制。由于硬件虚拟化管理模块可以对其权限进行设置,因而可通过向硬件虚拟化管理模块发送权限切换请求的方式,利用硬件虚拟化模块对网络协议栈进行权限切换。硬件虚拟化模块接收到权限切换请求之后,便可将网络协议栈从第一权限切换为其他权限,或仅令网络协议栈退出第一权限。
在网络协议栈退出第一权限之后,便失去对应用程序的管理控制资格,此时可直接按照常规的处理方式,利用网络协议栈或直接将访问请求转发给Linux内核。
也就是说,使用其它网络服务接口的程序可以较为方便地迁移到NetStack平台,只需要修改网络服务相关的接口即可。
具体的,在实际应用中,硬件虚拟化管理模块对应Intel VT,且硬件虚拟化管理模块具有根模式最高权限,在执行步骤S101接收应用程序发送的网络访问请求之前,还可以利用硬件虚拟化管理模块对相关模块进行硬件虚拟化设置,即实现权限初始化。
具体的,硬件虚拟化管理模块对应Intel VT,且硬件虚拟化管理模块具有根模式最高权限,在接收应用程序发送的网络访问请求之前,利用硬件虚拟化管理模块,将第一权限赋予网络协议栈,将第二权限赋予待被网络协议栈进行资源管理的应用程序;其中,第一权限对应非根模式0号特权级,第二权限对应非根模式3号特权级
其中,Intel VT(Intel Virtualization Technology),指由英特尔开发的一种硬件虚拟化技术,利用Intel VT可以在宿主机上虚拟出一套硬件设备,以供虚拟机操作***使用。
为便于说明,下面结合图2和图3进行说明,图2为本申请实施例中一种访问控制方法的流程示意图;图3为本申请实施例中一种网络***的具体架构图。
图2中,VT模块即对应Intel VT模块;VT管理模块即对应硬件虚拟化管理模块;NetStack模块即一种高性能网络协议栈模块。
其中,对于VT管理模块初始化,首先需要对Intel VT相关的硬件进行初始化,该工作由VT Manager Module(VT管理模块)负责执行。VT管理模块运行在根模式0号特权级,具有***的最高权限,***中的其它模块如高性能网络协议栈(NetStack)、用户态网络服务接口库(LibNetStack)都受VT管理模块的管理控制。
具体的,VT管理模块对其它模块的管理具体体现为其它模块对***资源的访问权限受到VT管理模块的控制,其它模块仅能访问被VT管理模块所允许的***资源。例如,NetStack对物理网卡的接管需要VT管理模块的允许,应用程序无法访问未被VT管理模块授权的***资源。也就是说,NetStack可以基于应用程序是否具有VT管理模块授予的网络服务权限,从而确定是否拦截相应的网络访问请求。
由于VT管理模块需要运行在最高特权级,在实际应用中,可以作为Linux内核的一个内核模块来实现。
在图3中,User Program即应用程序(该应用程序可部署于如图7所示的用户终端上,如PC端或移动终端;当然该应用程序也可以部署于如图7所示的服务器中),LibNetStack即用户态网络服务接口,NetSTack即高性能网络协议栈,Physical NIC即物理网卡,VT Manager Module即VT管理模块(对应硬件虚拟化管理模块),Linux Kernel即Linux内核。
Root Mode Ring 0:根模式0号特权级,使用Intel VT技术处理器的最高特权级运行模式,典型虚拟化环境配置下,宿主机操作***运行在该特权级。
NonRoot Mode Ring 0:非根模式0号特权级,使用Intel VT技术处理器的较高特权级运行模式,典型虚拟化环境配置下,客户机(虚拟机)操作***运行在该特权级。
NonRoot Mode Ring 3:非根模式3号特权级,使用Intel VT技术处理器的低特权级运行模式,典型虚拟化环境配置下,客户机应用程序运行在该特权级。
此外,还有Root Mode Ring 3:根模式3号特权级,使用Intel VT技术处理器的低特权级运行模式,典型虚拟化环境配置下,宿主机应用程序运行在该特权级。在此图中未涉及,但实际应用中,无需被网络协议栈控制访问的应用程序可以运行在此特权级。
NetStack即高性能网络协议栈模块,与典型用户态高性能协议栈mTCP类似,它也采用绕过Linux Kernel接管物理网卡构建协议栈的设计,因此具备典型高性能网络协议栈的高吞吐、低延迟优势。
对于NetStack模块的加载说明,在本实施例中,NetStack与普通用户态协议栈不同的是它运行在非根模式0号特权级,与使用它的应用程序(运行在非根模式3号特权级)位于不同特权级。运行NetStack协议栈的CPU特权级高于使用它的应用程序。因此,NetStack可以限制应用程序对***资源(如NetStack自身使用的内存)的访问,降低了恶意程序可能利用协议栈进行攻击的安全风险。
对于应用程序加载和运行:使用NetStack进行网络数据包处理的应用程序被加载至非根模式3号特权级运行,并通过LibNetStack库提供的接口使用NetStack提供的网络服务(该网络服务器可部署于如图7所示的服务器中,该服务器可具体为实体服务器也可以为虚拟服务器)。如此,除网络服务相关接口之外,应用程序使用的其它***调用不受影响,应用程序发出的***调用经由NetStack转发给Linux Kernel,最终得到相应的正常处理,保证应用程序的正常运行。即,使用其它网络服务接口的程序可以较为方便地迁移到NetStack平台,只需要修改网络服务相关的接口即可。
也就是说,利用Intel VT技术,可将高性能网络协议栈与其应用程序进行CPU特权级隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
在本申请中的一种具体实施方式中,上述步骤S101接收应用程序发送的网络访问请求,可以包括:接收每个应用程序用不同网络协议栈实例进行网络数据包处理后,发送的网络访问请求。举例说明,应用程序可以使用不同的NetStack实例进行网络数据包处理,如此,这些应用程序的内存空间便彼此隔离。
具体的,NetStack内存隔离可以通过基于硬件的保障性能高的EPT机制实现,每个NetStack实例(包括它服务的应用程序)使用不同的EPT表进行内存访问,通过这种机制,可以实现NetStack实例之间的内存隔离。
其中,EPT(Extended Page Tables)指英特尔在内存资源虚拟化方面提供的硬件机制,它通过增加第二级内存地址转换过程为***提供内存虚拟化能力,属于Intel VT的一部分。
也就是说,当某一个应用程序发生故障,也不会影响其它应用程序的正常运行。即,通过接收每个应用程序用不同网络协议栈实例进行网络数据包处理后,所发送的网络访问请求,可以有效提高网络***的可靠性,避免单点故障造成整个***的崩溃。
即,在本实施例中,利用Intel VT技术将不同网络应用程序使用的高性能协议栈在内存空间上进行隔离,避免单个程序产生的单点故障造成整个***的崩溃,提高网络***的可靠性与安全性。
相应于上面的方法实施例,本申请实施例还提供了一种访问控制装置,下文描述的访问控制装置与上文描述的访问控制方法可相互对应参照。
参见图4所示,该***包括以下模块:
请求接收模块101,用于接收应用程序发送的网络访问请求;
请求转发模块102,用于若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈;
权限确定模块103,用于利用网络协议栈,判断应用程序是否具有网络访问权限;第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限;
访问允许模块104,用于如果应用程序具有网络访问权限,则允许应用程序访问网络。
应用本申请实施例所提供的装置,接收应用程序发送的网络访问请求;若应用程序具有第二权限,则将网络访问请求发送给具有第一权限的网络协议栈;利用网络协议栈,判断应用程序是否具有网络访问权限;第一权限和第二权限为硬件虚拟化对应的非根模式权限,且第一权限高于第二权限;如果是,则允许应用程序访问网络。
在接收到网络访问请求之后,便可确定发送网络访问请求的应用程序是否具有第二权限,如果有,则表明网络协议栈可以对应用程序的资源访问进行管理控制。因而,可以利用网络协议栈判断应用程序具有网络访问权限,从而控制应用程序对网络的访问,即有网络访问权限则允许其访问网络,无网络访问权限则禁止其访问网络。利用硬件虚拟化技术,将网络协议栈与其应用程序进行权限隔离,使网络协议栈运行的特权级高于应用程序,利用高特权级对低特权级资源访问的控制能力,提高网络***的可靠性与安全性。
也就是说,通过硬件虚拟化技术,可以使得网络协议栈具有硬件虚拟化所对应的非根模式权限中的第一权限;而需要被网络协议栈管理的应用程序,通过硬件虚拟化技术,可以使得其具有硬件虚拟化所对应的非根模式权限中的第二权限;由于第一权限高于第二权限,因而网络协议栈可以对具有第二权限的应用程序进行访问控制,从而实现控制应用程序,以保障网络协议栈的安全性和可靠性,进一步保障网络***的稳定性。
在本申请的一种具体实施方式中,请求接收模块,具体用于接收每个应用程序用不同网络协议栈实例进行网络数据包处理后,发送的网络访问请求。
在本申请的一种具体实施方式中,请求接收模块,用于接收由应用程序生成,并经用户态网络服务接口转发的网络访问请求;用户态网络服务接口具有第二权限。
在本申请的一种具体实施方式中,访问允许模块,具体用于利用网络协议栈,将网络访问请求转发给网卡,以使应用程序访问网络。
在本申请的一种具体实施方式中,还包括:
非网络访问处理模块,用于接收应用程序发送的访问请求;其中,访问请求非网络访问请求;将访问请求转发给Linux内核。
在本申请的一种具体实施方式中,非网络访问处理模块,具体用于利用硬件虚拟化管理模块,切换网络协议栈的权限;在网络协议栈无第一权限后,将访问请求转发给Linux内核。
在本申请的一种具体实施方式中,硬件虚拟化管理模块对应Intel VT,且硬件虚拟化管理模块具有根模式最高权限,还包括:
权限赋予模块,用于在接收应用程序发送的网络访问请求之前,利用硬件虚拟化管理模块,将第一权限赋予网络协议栈,将第二权限赋予待被网络协议栈进行资源管理的应用程序;其中,第一权限对应非根模式0号特权级,第二权限对应非根模式3号特权级。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种访问控制方法可相互对应参照。
参见图5所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的访问控制方法的步骤。
具体的,请参考图6,图6为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341。
上文所描述的访问控制方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种访问控制方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的访问控制方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (10)
1.一种访问控制方法,其特征在于,包括:
接收应用程序发送的网络访问请求;
若所述应用程序具有第二权限,则将所述网络访问请求发送给具有第一权限的网络协议栈;
利用所述网络协议栈,判断所述应用程序是否具有网络访问权限;所述第一权限和所述第二权限为硬件虚拟化对应的非根模式权限,且所述第一权限高于所述第二权限;
如果是,则允许所述应用程序访问网络。
2.根据权利要求1所述的访问控制方法,其特征在于,所述接收应用程序发送的网络访问请求,包括:
接收每个所述应用程序用不同网络协议栈实例进行网络数据包处理后,发送的所述网络访问请求。
3.根据权利要求1所述的访问控制方法,其特征在于,所述接收应用程序发送的网络访问请求,包括:
接收由所述应用程序生成,并经用户态网络服务接口转发的所述网络访问请求;所述用户态网络服务接口具有所述第二权限。
4.根据权利要求1所述的访问控制方法,其特征在于,允许所述应用程序访问网络,包括:
利用所述网络协议栈,将所述网络访问请求转发给网卡,以使所述应用程序访问网络。
5.根据权利要求1至4任一项所述的访问控制方法,其特征在于,还包括:
接收所述应用程序发送的访问请求;其中,所述访问请求非所述网络访问请求;
将所述访问请求转发给Linux内核。
6.根据权利要求5所述的访问控制方法,其特征在于,将所述访问请求转发给Linux内核,包括:
利用硬件虚拟化管理模块,切换所述网络协议栈的权限;
在所述网络协议栈无所述第一权限后,将所述访问请求转发给所述Linux内核。
7.根据权利要求6所述的访问控制方法,其特征在于,所述硬件虚拟化管理模块对应Intel VT,且所述硬件虚拟化管理模块具有根模式最高权限,在所述接收应用程序发送的网络访问请求之前,还包括:
利用所述硬件虚拟化管理模块,将所述第一权限赋予所述网络协议栈,将所述第二权限赋予待被所述网络协议栈进行资源管理的应用程序;
其中,所述第一权限对应非根模式0号特权级,所述第二权限对应非根模式3号特权级。
8.一种访问控制装置,其特征在于,包括:
请求接收模块,用于接收应用程序发送的网络访问请求;
请求转发模块,用于若所述应用程序具有第二权限,则将所述网络访问请求发送给具有第一权限的网络协议栈;
权限确定模块,用于利用所述网络协议栈,判断所述应用程序是否具有网络访问权限;所述第一权限和所述第二权限为硬件虚拟化对应的非根模式权限,且所述第一权限高于所述第二权限;
访问允许模块,用于如果所述应用程序具有所述网络访问权限,则允许所述应用程序访问网络。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述访问控制方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述访问控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110506793.4A CN113225344B (zh) | 2021-05-10 | 2021-05-10 | 一种访问控制方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110506793.4A CN113225344B (zh) | 2021-05-10 | 2021-05-10 | 一种访问控制方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225344A true CN113225344A (zh) | 2021-08-06 |
CN113225344B CN113225344B (zh) | 2022-09-30 |
Family
ID=77094290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110506793.4A Active CN113225344B (zh) | 2021-05-10 | 2021-05-10 | 一种访问控制方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225344B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525415A (zh) * | 2022-10-19 | 2022-12-27 | 科东(广州)软件科技有限公司 | 一种数据处理方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130307A1 (en) * | 2005-12-07 | 2007-06-07 | International Business Machines Corporation | Selective activation of TCP/IP link and traffic |
CN101465863A (zh) * | 2009-01-14 | 2009-06-24 | 北京航空航天大学 | 一种内核虚拟机环境下高效网络i/o的实现方法 |
CN103155520A (zh) * | 2010-08-06 | 2013-06-12 | 思杰***有限公司 | 用于多核虚拟分组引擎装置中的半虚拟化驱动程序的***和方法 |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
CN108256298A (zh) * | 2017-12-14 | 2018-07-06 | 大唐微电子技术有限公司 | 一种资源访问方法及装置 |
CN111737656A (zh) * | 2019-05-30 | 2020-10-02 | 中国科学院计算技术研究所 | 面向应用程序的特权硬件资源访问方法及电子设备 |
CN112052439A (zh) * | 2020-09-29 | 2020-12-08 | 北京智芯微电子科技有限公司 | 嵌入式***的访问权限控制方法、控制装置及存储介质 |
-
2021
- 2021-05-10 CN CN202110506793.4A patent/CN113225344B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130307A1 (en) * | 2005-12-07 | 2007-06-07 | International Business Machines Corporation | Selective activation of TCP/IP link and traffic |
CN101465863A (zh) * | 2009-01-14 | 2009-06-24 | 北京航空航天大学 | 一种内核虚拟机环境下高效网络i/o的实现方法 |
CN103155520A (zh) * | 2010-08-06 | 2013-06-12 | 思杰***有限公司 | 用于多核虚拟分组引擎装置中的半虚拟化驱动程序的***和方法 |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
CN108256298A (zh) * | 2017-12-14 | 2018-07-06 | 大唐微电子技术有限公司 | 一种资源访问方法及装置 |
CN111737656A (zh) * | 2019-05-30 | 2020-10-02 | 中国科学院计算技术研究所 | 面向应用程序的特权硬件资源访问方法及电子设备 |
CN112052439A (zh) * | 2020-09-29 | 2020-12-08 | 北京智芯微电子科技有限公司 | 嵌入式***的访问权限控制方法、控制装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525415A (zh) * | 2022-10-19 | 2022-12-27 | 科东(广州)软件科技有限公司 | 一种数据处理方法、装置、设备及介质 |
CN115525415B (zh) * | 2022-10-19 | 2023-08-11 | 科东(广州)软件科技有限公司 | 一种数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113225344B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200080B1 (en) | Late load technique for deploying a virtualization layer underneath a running operating system | |
CN109086100B (zh) | 一种高安全可信移动终端安全体系架构及安全服务方法 | |
US8910238B2 (en) | Hypervisor-based enterprise endpoint protection | |
US10146936B1 (en) | Intrusion detection for storage resources provisioned to containers in multi-tenant environments | |
US10025924B1 (en) | Taskless containers for enhanced isolation of users and multi-tenant applications | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
EP2940615B1 (en) | Method and apparatus for isolating management virtual machine | |
CN107707622B (zh) | 一种访问桌面云虚拟机的方法、装置及桌面云控制器 | |
US20140053272A1 (en) | Multilevel Introspection of Nested Virtual Machines | |
US8893306B2 (en) | Resource management and security system | |
JP2018538633A (ja) | 複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション | |
US8495750B2 (en) | Filesystem management and security system | |
EP1830257A2 (en) | Input/output control apparatus, input/output control system, and input/output control method | |
CN108959916B (zh) | 用于访问安全世界的方法、装置和*** | |
EP3017392A1 (en) | Process evaluation for malware detection in virtual machines | |
US10360386B2 (en) | Hardware enforcement of providing separate operating system environments for mobile devices | |
CN113127077B (zh) | 一种基于服务器的微内核操作***部署方法及操作*** | |
CN108509251A (zh) | 一种适用于可信执行环境中的安全虚拟化*** | |
US20120198542A1 (en) | Shared Security Device | |
EP1989627A2 (en) | Prevention of executable code modification | |
CN113225344B (zh) | 一种访问控制方法、装置、设备及可读存储介质 | |
US11507408B1 (en) | Locked virtual machines for high availability workloads | |
Zhao et al. | Svgrid: a secure virtual environment for untrusted grid applications | |
US11586727B2 (en) | Systems and methods for preventing kernel stalling attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |