如何選擇適合的數(shù)據(jù)庫本地訪問審計技術(shù)?
數(shù)據(jù)庫運維人員(DBA)在開展日常運維工作的過程中,因操作環(huán)境和規(guī)范要求的不同,其訪問數(shù)據(jù)庫的方式也相對靈活——既可以通過網(wǎng)絡(luò)遠程訪問,也可以進行本地訪問。那么問題來了...
什么是數(shù)據(jù)庫本地訪問?
簡單描述,就是在一臺主機上同時運行應(yīng)用/客戶端和數(shù)據(jù)庫系統(tǒng)的操作行為。
如何進行數(shù)據(jù)庫本地訪問?
行為1:本地回環(huán)訪問
行為2:本地IPC訪問
需要強調(diào)的是:由于本地IPC訪問是進程間通訊,不產(chǎn)生流量,因而常規(guī)審計技術(shù)無法完成此類審計工作。針對這種DBA常用的本地訪問行為,為確保數(shù)據(jù)庫及數(shù)據(jù)的安全,需要一種能夠進行完整、高準(zhǔn)確度的審計技術(shù)支撐!
如何選擇本地IPC訪問行為審計技術(shù)?
針對本地IPC訪問行為,目前可以采用的審計技術(shù)為:SSH審計(遠程登錄審計的一種方式)和本地審計。下文從完整性、準(zhǔn)確性、IT環(huán)境影響、兼容數(shù)據(jù)庫四個方面,對SSH審計技術(shù)和本地審計技術(shù)進行了對比分析。
一、審計完整性對比
DBA在進行本地訪問時,常會用到多種方式登錄數(shù)據(jù)庫服務(wù)器,執(zhí)行的命令也呈現(xiàn)多樣化。正因如此,完整捕獲運維人員的全部操作及相關(guān)數(shù)據(jù)信息,確保審計工作無漏審、不被繞過,已成為當(dāng)前客戶選擇審計產(chǎn)品時的一項重要技術(shù)指標(biāo)。
1. SSH審計
通過捕獲SSH工具上的數(shù)據(jù)通訊包進行審計,會出現(xiàn)流量被繞過和漏審的問題。
(1)SSH審計被繞過:因捕獲到的流量僅為通過SSH工具的流量,會出現(xiàn)被繞過的問題。
場景示例1:SSH審計被繞過
(2)SSH審計漏審:因捕獲到的流量僅為交互時發(fā)出的命令及屏幕回顯信息,會出現(xiàn)審計信息的缺失。
場景示例2:SSH審計漏審
DBA通過SSH登錄到數(shù)據(jù)庫服務(wù)器后執(zhí)行運維SQL腳本,如果此時腳本不向屏幕輸出SQL語句,那么使用SSH審計就只能捕獲執(zhí)行結(jié)果,卻無法捕獲所執(zhí)行的SQL語句,從而出現(xiàn)漏審問題。
2. 本地審計
在客戶端程序通訊過程中,采用插件技術(shù)獲取share memory和IPC的通信內(nèi)容,有效避免了漏審或被繞過的情況發(fā)生,從而實現(xiàn)面向本地訪問方式的完整審計。
二、審計準(zhǔn)確性對比
在運維場景中,使用客戶端工具運維數(shù)據(jù)庫時,客戶端返回的結(jié)果集數(shù)據(jù)往往是由符號“+”、“_”、“|”在命令行終端畫出的簡易表格。在SQL解析時,如果不能對結(jié)果集中包含的特定字符與終端制表符號進行準(zhǔn)確區(qū)分,就會導(dǎo)致解析不準(zhǔn)確,最終影響審計的準(zhǔn)確度。
1. SSH審計
若在結(jié)果集中包含了“|”等特定字符,就可能在協(xié)議解析時與終端制表符號混淆,導(dǎo)致解析不準(zhǔn)確。
2. 本地審計
獲取通訊包流量,并基于精準(zhǔn)協(xié)議對通訊包流量進行解析,不涉及與終端制表符號混淆的問題。
三、IT環(huán)境影響情況對比
數(shù)據(jù)庫審計產(chǎn)品作為第三方數(shù)據(jù)庫安全產(chǎn)品,不應(yīng)對數(shù)據(jù)庫IT環(huán)境產(chǎn)生影響。
1. SSH審計
由于SSH是加密協(xié)議,要做SSH審計就需要具備解密SSH通信的技術(shù)能力。目前,業(yè)界采取的各類方式對數(shù)據(jù)庫IT環(huán)境都有較大影響,具體情況如下:
- 中間人劫持:這種方式允許在客戶端(SSH工具)和服務(wù)端(數(shù)據(jù)庫服務(wù)器)之間插入中間人,獲取到客戶端與服務(wù)端之間全部的通信數(shù)據(jù),存在網(wǎng)絡(luò)變更。
- 旁路解析:DBA在抓取SSH流量后對其進行解密和分析,需要獲取服務(wù)端的公鑰和私鑰,對網(wǎng)絡(luò)環(huán)境的安全性存在較大影響。需要注意的是,SSH協(xié)議常用的加密算法有RSA算法和DH算法。其中,DH算法應(yīng)用動態(tài)交換密鑰,生成共享密鑰。在目前情況下,SSH審計技術(shù)無法保證能夠破解此密鑰。
- SSH嗅探:該方式通過在數(shù)據(jù)庫服務(wù)器上駐留一個特權(quán)用戶(如root用戶)創(chuàng)建監(jiān)聽進程,以監(jiān)聽此服務(wù)器上的全部SSH連接,從而獲取數(shù)據(jù)庫的操作信息,該方式存在一定的安全漏洞。
- 工具后門:通過在運維工具內(nèi)植入后門代碼,將抓取工具的輸入、輸出信息并發(fā)送至審計設(shè)備,多用于客戶使用統(tǒng)一運維工具的場景,該方式同樣存在安全隱患。
2. 本地審計
不改變客戶原有的行為習(xí)慣和網(wǎng)絡(luò)環(huán)境,不會對數(shù)據(jù)庫網(wǎng)絡(luò)環(huán)境安全造成影響。
四、兼容數(shù)據(jù)庫情況對比
對于數(shù)據(jù)庫本地行為審計,應(yīng)考慮其是否適配數(shù)據(jù)庫本身。在這方面,SSH審計和本地審計均可適配當(dāng)前主流的數(shù)據(jù)庫及操作系統(tǒng)。
1. SSH審計
通過SSH協(xié)議進行審計,不需要適配數(shù)據(jù)庫,所以支持的數(shù)據(jù)庫會更加全面;操作系統(tǒng)方面,除不支持Windows系統(tǒng)上的SQL Server數(shù)據(jù)庫審計之外,一般情況下都不需要適配。
2. 本地審計
可根據(jù)不同的數(shù)據(jù)庫類型/版本、不同的本地訪問方式,以及所使用客戶端情況等進行適配。目前,本地審計產(chǎn)品需考慮適配國內(nèi)外主流數(shù)據(jù)庫及Linux、Unix、Windows等操作系統(tǒng)(特殊類型/版本的數(shù)據(jù)庫及操作系統(tǒng)還需進一步適配)。
【本文是51CTO專欄作者“安全牛”的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】