天天看点

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

一、了解什么是授权(Authorization)

授权是授予用户访问资源的最后一步。一旦一个人成功地认证了一个系统,授权就决定了这个人在该系统上访问资源和信息的权限,有许多不同的授权方法。首先,让我们来谈谈授权的两个一般原则,它们可以带来强大的安全性:

  1. 第一条是最小特权原则(the principle of least privilege)。这个原则指出,一个人只应该拥有完成其工作职责所需的最小权限。最低权限的重要性在于两个原因。首先,最小特权将内部攻击的潜在损害降到最低。如果一个员工变成了恶意的,他们所能造成的损害将被分配给他们的工作角色的权限所限制。例如,一个会计不太可能破坏公司的网站,因为会计的工作职责与更新网页内容无关。其次,最小特权限制了外部攻击者在破坏员工账户时迅速获得特权访问的能力。除非他们碰巧破坏了一个系统管理员账户,否则攻击者会发现自己受到他们所窃取的账户的权限限制。
  2. 第二个重要原则是职责分离(separation of duties)。这一原则指出,敏感的业务功能应该至少需要两个人的参与。这通过要求两个雇员之间的勾结来实施危害行为,从而降低危害行为的可能性。职责分离的一个常见例子是在会计部门。员工可能从组织中窃取资金的一种方式是在系统中建立假的供应商,然后为从未提供过的服务向这些供应商开出支票。为了防止这种情况,组织通常会将建立新的供应商和向供应商开具支票的能力分开,并说任何员工都不应该拥有这两种权限。

组织在试图遵循最小特权和职责分离的原则时,应注意特权蠕变(privilege creep)。当用户从一个工作换到另一个工作,并获得与他们的新职责相关的新特权,但从未失去他们离开的工作的特权时,就会发生特权蠕变。随着时间的推移,一个员工在组织中从一个角色转到另一个角色时,就会以这种方式获得大量的特权。以Alice为例子。Alice开始时是会计部门的一名职员,她负责向供应商签发支票,也就是拥有签发支票的特权:

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

几年后,Alice被提升到主管会计的职位,并获得了在系统中设置新供应商的责任,但是她仍然有以前的特权。她现在有能力建立一个新的供应商和签发支票。这违反了最小特权和职责分离的原则。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

希望维护最小特权和职责分离原则的组织应定期进行账户审查。这些审查可能有手动和自动两种形式。例如,一个自动程序可以在每次用户被授予新的权限时运行,以确保新的权限不会违反任何职责分离的要求。组织可以用季度访问审查来补充这些自动规则,由管理人员审查分配给每个员工的权限是否符合最小特权原则。维护授权系统是安全专家的一项重要任务。

二、强制访问控制(Mandatory access control)

强制性访问控制系统是最严格的访问控制类型。在强制访问控制或MAC系统(是简称而不是Macintosh系统)中,操作系统本身限制了可能被授予用户和进程的系统资源的权限。用户自己不能修改这些权限。由于这个原因,MAC很少在高度安全的环境之外的生产系统中被完全实施。MAC通常被实现为一个基于规则的访问控制系统,用户和资源都有标签,操作系统通过比较这些标签做出访问控制的决定。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

美国政府应用程序经常使用强制访问控制来保护机密信息。在这种方法中,文件和用户都被分配了一个分类级别。文件可能被标记为最高机密(Top Secret)、机密(Secret)或保密(Confidential),这取决于它们所包含信息的敏感性。用户也被标记为最高机密、机密或保密,这取决于他们的安全许可,以及他们被授权访问的信息的敏感性。然后,强制访问控制系统负责对这些标签进行比较。如果一个拥有机密权限的用户试图访问一份机密文件,这是被允许的。如果同一个用户试图访问一份保密文件,这也是允许的,因为拥有秘密权限的用户被授权访问秘密级别或更低的文件,而机密是比秘密更低的分类。然而,如果该用户试图访问一份绝密文件,该访问尝试将被拒绝,因为该用户没有被授权访问绝密信息,这超出了他们的许可级别。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

