26、提升基于属性的访问控制策略复用性及数据库访问约束监控

提升基于属性的访问控制策略复用性及数据库访问约束监控

在当今数字化的时代,访问控制策略的管理和数据库访问的安全性至关重要。本文将介绍两种提升访问控制效率和安全性的方法,分别是基于策略模板提升基于属性的访问控制策略复用性,以及利用 RBAC 元模型监控数据库访问约束。

基于策略模板提升基于属性的访问控制策略复用性

在基于属性的访问控制(ABAC)中,策略规范变得越来越复杂。为了提高策略的复用性和模块化,引入了策略模板的概念。

策略模板的效果

通过一个案例研究,对比了使用和不使用策略模板时策略的规模指标:
| 指标 | 不使用策略模板 | 使用策略模板 |
| — | — | — |
| 策略定义的代码行数 | 57 | 56 (98.2%) |
| 策略定义中的语句数量 | 367 | 205 (55.6%) |

从表格数据可以看出,使用策略模板对代码行数影响不大,但显著降低了表达策略所需的语句数量。这是因为策略模板用更简洁的方式替代了复杂规则或频繁出现的模式。

相关工作对比

与之前的研究相比,本次工作的主要区别在于:
- 专注于由具体策略语言支持的基于属性的树状策略模板。
- 将策略模板推广到策略模块。
- 验证了策略模板的潜力。

工作背景与挑战

当前的基于属性的策略语言虽然能表达广泛的规则,但策略规范变得更加复杂。这与 Sandhu 等人的观点一致,他们认为 ABAC 虽然有很多好处,但也带来了属性管理复杂性增加等风险和挑战。NIST 最近发布的 ABAC 指南也指出了相关的开放挑战和企业应用 ABAC 的愿景。

本次工作虽然引入了策略模板,但这只是有效部署 ABAC 的第一步。下一步需要将模块化策略管理扩展到模块化属性管理。

策略模板的应用

策略模块化工作还有一个有趣的副作用,即可以明确分离应用程序提供者和使用组织的角色:
- 应用程序提供者确定应用程序中资源的结构,包括资源类型、属性和支持的操作。
- 使用组织确定主体的结构,包括主体类型和属性。
- 策略通过表达哪些主体可以对哪些资源执行哪些操作来结合两者。

策略模板可以具体化主体和资源的结构,有助于简化访问规则的正确规范,例如用于完整性检查。

未来展望

目前,策略语言 STAPL 是作为 Scala DSL 构建的,虽然 Scala 为 DSL 和模块化提供了强大的功能,但从长远来看,希望本文提出的概念能被纳入独立于语言的策略语言,如 XACML。

利用 RBAC 元模型监控数据库访问约束

角色基访问控制(RBAC)广泛应用于组织的访问管理,但一些高级概念,如基于历史的职责分离,在现代系统中尚未得到充分应用。本文提出了一种基于模型的方法,用于验证组织的高级 RBAC 政策在数据库层面的实现。

RBAC 基本概念

RBAC 包含用户、权限和角色三个集合,以及用户 - 角色分配(UA)、角色 - 权限分配(PA)和角色层次关系(RH)三个关系。此外,RBAC 还支持角色层次结构和基于角色的授权约束,其中最著名的授权约束是职责分离(SoD),分为静态和动态两种形式。

  • 静态 SoD 通常以互斥角色的形式表达,在用户分配角色时强制执行。
  • 动态 SoD 在运行时强制执行,需要访问历史来做出访问决策。

下面是 RBAC 元模型的部分类图:

classDiagram
    class Role {
        name : String
        maxMembers : Integer
        maxJuniors : Integer
        exclusiveJuniorsAllowed : Boolean
        maxSeniors : Integer
    }
    class DynamicRule {
        name : String
    }
    class Permission {
        maxRoles : Integer
    }
    class Action {
        name : String
        isCreation : Boolean
        isDeletion : Boolean
    }
    class ResourceType {
        name : String
    }
    class MutuallyExclusive {
        id : String
        wrtUserAssignment : Boolean
        identicalSeniorAllowed : Boolean
        wrtPermissionAssignment : Boolean
        wrtJuniors : Boolean
        wrtSeniors : Boolean
    }
    class DynamicSoD {
    }
    class TypePermission {
    }
    class Access {
        time : Integer
    }
    class Resource {
        name : String
    }
    class ResourceProperty {
        name : String
        position : Integer
    }
    class ResourcePropertyValue {
        value : String
    }
    class User {
        name : String
        maxRoles : Integer
        maxRolesRespectingHierarchy : Boolean
    }
    Role "1" -- "*" User : UA
    Role "1" -- "*" Permission : PA
    Role "1" -- "*" Role : RH
    Permission "1" -- "*" Action
    Permission "1" -- "*" ResourceType
    DynamicSoD "1" -- "*" Role
    DynamicSoD "1" -- "*" Action
    DynamicSoD "1" -- "*" ResourceProperty
    Access "1" -- "*" User
    Access "1" -- "*" Resource
    Resource "1" -- "*" ResourceProperty
    ResourceProperty "1" -- "*" ResourcePropertyValue
USE 工具

USE(UML 规范环境)是一个支持 UML 类图、对象图、状态图、序列图和通信图,并扩展了 OCL 的工具。它可以帮助开发者验证和验证模型的特性,包括一致性、无冗余性、检查约束的后果和可达性。

