基于动态权限管理的数据安全保障
扫描二维码
随时随地手机看文章
0 引 言
随着信息化的不断发展,信息交互在各信息化系统中的重要性愈发凸显,同时对信息系统海量数据的安全性要求也在不断提高。但目前因信息系统用户权限分配漏洞而产生的数据泄露事故时有发生。
2017年京东内部员工涉嫌窃取涉及交通、物流、医疗、社交、银行等个人信息 50亿条,通过各种方式在网络黑市贩卖。在2013至 2014年间,雅虎两次被未经授权的第三方分别盗取超过 5 亿和 10 亿条用户账户信息,内容涉及用户姓名、电子邮箱、电话号码、出生日期和部分登录密码。同样,顺丰出现过多次内部人员泄露客户信息事件,其中包括将个人掌握的公司网站账号及密码出售给他人,编写恶意程序批量下载客户信息,利用多个账号大批量查询客户信息,通过购买内部办公系统地址、账号及密码,侵入系统盗取信息或者研发人员从数据库直接导出客户信息等。2016 年孟加拉国央行被黑客攻击,攻击者通过网络攻击或者其他方式获得了孟加拉国央行 SWIFT 系统的操作权限,导致 8 100 万美元被窃取。
以上事件表明,未采取有效的数据访问权限管理、身份认证管理、数据利用控制等措施是大多数企业内部人员盗窃数据的主要原因。因此,加强信息系统数据安全管理不仅需要确保对用户数据进行加密处理,还需要对数据的访问权限进行精准控制。
对于现有电力系统营销网络,根据各项业务的要求,系统功能可划分为两部分,即营销管理信息系统(包括核心业务模块、管理功能模块等)和与其他系统的接口。其对内为公司提供经营数据,对外为政府提供社会用电数据,同时还包含了各服务提供商以及用户的大量数据。电力营销系统受多方输入、操作员随意性输入、缺乏数据校验机制、认为故意破坏等因素影响,使得营销系统中存放的敏感的供电企业信息与大量客户数据信息易被泄露,而这些数据一旦泄露不仅会直接影响业务营销的开展,还可能造成巨大的经济损失和政治损失。因此,如何保障营销管理信息系统数据安全,防止电力系统营销数据不被非法窃取至关重要。
Lafuente 等人 [1] 从数据加密、权限访问控制、数据管理框架等多个方面总结了大数据背景下面临的数据安全挑战。ZHOU Mi 等人 [2] 介绍了大数据在电力系统中的应用以及安全问题。通过总结移动平台中基于Token 的安全访问控制 [3] 和大数据平台的身份认证 [4] 以及计算机系统中基于 Token 的权限管理机制[5],为后续工作的展开奠定了基础。近年来发生的大数据安全事件[6-7],风险成因复杂交织,既有外部攻击,也有内部泄露,既有技术漏洞,也有管理缺陷 ;既有新技术新模式触发的新风险,也有传统安全问题的持续触发。而且威胁范围全域覆盖,大数据安全威胁渗透在数据生产、流通和消费等大数据产业链的各个环节,包括数据源的提供者、大数据加工平台提供者、大数据分析服务提供者等各类主体。对营销系统而言,目前信息网络高度发达、移动设备等十分便捷,使得营销系统中存放的敏感的供电企业信息与大量的客户数据信息易被泄露,可能造成巨大的经济损失和政治损失。
为避免数据泄露带来的重大损失,针对作为各个行业信息化建设重要基础支撑的大数据在收集、存储、传输和使用过程中面临的诸多安全风险,分析了大数据在这些过程中面临的安全威胁 [8]。阐述了大数据相关系统平台和大数据应用中安全保障的关键技术及最新进展,包括用户访问控制、数据隔离、数据完整性、隐私保护、安全审计、高级持续性攻击防范等,以应对云计算、物联网、移动互联等新技术的快速发展对大数据带来的安全挑战和更高的安全要求。大数据在电力系统中的应用为电力系统的安全保障带来了更大挑战[9-10]。为解决这一问题,基于角色的权限访问控制被应用到数据的访问及存取中 [11-12]。此外,当前大部分网络信息系统中均存在安全隐患[13-16],因此,如何采取有效的安全措施以防止数据泄露至关重要。
1 研究问题
在信息系统中,为了保障数据安全,最大程度地防止数据被非法读取或者修改,往往会为不同的用户分配不同的操作权限,从而达到保护数据不被非法访问的目的。最简单有效的做法就是为用户静态分配权限,即在创建用户时为该用户分配相应的权限。例如,管理员具有系统最高权限,而普通用户则具有较低权限。这种方法简单有效,但也会带来诸多问题 :
(1) 用户权限过低。当该用户运行某项业务需要访问超出其所有权限的部分数据时,会导致该项业务操作失败,而要继续进行该项业务则只能注册新用户并分配相应权限,此举不仅会降低系统应用的效率,甚至会为企业带来一定的经济损失。
(2) 用户权限过高。该用户可以正常进行某些业务的操作,但其也具有访问与操作无关数据的权限。若该用户在进行该操作时常访问与该业务无关的数据,可能会造成数据被非法访问的安全隐患。
(3) 用户职能的改变。某一用户职能发生变化时,其权限也随之改变,而对于静态分配用户权限的信息系统来说,只能注销旧用户,然后创建新用户,但此举会降低系统效率。
为弥补用户权限静态分配的缺点,用户的权限应根据具体任务的不同而发生变化,不应处于静态。此外,为防止系统内部人员或非法操作人员窃取数据,应做到用户与数据的隔离,将用户与系统业务功能相关联,将业务功能与数据相关联。因此有必要探索用户的动态权限管理与认证方法,实现任务感知的权限管理。
(1) 针对电力系统营销网络,明确业务分类和业务功能与不同身份用户的关系 ;
(2) 明确业务功能与数据的关系,分清有效数据和无关数据;
(3) 为用户动态分配业务操作权限并根据日志信息动态修改业务与数据的关联关系。实现对用户非法连接的判断及安全隐患的检测,并能及时向系统管理员发出警报。
此外,还要考虑系统运行环境的动态性,当各子系统中增加新设备时,首先要对该设备进行安全检查,比如检查 IP 等, 如果是合法 IP 则允许接入系统,同时还会在设备管理模块增加该设备的信息。
2 研究方法
为防止系统内部人员或非法人员直接从数据库中窃取数据,本文设计了一种用户与数据隔离的方案,通过为用户动态分配业务操作权限和关联业务功能与数据实现保护系统数据安全的目的。具体权限授予过程如图 1 所示。
系统根据用户的不同身份为其初始化业务操作权限,并且低等级用户可以向更高等级用户申请自身不具备的权限。另外,当用户向系统发出操作请求后,由系统生成并分发给该用户作为数据访问权限的 Token,在进行数据访问时验证 Token 的有效性,进而才能获取数据信息。
2.1 用户权限与业务功能动态分配
为初始化分配不同身份用户的业务操作权限,需要对业务进行分类,根据业务执行需要不同的数据操作权限以及需要访问数据的不同敏感程度分为四类。另外,根据某项业务的具体步骤,比如查询、修改和删除等,在执行相应步骤时也需要不同权限 :
一类 :查询类业务。包括大部分监控类业务,需要不断读取各种运行状态(业务运行状态、接口状态、终端状态等)信息 ;台帐管理中的查询部分。
二类:数据读写类业务。包括台帐管理中的运维管理、支撑单位管理和安全督查等,需要对相关阶段的结果做录入、修改和删除等操作。
三类 :敏感信息的查询、修改操作。对用户信息、设备资产信息、支撑单位保密信息等的查询和修改操作。
四类 :敏感信息的删除操作。一般情况下,用户不具有对敏感信息的删除操作权限,需向更高等级用户申请该权限。
相应地,用户登记可以根据不同业务或同一业务的不同操作分为四类,而相应权限也越来越高。高等级用户具有低等级用户的全部操作权限,而当某低等级用户需要更高等级的操作权限才能完成某项工作时,可以向高等级用户申请操作权限,高等级用户的权限分配方式分为以下两种:
(1)授权。高等级用户通过授权的方式赋予低等级用户某项操作权限,而自已同时也保留此项权限。
(2)权限转移。高等级用户通过权限转移的方式赋予低等级用户某项操作权限,而有时为了保证需要访问的数据只有唯一用户操作,此时,高等级用户将暂时不具有此项权限。
无论是授权还是权限转移的方式,低等级用户得到的某项权限只是暂时的,在授权或权限转移的过程中,高等级用户需要为该项权限增加一个有效期或数据访问次数限制。
2.2 业务功能与数据动态关联
2.2.1 业务功能与数据关联设计
除了上文中需要为不同用户分配不同的业务操作权限外, 还需要根据用户访问数据的日志信息动态更新业务功能与数据之间的关系,因此在数据库中设计两张关系表保存数据权限以及业务功能和需要访问的数据之间的关系。数据 - 权限关系见表 1所列,业务功能 - 数据关系见表 2 所列。
数据权限关系表用定长记录来存储,为每个数据块分配唯一确定的访问权限字段,包括只读和读写权限,只有取得该数据项的访问权限才可访问,每个用户在操作前先要进行身份认证,认证是否通过则根据用户请求的不同操作授予相应权限。
管控系统根据对日志信息的分析处理得到业务功能与数据信息的映射关系表,表明某项功能需要访问的数据项有哪些。其中“访问数据块标识”字段用变长记录保存,系统可以通过分析用户访问数据的日志信息动态更新此表。当某一用户需要执行某项操作时,首先需要获取该项业务的操作权限,然后由系统分配给该用户一个根据映射关系表生成的 Token,其中包含了需要访问的数据项的权限字段以及其他相关信息, 如 Token 的有效期等。在进行数据访问时,系统验证该用户Token 的有效性,验证通过则可以访问数据。
2.2.2 Token 生成及分发
利用用户 ID、生成时间、过期时间(此处设置为 24 h)和业务功能需要访问数据块的权限字段生成一个全局唯一标识符(GUID)作为 Token。因为相同用户在同一时间不会进行两项操作,所以每次分配给用户的 Token 都是唯一的。由于生成的 GUID 是一个 128 位数组,为了方便携带以及提高Token 的安全性,使用 base64 编码把生成的 GUID 转变为一个较短的字符串,然后分发给该用户。
对于客户端,Token 分发给相应用户之后,用户保存在自身账户信息中,如浏览器的 cookies,当该用户进行某项操作并向服务器提出请求时,除了要向服务器发送请求信息外,还要把本地保存的 Token 一并发送到服务器。对服务器端而言,在生成 Token 分发给用户的同时还要把生成的 Token 保存在服务器中为每个用户创建的临时文件中,用于 Token 的验证,而不是把 Token 写入数据库,这样在用户完成某项操作或者退出系统后可以及时释放该文件。
2.2.3 Token 验证模块
当用户向服务器提交请求以及 Token 信息后,在服务器端相应用户的临时文件中取出 Token 与用户提交的 Token 进行比对,其结果存在多种情况 :
(1)Token 有效 :Token 字段中包含该用户需要访问的数据权限字段,并且在其有效时间内。
(2)Token 过期 :根据 Token 中的有效时间判断该用户的 Token 是否过期。
(3)Token 无效 :用户 ID 错误或者该用户不具有访问数据的权限。
3 结 语
本文针对营销系统数据安全设计了一种用户权限动态分配方案,通过用户与业务功能以及业务功能与数据的动态关联,实现用户与数据的隔离,有效防止电力营销系统数据被非法窃取,保证营销系统数据安全。