实施MAC的操作系统最常见的例子是安全增强型Linux,或称SELinux,这是一个Linux内核安全模块,由美国国家安全局在20世纪90年代首次开发。SELinux包含在一些Linux发行版中,包括红帽企业Linux、CentOS和Fedora。

三、自主访问控制(Discretionary acess controls)

自主访问控制系统,或称DAC系统,提供了一种灵活的授权方式,允许用户为其他用户分配访问权限。文件、计算机和其他资源的所有者可以自行决定按他们认为合适的方式配置权限。自主访问控制是最常见的访问控制形式,因为它们为组织提供了急需的灵活性。

例如,我们有一个文件,其中包含组织的一些雇员的信息。人力资源部门的分析员Alice创建了这个文件,操作系统将她识别为文件所有者。然而,Alice是应Bob的要求创建这个文件的,她希望Bob有权限做她能做的一切,所以Alice给了Bob对这个文件的完全控制权限。Alice还知道Carol需要偶尔对文件进行更新,所以她给Carol分配了读和写的权限。Bob希望他的老板Tracy也能查看该文件,但他不希望Tracy对该文件进行修改。由于Bob对文件有完全的控制权,他也可以为其他用户设置权限,所以他可以授予Tracy权限。Tracy和Carol不能修改这些文件的权限,因为他们不是文件的所有者,他们对文件没有完全的控制权。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

另一方面,在强制访问控制(MAC)的情况下,Alice和Bob将没有能力授予其他用户访问该文件的权限。权限将由操作系统根据文件的分类来设定。Windows磁盘上使用的NTFS文件系统访问控制模型是自主访问控制系统的最常见的例子之一。它允许拥有一个文件的用户相互分配各种权限。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

四、访问控制列表(Access control lists)

在自主访问控制系统中,资源所有者有能力为系统的其他用户设置和修改权限。文件所有者通过创建访问控制列表来管理文件系统的权限。访问控制列表(Access control lists)是一个简单的表格,包含用户名和授予每个用户在资源上的权限。例如,我们可能在计算机上拥有一个由全权访问控制系统管理的文件,并决定所希望其他用户访问我的文件。也可能会授予一个用户编辑该文件的能力,并授予一大群用户阅读该文件的能力。这些决定都需要在访问控制列表中输入一个条目。

Windows使用的NTFS文件系统实现了访问控制列表,并允许用户分配各种权限。读取(Read allows)权限允许用户查看文件的内容,而读取和执行(Read&Execute)权限超出了读取权限,还允许用户运行可执行程序。写入(Write)权限允许用户创建文件并向其添加数据。而修改(Modify)则超出了这个范围,允许用户删除文件。它还增加了写权限组中尚未有的读和执行权限。

假设我们有一个员工信息的文件,Alice应该是该文件的所有者。我们可以在一个真实的Windows服务器上做这件事。这里有一个包含该雇员文件的文件夹。如果我们右击这个文件,从弹出的菜单中选择 “属性”,就会看到关于这个文件的一些一般信息。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

继续点击安全标签,目前,第一件事是将Alice设置为文件所有者。我们可以通过点击高级(Advanced),打开文件的高级安全设置来做到这一点。在这里,可以看到,管理员目前拥有该文件。继续点击 "更改 "链接,让Alice拥有这个文件,输入Alice,然后使用 “检查名称”,它将自动完成为Alice Jones。然后,点击确定。这样就完成了修改。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

现在,如果我们也想让Alice完全控制这个文件,可以在继续点击添加按钮来实现这一点。委托人(principle)是指要接受这些权限的用户或对象。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

选择一个委托人,然后再次输入Alice的名字。现在她被选为委托人。然后将权限设置为全部允许。

Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

五、高级授权概念(Advanced authorization concepts)

1.默认拒绝原则

