雷燕瑞,陳冠星
(海南軟件職業(yè)技術(shù)學院 網(wǎng)絡(luò)工程系,海南 瓊海 571400)
基于SQL Server的數(shù)據(jù)庫安全策略研究
雷燕瑞,陳冠星
(海南軟件職業(yè)技術(shù)學院 網(wǎng)絡(luò)工程系,海南 瓊海 571400)
隨著信息化技術(shù)的發(fā)展,數(shù)據(jù)已經(jīng)成為各個行業(yè)日常運作不可缺少的一部分,數(shù)據(jù)存儲的重要容器——數(shù)據(jù)庫的安全性凸顯。從保護數(shù)據(jù)庫安全角度出發(fā),介紹數(shù)據(jù)庫安全技術(shù)的防范策略。
SQL Server;數(shù)據(jù)庫;安全策略
隨著計算機技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫技術(shù)已成為各行各業(yè)不可缺少的工具。大到電子商務(wù)、金融,小到ERP、超市管理,都在應(yīng)用數(shù)據(jù)庫系統(tǒng)。系統(tǒng)中存儲的大量數(shù)據(jù)涉及個人隱私,若被他人竊取、篡改和泄露,則會產(chǎn)生許多不良后果。越來越多的人意識到數(shù)據(jù)庫系統(tǒng)安全的重要性,開展了許多研究工作[1]。
有關(guān)數(shù)據(jù)庫安全的標準化定義,國內(nèi)外沒有統(tǒng)一的標準。一般情況下,人們認為,保證了數(shù)據(jù)庫的保密性、完整性、一致性和可用性,就保證了數(shù)據(jù)庫的安全。當合法用戶訪問數(shù)據(jù)庫時,確保他們在一定規(guī)則和約束下得到正確的數(shù)據(jù),同時確保數(shù)據(jù)的一致性,阻隔非法用戶入侵和破壞。關(guān)于數(shù)據(jù)庫的保密性、完整性、一致性和可用性的解釋,詳見表1。
表1 數(shù)據(jù)庫安全內(nèi)容
要保證數(shù)據(jù)庫的安全,應(yīng)杜絕非授權(quán)的訪問,防止未經(jīng)授權(quán)的泄密,在硬件或軟件發(fā)生錯誤時及時修復。了解數(shù)據(jù)庫安全的相關(guān)技術(shù)之前,要先了解數(shù)據(jù)庫在網(wǎng)絡(luò)中的位置,圖1顯示了一個數(shù)據(jù)庫通常的使用情況。數(shù)據(jù)庫的安全通過存取管理技術(shù)、安全管理技術(shù)、數(shù)據(jù)庫加密技術(shù)實現(xiàn)。
圖1 數(shù)據(jù)庫服務(wù)器示意圖
2.1 存取管理
如圖2所示,存取管理技術(shù)主要用于身份認證和存取控制。身份認證包含身份驗證和身份識別,瀏覽控制和修改控制是存取控制技術(shù)的內(nèi)核。
圖2 存儲管理技術(shù)示意圖
2.1.1 身份認證
利用身份認證技術(shù)阻止非授權(quán)用戶的訪問,使低級別用戶無權(quán)越級訪問。主要通過操作系統(tǒng)驗證、DBMS提供驗證、網(wǎng)絡(luò)安全認證實現(xiàn)身份驗證和身份識別[2]。
1) 操作系統(tǒng)驗證。用戶可通過操作系統(tǒng)直接連接DBMS,無需用戶名和密碼,操作系統(tǒng)驗證放行后連接。
2) DBMS提供驗證。SQL Server的另一種認證是由DBMS提供驗證。SQL Server的登錄帳號和密碼保存在數(shù)據(jù)庫的syslogins表中,DBMS提供驗證較為簡單,此登錄與Windows無關(guān)。
3) 網(wǎng)絡(luò)安全認證。目前用于數(shù)據(jù)庫用戶認證的網(wǎng)絡(luò)安全認證系統(tǒng)很多,主要依賴認證和密鑰分配系統(tǒng),用戶可用智能卡、安全令牌、生物識別等技術(shù)來響應(yīng)驗證需求。
2.1.2 存取控制技術(shù)
訪問者和執(zhí)行程序訪問數(shù)據(jù)庫時,需要通過存取控制來限制其訪問權(quán)限,從而使數(shù)據(jù)庫系統(tǒng)在合法范圍內(nèi)使用。存取控制主要有自主存取控制(DAC)、強制存取控制(MAC)和基于角色的存取控制(RBAC)[3]。
1) 自主存取控制(DAC)。大型DBMS基本會支持DAC,目前的SQL標準也支持DAC,實現(xiàn)方式主要通過GRANT和REVOKE語句。DAC是一項接入控制服務(wù),它執(zhí)行基于系統(tǒng)實體身份和它們的到系統(tǒng)資源的接入授權(quán)。給用戶授權(quán)是指定義這個用戶可以在哪些數(shù)據(jù)對象上進行哪些類型的操作。定義存取權(quán)限也稱為授權(quán)過程。
用戶可以“自主”決定將數(shù)據(jù)的存取權(quán)限授予何人,是否將“授權(quán)”的權(quán)限授予別人,這樣的存取控制稱為自主存取控制(DAC)。DAC方式靈活,但采用DAC策略的數(shù)據(jù)庫很容易被惡意攻擊。因此,對安全性要求更高的系統(tǒng)通常采取強制存取控制的方法。
2) 強制存取控制(MAC)。強制存取控制(MAC)是“強加”給訪問主體的,即系統(tǒng)強制主體服從訪問控制政策。MAC要求用戶必須遵守DBA制定的規(guī)則。MAC對數(shù)據(jù)庫對象和用戶標識安全標簽,每一個數(shù)據(jù)庫對象被標以一定的密級,每一用戶也被給予一定級別的許可證,對任一數(shù)據(jù)庫對象,擁有合法許可證的用戶才可以訪問。
用戶的程序不能更改自己和其他數(shù)據(jù)庫對象的安全標簽,只有DBA才能確定用戶和組的訪問權(quán)限。MAC有兩個規(guī)則,即不準上讀和不準下寫,需要遵守。
3) 基于角色的存取控制(RBAC)。核心思想是授權(quán)和角色相聯(lián)系,用戶是一個可以獨立訪問數(shù)據(jù)庫對象的主體,角色則代表權(quán)利、責任和資格,許可是允許一個或多個客體執(zhí)行的操作[4]。
用戶成為相應(yīng)角色的成員,即擁有這個角色對應(yīng)的權(quán)限。角色可以根據(jù)組織工作的需要進行創(chuàng)建,可以根據(jù)用戶的實際需求進行分配,既簡化授權(quán),又能輕松地進行角色轉(zhuǎn)換。
RBAC在實際操作中優(yōu)勢明顯,DBA不再疲于更改用戶權(quán)限設(shè)置,只需改變用戶角色,如此更安全。現(xiàn)在普遍認為RBAC的發(fā)展前景比DAC和MAC更好。
2.2 數(shù)據(jù)庫加密技術(shù)
加密不僅可以有效規(guī)避數(shù)據(jù)庫明文存儲引起的泄密風險,還可以杜絕來自內(nèi)部或者外部的入侵及越權(quán)訪問行為?,F(xiàn)在數(shù)據(jù)庫加密技術(shù)主要有三大類,即前置代理及加密網(wǎng)關(guān)方式、應(yīng)用層加密方式、后置代理方式[5]。
2.2.1 前置代理及加密網(wǎng)關(guān)技術(shù)
技術(shù)核心是訪問數(shù)據(jù)庫的用戶在沒有連接到數(shù)據(jù)庫之前,先經(jīng)過一道安全代理服務(wù)的檢查,在代理服務(wù)中實現(xiàn)如數(shù)據(jù)加解密、存取控制等安全策略,安全代理服務(wù)通過數(shù)據(jù)庫的訪問接口實現(xiàn)數(shù)據(jù)在庫中的最終存儲。此技術(shù)需要在安全代理服務(wù)層實現(xiàn)非常復雜的數(shù)據(jù)庫管理功能,如SQL命令解析,通訊服務(wù),加密數(shù)據(jù)索引存儲管理、事務(wù)管理等,開發(fā)工作量大且技術(shù)復雜性較高。
2.2.2 應(yīng)用層加密技術(shù)
應(yīng)用系統(tǒng)通過加密API(JDBC,ODBC,CAPI等)實現(xiàn)對敏感數(shù)據(jù)的加密,加密后的數(shù)據(jù)存儲在數(shù)據(jù)庫底層文件中,檢索時,將密文取回客戶端,再解密。密鑰體系則由應(yīng)用系統(tǒng)管理。這種方式提高了編程的復雜度,應(yīng)用程序改造比較多,而且無法對現(xiàn)有的系統(tǒng)做到透明,加密后的數(shù)據(jù)檢索性能大幅下降。
2.2.3 基于視圖和觸發(fā)器的后置代理技術(shù)
后置代理技術(shù)的核心是利用數(shù)據(jù)庫管理系統(tǒng)自身提供的應(yīng)用擴展能力實現(xiàn)加密,分別使用觸發(fā)器、索引、自定義函數(shù)的擴展能力、視圖等技術(shù)來滿足數(shù)據(jù)的存儲加密和加密后數(shù)據(jù)的檢索。
數(shù)據(jù)庫的視圖可以實現(xiàn)對表內(nèi)數(shù)據(jù)的過濾、投影、聚集、關(guān)聯(lián)和函數(shù)運算。通過數(shù)據(jù)庫中的觸發(fā)器可以實現(xiàn)對數(shù)據(jù)更新動作的特定行為的響應(yīng)。同時數(shù)據(jù)庫可以支持針對視圖的觸發(fā)器。通過數(shù)據(jù)庫的擴展索引接口實現(xiàn)加密索引。
2.3 審計
網(wǎng)絡(luò)技術(shù)在發(fā)展,黑客的入侵水平也在提升。釣魚軟件或一些人為的管理缺失,都有可能導致數(shù)據(jù)庫被入侵[6]。在這種情況下,管理員通過查看數(shù)據(jù)庫的審計,可以發(fā)現(xiàn)所有訪問數(shù)據(jù)庫的用戶名、時間、地點、對數(shù)據(jù)庫對象實施的操作等信息。
審計是一種后期查驗技術(shù),雖不能直接保護數(shù)據(jù)庫,但可以對各種操作行為進行監(jiān)控。利用數(shù)據(jù)審計可以在危險發(fā)生后對相關(guān)攻擊者進行追蹤處罰,并還原當時的攻擊現(xiàn)場,促使管理員改變管理策略,從而增加數(shù)據(jù)庫的安全性。
SQL Server安全防范策略如圖3所示。
圖3 SQL Server安全管理策略
3.1 基于安全驗證的安全策略
安全驗證是安全管理的第一步,用戶擁有了登錄SQL Server系統(tǒng)的權(quán)限,才能對SQL Server實施進一步的管理。SQL Server提供了兩種安全驗證方式,即Windows身份驗證和混合驗證[7]。
3.1.1 Windows身份驗證模式
SQL Server數(shù)據(jù)庫系統(tǒng)大多運行在Windows操作系統(tǒng)上,Windows操作系統(tǒng)自身提供賬號管理和驗證。Windows身份驗證就是把登錄驗證的任務(wù)交給Windows操作系統(tǒng),用戶通過Windows的驗證,就可以連接SQL Server服務(wù)器。SQL Server服務(wù)器默認的登錄模式也是Windows身份驗證模式,這種驗證模式可提高工作效率,而且域用戶無需獨立的Windows賬戶和密碼就可以訪問數(shù)據(jù)庫,但用戶必須遵循Windows安全模式的規(guī)則。若遠程采用Windows身份驗證,需要將登錄的Windows管理員用戶加入服務(wù)器端的信任列表,并賦予本地計算機的admin權(quán)限。
3.1.2 混合驗證模式
使用混合模式時,可以同時使用Windows身份驗證和SQL Server身份驗證模式。用戶如果使用命名管道的通信方式,則使用Windows身份驗證模式;如果使用TCP/IP Sockets的通信方式,則使用SQL Server身份驗證模式。
3.2 基于安全對象的安全策略
3.2.1 基于視圖的安全策略
在數(shù)據(jù)庫管理中,最常用的是基于視圖的安全策略,主要原因是視圖不存儲數(shù)據(jù),只是由查詢語句定義的一張?zhí)摫?,視圖是表的選擇性出口,用戶能修改視圖所能看見的數(shù)據(jù),視圖外的所有數(shù)據(jù)用戶既不可見,又無法訪問。通過視圖的安全對象權(quán)限設(shè)置,用戶僅具有相應(yīng)的訪問這一視圖的權(quán)限,但不具備訪問視圖引用的基本表的相應(yīng)權(quán)限。故對各用戶分配不同視圖權(quán)限的功能,可以限制用戶訪問的結(jié)果,提高行級別、列級別的數(shù)據(jù)安全性。
3.2.2 基于存儲過程的安全策略
用戶在不具有訪問視圖和基本表權(quán)限的情況下,可通過存儲過程訪問相應(yīng)數(shù)據(jù),只需要被授權(quán)EXEC存儲過程的權(quán)限即可。使用存儲過程的優(yōu)點在于不必對視圖和基本表的訪問權(quán)限進行分配。
數(shù)據(jù)庫安全的口令認證向動態(tài)化方向發(fā)展,非固定口令的認證方式更能防止其他人竊取,而且作為數(shù)字證書載體的USB KEY也逐漸應(yīng)用于數(shù)據(jù)庫安全[8]。數(shù)據(jù)庫的加密技術(shù)向復雜化方向發(fā)展,逐漸引入了非對稱密碼體制,加密和解密使用不同的密鑰,加密密鑰公開,解密密鑰只有解密人擁有,克服了對稱密鑰的缺點。加密技術(shù)研究的重點在設(shè)計和分析兩個方面。
盡管從機制上計算機系統(tǒng)和數(shù)據(jù)庫本身有很多可以防止數(shù)據(jù)泄密的方法,但仍需要管理制度和法律等的配合,特別是DBA,要對數(shù)據(jù)庫安全足夠重視,并提高防范意識。技術(shù)、管理到位,法律護航,數(shù)據(jù)庫的安全才更有保障。
[1] 楊磊.數(shù)據(jù)庫安全審計檢測系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學,2014:1-3.
[2] 勞翠金.SQL Server 2005數(shù)據(jù)庫的安全管理[J].中國信息界,2012(4):50-51.
[3] 馬鮮艷.數(shù)據(jù)庫安全技術(shù)探析[J].西安郵電學院學報,2008(5):99-102.
[4] 張春海,馬水平,李華.引入角色機制的數(shù)據(jù)庫強制存取控制模型的研究[C]//彭丹.第二十一屆中國數(shù)據(jù)庫學術(shù)會議論文集(技術(shù)報告篇).重慶:《計算機科學》雜志社,2004:103-106.
[5] 紅黑聯(lián)盟.常見數(shù)據(jù)庫加密技術(shù):對比[EB/OL].(2015-07-24)[2016-12-23].http://sec.chinabyte.com/449/13479949.shtml.
[6] 王端理.淺談數(shù)據(jù)庫的四大安全控制[J].山東工業(yè)技術(shù),2016(7):130.
[7] 賀蘊彬.基于SQL Server數(shù)據(jù)庫安全機制問題的研究與分析[J].信息安全與技術(shù),2014(1):48-50.
[8] 張榮華.數(shù)據(jù)庫安全常用技術(shù)及發(fā)展趨勢[J].內(nèi)江科技,2009(3):115.
〔責任編輯: 盧 蕊〕
Research on database security of strategy based on SQL Server
LEI Yanrui,CHEN Guanxing
(Network Engineering Department, Hainan College of Software Technology, Qionghai 571400, China)
With the development of information technology, data has become an indispensable part of all industries’ daily operation. As an important container of data storage, database security is increasingly attached attention to. From the significance in database security protection, the paper introduced defense strategies of database security technology.
SQL Server; batabase; security strategy
2016-12-23
海南省高等學校教育教學改革研究項目(Hnjg2015-88);海南軟件職業(yè)技術(shù)學院教育教學改革研究項目(Hr201508)
雷燕瑞(1981—),女,陜西澄城人,副教授,碩士,主要從事數(shù)據(jù)庫應(yīng)用、程序開發(fā)、職業(yè)教育研究;陳冠星(1984—),男,廣東揭陽人,講師,碩士,主要從事數(shù)據(jù)庫應(yīng)用、網(wǎng)絡(luò)技術(shù)應(yīng)用、物聯(lián)網(wǎng)應(yīng)用、職業(yè)教育研究。
TP311.138
C
1008-8148(2017)02-0079-04