◆楊瑤姬
?
數據庫安全平臺模型分析
◆楊瑤姬
(中南空管局氣象中心 廣東 510405)
為提高數據庫安全性能,本文討論分析了一種可運行在不同類型的數據庫管理系統上的數據庫安全平臺模型,通過引入的行為監測、數據庫評估等功能的分析,驗證了該數據庫安全平臺提高了數據庫安全的有效性。
DBMSs ;數據庫安全;行為監測;數據庫評估
信息化社會發展至今,敏感數據大部分被存儲在郵件系統、終端設備和文件服務器上,絕大部分是以數據庫的形式來存儲的。這種現實狀態凸顯了數據庫安全的重要性。問題是,數據庫的安全是不容易做到的,因為它涉及多個復雜進程和多種安全策略,以及DBA和安全團隊之間強有力的協調和合作。根據ESG的研究報告,15%的企業將數據庫安全認作是最重要的信息安全挑戰,此外還有57%的企業認為數據庫安全是他們前五位信息安全挑戰之一[1]。由此可見數據庫安全之重要。
根據forrester的研究報告[2],數據庫的安全應該包括:新的許可與支持,數據庫審計,實時保護,數據屏蔽,脆弱性評估,數據庫加密。
任何一種單一的安全策略和安全工具是不足以保障數據庫安全的,一種可運行在不同類型的數據庫管理系統上的數據庫安全平臺模型是指通過一系列的安全策略,評估數據庫的安全性,實時或者近似實時捕捉和記錄所有數據庫(包括管理員的活動)活動,能夠跨多個數據庫類型和平臺,能夠警告和對非法行為進行阻止。
數據庫安全平臺的主要功能:
(1)數據庫安全平臺必須同時支持關系型和非關系型的數據庫;
(2)數據庫安全平臺包括安全評估功能;
(3)數據庫安全平臺必須有抗非法攻擊能力;
(4)數據庫安全平臺應該包括一些額外的保護功能,如屏蔽或應用程序的安全。
數據庫安全平臺的架構圖如圖1所示。

圖1 數據庫安全平臺
數據庫安全平臺的主要優勢之一是它能夠在不同操作系統上(例如Windows、Unix等),掃描和監控運行在不同類型的數據庫管理系統(DBMSs)上的數據庫。數據庫安全平臺將多個采集點信息整合到一個安全的中央服務器進行分析。
信息大部分來源于本地OS/協議棧的代理,網路監控,內存掃描代理,數據庫審計日志,如圖2所示。

