在Hadoop/Spark方面,我们只有基于角色的、有限的访问控制列表(ACL)。但我相信有一条可以更进一步的道路:在更广泛的安全市场采用已经出现的基于策略的方法。为了探索这一方法要如何才能奏效,我们需要重新审视访问控制的历史,以及其如何演变,进而产生了基于策略的模型。
回顾访问控制的历史
尽管在最开始的时候,会有用户名和密码的身份验证,以防止任何人的随便进入访问,理查德·斯托曼说。
但这样的访问身份验证登录系统存在一个固有的问题。即我们的用户/密码组合的数量会随着新的应用程序的不断增加而趋于出现爆炸似增长,所以我们最终必须以不同的用户名/密码来登录到每一款不同的应用程序。更糟糕的是,一些应用程序甚至要求了不同的密码,以达到不同级别的安全性。
我们开始变得更加聪明,通过用户名来区分我们的“角色”。例如,我们有一套“用户名/密码”,但为了访问某些管理功能,则需要该用户名/密码具有“管理员”的作用。然而,鉴于每一款应用程序都倾向于有自己的部署方式,所以您仍然需要记住越来越多的各种密码列表。
我们甚至变得更聪明,创造了中央系统,最终成为LDAP、活动目录等等。这些统一的用户名/密码被存储在一个核心库,并建立一个位置,能够针对给定用户的角色来查找相应的用户名/密码——但这只是以一个问题代替了另一个问题。
在一个理想的世界中,每一款新的应用程序都会在活动目录中
查看角色列表,并将其映射到应用程序角色中,所以便会有一个干净、一对一的关系。但在现实中,大多数应用程序对于角色的理解都是不同的,这非常简单,因为您可能是某一款应用程序的管理员,但这并不意味着您应该是另一款应用程序的管理员。最终的结果是,您会有各种爆炸增长的角色,来取代爆炸似增长的用户名/密码组合。
这就引出了一个问题:最终要由谁来负责添加新的角色?其往往是承担了行政职能或人力资源管理职能的IT管理人员。而由于从事这些诸如负责添加新的角色等琐碎的工作任务的人员,对于相关的应用程序并没有很好的理解,使得这样的工作往往最终成为了一个“经理审查批准”或“橡皮图章”了,而并非如他们所说那样好。
许多仍然存在角色问题的应用程序采用AD进行身份验证,并让应用程序处理自己的本地角色的实现问题。关于这种方法有很多值得探讨的地方,因为这很显然,应用程序的管理员知道谁应该有什么权限级别的访问。
同时,有明确的规则不适合于用户/角色系统。在其最简单的方面,例如,不能因为我是某家银行的客户,就意味着我可以从任何帐户取钱,即使我有“可以从该银行取钱”的角色。角色通常需要与数据相关联,这就是为什么我们要用ACL映射到我们的数据存储条目的原因所在了。也就是说,帐户1234需要进行一个关联,确定了我作为该1234帐户的所有者,同时我的配偶作为一个授权的帐户管理员。
然而,一些企业有比“这是您的吗?”或者“您在这方面有什么权限?”更复杂的规则。相反,他们会使用您可能称之为“基于环境”或“基于政策的”安全规则。换句话说,当我在美国本土的时候,我可能有取钱的权限。这在一个ACL或基于角色的模型是没办法表达的。相反,我们已经有了跨基于策略的安全性。
当您只能在特定的时间执行一些工作
基于策略的安全性通常存在于一个中央存储库,并且依赖于中央认证机制(LDAP、Kerberos等等)。所不同的是,并非保持一个简单的角色(如可以取钱),每个用户都与一组策略相关联。该策略是基于与用户相关的一组属性所制定的,其也被称为基于属性的访问控制(ABAC)。这些政策不能集中强制执行,因为他们是完全依赖于应用程序的。
目前已经有相应的标准对其进行支持了,部分原因是由于国防业及其他相关行业的选择所推动的。其中的一个标准便是可扩展访问控制标记语言(XACML),其允许您表达一组管理政策。执行通常是基于应用程序的,使用某种算法或规则系统。XACML是一种相当全面的标准化的语言,用于表达甚至处理诸如政策冲突或两种算法执行一种政策的冲突等异常。
通常这些ABAC驱动的政策,在RBAC的情况下,都是基于数据的,而不是单独基于应用程序功能的(您只能当您在美国为特定企业工作,并且是一名工作良好、遵纪守法的信誉公民时才可以访问F-22示意图)。应用该政策的第一个步骤之一就是身份识别,并“标记”政策规则应适用的数据。
为什么要关心先进的安全攻击问题
显然,利用ABAC模式的政策和XACML较之RBAC无疑是向前迈进了一大步。哪怕仅仅只是为了避免1亿美元的高额罚款,您也应该有这样做的动机。我所指的这里的1亿美元罚款,那里的1亿美元罚款,过不了多久加起来就会让您损失惨重。
此外,一些企业组织有复杂的规则和数据的所有权。由于这些公司越来越多地转移到成为数据驱动的企业,但又不能分析一切的数据,无需集中,他们所需要的是超越了今天一般性的RBAC模型的系统。此外,为了使其方案是可行的,他们将需要标记和库,让他们能够适用相关的政策,表达诸如XACML以及集中管理政策的工具,同时将其应用到局部有意义的地方。
当我们来看看今天的大数据产品,如Ranger和Sentry时,没有哪一款产品能够很好的解决上述问题。即使是基于关系数据库的系统解决方案也往往是专有的、昂贵的,往往是不完整的。制定了高安全性与复杂的安全规则的企业组织必须强制自己实施这一规则。但是,诸如大数据系统如Hadoop这样的数据标注工具仍处于起步阶段。
换句话说,对于供应商们而言,有一个巨大的市场机会。显然,国防工业的企业或将成为他们的第一个客户,因为他们已经有做这方面的必要性了。随着越来越多的企业为大数据分析创造中央数据仓库,基于策略的安全需求将会进一步增长。
本文转自d1net(转载)