7-访问控制技术原理与应用
7.1 访问控制概述
1)概念
访问控制是指对资源对象的访问者授权、控制的方法及运行机制。
访问者又称为主体,可以是用户、进程、应用程序等;
资源对象又称为客体,即被访问的对象,可以是文件、应用服务、数据等;
授权是访问者可以对资源对象进行访问的方式,如文件的读、写、删除、追加或电子邮件服务的接收、发送等;
控制就是对访问者使用方式的监测和限制以及对是否许可用户访问资源对象做出决策,如拒绝访问、授权许可、禁止操作等。
2)目标
访问控制的目标有两个:一是防止非法用户进入系统;二是阻止合法用户对系统资源的非法使用,即禁止合法用户的越权访问。
7.2 访问控制模型
1)参考模型
参考监视器:参考监视器是访问控制的决策单元和执行单元的集合体。控制从主体到客体的每一次操作,监督主体和客体之间的授权访问行为,并将重要的安全事件存入审计文件之中。
访问控制数据库:记录主体访问客体的权限及其访问方式的信息,提供访问控制决策判断的依据,也称为访问控制策略库。该数据库随着主体和客体的产生、删除及其权限的修改而动态变化。
审计库:存储主体访问客体的操作信息,包括访问成功、访问失败以及访问操作信息
2)模型发展
为适应不同应用场景的访问控制需求,访问控制参考模型不断演变,形成各种各样的访问控制模型,主要有自主访问控制模型、强制访问控制模型、基于角色的访问控制模型、基于使用的访问控制模型、基于地理位置的访问控制模型、基于属性的访问控制模型、基于行为的访问控制模型、基于时态的访问控制模型。
其中,自主访问控制模型、强制访问控制模型、基于角色的访问控制模型常用于操作系统、数据库系统的资源访问:
基于使用的访问控制模型则用于隐私保护、敏感信息安全限制、知识产权保护;
基于地理位置的访问控制模型可用于移动互联网应用授权控制,如打车服务中的地理位置授权使用:
基于属性的访问控制是一个新兴的访问控制方法,其主要提供分布式网络环境和Web服务的模型访问控制:
基于行为的访问控制模型根据主体的活动行为,提供安全风险的控制,如上网行为的安全管理和电子支付操作控制;
基于时态的访问控制模型则利用时态作为访问约束条件,增强访问控制细粒度,如手机网络流量包的限时使用。
7.3 访问控制类型
1)自主访问控制
1.基于行的自主访问控制
基于行的自主访问控制方法是在每个主体上都附加一个该主体可访问的客体的明细表,根据表中信息的不同又可分成三种形式,即能力表(capability list)、前缀表(profles) 和口令 (password)
(1)能力表
能力是访问客体的钥匙,它决定用户能否对客体进行访问以及具有何种访问模式(读、写、执行)。拥有一定能力的主体可以按照给定的模式访问客体。
(2)前缀表
前缀表包括受保护客体名和主体对它的访问权限。当主体要访问某客体时,自主访问控制机制检查主体的前缀是否具有它所请求的访问权。
(3)口令
在基于口令机制的自主存取控制机制中,每个客体都相应地有一个口令。主体在对客体进行访问前,必须向系统提供该客体的口令。如果正确,它就可以访问该客体。
2.基于列的自主访问控制
基于列的自主访问控制机制是在每个客体上都附加一个可访问它的主体的明细表,它有两种形式,即保护位 (protection bits) 和访问控制表(Access Contro lList,ACL)。
(1)保护位
这种方法通过对所有主体、主体组以及客体的拥有者指明一个访问模式集合,通常以比特位来表示访问权限。UNIX/Linux 系统就利用这种访问控制方法。
(2)访问控制表
访问控制表简称 ACL,它是在每个客体上都附加一个主体明细表,表示访问控制矩阵。表中的每一项都包括主体的身份和主体对该客体的访问权限。它的一般结构如下图所示。
2)强制访问控制
强制访问控制(Mandatory Access Control,MAC)是指系统根据主体和客体的安全属性,以强制方式控制主体对客体的访问。例如,在强制访问控制机制下,安全操作系统中的每个进程、每个文件等客体都被赋予了相应的安全级别和范畴,当一个进程访问一个文件时,系统调用强制访问控制机制,当且仅当进程的安全级别不小于客体的安全级别,并且进程的范畴包含文件的范畴时,进程才能访问客体,否则就拒绝。
3)基于角色的访问控制
所谓基于角色的访问控制 (RBAC) 就是指根据完成某些职责任务所需要的访问权限来进行授权和管理。RBAC由用户(U)、角色(R)、会话(S)和权限(P)四个基本要素组成
在一个系统中,可以有多个用户和多个角色,用户与角色的关系是多对多的关系。权限就是主体对客体的操作能力,这些操作能力有读、写、修改、执行等。通过授权,一个角色可以拥有多个权限,而一个权限也可以赋予多个角色。同时,一个用户可以扮演多个角色,一个角色也可以由多个用户承担。在一个采用RBAC作为授权存取控制的系统中,由系统管理员负责管理系统的角色集合和访问权限集合,并将这些权限赋予相应的角色,然后把角色映射到承担不同工作职责的用户身上。
4)基于属性的访问控制
基于属性的访问控制(Attribute Based Access Control)简称为ABAC,其访问控制方法是根据主体的属性、客体的属性、环境的条件以及访问策略对主体的请求操作进行授权许可或拒绝。
场景描述:在一个大型企业中,员工需要访问存储在服务器上的各种文档。这些文档的访问权限应基于员工的职位、文档的敏感级别以及当前的时间。
ABAC应用:
- 主体属性:员工的职位(如经理、普通员工)、部门等。
- 客体属性:文档的敏感级别(如机密、内部、公开)、文档的创建者、修改日期等。
- 环境属性:当前时间(工作日、非工作日)、访问的IP地址(公司内部网络、外部网络)。
- 操作属性:读取、编辑、删除等。
访问控制策略:
- 经理可以在任何时间访问所有级别的文档。
- 普通员工在工作日的工作时间内可以访问内部和公开的文档,但无法访问机密文档。在非工作时间,只能访问公开文档。
- 如果员工尝试从外部网络访问敏感文档,则访问将被拒绝。
7.4 访问控制策略设计与实现
1)策略
访问控制策略用于规定用户访问资源的权限,防止资源损失、泄密或非法使用。在设计访问控制策略时,一般应考虑下面的要求:
(1) 不同网络应用的安全需求,如内部用户访问还是外部用户
(2) 所有和应用相关的信息的确认,如通信端口号、IP地址等
(3) 网络信息传播和授权策略,如信息的安全级别和分类
(4) 不同系统的访问控制和信息分类策略之间的一致性
(5) 关于保护数据和服务的有关法规和合同义务
(6)访问权限的更新和维护
访问控制策略必须指明禁止什么和允许什么,在说明访问控制规则时,应做到以下几点:
(1) 所建立的规则应以 “未经明确允许的都是禁止的” 为前提,而不是以较弱的原则 “未经明确禁止的都是允许的” 为前提
(2) 信息标记的变化,包括由信息处理设备自动引起的或是由用户决定引起的
(3) 由信息系统和管理人员引起的用户许可的变化
(4) 规则在颁布之前需要管理人员的批准或其他形式的许可
2)规则
- 基于用户身份
- 基于角色
- 基于地址(例如:重要的服务器和网络设备可以禁止远程访问,仅仅允许本地的访问,这样可以增加安全性。)
- 基于时间(例如:下班时间不允许访问服务器)
- 基于异常事件(例如:当系统中的用户登录出现三次失败后,系统会在一段时间内冻结账户)
- 基于服务数量利用系统所能承受的服务数量来实现控制(例如:为了防范拒绝服务攻击,网站在服务能力接近某个值时,暂时拒绝新的网络访问请求,以保证系统正常运行。)
7.5 访问控制过程与安全管理
1)访问控制过程
访问控制的目的是保护系统的资产,防止非法用户进入系统及合法用户对系统资源的非法使用。要实现访问控制管理,一般需要五个步骤:
第一步,明确访问控制管理的资产,例如网络系统的路由器、Web服务等
第二步,分析管理资产的安全需求,例如保密性要求、完整性要求、可用性要求等
第三步,制定访问控制策略,确定访问控制规则以及用户权限分配
第四步,实现访问控制策略,建立用户访问身份认证系统,并根据用户类型授权用户访问资产
第五步,运行和维护访问控制系统,及时调整访问策略
2)最小特权管理
特权 (Privilege) 是用户超越系统访问控制所拥有的权限。这种特权设置有利于系统维护和配置,但不利于系统的安全性。例如,在普通的UNIX操作系统中,超级用户的口令泄露,将会对系统造成极大的危害。
因此,特权的管理应按最小化机制,防止特权误用。最小特权原则 (Principle of Least Privilege) 指系统中每一个主体只能拥有完成任务所必要的权限集。最小特权管理的目的是系统不应赋予特权拥有者完成任务的额外权限,阻止特权乱用。
为此,特权的分配原则是“按需使用(Need to Use)”,这条原则保证系统不会将权限过多地分配给用户从而可以限制特权造成的危害。例如,安全的 UNIX超级用户的特权分解为若干组的特权子集
3)用户访问管理
4)口令安全管理
口令是当前大多数网络实施访问控制进行身份鉴别的重要依据,因此,口令管理尤为重要,一般遵守以下原则:
- 口令选择应至少在8个字符以上,应选用大小写字母、数字、特殊字符组合;
- 禁止使用与账号相同的口令
- 更换系统默认口令,避免使用默认口令
- 限制账号登录次数,建议为3次
- 禁止共享账号和口令
- 口令文件应加密存放,并只有超级用户才能读取
- 禁止以明文形式在网络上传递口令
- 口令应有时效机制,保证经常更改,并且禁止重用口令
- 对所有的账号运行口令破解工具,检查是否存在弱口令或没有口令的账号
7.6 访问控制主要产品与技术指标
1)产品
访问控制的主要产品类型有4A 系统、安全网关、系统安全增强等。
1.4A 系统
4A是指认证(Authentication)、授权(Authorization)、账号(Account)、审计(Audit),中文名称为统一安全管理平台,平台集中提供账号、认证、授权和审计等网络安全服务。该产品的技术特点是集成了访问控制机制和功能,提供多种访问控制服务。
平台常用基于角色的访问控制方法,以便于账号授权管理。
2.安全网关
安全网关产品的技术特点是利用网络数据包信息和网络安全威胁特征库,对网络通信连接服务进行访问控制。这类产品是一种特殊的网络安全产品,如防火墙、统一威胁管理(UTM)等。
3.系统安全增强
系统安全增强产品的技术特点是通常利用强制访问控制技术来增强操作系统、数据库系统的安全,防止特权滥用。如Linux 的安全增强系统 SELinux、Windows操作系统加固等。
2)技术指标
- 产品支持访问控制策略规则类型
- 产品支持访问控制规则最大数量
- 产品访问控制规则检查速度
- 产品自身安全和质量保障级别
7.7 访问控制技术应用
1)访问控制技术应用场景类型
- 物理访问控制
- 网络访问控制
- 操作系统访问控制
- 数据库/数据访问控制
- 应用系统访问控制
2)UNIX / Linux 系统访问控制应用参考
普通的 UNIX、Linux等系统中,实现自主访问控制技术的基本方法是在每个文件上使用 “9比特位模式” 来标识访问控制权限信息,这些二进制位标识了 “文件的拥有者、与文件拥有者同组的用户、其他用户” 对文件所具有的访问权限和方式。
3)Windows 访问控制应用参考
访问令牌,用户及所属组的安全标识符(SID)、自主访问控制列表(DACL)、系统访问控制列表(SACL)、安全参考监视器(SRM)
4)IIS FTP 访问控制应用参考
1.匿名访问控制设置
2.FTP 的目录安全性设置(读取和写入)
5)网络访问控制应用参考
1.网络通信连接控制
2.基于 VLAN 的网络隔离
6)Web 服务访问控制应用参考
7)基于角色管理的系统访问控制应用参考
首先是权限被分配到相应的角色,然后,角色委派给用户,从而动态产生主体能力表,即主体所拥有的权限。最后,对主体权限进行审查,确认和修订无误后,最终赋予主体所拥有的权限集,即能力表。
8)网络安全等级保护访问控制设计应用参考
《信息安全技术 网络安全等级保护安全设计技术要求(GB/T 25070--2019)》
1.自主访问控制结构
2.强制访问控制结构