自建數(shù)據(jù)庫沒有審計方案?試試這套輕量級低成本方案
數(shù)據(jù)庫審計
數(shù)據(jù)庫安全,是指以保護數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫中的數(shù)據(jù)、應(yīng)用、存儲,以及相關(guān)網(wǎng)絡(luò)連接為目的,是防止數(shù)據(jù)庫系統(tǒng)及其數(shù)據(jù)遭到泄露、篡改或破壞的安全技術(shù)。數(shù)據(jù)庫審計隸屬于數(shù)據(jù)庫安全,相關(guān)領(lǐng)域也包含數(shù)據(jù)庫防火墻,數(shù)據(jù)庫加密等。本文主要介紹數(shù)據(jù)庫審計方案。
編輯搜圖
上圖參考自安全牛。
數(shù)據(jù)庫安全需求
在數(shù)字經(jīng)濟時代,數(shù)據(jù)資源成為經(jīng)濟發(fā)展的關(guān)鍵要素,無論是互聯(lián)網(wǎng)行業(yè)還是傳統(tǒng)行業(yè)都在踐行信息化、數(shù)字化、虛擬化。根據(jù)FileEye M-Trends 2018報告,企業(yè)組織的攻擊從發(fā)生到發(fā)現(xiàn)所需時長可以看出企業(yè)安全防護管理能力薄弱,亞太地區(qū)尤甚。
每個企業(yè)的業(yè)務(wù)系統(tǒng)的核心都是數(shù)據(jù),大部分系統(tǒng)的核心數(shù)據(jù)都存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫的安全關(guān)乎核心系統(tǒng)的安全,甚至關(guān)乎企業(yè)的命脈。數(shù)據(jù)庫安全問題主要體現(xiàn):
-
外部非授權(quán)人員(如黑客)對數(shù)據(jù)庫進行惡意入侵,獲取或者刪除數(shù)據(jù)庫數(shù)據(jù)。
-
內(nèi)部人員操作安全隱患,非法修改和刪除數(shù)據(jù)庫數(shù)據(jù),調(diào)整數(shù)據(jù)庫配置,誤操作給業(yè)務(wù)系統(tǒng)帶來難以恢復(fù)的損失。
-
針對數(shù)據(jù)庫的安全事件發(fā)生后,無法進行有效的追溯和審計。
法律法規(guī)需求
國內(nèi)制定了網(wǎng)絡(luò)安全等級保護制度標準和網(wǎng)絡(luò)安全法等,從法律法規(guī)的層面要求企業(yè)應(yīng)當履行安全保護義務(wù)。
編輯搜圖
數(shù)據(jù)庫審計系統(tǒng)是一種降低數(shù)據(jù)庫存安全風(fēng)險和滿足審計需求的系統(tǒng)。國內(nèi)安全廠商基本都有完善數(shù)據(jù)庫審計方案,接下來將對數(shù)據(jù)庫審計方案的功能點進行梳理,最后提出一種輕量級、低成本的自建數(shù)據(jù)庫審計方案。
業(yè)界數(shù)據(jù)庫審計方案
數(shù)據(jù)庫審計系統(tǒng)功能模塊
數(shù)據(jù)庫審計作為一個完整的系統(tǒng),主要功能模塊包括采集、審計、存儲查詢、審計告警和可視化報表展示等功能。
編輯搜圖
支持數(shù)據(jù)庫類型
數(shù)據(jù)庫一般支持國內(nèi)外主流數(shù)據(jù)庫,包括MySQL、PostgreSQL、SQL Server、Oracle、DB2等關(guān)系數(shù)據(jù)庫,還包括HBase、MongoDB、Redis等數(shù)據(jù)庫,國產(chǎn)數(shù)據(jù)庫包括大夢,人大金倉、南大通用等。總體而言,主流數(shù)據(jù)庫一般都包含在內(nèi)。
審計數(shù)據(jù)采集范圍
數(shù)據(jù)庫審計系統(tǒng)一般會將采集Agent和審計分析等模塊,整個系統(tǒng)部署在交換機的鏡像端口,在采集端可以設(shè)置一定的審計策略,例如支持全面審計,將數(shù)據(jù)庫所有的操作記錄下來,考慮到審計系統(tǒng)的吞吐能力,也支持進行白名單或黑名單審計,只審計重要的語句和請求來源,部分審計有一定的缺陷,因為往往不能確定哪些語句或者來源是可以忽略的,所以好的審計系統(tǒng)應(yīng)該是全面審計,審計范圍下表供參考。
模塊 |
分類 |
舉例 |
(How)查詢語句 |
DDL |
Create、Drop、Alter等 |
DML |
Select、Insert、Delete、Update等 |
|
DCL |
Grant、Revoke等 |
|
TCL |
Begin Transaction、Commit、Rollback等 |
|
(Who)訪問來源 |
數(shù)據(jù)庫訪問者信息 |
客戶端IP、端口、訪問用戶等 |
(What)操作對象 |
數(shù)據(jù)庫操作對象 |
數(shù)據(jù)庫實例、名稱、表等 |
(When)操作時間 |
數(shù)據(jù)庫操作時間 |
執(zhí)行操作的時間 |
(Where)操作位置 |
數(shù)據(jù)庫所處的位置 |
數(shù)據(jù)庫服務(wù)端IP、數(shù)據(jù)庫端Port等 |
(Why)操作動機 |
分析SQL的行為 |
及時查出風(fēng)險違規(guī)SQL等 |
存儲查詢分析
審計系統(tǒng)中都會有存儲系統(tǒng),來將審計流量解析后的操作記錄下來,以供后續(xù)報表使用和告警分析,在存儲方面一般會有容量限制,不支持無限存儲。支持一定程度的檢索和根據(jù)查詢條件來進行靈活的查詢,支持根據(jù)源IP,執(zhí)行時間等各類定制條件的檢索,總體來看查詢分析偏定制化,與真正的日志查詢分析能力相比,靈活性會有些欠缺。
告警
審計系統(tǒng)會對數(shù)據(jù)庫訪問行為進行實時監(jiān)控,如果觸發(fā)了規(guī)則設(shè)置,告警系統(tǒng)會對數(shù)據(jù)庫的危險操作行為進行告警,顯示告警信息并且將告警信息存儲,便于后續(xù)查詢檢索發(fā)生的告警,在告警通知渠道方面一般支持Syslog、郵件、SNMP、短信等傳統(tǒng)通知渠道,對于新的通知渠道比如微信、釘釘、甚至云廠商的EventBridge,F(xiàn)unctionCompute等支持較弱。通知渠道較為傳統(tǒng),并且不具有通知編排分派能力。
報表
數(shù)據(jù)庫審計報表支持各種報表模板,報表中符合SOX法案、等保等法規(guī)標準的審計需求,一般包括在線報表和周期性報表,并且支持導(dǎo)出為PDF或者Excel等。報表內(nèi)容包括數(shù)據(jù)庫訪問情況,性能狀態(tài),語句分布,風(fēng)險分布等。
雙向?qū)徲?/span>
雙向?qū)徲?,指的是對?shù)據(jù)庫的請求和返回結(jié)果進行雙向?qū)徲?,一般的?shù)據(jù)庫審計系統(tǒng)都提供了雙向?qū)徲嫻δ?,對于返回結(jié)果,大部分審計系統(tǒng)存儲的是返回結(jié)果行數(shù)和消耗時間,少量審計系統(tǒng)支持對原始返回結(jié)果的存儲。
三層關(guān)聯(lián)審計
三層關(guān)聯(lián)是一個比較早期的概念,表示客戶瀏覽器、web服務(wù)器、數(shù)據(jù)庫服務(wù)器三層,在數(shù)據(jù)庫層發(fā)生問題時,可以追溯到web服務(wù)器和客戶瀏覽器,從而找到引起問題的用戶信息。大部分審計系統(tǒng)通過在web服務(wù)器上部署審計插件,可以達到三層關(guān)聯(lián)審計的需求。
在云原生時代,終端用戶訪問的路徑可能不僅僅是這三層,中間可能經(jīng)過很多不可見的層,一般可以通過Trace的方式,關(guān)聯(lián)整個訪問路徑,來查看整個訪問路徑的延遲、吞吐和錯誤。
數(shù)據(jù)庫審計系統(tǒng)部署架構(gòu)
部署方式基本都支持旁路部署的方式,通過交換機端口鏡像,將數(shù)據(jù)庫的流量鏡像到審計系統(tǒng)中,在不支持交換機端口鏡像的環(huán)境下,也有部分嘗試支持將審計系統(tǒng)串聯(lián)在數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器之間獲取數(shù)據(jù)庫流量,一般不推薦串聯(lián)的做法,對數(shù)據(jù)庫或者應(yīng)用服務(wù)會產(chǎn)生潛在的性能和穩(wěn)定性有潛在威脅。
-
旁路鏡像流量方式
編輯搜圖
-
串聯(lián)方式
編輯搜圖
兩者對比
部署方式 |
旁路鏡像 |
串聯(lián) |
侵入現(xiàn)有業(yè)務(wù)架構(gòu) |
否 |
是 |
對數(shù)據(jù)庫性能影響 |
無 |
有一定影響 |
業(yè)務(wù)系統(tǒng)感知 |
無感知 |
需要感知代理的存在 |
安全性 |
較安全 |
可能暴露用戶名密碼 |
升級過程 |
只需升級插件,不影響業(yè)務(wù)系統(tǒng) |
升級代理過程可能影響業(yè)務(wù)系統(tǒng) |
輕量級、低成本數(shù)據(jù)庫審計方案
在安全廠商提供的方案中,有軟硬一體的交付方案和軟件兩種部署方案,價格也根據(jù)不同的審計規(guī)格定價不同,總體而言對于小企業(yè)來講也是一筆不小的開銷,有沒有一種輕量級、低成本的方案呢?答案是肯定的。本文將提供一種基于開源抓包工具+云上存儲查詢分析的審計方案。
開源抓包工具+云上存儲查詢分析
在數(shù)據(jù)庫審計方案中,對數(shù)據(jù)庫流量的抓取、解析、存儲、查詢、告警、報表是剛性需求。在開源產(chǎn)品中,抓包工具可以選擇Packebeat,一種開源的網(wǎng)絡(luò)抓包工具。
Packebeat支持較多的網(wǎng)絡(luò)協(xié)議,包括ICMP、DHCP、DNS、HTTP、AMQP、Cassandra、MySQL、PostgreSQL、Redis、Thrift-RPC、MongoDB、Memcache、NFS、TLS、SIP/SDP等協(xié)議,包含的常見的數(shù)據(jù)庫和內(nèi)存數(shù)據(jù)庫等。
Packetbeat是通過libcap抓取網(wǎng)絡(luò)流量,支持多種網(wǎng)絡(luò)協(xié)議的解析,通過將網(wǎng)絡(luò)包的分析,拆分出消耗時間和狀態(tài)字段等,并將協(xié)議結(jié)果組裝成統(tǒng)一的JSON結(jié)構(gòu)。Packebeat屬于ElasticSearch的Beats系列,支持將采集到的數(shù)據(jù)輸出到非常多的插件中,包括elasticsearch、kafka、http、lumberjack等。
在數(shù)據(jù)存儲查詢分析方面,可供選擇的比較多,同時滿足高性能存儲、查詢分析、可視化、告警等需求的免運維一站式方案可以選擇阿里云日志服務(wù)。
-
審計數(shù)據(jù)的存儲可以根據(jù)自身需求和等保要求選擇存儲時間,并且日志服務(wù)支持冷存已節(jié)省存儲費用。
-
日志服務(wù)查詢分析具有大規(guī)模、免運維、低成本等特點,性能方便可以支持十億數(shù)據(jù)秒級返回。支持完整的SQL92語法支持,對于審計場景的查詢分析,事后問題追溯具有重要的意義。
-
日志服務(wù)支持完善的可視化報表,可以進行交互式實時可視化,同時支持第三方如Grafana、Tableau、DataV等可視化系統(tǒng)。
-
日志服務(wù)監(jiān)控告警支持大規(guī)模日志的實時監(jiān)控,具有靈活智能的告警降噪功能,在通知方面支持動態(tài)分派,用戶組、值班組、排班表等功能,支持多樣化的通知渠道除了傳統(tǒng)的郵件、短信、語音等渠道外,還支持現(xiàn)代化的通知渠道如微信、釘釘、飛書、自定義Webhook,云上支持EventBridge、FunctionCompute等,可以多個場景使用。
部署方式
使用該方案,可以在用戶端部署輕量級的采集Agent,將較重的查詢分析能力、審計告警能力后移到日志服務(wù),可以大大節(jié)省用戶的服務(wù)器資源,同時可以享受在云上的免運維、高性能、低成本的服務(wù)。部署架構(gòu)的總體思想是將Packetbeat和Logtail部署在可以采集到數(shù)據(jù)庫流量的路徑上。
采集Agent包括Packetbeat和日志服務(wù)Logtail,將抓到的審計數(shù)據(jù)上傳到日志服務(wù)的Project中,根據(jù)審計場景的不同,主要分為以下部署方式:
-
RDS數(shù)據(jù)庫審計場景:主要包括云上數(shù)據(jù)庫的審計,是通過將Logtail和抓包工具部署在應(yīng)用服務(wù)器上來進行抓包實現(xiàn)審計功能。
編輯搜圖
-
自建數(shù)據(jù)庫審計場景:自建數(shù)據(jù)庫一般是部署在企業(yè)自己的數(shù)據(jù)庫服務(wù)器上,通過將Logtail和抓包工具安裝在數(shù)據(jù)庫服務(wù)器上實現(xiàn)審計功能。

