数据库安全集中管控系统的设计与实践
2016-05-14林岳鑫张文宇
林岳鑫 张文宇
【摘 要】为提高大型应用系统中数据库账号、权限的管理效率及系统安全性,设计、开发并实现了一个全方位的集中管控系统。该系统基于权限规范化管理策略,并通过调用各周边系统的接口,实现了对数据库账号、权限、角色等的集中管控。通过数据对比显示,该系统能够显著提高管理效率。
【关键词】Oracle数据库 集中管控 系统安全
doi:10.3969/j.issn.1006-1010.2016.06.019 中图分类号:TP399 文献标识码:A 文章编号:1006-1010(2016)06-0083-05
引用格式:林岳鑫,张文宇. 数据库安全集中管控系统的设计与实践[J]. 移动通信, 2016,40(6): 83-87.
1 引言
随着业务的飞速发展,业务系统支撑用户数持续增长,数据量不断攀升,同时为满足业务发展需要,应用版本频繁变更,新建设上线的系统也越来越多,这无疑给数据安全性管理带来了极大的挑战。
作为省级移动运营商,核心系统的数据库中保存了各类重要且敏感的业务数据,任何数据库账号方面的安全隐患如非法的数据新增、读取、变更以及不安全的账号策略、弱口令等,都可能造成用户关键信息的丢失或泄露。因此,需要针对业务系统数据库定制相应的账号安全加强解决方案,采取有效的措施确保系统数据的安全性。主要从以下方面考虑:
(1)账号统一集中管理,加强密码保护,减少用户密码泄露,保障用户密码的安全,从而提升数据库的安全级别。
(2)实现数据库现行用户全面梳理以及规范化,删除或锁定工作无关的账号,实现一人一号,回收无用账号以降低泄露风险。
(3)针对各种账号的访问目的、不同密码需求定制属性组,调整账号数组的密码规则复杂度,实现模块化管理。
(4)各应用使用账号密码,统一由系统动态生成,确保数据库密码安全,以防止应用密码泄露。
2 设计思路
数据库账号安全管理可分为管理和技术这2个方面。管理方面侧重数据安全等级分配、权限审批流程、用户管理要求等管理细则;技术方面则侧重于处理账号权限授予、收回操作、用户角色管理、用户操作审计实现等安全配置要求以及其它技术规范的实现手段。
数据库账号安全管理是对各业务系统进行数据库账户的管理、操作记录分析、数据分级管理等。通过安全管理,可以避免因数据库账户安全隐患导致数据泄露及其带来的经济损失。同时,合理规划和利用数据安全管理各项指标,可大大加强系统管理人员对数据库管理把控的力度,更好地完成岗位工作。
本文以管理Oracle数据库的管控平台(以下简称平台)设计为例,在企业实际场景中可以同时管理多种数据库。
2.1 系统架构
(1)总体功能架构
如图1所示,本平台由Oracle账号管理、Oracle角色管理、Oracle授权管理、Oracle权限管理、Oracle同步管理、Oracle密码管理、总览统计管理、Oracle敏感表管理、Oracle审计管理、调度管理、平台用户管理、平台角色管理、平台权限管理13个功能模块组成。其中,平台用户、平台角色、平台权限均指本管理平台内部的用户、角色、权限,与被管理Oracle数据库无关。
上述模块一方面与被管理的数据库相关联,实现数据库用户、角色、权限等管理功能;另一方面通过接口与工单、短信、手机APP及邮件系统对接,方便用户进行操作。
(2)平台物理架构
本平台采用集中管理的B/S(Browser/Server,浏览器/服务器)架构设计,通过一台管理服务器或服务器集群管理所有的Oracle数据库服务器,并通过Web服务器或工单、短信等平台提供用户的操作界面。
(3)总体技术架构
◆采用EasyUI异步请求方式、Servlet服务端通信机制,使得前端与后端的耦合度降低。
◆采用Spring MVC(Model View Controller,模型-视图-控制器)框架,系统的设计遵循MVC模式,使系统具有良好的可维护性。
◆数据持久层采用Hibernate(对象关系映射框架),使得数据的持久化与数据库无关性得到提高。
◆每日数据访问量较少时使用JDBC(Java Data Base Connectivity,Java数据库连接)和长连接技术同步数据库账号、角色、对象、权限等数据,确保数据的一致性和有效性。
◆采用Highcharts展示统计图表,直观统一观察数据库账号管理情况。
2.2 技术方案及实现
(1)界面化操作及前端功能集中呈现。平台提供了方便的界面化操作,将所有数据库账号、角色与权限进行可视化、图形化展示,降低了操作复杂程度。
(2)新增数据库表的自动授权功能。例如,当按照自然年、月、日新建数据库表时,平台会根据预定义规则自动为相关数据库用户赋予权限,保持业务层面权限的连贯性。
(3)权限管理集中化。平台对数据库账号进行集中式管理,可以对接入的所有数据库账号进行授权、修改、撤销等操作,相对于针对每一套数据库分别操作的传统方式,效率得到很大提升。
(4)权限管理规范化。实现了数据库内部用户的规范化管理,通过建立合理的数据库账号、角色、权限层级关系,建立符合账号使用人员实际业务需求的数据库权限。删除或锁定与业务运行、日常维护、监控工作无关的账号或过期账号,以降低信息泄露风险。
(5)在业务层面建立岗位角色,方便业务人员的权限管理。参照自然人的实际工作岗位与工作分工,在业务层面制定相应的岗位角色,并与数据库内部的角色、权限相关联,可以方便快速地定位自然人在数据库中的操作权限。
如图2所示,某个自然人对应企业中的一个工作岗位,则在平台上定义一个“岗位角色”C1与之对应,该“岗位角色”包含数据库维护与业务处理相关的4个角色,这些角色又具有更进一步的具体定义,如“B1_业务一级角色”有敏感只读、敏感只写、非敏感只读、非敏感只写4个更基本的角色。上述角色的权限汇总后,与被管理的数据库内部用户、角色和权限相对应,实现了在业务层面对数据库权限的分配和对应。
(6)实现移动化办公提升效率。通过与短信接口对接,实现了账号、权限申请的短信审批回复、短信通知及短信告警等功能。在数据库账号变更、临时账号等需求申请提交后,系统自动向审批人发送审批短信,回复短信即可完成审批,实现了移动与无纸化办公,提高了整个审批流程的速度。申请得到批复后,系统通过短信自动向申请人下发审批结果,如申请获得批准,申请人还将收到包括用户名、初始密码、账号有效期等详细信息的通知短信。
(7)使用动态加密的方式集中管理数据库密码。在多数情况下,应用程序的数据库连接信息一般使用配置文件形式存储在应用服务器上,内容包括:数据库的用户名、密码、数据库IP、端口等关键信息。为防范该配置文件外泄带来的安全风险,管控平台采用动态加密的方式保存应用程序的数据库密码等关键信息(应用程序的数据库登录验证部分需做相应调整)。各接入平台的应用系统在访问数据库之前需要向管控平台申请数据库用户的密码,该密码采取公钥、私钥方式加解密保存在本地数据库或第三方数据库中。只有经过授权的应用才能够正常解密数据库密码并成功连接数据库,有效地提升了应用系统整体安全性。
如图3所示,应用程序访问数据库总体上可分为注册环节与连接环节。注册环节仅在首次接入平台时进行,应用程序向安全管理平台申请注册,管理平台接收申请后发放密钥给应用程序。在连接环节中,应用程序首先向管控平台发送连接请求,继而得到数据库账号密码的密文信息。应用程序使用私钥在应用服务器的内存中将密码密文解密,并以此发起数据库连接请求,数据库端验证通过后可以进行正常的数据库访问,完成整个连接环节。
(8)用户行为审计及预警。使用审计功能对用户访问进行安全管控,可以实现:记录用户登录相关信息的访问痕迹审计、记录用户各类操作的用户行为审计、重大或高危操作的安全事件审计等。此外,当管控平台根据预定规则发现属于高危或非法操作时,会以短信或邮件方式通知系统管理员和数据库管理员,并可自动做出限制访问或锁定账号等处理。
(9)操作记录可回朔。可对数据库账户授权等所有操作进行全面记录,通过日志定期或按需进行回朔与分析,并可生成相应报表。
3 实践及应用效果
(1)提供统一的数据库账号集中式管理,有效提高工作效率。
◆本平台上线运行后,同时管理多个数据库账号、权限等信息,以达到统一操作集中式管理效果。
◆提供友好的操作界面对账号、角色、权限进行集中式管理,操作便捷、易用,利用简单的操作界面可自动生成相应的数据库脚本并运行,减少相应数据库直接操作过程,从而节省了大量繁琐的编写脚本操作流程,提升了80%的维护效率。
管理同样的5套数据库账号,在使用平台前后的耗时对比如图4所示:
(2)提升数据库账号密码的安全性。
◆对平台管理及所有的应用系统数据库账号密码进行统一管理,应用程序在数据库连接前到平台申请动态密码,降低了数据库配置文件外泄带来的数据安全风险,提升了数据库的安全性。
◆平台上线运行后,由其管理的所有数据库相关账号、角色、权限的相关操作统一通过本平台进行处理,避免了直接对数据库进行人工操作,降低了操作失误所带来的不必要的风险,从另一个层面保障了数据的安全。
◆实现数据库现行用户全面梳理以及规范化。要求为不同的用户分配不同的账号,实现一人一号,杜绝账号盗用、重用。删除或锁定与业务运行、日常维护、监控等工作无关的账号,回收无用账号以降低泄露风险。
(3)良好的操作体验,明显改善用户满意度。
◆将所有数据库、数据库账号、角色等进行可视化、图形化展示,增加了用户对数据库相关信息的全局掌控能力,降低了操作复杂程度,提升了用户体验。
◆账号申请审批流程采用短信息回复方式,流程到达时自动下发短信息,回复信息即可参与审批流程,做到移动办公,避免了申请单的积压问题,简化了审批人的审批工作,提升了整体流程的效率。
◆数据库运维人员的工作模式逐步向自动化转变,通过简单的配置实现同时管理多个数据库的账号与权限,可有效提高数据库运维工作效率。
(4)运维成本大幅度下降。
通过本系统对多数据库集中管理,配合可视化、图形化展示,降低了用户操作复杂程度。一个人可以同时管理多个数据库账号,节省30%的人工成本,让数据库维护人员快速有效地解决数据库账号、权限管理的相关问题,显著降低了数据库的运维成本。
4 结束语
本文以管理Oracle数据库的管控平台设计为例,介绍了该平台的总体架构及所采用的技术实现手段,并针对权限管理、岗位及角色管理、移动办公、动态加密等核心功能进行了详细阐述。通过数据分析及某省级移动运营商权限集中管控平台实践证明,采用管理平台的方式对业务系统中涉及到的账号、权限加以集中化管理,做到“人管理平台,平台管理权限”,可以很好地从管理和技术两个角度防范安全风险,从而提高业务系统的安全性及管理的规范性。
参考文献:
[1] 张敏,徐震,冯登国. 数据库安全[M]. 北京: 科学出版社, 2005.
[2] 吴溥峰,张玉清. 数据库安全综述[J]. 计算机工程, 2006(12): 85-88.
[3] 李海泉,李健. 计算机网络安全与加密技术[M]. 北京: 科学出版社, 2001.
[4] Josh Shaul, Aaron Ingram. Oracle安全实践——来自第三方的关系型数据库安全指南[M]. 李桢,译. 北京: 科学出版社, 2009.
[5] 朱良根,雷振甲,张玉清. 数据库安全技术研究[J]. 计算机应用研究, 2004(9): 127-129.
[6] 韩卫,张艳苏. MIS中数据库安全性研究[J]. 计算机工程, 2002(6): 116-117.
[7] 李东风,谢昕. 数据库安全技术研究与应用[J]. 计算机安全, 2008(1): 42-44.
[8] 王希忠,曲家兴,黄俊强,等. 网络数据库安全检测与管理程序设计实现[J]. 信息网络安全, 2012(2): 14-18.
[9] 中国移动通信有限公司. 中国移动Oracle数据库安全配置规范V2.0[Z]. 2012.
[10] 中国移动通信有限公司. 中国移动通用安全功能和配置规范[Z]. 2012.
[11] 甲骨文软件系统有限公司. Database Advanced Security Administrator's Guide[EB/OL]. (2014-08-01)[2015-07-21]. http://docs.oracle.com/cd/E11882_01/network.112/e40393/toc.htm.★