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