-
-
除了以上部署方式,也可以通過交換機端口鏡像的方式,將Logtail和Packetbeat部署在可以接收端口鏡像流量的服務(wù)器上,同樣可以實現(xiàn)數(shù)據(jù)庫審計。
日志查詢分析
在日志服務(wù)控制臺的查詢頁面可以進行靈活的日志查詢分析,對于審計中出現(xiàn)的異常行為可以查看其詳細操作內(nèi)容,同時可以對過去任意長時間的數(shù)據(jù)(在日志庫的TTL內(nèi),TTL可以由用戶設(shè)置)進行高性能查詢分析。
以下為采集的的數(shù)據(jù)庫操作的示例,包含完整的客戶端信息、服務(wù)端信息、查詢語句、查詢語句參數(shù)、返回結(jié)果行數(shù)等信息。
編輯搜圖
分析場景,支持靈活的SQL92語法查詢,比如下圖可以查詢過去一段時間內(nèi)每種查詢語句的執(zhí)行數(shù)量趨勢,在查詢后支持多種儀表盤展示,以下為流圖展示。
編輯搜圖
安全審計報表,可深度自定義
在改方案中,日志服務(wù)提供了內(nèi)置的儀表盤,用戶也可以根據(jù)自身需求定制自己的儀表盤。
-
審計運營中心儀表盤

