◆楊瑤姬
?
數(shù)據(jù)庫安全平臺(tái)模型分析
◆楊瑤姬
(中南空管局氣象中心 廣東 510405)
為提高數(shù)據(jù)庫安全性能,本文討論分析了一種可運(yùn)行在不同類型的數(shù)據(jù)庫管理系統(tǒng)上的數(shù)據(jù)庫安全平臺(tái)模型,通過引入的行為監(jiān)測、數(shù)據(jù)庫評(píng)估等功能的分析,驗(yàn)證了該數(shù)據(jù)庫安全平臺(tái)提高了數(shù)據(jù)庫安全的有效性。
DBMSs ;數(shù)據(jù)庫安全;行為監(jiān)測;數(shù)據(jù)庫評(píng)估
信息化社會(huì)發(fā)展至今,敏感數(shù)據(jù)大部分被存儲(chǔ)在郵件系統(tǒng)、終端設(shè)備和文件服務(wù)器上,絕大部分是以數(shù)據(jù)庫的形式來存儲(chǔ)的。這種現(xiàn)實(shí)狀態(tài)凸顯了數(shù)據(jù)庫安全的重要性。問題是,數(shù)據(jù)庫的安全是不容易做到的,因?yàn)樗婕岸鄠€(gè)復(fù)雜進(jìn)程和多種安全策略,以及DBA和安全團(tuán)隊(duì)之間強(qiáng)有力的協(xié)調(diào)和合作。根據(jù)ESG的研究報(bào)告,15%的企業(yè)將數(shù)據(jù)庫安全認(rèn)作是最重要的信息安全挑戰(zhàn),此外還有57%的企業(yè)認(rèn)為數(shù)據(jù)庫安全是他們前五位信息安全挑戰(zhàn)之一[1]。由此可見數(shù)據(jù)庫安全之重要。
根據(jù)forrester的研究報(bào)告[2],數(shù)據(jù)庫的安全應(yīng)該包括:新的許可與支持,數(shù)據(jù)庫審計(jì),實(shí)時(shí)保護(hù),數(shù)據(jù)屏蔽,脆弱性評(píng)估,數(shù)據(jù)庫加密。
任何一種單一的安全策略和安全工具是不足以保障數(shù)據(jù)庫安全的,一種可運(yùn)行在不同類型的數(shù)據(jù)庫管理系統(tǒng)上的數(shù)據(jù)庫安全平臺(tái)模型是指通過一系列的安全策略,評(píng)估數(shù)據(jù)庫的安全性,實(shí)時(shí)或者近似實(shí)時(shí)捕捉和記錄所有數(shù)據(jù)庫(包括管理員的活動(dòng))活動(dòng),能夠跨多個(gè)數(shù)據(jù)庫類型和平臺(tái),能夠警告和對(duì)非法行為進(jìn)行阻止。
數(shù)據(jù)庫安全平臺(tái)的主要功能:
(1)數(shù)據(jù)庫安全平臺(tái)必須同時(shí)支持關(guān)系型和非關(guān)系型的數(shù)據(jù)庫;
(2)數(shù)據(jù)庫安全平臺(tái)包括安全評(píng)估功能;
(3)數(shù)據(jù)庫安全平臺(tái)必須有抗非法攻擊能力;
(4)數(shù)據(jù)庫安全平臺(tái)應(yīng)該包括一些額外的保護(hù)功能,如屏蔽或應(yīng)用程序的安全。
數(shù)據(jù)庫安全平臺(tái)的架構(gòu)圖如圖1所示。
圖1 數(shù)據(jù)庫安全平臺(tái)
數(shù)據(jù)庫安全平臺(tái)的主要優(yōu)勢(shì)之一是它能夠在不同操作系統(tǒng)上(例如Windows、Unix等),掃描和監(jiān)控運(yùn)行在不同類型的數(shù)據(jù)庫管理系統(tǒng)(DBMSs)上的數(shù)據(jù)庫。數(shù)據(jù)庫安全平臺(tái)將多個(gè)采集點(diǎn)信息整合到一個(gè)安全的中央服務(wù)器進(jìn)行分析。
信息大部分來源于本地OS/協(xié)議棧的代理,網(wǎng)路監(jiān)控,內(nèi)存掃描代理,數(shù)據(jù)庫審計(jì)日志,如圖2所示。
圖2 數(shù)據(jù)庫安全平臺(tái)信息采集
(1)本地OS/協(xié)議棧的代理:一個(gè)軟件“代理”是安裝在數(shù)據(jù)庫服務(wù)器來捕獲被發(fā)送到數(shù)據(jù)庫的SQL語句。被捕獲到的事件返回給遠(yuǎn)程的數(shù)據(jù)庫安全平臺(tái)。本地代理會(huì)根據(jù)相應(yīng)的安全策略選擇性地實(shí)時(shí)分析事件和做出相應(yīng)。代理被部署到主機(jī)的網(wǎng)絡(luò)協(xié)議?;蛘咔度氲讲僮飨到y(tǒng)中,來捕獲與數(shù)據(jù)庫之間的通信。它們能監(jiān)測到所有被送往數(shù)據(jù)庫的外部SQL語句,包括它們的參數(shù)和查詢結(jié)果。更關(guān)鍵的是它們能從控制臺(tái)捕獲不通過正常網(wǎng)絡(luò)連接的管理者的行為。
代理是數(shù)據(jù)庫安全平臺(tái)的一個(gè)基本要求,它們能以最小的開銷度捕獲所有的SQL語句,包括源自控制臺(tái)和通過加密的網(wǎng)絡(luò)連接到達(dá)數(shù)據(jù)庫的。
(2)網(wǎng)絡(luò)監(jiān)控:采用直接從網(wǎng)絡(luò)嗅探的方法來監(jiān)控?cái)?shù)據(jù)庫平臺(tái)的網(wǎng)絡(luò)狀態(tài)。這種辦法捕獲了原始信息,參數(shù)以及查詢結(jié)果的部分信息。所有被收集的信息返回服務(wù)器進(jìn)行分析。網(wǎng)絡(luò)監(jiān)控對(duì)數(shù)據(jù)庫平臺(tái)的影響是最小的,仍然是監(jiān)控非關(guān)鍵性數(shù)據(jù)庫最常用的方法。
(3)內(nèi)存掃描代理:內(nèi)存掃描讀取數(shù)據(jù)庫活動(dòng)的內(nèi)存結(jié)構(gòu),監(jiān)測新的查詢語句。作為部署到數(shù)據(jù)庫平臺(tái)的一個(gè)代理,內(nèi)存掃描代理以預(yù)先設(shè)定好的頻率掃描SQL語句。在將結(jié)果返回到中央管理服務(wù)器之前,內(nèi)存掃描先分析查詢語句是否是非法查詢。
(4)數(shù)據(jù)庫審計(jì)日志:數(shù)據(jù)庫審計(jì)日志仍然是最常用來收集數(shù)據(jù)庫事件的。大部分?jǐn)?shù)據(jù)庫都有本地審計(jì)功能,他們被配置來生成審計(jì)跟蹤,包括系統(tǒng)事件,事務(wù)事件,用戶事件。數(shù)據(jù)流輸出到一個(gè)文件中或者數(shù)據(jù)庫內(nèi)部。
根據(jù)企業(yè)的規(guī)模和需求的不同,有以下三種模式
(1)單一的服務(wù)器:一臺(tái)服務(wù)器,同時(shí)作為采集點(diǎn)和管理控制臺(tái)。這種模式適用于小型企業(yè)。
(2)兩層架構(gòu):這種模式包含一個(gè)中央管理服務(wù)器和遠(yuǎn)程采集點(diǎn)。中央服務(wù)器不直接監(jiān)測,而是從遠(yuǎn)程系統(tǒng)整合信息,管理政策和產(chǎn)生警告。遠(yuǎn)程收集點(diǎn)可以根據(jù)實(shí)際情況靈活使用采集技術(shù)。
(3)層次結(jié)構(gòu):在這種模式中,采集點(diǎn)反過來整合地理上分散的管理服務(wù)器信息。層次部署適合擁有多重業(yè)務(wù)類型的大型企業(yè)。它們也可以設(shè)定在層與層之間只傳遞特定種類的數(shù)據(jù)信息,來滿足策略需求。
數(shù)據(jù)安全平臺(tái)的功能之一就是監(jiān)測和采集所有數(shù)據(jù)庫行為[3]。這些數(shù)據(jù)庫行為包含了所有管理員和系統(tǒng)行為,如下所示:
(1)所有的SQL語言—包括DDL(Data Definition Language)數(shù)據(jù)庫定義語言, DML(Data Manipulation Language)數(shù)據(jù)操縱語言,DCL(Data Control Language)數(shù)據(jù)庫控制語言,TCL(Transaction Control Language)事務(wù)控制語言:行為監(jiān)測應(yīng)該包含所有對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作的行為。
(2)‘SELECT’查詢:雖然`SELECT`查詢僅僅是DML行為之一,但因?yàn)椤畇elect’查詢的頻繁使用,依然存在數(shù)據(jù)泄漏的可能性,因此更有必要密切監(jiān)測該行為。
(3)敏感數(shù)據(jù)的訪問:‘SELECT’查詢子集集中在訪問敏感數(shù)據(jù),如信用卡或社會(huì)安全號(hào)碼的表或列。
(4)管理員活動(dòng):比起普通用戶,管理員能通過更多不同的方式連接到數(shù)據(jù)庫,更多的能力來隱藏或刪除其活動(dòng)的蹤跡。不能只依靠本地審計(jì),而應(yīng)該采用數(shù)據(jù)庫安全平臺(tái)工具。
(5)存儲(chǔ)程序,腳本,代碼的行為:隱藏在存儲(chǔ)程序和其他形式的數(shù)據(jù)庫腳本的過程中的攻擊行為常常能夠逃避監(jiān)測控制。數(shù)據(jù)庫安全平臺(tái)工具也應(yīng)跟蹤內(nèi)部活動(dòng)。
(6)文件的活動(dòng):如果你可以跳過數(shù)據(jù)庫管理系統(tǒng),直接編輯磁盤上的文件直接來進(jìn)行數(shù)據(jù)的修改,在這種狀態(tài)下的行為就需要被監(jiān)測了。
評(píng)估通常包含三種類型[4]。
(1)漏洞評(píng)估:包括已知的漏洞,缺少的安全補(bǔ)丁,默認(rèn)帳戶,可疑的或者未使用的數(shù)據(jù)庫功能,默認(rèn)/弱密碼,和更多的安全和合規(guī)相關(guān)的檢查。
(2)配置評(píng)估:分析數(shù)據(jù)庫內(nèi)部和外部與安全和合規(guī)相關(guān)的配置(例如文件系統(tǒng)的設(shè)置)
(3)權(quán)限分析:對(duì)一個(gè)數(shù)據(jù)庫中的用戶賬戶進(jìn)行掃描,主要是為了確定安全性和合規(guī)問題,但也經(jīng)常用于一般賬戶的清理?;诙喾N類型的用戶賬戶及其定義,數(shù)據(jù)庫的用戶賬戶的復(fù)雜性遠(yuǎn)遠(yuǎn)高于要比其他系統(tǒng)。例如一個(gè)人同時(shí)擁有一個(gè)網(wǎng)絡(luò)用戶、一個(gè)數(shù)據(jù)庫賬戶和一個(gè)系統(tǒng)用戶賬戶是很常見的。但是依賴于數(shù)據(jù)庫提供權(quán)限的角色和組的權(quán)限就要復(fù)雜的多。
擴(kuò)展功能包括核心功能的擴(kuò)展,主要定位于數(shù)據(jù)分析和保護(hù)。其中數(shù)據(jù)庫安全平臺(tái)的一個(gè)關(guān)鍵領(lǐng)域是采用新的安全技術(shù)來保護(hù)數(shù)據(jù)庫和擴(kuò)大在其他應(yīng)用程序和數(shù)據(jù)存儲(chǔ)方面的保護(hù)。
換句話說,在數(shù)據(jù)庫安全平臺(tái)中,這些功能不是必須的,可以視具體需求而定。
(1)屏蔽/虛擬補(bǔ)?。和ㄟ^運(yùn)行數(shù)據(jù)庫防火墻,數(shù)據(jù)庫安全平臺(tái)有能力屏蔽入站查詢,并且在執(zhí)行之前中斷查詢??梢圆捎玫姆椒ㄖ饕芯W(wǎng)絡(luò)連接重置和內(nèi)存掃描代理。一種特定類型的屏蔽---“虛擬補(bǔ)丁”, 在補(bǔ)丁被部署之前,阻止已知漏洞的查詢。
(2)查詢白名單:傳統(tǒng)的屏蔽技術(shù)依賴于查詢參數(shù)和屬性的分析。這種技術(shù)是根據(jù)詞法分析,有兩個(gè)顯著的優(yōu)勢(shì)。首先監(jiān)測是基于查詢結(jié)構(gòu),匹配”FROM”和”WHERE”語句的格式,以確定這個(gè)查詢是否符合允許列表。第二,如何產(chǎn)生允許查詢列表。通過監(jiān)測數(shù)據(jù)庫行為,數(shù)據(jù)庫安全平臺(tái)能夠自動(dòng)標(biāo)記這些被允許的查詢,從而生成白名單。當(dāng)然用戶是被允許可以修改這個(gè)白名單的。所有不在白名單上的查詢是無法進(jìn)入數(shù)據(jù)庫的。
(3)動(dòng)態(tài)數(shù)據(jù)屏蔽:屏蔽是一種改變數(shù)據(jù),使原始數(shù)據(jù)是模糊的,但數(shù)據(jù)本身并不會(huì)被破壞的方法。我們將敏感數(shù)據(jù)的一小部分用隨機(jī)值取代,使它們看起來像原稿一樣。例如,我們用一個(gè)電話簿中隨機(jī)選擇的名稱來替代數(shù)據(jù)庫中的客戶名稱的列表。
(4)應(yīng)用活動(dòng)監(jiān)測:數(shù)據(jù)庫很少孤立存在,它們常常是應(yīng)用程序的擴(kuò)展,但我們常常把它們看做獨(dú)立的組件。通過監(jiān)測數(shù)據(jù)庫與應(yīng)用程序之間的數(shù)據(jù)交換,能大大提高監(jiān)測數(shù)據(jù)庫的能力。
(5)文件活動(dòng)監(jiān)測:文件活動(dòng)監(jiān)測的范圍包括文件打開、保存、刪除和復(fù)制,而不是僅僅局限于“SELECT”,“INSERT”,“UPDATE”,“DELETE”等SQL查詢語句。
(6)查詢重寫:另一個(gè)保護(hù)數(shù)據(jù)和數(shù)據(jù)庫免受惡意查詢的有用的技術(shù)就是查詢重寫。通過部署一個(gè)反向數(shù)據(jù)庫代理,評(píng)估查詢指令的共同屬性和查詢結(jié)構(gòu)。如果一個(gè)查詢看起來可疑,或者違反安全政策,它會(huì)被一個(gè)類似的授權(quán)查詢所取代。例如,一個(gè)包括社會(huì)安全號(hào)碼的列查詢可能被從結(jié)果中刪除。查詢重寫,保護(hù)了應(yīng)用的連續(xù)性,因?yàn)榭梢傻牟樵儾皇呛唵蔚乇粊G棄,而是返回請(qǐng)求的數(shù)據(jù)的一個(gè)子集,所以誤報(bào)不會(huì)導(dǎo)致應(yīng)用程序掛起或崩潰。
(7)連接池的用戶識(shí)別:如果所有的查詢都是由同一個(gè)賬戶發(fā)起,那么細(xì)粒度的安全監(jiān)控將變得困難。這個(gè)功能需要使用多種技術(shù)來匹配每個(gè)應(yīng)用者的每個(gè)查詢。
(1)數(shù)據(jù)庫發(fā)現(xiàn):數(shù)據(jù)庫中發(fā)現(xiàn)兩種方法之一:主動(dòng)掃描和被動(dòng)檢測。大多數(shù)進(jìn)行主動(dòng)掃描網(wǎng)絡(luò)的工具,通過詢問數(shù)據(jù)庫端口來識(shí)別數(shù)據(jù)庫。通常有一個(gè)快速掃描的選擇——只是尋找數(shù)據(jù)庫的標(biāo)準(zhǔn)端口數(shù)量,或遍歷整個(gè)端口地址范圍來進(jìn)行完整的掃描。后者是耗時(shí)的,但是安全性更高。第二個(gè)選擇是監(jiān)聽網(wǎng)絡(luò),以混雜方式,尋找任何與數(shù)據(jù)庫的通信。這種被動(dòng)的發(fā)現(xiàn)模式需要花更多的時(shí)間去發(fā)現(xiàn)數(shù)據(jù)庫。
(2)內(nèi)容發(fā)現(xiàn):通常我們認(rèn)為已經(jīng)足夠了解我們的數(shù)據(jù)庫了,但其實(shí)我們并不真正知道數(shù)據(jù)庫里面在運(yùn)行什么。數(shù)據(jù)庫安全平臺(tái)中的內(nèi)容發(fā)現(xiàn)功能能夠區(qū)分像社會(huì)安全號(hào)碼這樣的敏感信息。發(fā)現(xiàn)工具爬過注冊(cè)數(shù)據(jù)庫,尋找匹配政策的內(nèi)容和元數(shù)據(jù),當(dāng)敏感信息出現(xiàn)在未經(jīng)允許的位置時(shí)發(fā)出警告。
(3)動(dòng)態(tài)內(nèi)容分析:監(jiān)控敏感數(shù)據(jù)的實(shí)時(shí)查詢的結(jié)果,并根據(jù)結(jié)果產(chǎn)生相應(yīng)的警告。
本文討論了一種可運(yùn)行在不同類型的數(shù)據(jù)庫管理系統(tǒng)上的數(shù)據(jù)庫安全平臺(tái)模型,通過分析一系列安全策略和安全技術(shù)在該平臺(tái)上的運(yùn)用,驗(yàn)證數(shù)據(jù)庫安全平臺(tái)架構(gòu)在提高數(shù)據(jù)庫安全方面的有效性。
[1]joltsik on Tue ,Database Security: More Than DAM Database Activity Monitoring (DAM) should be one of many controls, 2011-10-25, http://securosis.com
[2]Adrian Lane, Rich Mogull ,Selecting a Database Security Platform,http://securosis.com
[3]Aaron Newman,Database Activity Monitoring:Intrusion Detection & Security Auditing by, Application Security, Inc. CTO & Founder
[4]Adrian Lane,Selecting a Database Assessment Solution ,http://securosis.com