SQL(Structured Query Language)注入攻擊屬于數(shù)據(jù)庫安全攻擊手段之一,通過將SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。數(shù)據(jù)庫安全防護(hù)內(nèi)置了SQL注入特性庫、基于上下文的學(xué)習(xí)模型和評分機(jī)制,對SQL注入進(jìn)行綜合診斷,并實時阻斷,從而確保用戶數(shù)據(jù)庫免受SQL注入攻擊。
場景說明
數(shù)據(jù)庫防攻擊的架構(gòu)圖如圖1所示。
圖1防攻擊架構(gòu)圖
購買數(shù)據(jù)庫安全防護(hù)實例后,假設(shè)您需要對華為云上彈性云服務(wù)器(Elastic Cloud Server,以下簡稱ECS)的自建數(shù)據(jù)庫進(jìn)行防SQL攻擊防護(hù),數(shù)據(jù)庫的信息說明如表1所示。
本章節(jié)介紹在該場景下如何通過根據(jù)創(chuàng)建的學(xué)習(xí)模式規(guī)則,對SQL注入進(jìn)行綜合診斷,并實時阻斷。
表1 ECS自建數(shù)據(jù)庫信息說明
步驟一:將數(shù)據(jù)庫接入數(shù)據(jù)庫安全防護(hù)管理系統(tǒng)(HexaTier)
購買數(shù)據(jù)庫安全防護(hù)實例后,您需要先將數(shù)據(jù)庫接入數(shù)據(jù)庫安全防護(hù)管理系統(tǒng)(HexaTier),配置日志存儲路徑、創(chuàng)建受保護(hù)的數(shù)據(jù)庫和修改業(yè)務(wù)側(cè)配置文件,才可以使用監(jiān)控功能、防拖庫功能和查看日志記錄以及受保護(hù)的數(shù)據(jù)庫安全防護(hù)策略生效。
1.登錄管理控制臺。
2.進(jìn)入登錄安全防護(hù)管理控制臺入口,如圖2所示。
圖2進(jìn)入登錄安全防護(hù)管理控制臺入口
3.輸入登錄用戶名admin和密碼,單擊“登錄”或按“Enter”,如圖3所示。
圖3安全防護(hù)管理控制臺登錄界面
4.配置日志存儲路徑。
為滿足合規(guī)性要求,HexaTier采用遠(yuǎn)程存儲的方式保存日志,供后續(xù)審計及取證使用。在登錄HexaTier后,必須先配置日志存儲路徑,才可以使用監(jiān)控功能、防拖庫功能和查看日志記錄。
a.進(jìn)入遠(yuǎn)程日志配置入口,如圖4所示。
圖4進(jìn)入遠(yuǎn)程日志配置入口
b.在“遠(yuǎn)程日志配置”頁面,配置遠(yuǎn)程日志參數(shù),如圖5所示。
圖5配置遠(yuǎn)程日志
c.單擊“測試”。
d.單擊“更新”。
5.創(chuàng)建受保護(hù)的數(shù)據(jù)庫。
受保護(hù)的數(shù)據(jù)庫指在HexaTier中配置連接并被保護(hù)的數(shù)據(jù)庫實例。創(chuàng)建受保護(hù)數(shù)據(jù)庫后,您就可以通過HexaTier控制臺進(jìn)行配置敏感數(shù)據(jù)脫敏規(guī)則,啟用敏感數(shù)據(jù)發(fā)現(xiàn)功能。
a.進(jìn)入新建受保護(hù)的數(shù)據(jù)庫入口,如圖6所示。
圖6進(jìn)入新建受保護(hù)的數(shù)據(jù)庫入口
b.在“受保護(hù)數(shù)據(jù)庫”頁面,配置數(shù)據(jù)庫參數(shù),如圖7所示。
圖7創(chuàng)建受保護(hù)數(shù)據(jù)庫
c.單擊“創(chuàng)建”,在受保護(hù)數(shù)據(jù)庫列表頁面可以查看創(chuàng)建的數(shù)據(jù)庫,如圖8所示。
圖8受保護(hù)數(shù)據(jù)庫創(chuàng)建成功
6.修改業(yè)務(wù)側(cè)配置文件。
為了確保受保護(hù)的數(shù)據(jù)庫安全防護(hù)策略生效,您需要手動將業(yè)務(wù)側(cè)配置文件中數(shù)據(jù)庫的信息(IP地址和端口),分別修改為登錄HexaTier的數(shù)據(jù)庫安全防護(hù)實例的浮動地址和創(chuàng)建受保護(hù)的數(shù)據(jù)庫時設(shè)置的代理端口。
說明:
每一個添加防護(hù)的數(shù)據(jù)庫都需要手動修改業(yè)務(wù)側(cè)配置文件對應(yīng)的數(shù)據(jù)庫信息(IP地址和端口)。
a.獲取圖2中實例的“浮動地址”“192.168.1.95”。
b.獲取圖8中受保護(hù)數(shù)據(jù)庫的“代理地址”接口“3306”。
c.登錄數(shù)據(jù)庫后,將業(yè)務(wù)側(cè)配置文件中數(shù)據(jù)庫的信息,分別修改為實例的浮動地址和受保護(hù)數(shù)據(jù)庫的代理端口。
以JDBC編程語言為例,配置示例如下:
data.datasource.url=jdbc:mysql://192.168.1.95:3306/test
d.保存配置文件,并重啟應(yīng)用程序。
配置完成后,您可以登錄HexaTier,選擇“儀表盤>受保護(hù)的數(shù)據(jù)庫拓?fù)鋱D”,查看受保護(hù)的數(shù)據(jù)庫是否連接成功。
:代表業(yè)務(wù)側(cè)與DBSS連接不成功或未連接。連接不成功時,您可以參照數(shù)據(jù)庫安全防護(hù)無法連接防護(hù)數(shù)據(jù)庫進(jìn)行排查。
:代表受保護(hù)的數(shù)據(jù)庫連接成功。
步驟二:配置學(xué)習(xí)模式規(guī)則和查詢模式組防火墻規(guī)則
在本節(jié)中,您需要配置學(xué)習(xí)模式規(guī)則,并創(chuàng)建基于該查詢模式組的數(shù)據(jù)庫防火墻規(guī)則。
1.配置學(xué)習(xí)模式規(guī)則。
a.進(jìn)入數(shù)據(jù)庫安全策略入口,如圖9所示。
圖9進(jìn)入數(shù)據(jù)庫安全策略入口
b.在“創(chuàng)建數(shù)據(jù)庫安全規(guī)則”頁面,創(chuàng)建學(xué)習(xí)模式規(guī)則,如圖10所示。
圖10創(chuàng)建學(xué)習(xí)模式規(guī)則
c.單擊“創(chuàng)建”。
d.進(jìn)入學(xué)習(xí)模式庫入口,如圖11所示。
圖11進(jìn)入學(xué)習(xí)模式庫入口
e.在“新建查詢模式”頁面,配置學(xué)習(xí)模式庫,如圖12所示。
圖12創(chuàng)建學(xué)習(xí)模式庫
f.單擊“創(chuàng)建”。
2.基于學(xué)習(xí)模式的學(xué)習(xí)結(jié)果,創(chuàng)建查詢模式組防火墻規(guī)則。
a.進(jìn)入數(shù)據(jù)庫安全策略入口,如圖13所示。
圖13進(jìn)入數(shù)據(jù)庫安全策略入口
b.在“創(chuàng)建數(shù)據(jù)庫安全規(guī)則”頁面,創(chuàng)建基于學(xué)習(xí)結(jié)果的查詢模式組規(guī)則,如圖14所示。
圖14創(chuàng)建查詢模式組防火墻規(guī)則
c.單擊“創(chuàng)建”。
步驟三:配置SQL注入風(fēng)險引擎
1.進(jìn)入配置SQL注入風(fēng)險引擎入口,如圖15所示。
圖15進(jìn)入配置SQL注入風(fēng)險引擎入口
2.在“SQL注入風(fēng)險引擎配置”頁面,設(shè)置風(fēng)險因素的權(quán)重評分,如圖16所示。
建議總分值設(shè)置為50。
圖16設(shè)置SQL注入風(fēng)險引擎
3.單擊“保存”。
步驟四:配置基于風(fēng)險的IDS規(guī)則
風(fēng)險引擎定義了對SQL注入攻擊的防護(hù),用戶可以通過調(diào)整每個風(fēng)險因素的權(quán)重評分(1~100),來配置HexaTier的風(fēng)險引擎。
1.進(jìn)入數(shù)據(jù)庫安全策略入口,如圖17所示。
圖17進(jìn)入數(shù)據(jù)庫安全策略入口
2.在“創(chuàng)建數(shù)據(jù)庫安全規(guī)則”頁面,創(chuàng)建基于風(fēng)險的IDS規(guī)則,如圖18所示。
圖18創(chuàng)建基于風(fēng)險的IDS規(guī)則
3.單擊“創(chuàng)建”。
步驟五:查看入侵日志
在左側(cè)導(dǎo)航樹中,選擇“入侵日志”,可以查看入侵事件。
單擊事件日志,可以查看該事件的詳情。