隐性拒绝原则(Implicit deny principle),也被称为默认拒绝,是访问控制系统的基本原则之一。这个原则说,任何没有明确允许的东西都应该被拒绝。如果计算机没有明确指示如何处理某种情况,它应该默认为拒绝访问。防火墙是默认拒绝原则发挥作用的最常见例子。当防火墙收到一个连接请求时,它首先查阅其规则,以确定是否有规则明确地处理这种情况。如果防火墙找到一个匹配的规则,它就执行该规则中的行动。如果防火墙没有处理该请求的明确指导,它将阻止该连接请求。默认拒绝原则是一个非常重要的安全概念,特别是当它涉及到防火墙配置时。

2.RBAC

基于角色的访问控制系统(Role-based access control systems或RBAC)简化了管理授权的一些工作。管理员不需要试图管理单个用户的所有权限,而是创建基于工作的角色,然后将权限分配给这些角色。然后,他们可以将用户分配给角色。使用这样的方式,管理员这在前期要做更多的工作,但它使以后的工作更轻松一点。当一个新用户到来时,管理员不需要弄清楚该用户需要的所有明确的权限。用户只需要被分配到适当的角色,所有的权限都会随之而来。同样地,当一组用户需要一个新的权限时,管理员不需要将该权限应用于所有的个人用户。相反,他们可以把权限分配给角色,所有拥有该角色的用户将自动收到该权限。

3.ABAC

基于属性的访问控制(attribute-based access control system),或称ABAC,是一种比基于角色的访问控制更普遍的访问控制类型。ABAC不要求管理员将用户归入定义的角色,而是允许管理员根据用户、对象和情况的属性来编写安全策略。ABAC允许实施有条件的访问限制。例如,在一个基于属性的访问控制系统中,我们想允许经理们只在高管们在3月份确定了绩效增长后才访问工资信息。可以用以下的属性来限制访问。用户必须有一个经理的类别,并且用户必须是数据被请求的个人的经理,或者用户必须是该个人的经理的经理,并且日期必须是2021年3月15日之后。

4.基于位置的访问控制

基于位置的访问控制(location-based access control)策略通过将用户的物理位置作为一个属性来扩展属性模型。例如,我们要求该人只有在实际位于自己的某个办公室时才能访问这些数据。

5.基于时间的访问控制

一些组织选择实施一天中的时间限制(Time-of-Day Restriction),以限制下班后对计算资源的使用。

六、数据库访问控制(Database access control)

数据库使用几种类型的认证和授权技术来保护它们所包含的敏感数据。数据库认证使用了许多我们已经谈过的相同概念。我们可以创建数据库用户,然后使用密码或其他认证机制对数据库进行认证,可用的具体技术将取决于你所使用的数据库平台。例如,Microsoft SQL Server支持三种类型的用户认证。

  1. 在SQL Server认证模式下,数据库使用在数据库服务器内部创建的本地用户账户;
  2. 在Windows认证模式下,数据库使用通过底层操作系统提供的Windows账户,这可能是通过Active Directory使用集中式认证;
  3. 在混合认证模式下,可以同时使用本地账户和Windows账户。
    Security+ 学习笔记22 授权一、了解什么是授权(Authorization)二、强制访问控制(Mandatory access control)三、自主访问控制(Discretionary acess controls)四、访问控制列表(Access control lists)五、高级授权概念(Advanced authorization concepts)六、数据库访问控制(Database access control)

其他数据库平台可能使用类似的认证技术,将本地账户与中央认证系统中的账户结合起来。有两种主要技术可以用来控制数据库授权:

  1. 我们可以将一个账户指定为一个角色的成员,该角色带有预定义或管理员定义的权限。例如,一个角色可能允许对整个数据库进行只读访问,另一个角色可能允许完全的管理访问,而第三个角色可能允许创建和管理备份所需的有限管理权限;
  2. 我们还可以为个人账户分配非常细化的访问权限。例如,可以授予一个用户从一个表中选择对象和向另一个表中插入对象的权限。

参考资料来源:

https://www.linkedin.com/learning/paths/become-a-comptia-security-plus-certified-security-professional-sy0-601

继续阅读