具体实施方式
下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一提供了一种实现访问控制的方法,参见图1,包括:
11:利用内核态下的客户端驱动程序捕获输入输出请求包(I/ORequest Packet,IRP);
12:利用所述客户端驱动程序对所述输入输出请求包进行过滤,对过滤得到的输入输出请求包提取拦截信息,并将所述拦截信息打包发送至用户态下的客户端代理程序,由所述客户端代理程序将拦截信息发送至用户态下的服务器代理程序,并将服务器代理程序按照预定的安全策略得到的安全策略判断结果发送至客户端驱动程序;
13:通过所述客户端驱动程序,根据所述安全策略判断结果控制所述过滤得到的输入输出请求包的执行。
进一步的,上述输入输出请求包为对应于文件访问操作或者进程访问操作的数据包,该输入输出请求包可以包括下述的至少一种或其组合:文件的创建操作请求包,文件的读操作请求包,文件的写操作请求包,文件夹访问操作请求包,文件的重命令和删除操作请求包和进程访问请求包。
在步骤13中,控制所述过滤得到的输入输出请求包的执行包括允许该输入输出请求包的执行,或者,拒绝该输入输出请求包的执行。
由上述可见,本发明实施例的技术方案提供了一种安全的输入输出访问控制方案,该方案在操作系统的驱动层捕获用户的操作,通过对用户操作的过滤以及所规定的安全策略,来确认是否允许或拒绝用户操作,从而在操作系统中实现了对资源访问的控制操作。本发明实施例的技术方案在现有操作系统的驱动程序中加入了访问控制功能,确保允许的输入输出操作都是安全的,能够在网络信息共享过程中保证涉密信息的安全性,且无需再在计算机上安装额外的访问控制软件,节省了成本,提高了现有系统的利用率。
本发明实施例中,核心态是操作系统内核所运行的模式。运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问,即当CPU正在运行内核代码时我们就称操作系统处于内核态,而当CPU正运行用户代码时则称操作系统处于用户态。
参见图2,显示了本发明实施例实现访问控制的方法中主要程序之间的关系示意图,在用户态下接收客户端用户的指令,执行文件访问操作或进程访问操作,以及运行客户单代理程序和服务器代理程序。在内核态下,运行消息传递工作程序、用于过滤文件访问的文件访问过滤程序和用于过滤进程访问的进程访问过滤程序。其中,客户端驱动程序通过调用消息传递工作程序与客户端代理程序、文件/进程访问操作进行信息交互,客户端代理程序能够实现服务器代理程序与客户端驱动程序之间的信息交互。
下面对本发明实施例二提供的一种实现访问控制的方法进行说明。参见图3,具体包括如下处理:
31:加载客户端驱动程序。
客户端驱动程序可以被操作系统(如windows)自动加载,在加载过程中,主要是完成回调函数的注册。
示例性的,加载过程可以包括如下处理:通过入口函数DriverEntry()调用函数FltRegisterFilter()进行注册,并通过函数FltCreateCommunicationPort()创建与服务器设备的通信端口,然后调用函数FltStartFiltering()把客户端驱动程序加载到文件系统并开始工作。
在这个阶段还有一个重要的过程就是填充捕获结构体DrvSock_Callbacks。下面给出DrvSock_Callbacks结构体的一个示例:
其中,DrvSock_PreFilter为过滤拦截回调状态,其结构为
32:建立连接。
建立用户态下的客户端代理程序与核心态下的客户端驱动程序之间的连接。
在客户端驱动程序加载后,处于用户态的客户端代理程序能够主动与客户端驱动程序建立连接,利用该连接使客户端代理程序与客户端驱动程序之间能够进行信息交互。
应当注意到上述内核态下的客户端驱动程序,为本技术方案提供的一种新的驱动程序;上述用户态下的客户端代理程序以及服务器代理程序,也为本方案提供的一种新型的程序;例如,相比于现有操作系统的驱动程序,上述客户端驱动程序能够对IRP进行过滤,以及提取拦截信息;上述客户端代理程序能够进行客户端驱动程序和服务器代理程序之间的信息传递。
通过新型的客户端驱动程序、客户端代理程序以及服务器代理程序之间的协作在驱动层实现了对输入输出访问的控制。
进一步的,在这个连接建立的阶段,客户端驱动程序可以记录客户端代理程序的信息,例如,记录客户端代理程序中所涉及的所有进程以及文件访问操作,这种处理方式,可以避免在后续的过滤操作中拒绝或禁止客户端代理程序中的进程访问,从而保证了访问控制的正常执行。
33:捕获输入输出请求包。
利用内核态下的客户端驱动程序捕获文件/进程访问操作所对应的输入输出请求包。
例如,客户端驱动程序可以利用捕获结构体DrvSock_Callbacks来捕获输入输出请求包。
由捕获结构体DrvSock_Callbacks中描述的函数,来捕获用户操作,这些函数包括以下信息:
IRP_MJ_CREATE:捕获文件的创建操作。
IRP_MJ_READ:捕获文件的读操作。
IRP_MJ_WRITE:捕获文件的写操作。
IRP_MJ_SET_INFORMATION:捕获文件夹访问操作。
IRP_MJ_DIRECTORY_CONTROL:捕获文件的重命名和删除操作。
IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION:
捕获进程操作。
34:过滤输入输出请求包。
客户端驱动程序对捕获到的输入输出请求包进行过滤,客户端驱动程序按照预定的过滤规则对输入输出请求包进行过滤,输入输出请求包的类型的不同所采用的过滤规则也不同。
客户端对过滤得到的输入输出请求包提取拦截信息,该拦截信息主要是输入输出请求包的信息中与网络安全紧密关联的信息,利用该拦截信息对输入输出请求包的安全性进行评估。
客户端驱动程序将拦截信息打包后发送出去,如客户端驱动程序中的消息传递工作程序将打包的拦截信息发送给用户态下的客户端代理程序。
35:接收安全策略判断结果。
客户端代理程序会将拦截信息传递给服务器代理程序,由服务器代理程序根据安全策略作出安全策略判断结果。然后,服务器代理程序将安全策略判断结果发送给客户端代理程序,客户端代理程序再将该安全策略判断结果发送给客户端驱动程序。
36:允许或拒绝输入输出访问。
允许输入输出请求包的执行,或者,拒绝输入输出请求包的执行。
在此,主要以输入输出请求包包括文件访问请求包和进程访问请求包两种情况为例,对过滤操作进行说明。
第一种情况:文件访问请求包
所述输入输出请求包为文件访问请求包时,客户端驱动程序,如客户端驱动程序中的文件访问过滤程序,通过下述步骤对文件访问请求包进行过滤:
第一步骤:判断文件访问请求包是否满足驱动要求的安全等级,若是,执行第二步骤,若否,允许所述文件访问请求包的执行;
第二步骤:判断被访问的文件是否为操作系统盘上的文件,若是,允许所述文件访问请求包的执行,若否,执行第三步骤;
第三步骤:判断被访问的文件是否为涉密盘上的文件,若是,过滤得到该文件访问请求包,若否,允许所述文件访问请求包的执行。
客户端驱动程序对过滤得到的输入输出请求包提取拦截信息,并将所述拦截信息打包发送至用户态下的客户端代理程序,由所述客户端代理程序将拦截信息发送至用户态下的服务器代理程序,并将服务器代理程序按照预定的安全策略得到的安全策略判断结果发送至客户端驱动程序。
上述的文件访问请求包包括文件的创建操作请求包,文件的读操作请求包,文件的写操作请求包,文件夹访问操作请求包,文件的重命令和删除操作请求包等。
具体地,参见图4,包括如下步骤:
41:判断文件访问请求包是否满足驱动要求的安全等级,若是,执行步骤42,若否,允许所述文件访问请求包的执行;
本发明实施例为文件访问请求包设置安全等级,不同的文件访问请求包可以具有不同安全等级,并选取一个需要进行过滤的安全等级的范围,例如,按照级别由高到低设置了五层安全等级,包括第一等级、第二等级、第三等级、第四等级和第五等级,选取需要进行过滤的安全等级的范围为第一等级到第三等级,则当文件访问请求包的等级在该等级范围时,继续执行过滤操作,否则,考虑该文件访问请求包所涉及的文件对安全性要求较低,直接放行该文件访问请求包。
这种处理方式,对安全性要求不同的文件进行区别处理,既保证了所关注的涉密文件的安全性,又能够加快过滤操作,提高访问控制的效率。
42:如果在安全等级范围内,继续判断被访问的文件是否是操作系统盘上的文件,若是,放行该文件访问操作,即允许所述文件访问请求包的执行,若否,执行步骤43,其中,上述被访问的文件为文件访问请求包所要访问的文件;
43:如果被访问的文件不在操作系统盘上,继续判断被访问的文件是否是涉密盘上的文件,若否,允许所述文件访问请求包的执行,例如,放行目录操作、读文件操作或文件删除操作等,若是,过滤得到该文件访问请求包。
其中,上述涉密盘为本技术方案新增的一个磁盘,本发明实施例专门划分了一部分存储空间来设置涉密盘,用于保存一些重要文件或者涉密文件。
44:提取过滤得到文件访问请求包的拦截信息,所述拦截信息包括但不局限于:拦截该文件访问请求包的进程名称、被访问文件路径信息、被访问文件操作码和当前用户名。
被访问文件路径信息包括执行文件访问请求包时所涉及的所有路径信息。
在过滤操作中会放行一些文件访问请求包,或者,根据过滤条件的不同也可以直接拒绝一些文件访问请求包,在步骤44中对通过过滤操作的文件访问请求包提取拦截信息,即对过滤操作拦截下来的文件访问请求包提取拦截信息。
45:打包拦截信息发送给客户端代理程序;
客户端驱动程序将拦截信息打包后发送出去,如客户端驱动程序中的消息传递工作程序将打包的拦截信息发送给用户态下的客户端代理程序。
客户端代理程序会将拦截信息传递给服务器代理程序,由服务器代理程序根据安全策略作出安全策略判断结果。然后,服务器代理程序将安全策略判断结果发送给客户端代理程序,客户端代理程序再将该安全策略判断结果发送给客户端驱动程序。
46:接收安全策略判断结果。
客户端驱动程序,如客户端驱动程序中的消息传递工作程序,接收来自客户端代理程序的安全策略判断结果。
47:执行或拒绝文件访问请求包。
客户端驱动程序根据安全策略判断结果控制所述过滤得到的文件访问请求包的执行,当安全策略判断结果指示该访问为安全的,客户端驱动程序允许文件访问请求包的执行;当安全策略判断结果指示该访问为危险的,客户端驱动程序拒绝文件访问请求包的执行。
第二种情况:过滤进程访问请求包
所述输入输出请求包为进程访问请求包时,客户端驱动程序,如客户端驱动程序中的进程访问过滤程序,通过下述步骤对进程访问请求包进行过滤:
第一步骤:判断进程访问请求包是否满足驱动要求的安全等级,若是,执行第二步骤,若否,允许所述进程访问请求包的执行;
第二步骤:判断进程访问请求包在内存段是否可执行,若是,执行第三步骤,若否,允许所述进程访问请求包的执行;
第三步骤:判断进程访问请求包是否为客户端代理程序中的进程,若是,允许所述进程访问请求包的执行,若否,过滤得到该进程访问请求包。
具体地,参见图5,包括如下步骤:
51:判断进程访问请求包是否满足驱动要求的安全等级,若是,执行步骤52,若否,允许所述进程访问请求包的执行;
本发明实施例为进程访问请求包设置安全等级,不同的进程访问请求包可以具有不同安全等级,并选取一个需要进行过滤的安全等级的范围,例如,按照级别由高到低设置了五层安全等级,包括第一等级、第二等级、第三等级、第四等级和第五等级,选取需要进行过滤的安全等级的范围为第一等级到第三等级,则当进程访问请求包的等级在该等级范围时,继续执行过滤操作,否则,考虑该进程访问请求包所涉及的进程对安全性要求较低,直接放行该进程访问请求包。
52:如果进程访问请求包的安全等级在安全的等级范围内,则继续判断进程访问请求包在内存段是否可执行,若是,执行步骤53,若否,允许所述进程访问请求包的执行;
判断进程访问请求包在内存段是否可执行的一种方式为:判断进程访问请求包所对应的文件名是否以exe、msi、com结尾,若是,则该进程访问请求包在内存段可执行,若否,则该进程访问请求包在内存段不可执行。
53:若进程访问请求包在内存段可执行,则继续判断该进程访问请求包是否为配套的用户进程,例如,该进程访问请求包是否为客户端代理程序中的进程,若是,放行所述进程访问请求包,若否,过滤得到该进程访问请求包。
54:提取过滤得到进程访问请求包的拦截信息,所述拦截信息包括但不局限于:拦截该进程访问请求包的父进程名称,进程访问请求包的进程路径,进程摘要和当前用户名。
进程摘要是对进程的可执行文件进行进程摘要计算生成的,是进程的唯一性信息,无法伪造,示例性的,进程摘要可以通过计算进程访问请求包的进程哈希(Hash)值得到。例如,参见表1,提供了一种进程的可执行文件与进程摘要的对应关系示例:
表1
进程名 |
进程摘要 |
explorer.exe |
0x8F31489ABCF31476547217645FE7324D |
winlogon.exe |
0xB5FE74320F314760442176F30089A4DC |
winword.exe |
0x14321765F30E74089A40B20F7604F330 |
svchost.exe |
0x3E7941A40B20F4F348F30165F7600890 |
在过滤操作中会放行一些进程访问请求包,或者,根据过滤条件的不同也可以直接拒绝一些进程访问请求包,在步骤54中对通过过滤操作的进程访问请求包提取拦截信息,即对过滤操作拦截下来的进程访问请求包提取拦截信息。
55:打包拦截信息发送给客户端代理程序;
客户端驱动程序将拦截信息打包后发送出去,如客户端驱动程序中的消息传递工作程序将打包的拦截信息发送给用户态下的客户端代理程序。
客户端代理程序会将拦截信息传递给服务器代理程序,由服务器代理程序根据安全策略作出安全策略判断结果。然后,服务器代理程序将安全策略判断结果发送给客户端代理程序,客户端代理程序再将该安全策略判断结果发送给客户端驱动程序。
56:接收代理程序的安全策略判断结果;
57:执行或拒绝进程访问操作。
步骤56和57的操作与上述步骤46和47的步骤相似,不同之处在于处理的具体对象为进程访问请求包。
下面对本发明实施例提供的服务器代理程序根据安全策略作出安全策略判断结果的一种方法进行说明。服务器代理程序对文件访问控制和进程访问控制采用不同的安全策略,具体如下:
对文件访问控制的安全策略
1)安全级别的设置
为所有文件(或目录)设置一个静态的安全级别,用于反映文件的机密程度;
为客户端用户设置两类安全级别:一类是静态安全级别(最大安全级别);另一类是可变的当前安全级别。静态安全级别是当前安全级别所能达到的最大值,用于反映该用户的权限大小;当前安全级别定义为客户端用户访问过的文件或目录的安全级别的最大值,用于反映该用户当前的涉密程度。其中,客户端用户为发送指令生成输入输出请求包的用户。
客户端用户静态安全级别与文件静态安全级别匹配,也就是说,文件所具有的静态安全级别,客户端用户也可以具有相应的安全级别。
客户端用户的当前安全级别是可变的,其随着所访问的文件静态安全级别变化而单向升级变化。即当客户端用户访问到高安全级别的文件(该文件的安全级别高于客户端用户的安全级别)时,客户端用户的当前安全级别会升级至该文件的高的安全级别,当客户端用户访问的文件的安全级别低于客户端用户的安全级别时,客户端用户的安全级别不变。
在客户端计算机呈工作状态时,客户端用户的可变的当前安全级别等于静态安全级别时,级别不再变化。即客户端用户的当前安全级别达到其所能达到的最大值时,不再变化。
进一步的,若关闭计算机,客户端用户的当前安全级别被释放。当客户端计算机重新启动时,客户端用户的当前安全级别最低。
2)用户角色
为客户端用户设置包括作者和读者的至少两种角色。
作者具备读写文件的权限,而读者只能读文件。即作者能够对文件的实质内容进行改动,而读者不能更改文件的实质内容。
3)文件访问规则
当客户端用户的静态安全级别小于所访问的文件或目录的安全级别时,客户端用户对该文件或目录不具有读权限;当客户端用户的当前安全级别小于所访问的文件或目录的安全级别,客户端用户对该文件或目录不具有写权限。
利用上述安全策略对拦截信息进行判断,得到安全策略判断结果的具体流程,参见图6,包括:
61:接收拦截信息。
62:解析所述拦截信息,得到相应的文件访问请求包的进程名称、被访问文件路径、被访问文件的输出路径、被访问文件操作码和当前用户名。
63:按照安全策略对角色进行审核,判断角色是否为作者,若是作者,执行步骤65;若不是作者,执行步骤64;
64:当角色不是作者时,即客户端用户的角色为读者时,判断文件访问请求包所对应的操作是否为第一类型操作,所述第一类型操作为对文件实质内容进行改动的操作,如重命名、删除、写操作等,若是第一类型操作,拒绝该文件访问请求包的执行,若不是第一类型操作,允许文件访问请求包的执行。
65:判断客户端用户是否为可允许的用户,若否,拒绝该文件访问请求包的执行,若是执行步骤66;
在步骤65中,通过如下方式判断客户端用户是否为可允许的用户:
若文件访问请求包所对应的操作为删除操作,需要判断客户端用户是否在可以删除文件的用户组内,包括:
A)首先,在预先配置和维护的数据库中查询是否存在被访问文件的条目,若不存在,按照默认情况处理,即所有客户端用户对该被访问文件都没有删除的权利,拒绝该文件访问请求包的执行;若存在,执行步骤B;
B)查询配置该被访问文件的用户组信息,并与当前的客户端用户相比较,若当前的客户端用户存在于用户组中,执行步骤66,否则,拒绝删除操作的执行。
若文件访问请求包所对应的操作为重命名、读、写操作,需要判断客户端用户是否在可允许的用户组内,包括:
A)首先,在预先配置和维护的数据库中查询是否存在被访问文件的条目,若不存在,按照默认情况处理,即所有客户端用户对该被访问文件都具有访问权限,允许该文件访问请求包的执行;若存在,执行步骤B;
B)查询配置该被访问文件的用户组信息,并与当前的客户端用户相比较,若当前的客户端用户存在于用户组中,执行步骤66,否则,拒绝该文件访问请求包的执行。
66:根据当前客户端用户的静态安全级别、当前安全级别、被访问文件(目录)的安全级别,以及文件访问操作类型,进行安全规则判断,判断该文件访问请求包是否满足文件访问规则。
a)当操作类型是访问目录时,如果客户端用户的静态安全级别小于目录的安全级别,那么将拒绝该操作;否则,允许该操作。
b)当操作类型是读取文件时,获取文件的目录的安全级别。如果客户端用户的静态安全级别小于文件目录的安全级别,则拒绝该操作。如果客户端用户的静态安全级别大于等于该文件目录的安全级别,则允许该操作;其中,如果客户端用户的当前安全级别小于该文件目录的安全级别且客户端用户的静态安全级别大于文件目录的安全级别时,那么将提升客户端用户的当前安全级别。
c)当操作类型是重命名文件时,获取重命令前的原文件的目录的安全级别。对于重命令前的原文件需要按照步骤b中同样的操作进行安全策略判断。如果重命名后的新文件目录与原文件目录的安全级别不同,那么将不允许该重命名操作。也就是说,目前仅支持目录内重命名。
d)当操作类型是写文件时,获取文件的目录的安全级别、客户单用户的当前安全级别。如果当前安全级别大于目录安全级别,则允许该写操作的执行,否则拒绝该写操作的执行。
对进程访问控制的安全策略
服务端代理程序对客户端进程至少有两种学习状态,一种是服务端代理程序处于学习状态,一种是服务端代理程序处于不学习状态。
如果处于学习状态,则放行客户端所请求的所有进程。
如果处于不学习状态,对于客户端的进程,将判断进程名是否在允许列表、拒绝列表、学习列表中或不在任何列表中。
若进程名在允许列表,则判断进程摘要是否与预先维护的摘要列表匹配,如果匹配,允许进程执行,否则,拒绝进程执行。
若进程名在拒绝列表,拒绝进程执行。
若进程名在学习列表,拒绝进程执行。
若进程名不在任何列表,拒绝进程执行,并把该进程名、进程摘要添加到学习列表。
根据需要,进程可以在不同进程列表之间(如允许列表、拒绝列表)进行转移。
利用上述安全策略对拦截信息进行判断,得到安全策略判断结果的具体流程,参见图7,显示了服务器代理程序处于不学习状态下的处理流程,包括:
71:服务器代理程序接收到进程访问请求包的拦截信息,解析该拦截信息获得的具体内容:包含拦截该进程访问请求包的父进程名称和进程摘要等。
72:判断上述父进程名是否在允许列表中,若是,执行步骤73,若否,拒绝该进程的操作。
所允许的进程必须在允许列表中,进程名在拒绝列表或学习列表中时,拒绝进程执行,进程名不在任何列表,拒绝进程执行,并把该进程名、摘要添加到学习列表。
73:判断进程摘要是否匹配。
当上述进程名在可信进程列表内(允许列表),并且进程摘要也匹配的进程才允许运行,进程摘要是对进程的可执行文件进行进程摘要计算生成的,无法伪造,进一步保证了进程访问的安全性。
如果进程摘要与预先配置的摘要列表匹配,允许该进程执行,否则,拒绝进程执行。
由上述可见,本技术方案提供的过滤驱动程序专为网络环境下计算机安全访问控制而设计,通过制定一系列安全策略,并根据制定的安全策略过滤捕获到的文件及进程访问请求包,有选择的放行用户的请求操作,确保放行的文件访问操作、进程访问操作是安全的。
由上述可见,本发明实施例的技术方案提供了一种安全的输入输出访问控制方案,该方案在操作系统的驱动层捕获用户的操作,通过对用户操作的过滤以及所规定的安全策略,来确认是否允许或拒绝用户操作,从而在操作系统中实现了对资源访问的控制操作。本发明实施例的技术方案在现有操作系统的驱动程序中加入了访问控制功能,确保允许的输入输出操作都是安全的,能够在网络信息共享过程中涉保证密信息的安全性,且无需再在计算机上安装额外的访问控制软件,节省了成本,提高了现有系统的利用率。
本发明实施例三还提供了一种实现访问控制的装置,参见图8,包括:
消息传递模块81,用于在用户态的客户端代理程序和所述装置的捕获模块82、拦截信息提取模块84及访问控制模块85之间进行信息的传递;
捕获模块82,用于通过所述消息传递模块81捕获输入输出请求包;
过滤模块83,用于对所述输入输出请求包进行过滤;
拦截信息提取模块84,用于对过滤得到的输入输出请求包提取拦截信息,将所述拦截信息打包,通过所述消息传递模块81发送至客户端代理程序;
访问控制模块85,用于通过所述消息传递模块,接收来自客户端代理程序的安全策略协商结果并控制所述过滤得到的输入输出请求包的执行。
进一步的,所述输入输出请求包包括文件访问请求包和进程访问请求包,所述过滤模块包括文件访问过滤模块和进程访问过滤模块,
所述文件访问过滤模块包括:
第一子模块,用于判断文件访问请求包是否满足驱动要求的安全等级,若是,触发第二子模块的执行,若否,允许所述文件访问请求包的执行;
第二子模块,用于判断被访问的文件是否为操作系统盘上的文件,若是,允许所述文件访问请求包的执行,若否,触发第三子模块的执行;以及,
第三子模块,用于判断被访问的文件是否为涉密盘上的文件,若是,过滤得到该文件访问请求包,若否,允许所述文件访问请求包的执行;
所述进程访问过滤模块包括:
第一子模块,用于判断进程访问请求包是否满足驱动要求的安全等级,若是,触发第二子模块的执行,若否,允许所述进程访问请求包的执行;
第二子模块,用于判断进程访问请求包在内存段是否可执行,若是,触发第三子模块的执行,若否,允许所述进程访问请求包的执行;以及
第三子模块,用于判断进程访问请求包是否为客户端代理程序中的进程,若是,允许所述进程访问请求包的执行,若否,过滤得到该进程访问请求包。
进一步的,所述装置还包括:客户端代理信息记录模块,用于在与客户端代理程序建立连接后,记录客户端代理程序中的进程访问请求包的信息,所述输入输出请求包包括进程访问请求包。
上述过滤模块83中进程访问过滤模块的第三子模块,还用于根据客户端代理信息记录模块所记录的客户端代理程序中的进程访问请求包的信息,对输入输出请求包进行过滤。例如,输入输出请求包为进程访问请求包时,若根据客户端代理信息记录模块所记录的信息获知该进程访问请求包为客户端代理程序中的进程访问请求包,则进程访问过滤模块的第三子模块允许该进程访问请求包的执行。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本发明装置实施例中各功能模块的具体工作方式参见本发明方法实施例的相关内容,上述各模块可以分别单独实现,也可以集成在一个模块中实现。可以利用本发明实施例三提供的实现访问控制的装置实现上述实施例一和二中客户端驱动程序的相关操作。
由上述可见,本发明实施例的技术方案提供了一种安全的输入输出访问控制方案,该方案在操作系统的驱动层捕获用户的操作,通过对用户操作的过滤以及所规定的安全策略,来确认是否允许或拒绝用户操作,从而在操作系统中实现了对资源访问的控制操作。本发明实施例的技术方案在现有操作系统的驱动程序中加入了访问控制功能,确保允许的输入输出操作都是安全的,能够在网络信息共享过程中保证涉密信息的安全性,且无需再在计算机上安装额外的访问控制软件,节省了成本,提高了现有系统的利用率。
本发明实施例四提供了一种实现访问控制的装置,包括:
接收模块,用于接收来自内核态下的客户端驱动程序对输入输出请求包提取的拦截信息;以及,接收服务器代理程序发送的对所述拦截信息的安全策略判断结果;
发送模块,用于将所述拦截信息发送至服务器代理程序;以及,将所述安全策略判断结果发送至客户端驱动程序。
进一步的,所述装置还包括连接建立模块,用于在所述客户端驱动程序加载之后,主动与客户端驱动程序建立连接。
本发明装置实施例中各功能模块的具体工作方式参见本发明方法实施例的相关内容。可以利用本发明实施例四提供的实现访问控制的装置实现上述实施例一和二中客户端代理程序的相关操作。
由上述可见,本发明实施例的技术方案提供了一种安全的输入输出访问控制方案,该方案在操作系统的驱动层捕获用户的操作,通过对用户操作的过滤以及所规定的安全策略,来确认是否允许或拒绝用户操作,从而在操作系统中实现了对资源访问的控制操作。本发明实施例的技术方案在现有操作系统的驱动程序中加入了访问控制功能,确保允许的输入输出操作都是安全的,能够在网络信息共享过程中保证涉密信息的安全性,且无需再在计算机上安装额外的访问控制软件,节省了成本,提高了现有系统的利用率。
本发明实施例五提供的一种实现访问控制的装置,包括:
安全策略判断模块,用于接收用户态下客户端代理程序发送的拦截信息,按照预定的安全策略得到该拦截信息的安全策略判断结果,并将所述安全策略判断结果发送至客户端代理程序。
进一步的,所述安全策略判断模块包括文件安全策略判断子模块和进程安全策略判断子模块,
所述文件安全策略判断子模块用于执行如下操作:
为文件或目录设置静态的安全级别;
为客户端用户设置静态安全级别和当前安全级别,所述静态安全级别为客户端用户的当前安全级别所能达到的最大值,所述当前安全级别为客户端用户访问过的文件或目录的安全级别的最大值;
为客户端用户设置至少两种角色,所述角色包括读者和作者,当客户端用户的角色为读者时,客户端用户不能对文件的内容进行改动,当客户端用户的角色为作者时,客户端用户能够对文件的内容进行改动;
根据所述所设置的文件或目录的安全级别,以及客户端用户的两种安全级别和角色,进行安全策略判断,其中,当客户端用户的静态安全级别小于所访问的文件或目录的安全级别时,客户端用户对该文件或目录不具有读权限;当客户端用户的当前安全级别小于所访问的文件或目录的安全级别,客户端用户对该文件或目录不具有写权限;
所述进程安全策略判断子模块用于执行如下操作:
为所述装置设置至少两种状态,所述状态包括学习状态和不学习状态,以及设置允许列表、拒绝列表和学习列表;
当所述装置处于学习状态时,允许所有进程访问操作;
当所述装置处于不学习状态时,判断拦截该进程访问请求包的父进程名称是否在允许列表内,若否,拒绝该进程访问操作,若是,判断进程访问操作所对应的进程摘要是否与允许的摘要列表相匹配,若相匹配,允许该进程访问操作,若不匹配,拒绝该进程访问操作。
本发明装置实施例中各功能模块的具体工作方式参见本发明方法实施例的相关内容。可以利用本发明实施例四提供的实现访问控制的装置实现上述实施例一和二中服务器代理程序的相关操作。
由上述可见,本发明实施例的技术方案提供了一种安全的输入输出访问控制方案,该方案在操作系统的驱动层捕获用户的操作,通过对用户操作的过滤以及所规定的安全策略,来确认是否允许或拒绝用户操作,从而在操作系统中实现了对资源访问的控制操作。本发明实施例的技术方案在现有操作系统的驱动程序中加入了访问控制功能,确保允许的输入输出操作都是安全的,能够在网络信息共享过程中保证涉密信息的安全性,且无需再在计算机上安装额外的访问控制软件,节省了成本,提高了现有系统的利用率。
本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。