-
-
審計安全中心儀表盤


-
-
審計性能中心儀表盤


方案優(yōu)勢
編輯搜圖
輕量級部署
僅需根據(jù)審計場景在相應(yīng)的服務(wù)器上部署Logtail+Packetbeat即可完成審計的部署,同時在日志服務(wù)通用數(shù)據(jù)庫審計的控制臺,可以快速安裝。
靈活查詢語法,支持查詢+SQL92
日志服務(wù)支持靈活的查詢語法,分析語法完整支持SQL 92標準,同時日志服務(wù)還提供了豐富的內(nèi)建函數(shù),比如支持包括平滑函數(shù)、多周期估計函數(shù)、變點檢測函數(shù)、預(yù)測與異常檢測函數(shù)等機器學(xué)習(xí)的語法和函數(shù),可以一鍵式使用日子服務(wù)的機器學(xué)習(xí)能力。
大數(shù)據(jù)實時查詢分析查詢高性能
日志服務(wù)的具有極致的查詢分析速度,可以做到十億級數(shù)據(jù)秒級返回。同時對于大數(shù)據(jù)量的SQL分析時,支持更為強勁的獨享SQL能力,支持千億級數(shù)據(jù)的高性能分析,可以快速支撐長周期比如月維度,年維度的數(shù)據(jù)分析場景、支持每天TB級別的數(shù)據(jù)分析。在審計場景下,進行全量審計往往數(shù)據(jù)量比較大,查詢性能是審計系統(tǒng)的重要體驗因素。
同時日志服務(wù)的分析語法支持SQL的JOIN,通過JOIN語法可以方便的與其他日志庫進行聯(lián)合查詢,可以方便的實現(xiàn)三層關(guān)聯(lián)審計。
海量數(shù)據(jù)低成本存儲,冷存滿足各類長期存儲
對于海量的審計數(shù)據(jù),日志服務(wù)的存儲價格為0.0115元/GB/天,同時支持秒級高性能返回;對于有長期存儲,查詢頻次較低的場景,支持冷存儲,價格低至0.005元/GB/天。日志服務(wù)的智能冷熱分層存儲,尤其適合審計合規(guī)的數(shù)據(jù)的存放。
完善的智能告警系統(tǒng),現(xiàn)代化云原生的告警管理系統(tǒng)
日志服務(wù)告警是一站式告警監(jiān)控、降噪、事務(wù)管理、通知分派的智能運維平臺。包含日志/時序存儲、告警監(jiān)控、告警管理、通知管理等模塊;具有高可用和高可靠性,同時告警服務(wù)功能免費,僅收取短信、語音兩個渠道的通知費用。Saas形態(tài)的告警產(chǎn)品具有更全面智能的告警監(jiān)控能力和告警事務(wù)降噪能力,可以有效降低告警系統(tǒng)的運維成本和運維人員的時間成本。
低成本,無訂閱費
該方案具有低成本的優(yōu)勢,不收取訂閱費,在審計數(shù)據(jù)采集后,僅按量收取審計數(shù)據(jù)的讀寫費用和存儲費用,如果使用告警系統(tǒng),僅產(chǎn)生少量的短信和語音渠道費(不使用短信和語音通知渠道不收費),相比其他包年包月的收費方式,具有較多優(yōu)勢。
開始使用
目前該方案在日志服務(wù)已經(jīng)開始公測,在日志服務(wù)控制臺首頁-日志應(yīng)用中可以找到入口,入口鏈接。
編輯搜圖
進入通用數(shù)據(jù)庫審計后,通過簡單的接入配置,即可完成數(shù)據(jù)庫的審計功能。具體操作步驟可以參考官網(wǎng)鏈接。
編輯搜圖
編輯搜圖
編輯搜圖
在使用的過程中有任何問題可以加入SLS客戶支持群進行提問。