USE Monitor 是 USE 的一个插件,用于支持 Java 应用程序的运行时验证。它允许开发者连接到正在运行的应用程序,获取其当前状态的快照,并根据定义的约束进行验证。

监控 RBAC 约束的步骤

监控 RBAC 策略在数据库中的实现分为以下几个步骤:
1. 步骤 1:从数据库中检索 RBAC 相关信息 :使用 USE 监视器从数据库中检索与整体 RBAC 策略相关的信息,包括定义的角色、表、列和数据库用户,并根据 RBAC 元模型在 USE 工具中创建对象。
2. 步骤 2:应用组织 RBAC 政策 :将组织的 RBAC 政策应用到从数据库中提取的信息上。这些政策包含了数据库中无法指定的规则,如静态和动态 SoD 约束。
3. 步骤 3:验证数据库权限与 RBAC 政策 :运行组织政策的基本和扩展验证任务。基本验证评估元模型上定义的不变量,以发现静态 RBAC 约束的违反情况;扩展验证应用更强大的模型查找技术来验证配置的假设。
4. 步骤 4:生成动态方面的测试用例(可选) :使用相同的模型查找方法生成用于验证动态 RBAC 政策的测试用例,生成违反给定动态政策的场景。
5. 步骤 5:动态 RBAC 政策的运行时验证 :在运行时验证动态 RBAC 政策。

graph LR
    A[步骤 1:从数据库中检索 RBAC 相关信息] --> B[步骤 2:应用组织 RBAC 政策]
    B --> C[步骤 3:验证数据库权限与 RBAC 政策]
    C --> D{是否需要动态测试}
    D -- 是 --> E[步骤 4:生成动态方面的测试用例]
    D -- 否 --> F[步骤 5:动态 RBAC 政策的运行时验证]
    E --> F

通过以上方法,可以提高基于属性的访问控制策略的复用性,同时有效监控数据库的访问约束,保障系统的安全性和可靠性。在未来的工作中,还可以进一步探索策略模板的应用和扩展模块化属性管理,以更好地应对复杂的访问控制需求。

提升基于属性的访问控制策略复用性及数据库访问约束监控

可行性研究

为了评估利用 RBAC 元模型监控数据库访问约束这一方法的适用性,进行了一项非平凡的可行性研究。研究使用了一个公开可用的中等规模数据库,对约 100,000 个数据库元组进行监控,并分析了约 10,000 次对元组的访问操作以及动态职责分离规则的违反情况。

研究结果表明,该方法在实际案例中是可行的,能够有效地验证组织的高级 RBAC 政策在数据库层面的实现,帮助安全官员检查数据库中更强大政策的正确实施,可能跨越多个应用程序。

相关工作讨论

在访问控制领域,已经有许多相关的研究工作。例如,在从基于角色的访问控制(RBAC)向基于属性的访问控制(ABAC)的演变过程中,角色模板逐渐被推广为基于属性的策略。

与之前的研究相比,本次工作的独特之处在于:
- 专注于基于属性的树状策略模板,并由具体的策略语言支持。
- 将策略模板推广到策略模块,并验证了策略模板的潜力。
- 提出了一种基于模型的方法,用于验证组织的高级 RBAC 政策在数据库层面的实现。

总结与展望
总结

本文介绍了两种提升访问控制效率和安全性的方法:
- 引入策略模板来提高基于属性的访问控制策略的复用性。策略模板可以显著降低表达策略所需的语句数量,有助于简化策略规范,并且可以明确分离应用程序提供者和使用组织的角色。
- 利用 RBAC 元模型监控数据库访问约束。通过基于模型的方法,可以验证组织的高级 RBAC 政策在数据库层面的实现,帮助安全官员检查数据库中更强大政策的正确实施。

方法 优点
策略模板 降低语句数量、简化策略规范、分离角色
RBAC 元模型监控 验证高级政策、检查数据库实现
未来展望
  • 扩展模块化属性管理 :目前,虽然引入了策略模板,但有效部署 ABAC 还需要将模块化策略管理扩展到模块化属性管理。未来的工作可以进一步探索如何实现模块化属性管理,以更好地应对 ABAC 带来的属性管理复杂性挑战。
  • 深入研究策略模板应用 :策略模板在具体化主体和资源结构、简化访问规则规范方面具有潜力。未来可以进一步研究如何更好地利用策略模板进行完整性检查等应用,以提高访问控制的准确性和可靠性。
  • 集成到独立语言 :目前策略语言 STAPL 是作为 Scala DSL 构建的,从长远来看,希望本文提出的概念能被纳入独立于语言的策略语言,如 XACML,以提高其通用性和适用性。
  • 拓展 USE 工具应用 :USE 工具及其插件 USE Monitor 在验证和监控方面具有一定的优势。未来可以进一步拓展其应用范围,例如支持更多的目标平台,提高其在不同系统中的实用性。
graph LR
    A[扩展模块化属性管理] --> B[更好应对 ABAC 挑战]
    C[深入研究策略模板应用] --> D[提高访问控制准确性]
    E[集成到独立语言] --> F[提高通用性和适用性]
    G[拓展 USE 工具应用] --> H[支持更多目标平台]

通过不断的研究和改进,相信这些方法将能够更好地满足复杂的访问控制需求,为系统的安全性和可靠性提供更有力的保障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值