在跨企业部署ABAC系统之前,必须考虑许多因素。在充分考虑目前技术状况和总结联邦政府内部多次尝试在大型企业中部署ABAC的经验教训的基础上,整理了一些指导原则供读者借鉴。这些建议按照下图所示的NIST系统开发生命周期(SDLC)的各个阶段分别给出。有关SDLC的更多信息,请参阅[NIST800-100]。企业ABAC部署主要考虑前四个阶段:启动、获取/开发、实施/评估和操作/维护。
ACM NIST系统开发生命周期(SDLC)
企业ABAC的开发和部署需要考虑许多影响其设计、安全性和互操作性的因素。这些因素导致了一系列应该考虑的问题:
• ABAC实施的项目论证。开发/获取新功能和从旧功能过渡的成本是多少?ABAC提供了哪些重要的好处?ABAC引入了哪些新的风险(如果有的话),需要哪些新的管理结构来管理共享的功能和策略文档?这些策略以前都是由人工介入的决策。哪些数据集、系统、应用程序和网络需要ABAC功能?数据丢失或误用如何管理?
• 了解运营需求和整个企业架构。如何管理、监视和验证权限以实现合规?企业将公开哪些接口和客体用于信息共享?将使用什么ACM?如何共享和管理主体和客体属性?访问控制规则是什么?它们是如何抽取、评估和执行的?企业内部如何管理信任?
• 建立或完善业务流程以支持ABAC。访问规则和策略是否被充分理解和记录?如何识别和分配所需的属性?如何以层次化方式应用多个策略并消除冲突?如何处理访问失败?新策略由谁创建?如何共享和管理公共策略?
• 开发和获取一套可互操作的能力。互操作性如何实现?如何将身份管理中的主体属性集成到ABAC中?如何处理不同或特殊的身份需求?如何跨企业实体共享和维护主体属性?身份验证、授权、属性管理、决策或强制执行能力的集中化实现和分布式部署的利弊是什么?如何在策略决策中使用环境条件?在策略决策中,信任在安全、质量、准确等层面是如何量化、传递和使用的?如何在组织之间映射主体属性?如何制定策略以整合最新的可用主体、客体和环境条件属性集?
• 性能评估。如何为未连接、带宽受限或资源受限的用户管理主体属性?企业新成员的接口规范如何可用?属性和策略更改的质量和及时性如何衡量和实现?整个系统和端到端性能是否足够?
启动阶段的考虑
在启动阶段,企业评估ABAC系统的需求及其潜在用途,确定ABAC系统是一个独立的信息系统,还是已有系统的一个组件。一旦这些任务完成并确定ABAC的能力需求,在ABAC系统获得批准之前,还需要一些工作,包括明确定义目标和高级需求。在这个阶段,企业需要定义ABAC系统的高级业务、操作需求以及企业架构。
采购/开发阶段的考虑
在采购/开发阶段,企业通过设计、购买、编程、开发等各种方式来搭建系统。通常,在此阶段,组织准备要在企业范围内运行的业务流程,并定义要部署和集成的系统。在这个阶段的第一环节,企业应该同时定义系统的安全性和功能需求。在这一阶段的最后环节,在项目进入实施/评估阶段之前,组织应对技术和安全特性/功能进行开发性测试,以确保它们能够按预期运转。
实施/评估阶段的考虑
在实现/评估阶段,组织安装或实现系统,配置并启用系统的安全特性,测试这些功能特性,最后获得操作运行该系统的正式授权。在这个阶段中,大多数的考虑都集中在优化性能和确保安全功能的正常运行方面上。
操作/维护阶段的考虑
在操作/维护阶段,系统和产品均已就位,系统的操作、增强和修改已经开发和测试完毕,硬件和软件也得以到添加或更换。在此阶段,组织应当监控系统的性能,以确保其符合预先设定的用户和安全需求,同时所需的系统修改也已完成。
公众号《权说安全》首发