一种文件强制访问控制方法和装置与流程

文档序号:19311828发布日期:2019-12-03 23:35阅读:210来源:国知局
一种文件强制访问控制方法和装置与流程

本发明涉及计算机安全领域,尤其涉及计算机安全领域中一种文件强制访问控制方法和装置。



背景技术:

强制访问控制在计算机安全领域指一种由操作系统约束的访问控制,目标是限制主体或发起者访问或对对象或目标执行某种操作的能力。在实践中,主体通常是一个进程或线程,对象可能是文件、目录、tcp/udp端口、共享内存段、i/o设备等。

目前可限制针对某用户、某进程对于某文件的权限,例如,可以限制administrator使用c:\windows\notepad.exe进程访问c:\a.txt。但是,如果存在一个脚本,该脚本通过命令操作c:\a.txt,仅获取到c:\windows\system32\cmd.exe进程访问c:\a.txt,而不是脚本访问c:\a.txt。如果通过策略“限制administrator使用c:\windows\system32\cmd.exe进程访问c:\a.txt”,显然该策略的防护范围过大,甚至可能导致系统瘫痪。



技术实现要素:

本发明要解决的技术问题是提供一种文件强制访问控制方法,支持脚本的文件强制访问控制,保护系统安全。

为了解决上述技术问题,本发明实施例提供了一种文件强制访问控制方法,包括:

当进程访问文件时,捕获所述文件的访问信息;其中,访问信息包括所述进程的路径信息、用户信息、所述进程的进程号pid;

根据所述进程的路径信息和用户信息判断是否与预设的策略匹配,如果与预设的策略匹配,则根据所述预设的策略进行访问控制决策;如果与预设的策略不匹配,则根据所述进程的pid进行访问控制决策。

一种示例性的实施例中,上述方法还具有下面特点:

在所述进程访问文件之前,包括:

当所述进程启动时,捕获所述进程的pid和路径信息;当路径为预设路径时获取所述进程的命令行参数,通过所述命令行参数解析所述进程执行的脚本信息;

当所述脚本信息与预设的策略匹配时,则将所述进程的pid保存到预设的集合中。

一种示例性的实施例中,上述方法还具有下面特点:

根据所述进程的pid进行访问控制决策,包括:

若所述预设的集合包括所述进程的pid,则允许所述进程访问所述文件;

若所述预设的集合不包括所述进程的pid,则禁止所述进程访问所述文件;

其中,所述预设路径包括:%systemroot%\system32\cmd.exe和%systemroot%\syswow64\cmd.exe。

一种示例性的实施例中,上述方法还具有下面特点:

当所述进程终止时,捕获所述进程的pid,若所述pid在所述预设的集合中,则从所述预设的集合中删除所述pid。

一种示例性的实施例中,上述方法还具有下面特点:

当进程访问文件时,捕获所述文件的访问信息,包括:

当进程访问文件时,通过第一hook技术捕获所述文件的访问信息;

当所述进程启动时,捕获所述进程的pid和路径信息,包括:

当所述进程启动时,通过第二hook技术捕获所述进程的pid和路径信息。

为了解决上述问题,本发明还提供了一种文件强制访问控制装置,包括存储器和处理器;

所述存储器,用于保存用于文件强制访问控制的程序;

所述处理器,用于读取执行所述用于文件强制访问控制的程序,执行如下操作:

当进程访问文件时,捕获所述文件的访问信息;其中,访问信息包括所述进程的路径信息、用户信息、所述进程的进程号pid;

根据所述进程的路径信息和用户信息判断是否与预设的策略匹配,如果与预设的策略匹配,则根据所述预设的策略进行访问控制决策;如果与预设的策略不匹配,则根据所述进程的pid进行访问控制决策。

一种示例性的实施例中,上述装置还具有下面特点:

所述处理器,读取执行所述用于文件强制访问控制的程序,还执行如下操作:

在所述进程访问文件之前,当所述进程启动时,捕获所述进程的pid和路径信息;当路径为预设路径时获取所述进程的命令行参数,通过所述命令行参数解析所述进程执行的脚本信息;

当所述脚本信息与预设的策略匹配时,则将所述进程的pid保存到预设的集合中。

一种示例性的实施例中,上述装置还具有下面特点:

根据所述进程的pid进行访问控制决策,包括:

若所述预设的集合包括所述进程的pid,则允许所述进程访问所述文件;

若所述预设的集合不包括所述进程的pid,则禁止所述进程访问所述文件;

其中,所述预设路径包括:%systemroot%\system32\cmd.exe和%systemroot%\syswow64\cmd.exe。

一种示例性的实施例中,上述装置还具有下面特点:

当所述进程终止时,捕获所述进程的pid,若所述pid在所述预设的集合中,则从所述预设的集合中删除所述pid。

一种示例性的实施例中,上述装置还具有下面特点:

当进程访问文件时,捕获所述文件的访问信息,包括:

当进程访问文件时,通过第一hook技术捕获所述文件的访问信息;

当所述进程启动时,捕获所述进程的pid和路径信息,包括:

