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