基于访问控制列表的进程访问控制方法及装置与流程

文档序号:17689871发布日期:2019-05-17 20:57阅读:290来源:国知局
基于访问控制列表的进程访问控制方法及装置与流程

本发明涉及数据安全的技术领域,特别涉及一种基于访问控制列表的进程访问控制方法及装置。



背景技术:

在计算机安全领域中,有最小权限原则,即要求计算环境中的特定抽象层的每个模块如进程、用户或者计算机程序只能访问当下所必需的信息或者资源,保护数据以及功能避免受到错误或者恶意行为的破坏。

传统的基于用户权限或用户组的访问控制技术无法对访问数据的进程进行控制,对来自被劫持的进程和被恶意修改的程序的攻击缺乏抵御能力。



技术实现要素:

本发明的主要目的为提供一种基于访问控制列表的进程访问控制方法及装置,基于访问控制列表对程序的访问控制模型,通过定义一张程序可访问数据的黑/白名单,能够实现对数据访问的精细控制。

为实现上述目的,本发明提出了一种基于访问控制列表的进程访问控制方法,依次包括授权S1、认证S2、许可S3和审计S4四个过程:

授权S1:首先读取用户设置的访问规则列表R={r1,r2,r3,...,rn};列表中的规则rk描述了对于受控数据Dk,特定程序Pk的访问许可,规则rk的组成包括Tk、Dk、Pk、PShellk、PChildrenk;对规则列表R中的每一条访问规则rk、计算相关程序Pk、脚本运行器PShellk、子程序PChildrenk的MD5特征值S,建立特征值列表PS={[P1,S1],[P2,S2],[P3,S3],...,[Pn,Sn]};

认证S2:当有进程X对受控数据Dx提出访问请求时,获取进程信息Infox;进程信息包含PIDx和Px;根据Infox中的Px,在特征值列表PS中搜索Px;如果不存在,则Px并未在访问规则列表中提及,拒绝访问,返回Authx=DENY;如果存在,返回列表中记录的特征值Sx',进入下一步;为实现对脚本类程序的控制,及对子程序的控制,系统中包含了已通过认证的进程的缓存列表PC={Info1,Info2,Info3,...,Infon};若X为另一进程Y的子程序/脚本运行器,Y的处理流程中会进行X的认证,如X认证通过,其进程信息Infox会存入PC中;在PC中搜索Infox,如存在,则返回认证通过;如不存在,进入下一步;计算Px的MD5特征值Sx,并与Sx'对比;若Sx=Sx',则认证通过,Infox存入缓存列表PC,进入许可阶段;反之,则返回Authx=DENY,拒绝访问;

许可S3:在访问规则列表R中搜索包含有[Dx,Px]的规则rx;当rx存在且X需要脚本运行器PShellx/子程序PChildrenx,对PShellx/PChildrenx进行S2认证;如认证通过或X不需要PShellx/PChildrenx,获取rx中的许可类型Tx,返回许可结果Authx=Tx,即,若Tx=ALLOW,许可访问;若Tx=DENY则拒绝访问;如rx不存在,拒绝访问,返回Authx=DENY;

审计S4:对于每个进程X的每次访问留下访问记录;记录中包含Infox、Dx、Authx。

作为优选,所述Tk是许可类型,许可类型是ALLOW/DENY,表示rk为允许或拒绝访问。

作为优选,所述Dk是定义rk适用的数据;Pk是定义rk适用的程序;PShellk是当Pk为一脚本时,定义运行Pk的脚本运行器适用于rk;PChildrenk是当Pk需要调用子程序时,定义适用于rk的子程序。

作为优选,所述PIDx是X的ID;Px是X所启用的程序。

本发明还提供了一种基于访问控制列表的进程访问控制装置,包括:

授权单元:首先读取用户设置的访问规则列表R={r1,r2,r3,...,rn};列表中的规则rk描述了对于受控数据Dk,特定程序Pk的访问许可,规则rk的组成包括Tk、Dk、Pk、PShellk、PChildrenk;对规则列表R中的每一条访问规则rk、计算相关程序Pk、脚本运行器PShellk、子程序PChildrenk的MD5特征值S,建立特征值列表PS={[P1,S1],[P2,S2],[P3,S3],...,[Pn,Sn]};

