林岳鑫 張文宇



【摘 要】為提高大型應用系統中數據庫賬號、權限的管理效率及系統安全性,設計、開發并實現了一個全方位的集中管控系統。該系統基于權限規范化管理策略,并通過調用各周邊系統的接口,實現了對數據庫賬號、權限、角色等的集中管控。通過數據對比顯示,該系統能夠顯著提高管理效率。
【關鍵詞】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)用戶行為審計及預警。使用審計功能對用戶訪問進行安全管控,可以實現:記錄用戶登錄相關信息的訪問痕跡審計、記錄用戶各類操作的用戶行為審計、重大或高危操作的安全事件審計等。此外,當管控平臺根據預定規則發現屬于高?;蚍欠ú僮鲿r,會以短信或郵件方式通知系統管理員和數據庫管理員,并可自動做出限制訪問或鎖定賬號等處理。
(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.★