圖2 數據庫安全平臺信息采集
(1)本地OS/協議棧的代理:一個軟件“代理”是安裝在數據庫服務器來捕獲被發送到數據庫的SQL語句。被捕獲到的事件返回給遠程的數據庫安全平臺。本地代理會根據相應的安全策略選擇性地實時分析事件和做出相應。代理被部署到主機的網絡協議棧或者嵌入到操作系統中,來捕獲與數據庫之間的通信。它們能監測到所有被送往數據庫的外部SQL語句,包括它們的參數和查詢結果。更關鍵的是它們能從控制臺捕獲不通過正常網絡連接的管理者的行為。
代理是數據庫安全平臺的一個基本要求,它們能以最小的開銷度捕獲所有的SQL語句,包括源自控制臺和通過加密的網絡連接到達數據庫的。
(2)網絡監控:采用直接從網絡嗅探的方法來監控數據庫平臺的網絡狀態。這種辦法捕獲了原始信息,參數以及查詢結果的部分信息。所有被收集的信息返回服務器進行分析。網絡監控對數據庫平臺的影響是最小的,仍然是監控非關鍵性數據庫最常用的方法。
(3)內存掃描代理:內存掃描讀取數據庫活動的內存結構,監測新的查詢語句。作為部署到數據庫平臺的一個代理,內存掃描代理以預先設定好的頻率掃描SQL語句。在將結果返回到中央管理服務器之前,內存掃描先分析查詢語句是否是非法查詢。
(4)數據庫審計日志:數據庫審計日志仍然是最常用來收集數據庫事件的。大部分數據庫都有本地審計功能,他們被配置來生成審計跟蹤,包括系統事件,事務事件,用戶事件。數據流輸出到一個文件中或者數據庫內部。
根據企業的規模和需求的不同,有以下三種模式
(1)單一的服務器:一臺服務器,同時作為采集點和管理控制臺。這種模式適用于小型企業。
(2)兩層架構:這種模式包含一個中央管理服務器和遠程采集點。中央服務器不直接監測,而是從遠程系統整合信息,管理政策和產生警告。遠程收集點可以根據實際情況靈活使用采集技術。
(3)層次結構:在這種模式中,采集點反過來整合地理上分散的管理服務器信息。層次部署適合擁有多重業務類型的大型企業。它們也可以設定在層與層之間只傳遞特定種類的數據信息,來滿足策略需求。
數據安全平臺的功能之一就是監測和采集所有數據庫行為[3]。這些數據庫行為包含了所有管理員和系統行為,如下所示:
(1)所有的SQL語言—包括DDL(Data Definition Language)數據庫定義語言, DML(Data Manipulation Language)數據操縱語言,DCL(Data Control Language)數據庫控制語言,TCL(Transaction Control Language)事務控制語言:行為監測應該包含所有對數據庫中的數據進行操作的行為。
(2)‘SELECT’查詢:雖然`SELECT`查詢僅僅是DML行為之一,但因為‘select’查詢的頻繁使用,依然存在數據泄漏的可能性,因此更有必要密切監測該行為。
(3)敏感數據的訪問:‘SELECT’查詢子集集中在訪問敏感數據,如信用卡或社會安全號碼的表或列。
(4)管理員活動:比起普通用戶,管理員能通過更多不同的方式連接到數據庫,更多的能力來隱藏或刪除其活動的蹤跡。不能只依靠本地審計,而應該采用數據庫安全平臺工具。
(5)存儲程序,腳本,代碼的行為:隱藏在存儲程序和其他形式的數據庫腳本的過程中的攻擊行為常常能夠逃避監測控制。數據庫安全平臺工具也應跟蹤內部活動。
(6)文件的活動:如果你可以跳過數據庫管理系統,直接編輯磁盤上的文件直接來進行數據的修改,在這種狀態下的行為就需要被監測了。
評估通常包含三種類型[4]。
(1)漏洞評估:包括已知的漏洞,缺少的安全補丁,默認帳戶,可疑的或者未使用的數據庫功能,默認/弱密碼,和更多的安全和合規相關的檢查。
(2)配置評估:分析數據庫內部和外部與安全和合規相關的配置(例如文件系統的設置)
(3)權限分析:對一個數據庫中的用戶賬戶進行掃描,主要是為了確定安全性和合規問題,但也經常用于一般賬戶的清理。基于多種類型的用戶賬戶及其定義,數據庫的用戶賬戶的復雜性遠遠高于要比其他系統。例如一個人同時擁有一個網絡用戶、一個數據庫賬戶和一個系統用戶賬戶是很常見的。但是依賴于數據庫提供權限的角色和組的權限就要復雜的多。
擴展功能包括核心功能的擴展,主要定位于數據分析和保護。其中數據庫安全平臺的一個關鍵領域是采用新的安全技術來保護數據庫和擴大在其他應用程序和數據存儲方面的保護。
換句話說,在數據庫安全平臺中,這些功能不是必須的,可以視具體需求而定。
(1)屏蔽/虛擬補丁:通過運行數據庫防火墻,數據庫安全平臺有能力屏蔽入站查詢,并且在執行之前中斷查詢。可以采用的方法主要有網絡連接重置和內存掃描代理。一種特定類型的屏蔽---“虛擬補丁”, 在補丁被部署之前,阻止已知漏洞的查詢。
(2)查詢白名單:傳統的屏蔽技術依賴于查詢參數和屬性的分析。這種技術是根據詞法分析,有兩個顯著的優勢。首先監測是基于查詢結構,匹配”FROM”和”WHERE”語句的格式,以確定這個查詢是否符合允許列表。第二,如何產生允許查詢列表。通過監測數據庫行為,數據庫安全平臺能夠自動標記這些被允許的查詢,從而生成白名單。當然用戶是被允許可以修改這個白名單的。所有不在白名單上的查詢是無法進入數據庫的。
(3)動態數據屏蔽:屏蔽是一種改變數據,使原始數據是模糊的,但數據本身并不會被破壞的方法。我們將敏感數據的一小部分用隨機值取代,使它們看起來像原稿一樣。例如,我們用一個電話簿中隨機選擇的名稱來替代數據庫中的客戶名稱的列表。
(4)應用活動監測:數據庫很少孤立存在,它們常常是應用程序的擴展,但我們常常把它們看做獨立的組件。通過監測數據庫與應用程序之間的數據交換,能大大提高監測數據庫的能力。
(5)文件活動監測:文件活動監測的范圍包括文件打開、保存、刪除和復制,而不是僅僅局限于“SELECT”,“INSERT”,“UPDATE”,“DELETE”等SQL查詢語句。
(6)查詢重寫:另一個保護數據和數據庫免受惡意查詢的有用的技術就是查詢重寫。通過部署一個反向數據庫代理,評估查詢指令的共同屬性和查詢結構。如果一個查詢看起來可疑,或者違反安全政策,它會被一個類似的授權查詢所取代。例如,一個包括社會安全號碼的列查詢可能被從結果中刪除。查詢重寫,保護了應用的連續性,因為可疑的查詢不是簡單地被丟棄,而是返回請求的數據的一個子集,所以誤報不會導致應用程序掛起或崩潰。
(7)連接池的用戶識別:如果所有的查詢都是由同一個賬戶發起,那么細粒度的安全監控將變得困難。這個功能需要使用多種技術來匹配每個應用者的每個查詢。
(1)數據庫發現:數據庫中發現兩種方法之一:主動掃描和被動檢測。大多數進行主動掃描網絡的工具,通過詢問數據庫端口來識別數據庫。通常有一個快速掃描的選擇——只是尋找數據庫的標準端口數量,或遍歷整個端口地址范圍來進行完整的掃描。后者是耗時的,但是安全性更高。第二個選擇是監聽網絡,以混雜方式,尋找任何與數據庫的通信。這種被動的發現模式需要花更多的時間去發現數據庫。
(2)內容發現:通常我們認為已經足夠了解我們的數據庫了,但其實我們并不真正知道數據庫里面在運行什么。數據庫安全平臺中的內容發現功能能夠區分像社會安全號碼這樣的敏感信息。發現工具爬過注冊數據庫,尋找匹配政策的內容和元數據,當敏感信息出現在未經允許的位置時發出警告。
(3)動態內容分析:監控敏感數據的實時查詢的結果,并根據結果產生相應的警告。
本文討論了一種可運行在不同類型的數據庫管理系統上的數據庫安全平臺模型,通過分析一系列安全策略和安全技術在該平臺上的運用,驗證數據庫安全平臺架構在提高數據庫安全方面的有效性。
[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