认证单元:当有进程X对受控数据Dx提出访问请求时,获取进程信息Infox;进程信息包含PIDx和Px;根据Infox中的Px,在特征值列表PS中搜索Px;如果不存在,则Px并未在访问规则列表中提及,拒绝访问,返回Authx=DENY;如果存在,返回列表中记录的特征值Sx',进入下一步;为实现对脚本类程序的控制,及对子程序的控制,系统中包含了已通过认证的进程的缓存列表PC={Info1,Info2,Info3,...,Infon};若X为另一进程Y的子程序/脚本运行器,Y的处理流程中会进行X的认证,如X认证通过,其进程信息Infox会存入PC中;在PC中搜索Infox,如存在,则返回认证通过;如不存在,进入下一步;计算Px的MD5特征值Sx,并与Sx'对比;若Sx=Sx',则认证通过,Infox存入缓存列表PC,进入许可阶段;反之,则返回Authx=DENY,拒绝访问;

许可单元:在访问规则列表R中搜索包含有[Dx,Px]的规则rx;当rx存在且X需要脚本运行器PShellx/子程序PChildrenx,对PShellx/PChildrenx进行认证;如认证通过或X不需要PShellx/PChildrenx,获取rx中的许可类型Tx,返回许可结果Authx=Tx,即,若Tx=ALLOW,许可访问;若Tx=DENY则拒绝访问;如rx不存在,拒绝访问,返回Authx=DENY;

审计单元:对于每个进程X的每次访问留下访问记录;记录中包含Infox、Dx、Authx。

作为优选,所述Tk是许可类型,许可类型是ALLOW/DENY,表示rk为允许或拒绝访问。

作为优选,所述Dk是定义rk适用的数据;Pk是定义rk适用的程序;PShellk是当Pk为一脚本时,定义运行Pk的脚本运行器适用于rk;PChildrenk是当Pk需要调用子程序时,定义适用于rk的子程序。

作为优选,所述PIDx是X的ID;Px是X所启用的程序。

本发明中提供的基于访问控制列表的进程访问控制方法及装置,基于访问控制列表(Access Control List,访问控制列表)对程序的访问控制模型,通过定义一张程序可访问数据的黑/白名单,能够实现对数据访问的精细控制。

附图说明

图1是本发明实施例中授权步骤的流程示意图;

图2是本发明实施例中认证步骤的流程示意图;

图3是本发明实施例中处理访问申请的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参阅图1至图3,本发明实施例中提供了一种基于访问控制列表的进程访问控制方法,依次包括授权S1、认证S2、许可S3和审计S4四个过程。

授权S1:首先读取用户设置的访问规则列表R={r1,r2,r3,...,rn};列表中的规则rk描述了对于受控数据Dk,特定程序Pk的访问许可,规则rk的组成包括Tk、Dk、Pk、PShellk、PChildrenk;对规则列表R中的每一条访问规则rk、计算相关程序Pk、脚本运行器PShellk、子程序PChildrenk的MD5特征值S,建立特征值列表PS={[P1,S1],[P2,S2],[P3,S3],...,[Pn,Sn]}。

认证S2:当有进程X对受控数据Dx提出访问请求时,获取进程信息Infox;进程信息包含PIDx和Px;根据Infox中的Px,在特征值列表PS中搜索Px;如果不存在,则Px并未在访问规则列表中提及,拒绝访问,返回Authx=DENY;如果存在,返回列表中记录的特征值Sx',进入下一步;为实现对脚本类程序的控制,及对子程序的控制,系统中包含了已通过认证的进程的缓存列表PC={Info1,Info2,Info3,...,Infon};若X为另一进程Y的子程序/脚本运行器,Y的处理流程中会进行X的认证,如X认证通过,其进程信息Infox会存入PC中;在PC中搜索Infox,如存在,则返回认证通过;如不存在,进入下一步;计算Px的MD5特征值Sx,并与Sx'对比;若Sx=Sx',则认证通过,Infox存入缓存列表PC,进入许可阶段;反之,则返回Authx=DENY,拒绝访问。

