一种面向Hadoop平台的自适应授权机制
2021-04-09左冉,赵刚
左 冉,赵 刚
(北京信息科技大学 信息管理学院,北京 100192)
0 引言
Apache Hadoop作为支持多租户服务的分布式平台,存储和处理着海量数据[1],单凭Linux/Unix系统自带的访问控制机制,无法保障平台中数据的安全。现有的访问控制模型也未充分考虑用户权限需随时间动态变化的特点,如目前主流的授权管理开源框架Apache Sentry和Apache Ranger分别采用基于角色和基于策略的访问控制模型[2],二者在实现动态实时授权方面有所欠缺,在实现细粒度授权时也严重依赖于管理员的专业知识。在实际业务中,大数据平台通常面对来自不同组织、机构或部门的访问主体,难以保证权限调整的及时性。为了做到既能保护用户的敏感数据免受非授权访问,又能妥善应对多主体随时间变化的权限伸缩要求,本文设计了一种面向Hadoop平台的自适应授权机制。
1 亟待解决的主要问题
在Hadoop生态环境实施大数据计算处理的实践中,亟待解决的3类常见访问控制问题如下。
1.1 用户越权访问
越权行为可分为横向越权、纵向越权和交叉越权。横向越权指异常用户试图访问或更改其他用户所拥有的数据资源,如用户A和用户B都拥有普通用户权限,但用户A试图更改用户B的数据资源;纵向越权指低权限者试图访问高权限者的数据资源,即有风险用户试图访问高敏感的资源,如新用户试图删除专职管理人员才可操作的系统数据资源;交叉越权指某一用户既有横向越权行为,又有纵向越权行为。无论哪种越权方式,均说明用户账户存在被恶意访问或被盗用的可能性,使得存储在Hadoop中的数据面临被泄露、篡改和删除的风险[3]。
1.2 用户权限范围不当
确保信息安全需要遵循最小化原则,即在满足工作需要的前提下,仅授予用户可访问信息的适当权限[4]。而在Hadoop平台的实际授权中,存在着大量授权不当的现象。常见的如特定业务人员只访问特定业务数据,却拥有访问整个平台数据的权限。对与业务不相关的数据资源权限若不能进行严格管控,当用户账号被盗用时会在短时间内造成大范围的数据资源泄露。有些用户的权限范围过小,当用户需要访问与其常访问资源存有依赖关系的资源,而用户又不具备这些资源的访问权限时,则需要多次向管理员申请权限,严重影响用户工作效率。
1.3 用户过量使用Hadoop平台
当用户以正常身份过量使用Hadoop平台,说明该用户近期业务需求较多,为避免影响用户工作效率,增加用户时间成本,需要根据用户访问行为判断用户可疑状态,决定是否适当放宽用户权限;若用户以异常身份过量使用Hadoop平台,则需加强警惕,异常访问会使得存储在Hadoop平台中的数据资产面临安全风险,此时若没有可靠的应对策略,一旦数据被未经授权的用户访问并窃取,将给企业和用户造成难以估量的损失[5]。
2 总体设计
针对以上3类问题,面向Hadoop大数据平台的自适应授权机制总体设计如图1所示,共分为3个层面,分别是用户层、自适应访问控制机制层和Hadoop组件层。
图1 自适应授权机制总体设计
2.1 用户层
Hadoop是一个可以开发和运行处理大规模数据的分布式系统架构,Hadoop生态圈包含许多功能各异的组件[7],每个组件都有自己的权限控制,可以用“各自为政”来描述不同组件间的访问控制关系。从Hadoop组件中获取用户/组的权限信息对于后续分析用户可疑性具有关键作用。
在用户层面,每个用户访问Hadoop分布式平台时都会留下大量行为信息,平台中的每个计算节点均存有用户的行为日志数据,因此日志收集工具也需要满足分布式这一特点。在本文中采用ELK日志收集工具,持续收集Hadoop平台各个计算节点上用户的行为与访问资源等日志信息,为后续对Hadoop平台访问主体进行全方位分析、制定或调整用户授权策略提供有力的数据支撑。
2.2 自适应访问控制层
自适应访问控制层是本文方案的核心,大数据平台中的资源受到未授权用户的访问,说明资源已经受到安全威胁,为解除或防御来自未授权用户的安全威胁,该层通过跟踪客户端的用户访问行为,追查用户的恶意访问操作,实时识别与定位异常和可疑用户,进而动态调整对大数据平台主客体之间的授权策略。自适应授权机制能够实现动态细粒度的授权,其原理的核心在于引入用户画像的概念,采用基于标签的授权策略,对不同类型主体实行差异化的权限管理。
如图2所示,首先通过Hadoop生态圈组件结合资源属性对用户历史行为信息进行提取,同时结合业务场景对用户现阶段状态进行评估,最后通过给用户打标签形成特定的用户画像,并进一步得出大数据平台主客体之间的权限映射规则。管理员根据用户标签所反映的用户类型判断用户可疑与异常状态,进而执行不同的授权策略,每一条授权策略都会存储在可伸缩性的访问控制策略表中,策略表将作为对用户进行动态细粒度授权的依据。
图2 自适应访问控制层设计
2.2.1 用户数据的提取与分析
在海量的数据中挖掘出可以对用户进行风险评估的指标,首先需要对数据信息进行有效提取、整理和分析。本文经过对Hadoop系统内在机制研究与模拟主体访问行为的实践,从审计日志中对用户信息进行分类提取和整理,收集整理之后的数据可分为3类,分别展示为表1中的用户访问行为数据;表2中本方案为用户赋予的其他数据;表3中资源自身数据与本方案为其赋予的其他数据。
表1 用户访问行为数据
表2 用户基本数据
表3 资源基本数据
2.2.2 用户评价指标设计
为了具象化用户评价指标,设计了用户画像标签体系。数据经统计分析后形成标签,通过多维度、分层级的标签标记和评估用户,构建可疑用户与异常用户等多个用户画像,能够帮助系统管理员完成可疑用户与异常用户的精准识别,减少对管理员专业知识的依赖。
随着标签的不断增加,必须重视标签的管理工作[8]。为了展示标签之间的结构与层级关系,方便标签的存储与维护,本文面向用户越权访问、权限范围不当和过量使用Hadoop系统3种场景,围绕用户行为设计了如图3所示的用户画像标签体系,主要分为用户基础属性、用户活跃情况、用户资源偏好、用户行为偏好、资源访问结果、用户状态评估等几大维度。
图3 用户标签化结果
2.2.3 审计日志设计
为了适应企业和组织日益迫切的信息系统审计和内控要求,为授权机制设计了审计日志。用户权限一旦发生变更,日志将记录管理员或系统自身对用户权限调整的信息,主要包括:1)被调整权限的用户名和该用户所在的用户组;2)权限调整的时间;3)被调整资源所在组件名称;4)被调整资源的具体名称;5)权限调整前此用户对该资源拥有的权限;6)权限调整后此用户对该资源拥有的权限;7)进行此次权限调整的管理员名称或标识系统自动调整。上述字段可以完整地体现权限变更的具体细节,方便日后开展授权审计工作。
2.3 Hadoop组件层
在自适应授权机制的Hadoop组件层面,主要提供对用户访问权限进行调整的功能。用户权限调整策略主要依赖于经数据分析后所得出的各类用户评价指标,即用户标签,每个标签都规定了管理者观察、认识和描述用户的一个角度[9]。根据用户标签进行用户权限调整的数据将存入数据库,通过调用API将最新权限信息写入访问控制列表,从而最终实现Hadoop平台用户权限的自适应调整。
3 应用场景
目前,自适应授权机制可以通过分析Hadoop平台中的审计日志分析用户行为。通过持续跟踪用户行为信息,记录用户访问轨迹,进而得出对不同用户的允许访问、禁止访问、提高权限、降低权限、发起警告等权限伸缩调整建议,对于较低风险的权限调整系统会自动完成,对于较高风险的权限调整需要依靠管理员人工确认。
3.1 用户越权访问场景
无论用户以哪种方式发起对无权资源的访问,均说明该用户存在对Hadoop平台或系统中敏感数据的非法入侵倾向。针对此场景,需要对越权行为进行分类,分别为潜在越权和成功越权。
具体权限调整策略如下:
if (用户A成功访问无权资源的次数!= 0):
则认定用户A成功越权,禁止使用Hadoop系统;
else if (用户A成功访问无权资源次数=0&&“访问失败”记录数>平均行为数量30%):
则认为该用户为潜在越权,对其发出警告;
else:
则认定用户A无越权行为,不做权限调整;
3.2 用户权限范围不当场景
管理员在为用户赋予权限时,往往不知道用户在后期使用过程中会具体访问哪些资源,致使初期赋予用户的访问权限范围可能与实际情况不符。针对这一问题,应该根据“权限范围是否符合需求”预测标签,判断用户访问权限范围是否恰当。当用户权限范围过大且包含敏感资源时,需要降低用户“常访问资源”以外的敏感资源权限;当用户认为权限范围过小时,可由用户提出资源权限申请,系统通过判断产生具体权限调整建议。具体权限调整策略如下:
if (用户A对某资源“访问频率”较低&&“访问周期”无规律):
则回收用户A对这部分资源的访问权限;
else if (用户A“近期行为风险”!=高风险&&“资源敏感等级”=低):
则系统自动将该资源赋予用户;
else:
则由管理员审批是否同意授权;
Hadoop中每个资源的敏感等级应由业务人员根据业务经验预先分类分级。
3.3 用户过量使用Hadoop场景
一般情况下,管理员无法预知用户近期业务需求,所以当用户过量使用Hadoop平台时,往往无法判断是因为用户的业务需求过多,还是因为用户账号被盗取。结合用户“近期行为风险评判”标签,当用户行为产生的记录数量远高于“用户每次登录所产生的平均行为数量”时,表明该类用户可能正在以异常身份过量使用Hadoop平台,当用户“近期行为风险”有异常时,需要限制该类用户使用Hadoop平台的时间甚至降低该用户的权限;反之,说明该类用户的近期需求较多,允许用户继续使用。具体权限调整策略如下:
if (用户A被判定过量使用Hadoop平台&&用户A“近期行为风险”=高风险):
则临时禁止用户A在Hadoop平台中的权限;
else if (用户A被判定过量使用Hadoop平台&&用户A“近期行为风险”=中风险):
则在用户A访问Hadoop平台时发出相应警告;
else:
则允许用户A继续使用Hadoop平台;
4 结束语
本文针对Hadoop大数据平台现有授权机制的不足,从访问控制领域面临的3类主要安全威胁出发,以实现动态授权为目的,充分考虑大数据环境下的主客体因素,引入用户行为分析方法对存在越权、权限范围不当以及过量使用Hadoop系统等异常状态的用户进行识别,进而生成不同的权限伸缩建议。本文提出的授权机制具有动态、可伸缩、细粒度的授权特点,能够在减少对系统管理员专业知识依赖的情况下,有效增强数据安全保障,进一步促进业务环境健康发展。