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