当所述进程启动时,通过第二hook技术捕获所述进程的pid和路径信息。

综上,本发明实施例提供的一种文件强制访问控制方法和装置,支持脚本的强制访问控制,保护系统安全。

附图说明

图1为根据本发明实施例的文件强制访问控制方法的示意图。

图2为根据本发明实施例的文件强制访问控制方法的流程图。

图3为根据本发明实施例的文件强制访问控制方法的示意图。

图4为根据本发明实施例的pid添加与删除的流程图。

图5为根据本发明实施例的一种文件强制访问控制装置的模块示意图。

图6为根据本发明实施例的另一种文件强制访问控制装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实施例的文件强制访问控制方法的示意图,如图1所示,本实施例的文件强制访问控制方法包括:

s11、当进程访问文件时,捕获所述文件的访问信息。

一种可选实施方式中,访问信息包括所述进程的路径信息、用户信息、所述进程的进程号pid。

一种可选实施方式中,当进程访问文件时,通过第一hook技术捕获所述文件的访问信息。其中,第一hook技术指内核通过minifilter技术捕获(hook)文件系统的读、写、执行等操作。

s12、根据所述进程的路径信息和用户信息判断是否与预设的策略匹配,如果与预设的策略匹配,则根据所述预设的策略进行访问控制决策。

一种可选实施方式中,预设的策略为:是否信任某用户通过某进程访问文件。策略中的用户信息与捕获到的当前用户匹配;策略中的进程信息与捕获到的当前进程匹配。如果上述都匹配,则根据预设的策略进行访问控制决策。

s13、如果与预设的策略不匹配,则根据所述进程的pid进行访问控制决策。

一种可选实施方式中,在进程访问文件之前,包括:

当所述进程启动时,捕获所述进程的pid和路径信息;当路径为预设路径时获取所述进程的命令行参数,通过所述命令行参数解析所述进程执行的脚本信息;

当所述脚本信息与预设的策略匹配时,则将所述进程的pid保存到预设的集合中。

一种可选实施方式中,当所述进程终止时,捕获所述进程的pid,若所述pid在所述预设的集合中,则从所述预设的集合中删除所述pid。当所述进程终止时,可以通过第二hook技术捕获进程的pid。

其中,当所述进程启动时,通过第二hook技术捕获所述进程的pid和路径信息。第二hook技术指内核通过注册“进程通知回调”的方式,捕获进程的启动与终止消息。

其中,所述预设路径可以包括:%systemroot%\system32\cmd.exe和%systemroot%\syswow64\cmd.exe。

图2为本发明实施例的文件强制访问控制方法的流程图,如图2所示,包括步骤如下:

步骤201:用户administrator双击启动批处理文件test.bat,此时进程启动,通过hook技术(上文中的第二hook技术)捕获进程的进程号pid和进程路径等信息。

其中,该批处理文件的内容是删除c:\a.txt文件。

hook技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这是钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来讲,就是把系统的程序拉出来变成钩子函数自己执行代码片断。在该步骤中,内核通过注册“进程通知回调”(注册“进程通知回调”是一个过程,是指注册一个回调,当启动终止,系统会调用该回调)的方式,捕获进程的启动与终止消息,从而获取进程的进程号pid和进程路径等信息。

该步骤获取到的进程路径是c:\windows\system32\cmd.exe,pid是3228。

步骤202:判断进程路径是否为%systemroot%\system32\cmd.exe或%systemroot%\syswow64\cmd.exe,如是,则获取该进程的命令行参数。

例如,用户双击启动test.bat,则进程c:\windows\system32\cmd.exe启动,步骤201捕获的进程路径是c:\windows\system32\cmd.exe,因此,获取该进程的命令行参数,即c:\windows\system32\cmd.exe/c““c:\test.bat””。

步骤203:根据该命令行参数解析进程c:\windows\system32\cmd.exe执行的脚本。

在该例中,解析出的脚本为c:\test.bat。

步骤204:将解析出的脚本与预设的策略进行匹配,如果匹配成功,则将进程c:\windows\system32\cmd.exe的pid保存到信任集合中。

其中,预设的策略例如为允许administrator通过c:\test.bat访问文件。

当预设的策略为“允许administrator通过c:\test.bat访问文件”时,则匹配成功。

当进程终止时,通过hook技术(第二hook技术)捕获进程的pid,如果该pid存在于信任集合中,则将其删除。从而维护一个信任集合,为文件强制访问控制提供判决标准。

步骤205:用户administrator尝试删除c:\a.txt文件,此时捕获文件的访问信息。

内核通过hook技术(上文中的第一hook技术)中的minifilter技术捕获文件系统地读、写、执行等操作,实时捕获文件的访问信息。本步骤捕获到的访问信息包括当前进程(c:\windows\system32\cmd.exe)、当前用户(administrator)和当前进程的进程号pid(3228)。

步骤206:将访问信息中的当前进程和当前用户信息与预设的策略进行匹配,如果匹配成功,则根据预设的策略进行决策。

其中,预设的策略例如为允许administrator通过c:\test.bat访问文件或允许guest通过c:\b.exe。