许可S3:在访问规则列表R中搜索包含有[Dx,Px]的规则rx;当rx存在且X需要脚本运行器PShellx/子程序PChildrenx,对PShellx/PChildrenx进行S2认证;如认证通过或X不需要PShellx/PChildrenx,获取rx中的许可类型Tx,返回许可结果Authx=Tx,即,若Tx=ALLOW,许可访问;若Tx=DENY则拒绝访问;如rx不存在,拒绝访问,返回Authx=DENY。

审计S4:对于每个进程X的每次访问留下访问记录;记录中包含Infox、Dx、Authx。所述Tk是许可类型,许可类型是ALLOW/DENY,表示rk为允许或拒绝访问。所述Dk是定义rk适用的数据;Pk是定义rk适用的程序;PShellk是当Pk为一脚本时,定义运行Pk的脚本运行器适用于rk;PChildrenk是当Pk需要调用子程序时,定义适用于rk的子程序。所述PIDx是X的ID;Px是X所启用的程序。

本实施例中在访问控制列表里既有允许访问的规则,也有拒绝访问的规则;定义黑名单为访问控制列表中拒绝访问的列表,白名单为访问控制列表中允许访问的列表。本发明实施例中提供的基于访问控制列表的进程访问控制方法,本方法基于访问控制列表(Access Control List,访问控制列表)对程序的访问控制模型,通过定义一张程序可访问数据的黑/白名单,能够实现对数据访问的精细控制。

本发明实施例中还提供了一种基于访问控制列表的进程访问控制装置,包括:

授权单元:首先读取用户设置的访问规则列表R={r1,r2,r3,...,rn};列表中的规则rk描述了对于受控数据Dk,特定程序Pk的访问许可,规则rk的组成包括Tk、Dk、Pk、PShellk、PChildrenk;对规则列表R中的每一条访问规则rk、计算相关程序Pk、脚本运行器PShellk、子程序PChildrenk的MD5特征值S,建立特征值列表PS={[P1,S1],[P2,S2],[P3,S3],...,[Pn,Sn]};

认证单元:当有进程X对受控数据Dx提出访问请求时,获取进程信息Infox;进程信息包含PIDx和Px;根据Infox中的Px,在特征值列表PS中搜索Px;如果不存在,则Px并未在访问规则列表中提及,拒绝访问,返回Authx=DENY;如果存在,返回列表中记录的特征值Sx',进入下一步;为实现对脚本类程序的控制,及对子程序的控制,系统中包含了已通过认证的进程的缓存列表PC={Info1,Info2,Info3,...,Infon};若X为另一进程Y的子程序/脚本运行器,Y的处理流程中会进行X的认证,如X认证通过,其进程信息Infox会存入PC中;在PC中搜索Infox,如存在,则返回认证通过;如不存在,进入下一步;计算Px的MD5特征值Sx,并与Sx'对比;若Sx=Sx',则认证通过,Infox存入缓存列表PC,进入许可阶段;反之,则返回Authx=DENY,拒绝访问;

许可单元:在访问规则列表R中搜索包含有[Dx,Px]的规则rx;当rx存在且X需要脚本运行器PShellx/子程序PChildrenx,对PShellx/PChildrenx进行认证;如认证通过或X不需要PShellx/PChildrenx,获取rx中的许可类型Tx,返回许可结果Authx=Tx,即,若Tx=ALLOW,许可访问;若Tx=DENY则拒绝访问;如rx不存在,拒绝访问,返回Authx=DENY;

审计单元:对于每个进程X的每次访问留下访问记录;记录中包含Infox、Dx、Authx。

其中,所述Tk是许可类型,许可类型是ALLOW/DENY,表示rk为允许或拒绝访问;所述Dk是定义rk适用的数据;Pk是定义rk适用的程序;PShellk是当Pk为一脚本时,定义运行Pk的脚本运行器适用于rk;PChildrenk是当Pk需要调用子程序时,定义适用于rk的子程序;所述PIDx是X的ID;Px是X所启用的程序。

综上所述,在本发明实施例中的访问控制列表里既有允许访问的规则,也有拒绝访问的规则;黑名单为访问控制列表中拒绝访问的列表,白名单为访问控制列表中允许访问的列表。为本发明实施例中提供的基于访问控制列表的进程访问控制方法及装置,基于访问控制列表(Access Control List,访问控制列表)对程序的访问控制模型,通过定义一张程序可访问数据的黑/白名单,能够实现对数据访问的精细控制。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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