步骤207:如果匹配不成功,则判断访问信息中的pid是否存在于信任集合中,如果存在,则允许administrator通过c:\test.bat访问文件;否则,禁止administrator通过c:\test.bat访问文件。

本发明实施例通过命令行参数识别脚本,将脚本的信任属性转换成其宿主进程的信任属性,限制细化到支持用户、进程或脚本,控制程度更为精确。

图5为本发明实施例的文件强制访问控制装置的各模块示意图,包括:文件访问信息捕获模块、策略管理模块、脚本信息处理模块、文件强制决策模块。

文件访问信息捕获模块主要负责内核hook的安装,文件访问信息的获取。内核通过minifilter技术捕获(hook)文件系统的读、写、执行等操作,实时捕获文件的访问信息。当文件受到某个进程访问时,捕获当前进程(主体进程)、当前用户(主体用户)、当前进程的进程号(pid),并将获取到的信息发送至文件强制决策模块中。

策略管理模块主要负责策略维护、策略比对,为文件强制决策模块提供判决的标准。其策略为:是否信任某用户通过某进程访问文件。策略中的用户信息与文件访问信息捕获模块获取到的当前用户匹配;策略中的进程信息与文件访问信息捕获模块获取到的当前进程匹配。策略管理模块可以对比给定的用户、进程是否与当前策略集合匹配。

脚本信息处理模块是为支持脚本控制所设置的模块,主要负责脚本信息的获取;与策略管理模块联动,为文件强制决策模块提供判决的标准。如1所述,文件访问信息捕获模块获取到的是主体进程信息,并无法识别到该进程执行的是哪个脚本。这是因为脚本的执行依赖于宿主进程cmd.exe。因此,本模块主要负责与策略管理模块联动,确认哪个脚本是信任的,从而将脚本的信任属性转换成其宿主进程的信任属性,从而将宿主进程的信任信息输入文件强制决策模块,提供判决依据。

脚本信息处理模块的实现方式(见图4)。内核通过注册进程通知回调的方式,hook进程的启动与终止消息。当进程启动时,捕获进程的pid、进程路径等信息。当进程路径为%systemroot%\system32\cmd.exe或者是%systemroot%\syswow64\cmd.exe时,获取其命令行参数。通过命令行参数的分析解析出宿主程序执行的是哪个脚本,并将该脚本输入策略管理模块中,请求策略对比,如果该脚本是信任的,则将该进程的pid记入信任集合中;当进程终止时,捕获进程的pid,如果该pid存在于信任集合中,则将其删除。从而维护一个信任集合,提供判决标准。

文件强制决策模块是文件强制访问控制的核心,负责做出决策。当文件强制决策模块收到文件访问信息捕获模块获取到的信息时,首先将获取到的当前进程(主体进程)、当前用户(主体用户)输入策略管理模块,请求策略匹配。如果策略管理模块匹配成功,则按策略中的裁决信息做出决策;如果策略管理模块未匹配,则将当前进程的进程号(pid)输入脚本信息处理模块,如果当前进程的进程号(pid)存在于信任集合中,做出允许裁决,否则做出禁止裁决。

图6为本发明实施例的文件强制访问控制装置的示意图,如图6所示,本实施例的文件强制访问控制装置包括:存储器和处理器;

所述存储器,用于保存用于文件强制访问控制的程序;

所述处理器,用于读取执行所述用于文件强制访问控制的程序,执行如下操作:

当进程访问文件时,捕获所述文件的访问信息;其中,访问信息包括所述进程的路径信息、用户信息、所述进程的进程号pid;

根据所述进程的路径信息和用户信息判断是否与预设的策略匹配,如果与预设的策略匹配,则根据所述预设的策略进行访问控制决策;如果与预设的策略不匹配,则根据所述进程的pid进行访问控制决策。

可选地,所述处理器,读取执行所述用于文件强制访问控制的程序,还执行如下操作:

在所述进程访问文件之前,当所述进程启动时,捕获所述进程的pid和路径信息;当路径为预设路径时获取所述进程的命令行参数,通过所述命令行参数解析所述进程执行的脚本信息;

当所述脚本信息与预设的策略匹配时,则将所述进程的pid保存到预设的集合中。

可选地,根据所述进程的pid进行访问控制决策,包括:

若所述预设的集合包括所述进程的pid,则允许所述进程访问所述文件;

若所述预设的集合不包括所述进程的pid,则禁止所述进程访问所述文件;

其中,所述预设路径包括:%systemroot%\system32\cmd.exe和%systemroot%\syswow64\cmd.exe。

可选地,当所述进程终止时,捕获所述进程的pid,若所述pid在所述预设的集合中,则从所述预设的集合中删除所述pid。

可选地,当进程访问文件时,捕获所述文件的访问信息,包括:

当进程访问文件时,通过第一hook技术捕获所述文件的访问信息。

当所述进程启动时,捕获所述进程的pid和路径信息,包括:

当所述进程启动时,通过第二hook技术捕获所述进程的pid和路径信息。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1