999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于異構冗余的擬態數據庫模型設計與測試①

2019-09-24 06:22:06趙琳娜喻衛東
計算機系統應用 2019年9期
關鍵詞:指令數據庫模型

趙琳娜,倪 明,喻衛東

(華東計算技術研究所,上海 201808)

隨著組織機構開展的互聯網業務日益增多,由于大量已知和未知的漏洞及后門的存在,面臨的安全隱患不容小覷.數據庫作為Web 應用的核心組成部分,存有網站動態資源和用戶信息,最易受到攻擊.當數據庫被惡意攻擊成功后,會導致用戶信息泄露、內容被篡改等不良后果.除此之外,攻擊者利用漏洞完成一次數據攻擊所需要的時間極短,給管理員及時發現數據庫入侵并補救的工作帶來了極大困難.

傳統數據庫的防御手段是基于威脅特征感知的精確防御,需要攻擊行為的特征等先驗知識才能有效實施防御,具有靜態、透明、缺乏多樣性等缺陷.擬態防御動態異構冗余架構利用漏洞的平臺相關性,在期望功能等價條件下,擬態界內的執行體具有處理結構的相異性和冗余性,對“已知的未知”風險或“未知的未知”威脅具有內生防御效果[1].

本文依托擬態防御的動態異構冗余原理,提出擬態數據庫模型,通過保留字擬態化模塊、指紋過濾模塊和擬態化中間件模塊分別實現注入指令的異構化、去指紋化和基于相似性判決的選擇性執行,具有內生安全性.

1 傳統數據庫防御手段

根據世界著名的Web 安全與數據庫安全研究組織OWASP 發布的十大最關鍵的Web 應用安全風險(OWASP Top 10),與數據庫安全密切相關的SQL 注入攻擊(SQL Injection)在2013年和2017年均被列為威脅最嚴重的攻擊方式[2].攻擊者通過利用客戶端任何能夠提交信息與數據庫進行交互的地方作為注入點,提交重構的SQL 命令,欺騙數據庫執行,并針對服務器端返回的結果進行分析,竊取數據庫內的關鍵信息、惡意篡改數據和控制服務器.

基于SQL 注入攻擊的原理,當前防御方法大多從代碼層面和平臺層面入手[3],代碼層面的防御方法主要是在需要提交數據的頁面設置規范的SQL 語句格式,對用戶提交的信息進行過濾,保證用戶提交的信息不會對SQL 查詢語句造成歧義,如參數化查詢、參數過濾、存儲過程等;平臺層面的防御方法主要是利用URL 重置技術,將含有注入點的網址屏蔽起來,如URL 重定向技術等.除此以外,還配合使用設置有限的訪問權限、預編譯、加強日常監督與檢測等手段.

1.1 參數化查詢

參數化查詢(parameterized query)指在設計與數據庫鏈接并訪問數據時,在需要填入數值或數據的地方,采用參數傳遞值,避免直接賦值.數據庫系統把參數值應用到查詢計劃中,執行查詢結果,若改變參數值再執行,則得到不同的查詢結果,但SQL 語句不需要重構提交,也不需要再次生成查詢計劃,參數值的變化影響不了查詢計劃[4].

使用參數化查詢技術,數據庫服務器不會將參數的內容視為SQL 指令的組成部分來處理,在一定程度上避免了數據庫編譯運行參數中含有惡意指令的情況.

1.2 參數過濾

參數過濾分為對參數類型或長度的限制和對危險字符的過濾/轉義.

針對特定的、功能單一的參數提交接口,盡可能詳細地限制允許用戶輸入的參數類型及長度.當參數類型必須包含字符或長度無法直接控制時,通過在后臺代碼中設置黑/白名單等過濾規則,將參數中的非法字符轉義為合法字符提交或不予執行,對參數中的敏感信息進行檢測及過濾/轉義,避免非法字符被系統重構為查詢語句導致SQL 注入.

1.3 存儲過程

存儲過程存儲在數據庫系統內部,是一組完成特定功能的SQL 語句集.Web 應用程序通過調用存儲過程事先構建好的SQL 查詢語句代碼來執行相應操作.

存儲過程在使用時起到3 點安全作用:首先,存儲過程在執行前要進行預編譯,編譯出錯不予執行;其次,對于數據的授權訪問是基于存儲過程而不是直接訪問基本表,攻擊者無法探測到Select 語句;最后,存儲過程可以指定和驗證用戶提交的參數類型[5].

1.4 URL 重置

URL 重置是將提交至服務器的Web 程序截取下來,自動將請求重新定位到其他URL 地址的過程.目前可以通過兩種方式實現URL 重置(以ISAPI 篩選器為例)[3]:

1)使用ISAPI 篩選器在IIS Web 服務器級別實現URL 重寫;

2)使用HTTP 模塊或HTTP 處理程序在ASP.NET環境實現URL 重寫.

微軟的IIS 中包含有ISAPI_Rwrite 的URL 重定向組件,提供基于正則表達式的網址重寫引擎,對并不存在的URL 請求重寫[6].通過對Rewrite 組件的應用,實現對含有非法參數的URL 進行重定向.

在已知現有SQL 注入攻擊方法的特征下進行針對性防御的傳統防御手段仍然存在缺陷,如參數化查詢及參數過濾在某些情況下應用場景單一,并且在過濾規則設置不完善的情況下仍可以被攻擊者繞過進而成功實現SQL 注入;存儲過程并不支持所有的數據庫平臺,如果存儲過程中執行的命令是拼接字符串,則仍然存在被注入攻擊的隱患;URL 重置技術在利用ISAPI 篩選器實現時對平臺有一定的局限性,只適用于Windows 系列操作系統的服務器.

2 擬態數據庫模型

現有數據庫防御手段是在已知攻擊特征等先驗知識的前提條件下才能實施有效防御,但在安全領域仍然存在大量未知風險.針對現有數據庫防御手段的靜態性和確定性,本文基于擬態防御的動態異構冗余原理,提出具有內生安全性的擬態數據庫模型.該模型通過保留字擬態化模塊完成SQL 保留字指紋特征的差異化描述,調用指紋過濾模塊對SQL 注入指令進行去指紋處理,使用擬態化中間件對來自不同執行體的SQL 注入指令進行在線相似性判決.

2.1 擬態數據庫模型結構

擬態數據庫模型在傳統數據庫系統的基礎上,新增保留字擬態化模塊、指紋過濾模塊和擬態化中間件模塊對客戶端輸入的合法或非法的SQL 指令進行判決及處理.結構如圖1所示.

圖1 擬態數據庫模型結構

由圖1可知,在擬態數據庫模型中,保留字擬態化模塊先對運行在各執行體上的Web 應用源碼進行SQL保留字的指紋差異化描述;當用戶從網站客戶端發起合法的SQL 任務時,SQL 保留字經過指紋過濾模塊的去指紋化處理后傳入擬態化中間件模塊進行表決,底層數據庫執行經過表決的SQL 語句后返回執行結果;當用戶從網站客戶端發起惡意SQL 任務時,由于未經過保留字擬態化模塊的指紋差異化描述,所以傳入的未帶有指紋特征的SQL 指令不會被執行;若攻擊者獲取到少數執行體的中保留字的指紋特征,偽造經過指紋化處理的SQL 指令,發起惡意SQL 任務,此時不管是從網站客戶端還是從受攻擊的執行體上傳SQL 任務,在經過擬態化中間件時,由于和其他執行體上的SQL 保留字的指紋特征不同,因此偽造的SQL 指令只會加入到受攻擊執行體的對應判決隊列,而此時其他執行體的對應判決隊列為空,根據少數服從多數的判決原則,偽造的惡意SQL 語句并不會通過相似性判決繼續向下執行.

2.2 保留字擬態化模塊

保留字是有特定語義的單詞或字符串,是數據庫識別指令的方法,在客戶端通過SQL 語言操作數據庫時,所使用的SQL 指令即屬于SQL 保留字.

在未使用保留字擬態化模塊時,運行在各執行體上Web 應用中的數據庫訪問SQL 保留字是同構的.保留字擬態化模塊基于擬態防御中各執行體異構冗余的原理,通過對運行在各執行體上Web 應用中的SQL 保留字進行指紋特征差異化描述,實現Web 應用在各擬態執行體上SQL 保留字異構化,防止惡意注入的SQL 保留字被后續模塊執行.SQL 保留字擬態化模塊的工作原理如圖2所示.

圖2 保留字擬態化模塊工作原理

2.3 指紋過濾模塊

保留字擬態化模塊輸出的來自不同執行體的數據庫訪問SQL 保留字帶有不同的指紋特征,并不是可以被正常識別并執行的SQL 指令,為保證指令能夠在后續擬態化模塊中的可用性,引入指紋過濾模塊.

指紋過濾模塊在擬態化中間件對來自各執行體的SQL 指令進行相似性判決前被調用,將經過指紋差異化處理的Web 應用的數據庫訪問SQL 保留字進行去指紋化,使異構化的SQL 保留字可被后續擬態化模塊識別并進一步執行.指紋過濾模塊的工作原理如圖3所示.

圖3 指紋過濾模塊工作原理

2.4 擬態化中間件模塊

數據庫中間件[7]處于數據庫和用戶應用之間,用于屏蔽異構數據庫的底層細節問題.當用戶向Web 服務器發出SQL 請求時,通過數據庫中間件對SQL 請求進行特定的分析,根據分析結果連接數據庫,將SQL 請求轉發給數據庫服務器.數據庫服務器執行SQL 語句后,將查詢結果通過數據庫中間件,傳回給用戶.以MyCAT 為例,傳統數據庫中間件結構[8]如圖4所示.

圖4 傳統數據庫中間件結構

根據圖4可知傳統數據庫中間件的核心由監管模塊、執行模塊組成,執行模塊包括Web 應用端及數據庫端的通信協議、連接池以及SQL 處理部分,其中SQL 處理部分包括SQL 解析組件、SQL 優化組件、SQL 路由組件和SQL 執行組件.

當Web 應用通過通信協議向數據庫端發起SQL任務時,在監管模塊的協調下,SQL 解析組件首先對SQL 語句進行語法分析,SQL 優化組件將SQL 語句轉譯為底層數據庫可識別的語言,SQL 路由組件確定對應的數據庫,最后由SQL 執行組件生成執行計劃,保證分發到底層數據庫的SQL 語句能正確執行[9].數據庫中間件對數據庫返回的執行結果進行排序、合并等處理后,將最終結果返回給Web 應用.

擬態化中間件模塊在傳統數據庫中間件的基礎上,增加了在線擬態判決器和同步機制.

在線擬態判決器是對已經過指紋過濾的來自不同執行體的SQL 指令根據少數服從多數的原則進行相似性判決,選擇相似程度最高的SQL 指令進行執行;同步機制[10]通過交換每個成員中所有已更新的記錄和對象,實現副本集成員的同步;用于維護分布式環境下各個節點數據庫數據的一致性.擬態判決器的結構如圖5所示.

圖5 擬態化中間件結構

由圖5知,當部署在擬態執行體上的Web 應用發起SQL 任務時,擬態化中間件根據各執行體的連接信息,在監管模塊的協調下,調用對應的指紋過濾模塊對異構的SQL 保留字進行去指紋化;隨后將來自不同執行體的SQL 指令加入對應的判決隊列中,并使用擬態判決器在線進行相似性判決;若判決來自不同執行體的SQL 指令一致,則該SQL 指令將生成執行計劃發送到底層數據庫進行執行;若判決來自不同執行體的SQL 指令不完全一致,則按照少數服從多數的原則,執行多數執行體相同的SQL 指令;若判決來自不同執行體的SQL 指令完全不一致,則均不執行且返回報錯信息.在成功執行SQL 指令后,將各執行體SQL 指令保存在對應緩沖區中的執行結果進行完整性驗證,在同步機制的作用下對出現故障的數據表信息進行恢復,最終返回驗證合法的結果.

擬態防御動態異構冗余(Dynamic Heterogeneous Redundancy,DHR)架構的抗攻擊性分析[11]中,若擬態界的執行體集中有n(n=2k+1,k=0,1,2···)個異構執行體,針對特定漏洞的攻擊成功率如下:

針對隨機選擇的漏洞子集組合攻擊成功率如下:

其中,qvuli是 攻擊者利用漏洞vuli對含vuli的執行體進行攻擊的成功率,與攻擊者能力密切相關,是漏洞vul的k階輸出一致率,即對漏洞vul,在N次攻擊中有N′次 其k個輸出相同且與正常輸出不一致,αi是攻擊者利用漏洞vuli攻擊時的選擇權重,為系統動態變化周期T和攻擊時間tvul的綜合考慮參數.由于在擬態防御環境下,系統動態變化周期T較短,使得的I(vul)=0概率增大;系統內各執行體異構性高,因此k階輸出一致率εk(vul)低,且指紋特征在Web 應用源代碼中的SQL 保留字中,大大增加了攻擊者獲取到個執行體中指紋特征的難度,因此攻擊者難以獲得足夠多的指紋特征偽造惡意指令繞過擬態化中間件中的相似性判決.

3 模型測試

SQL 注入攻擊作為主流的數據庫攻擊方式,主要集中在利用網站服務端口接收用戶輸入的功能[12],將構造的SQL 語句傳入數據庫服務器,欺騙其執行開發者規定外的惡意任務.

DVWA 是一款內置不同安全級別漏洞模塊的滲透測試演練系統,安全級別越低,漏洞利用成功率也越高.現使用其SQL 注入模塊來測試擬態數據庫模型的基本防御功能.

3.1 測試過程

為單獨測試擬態數據庫模型的基本防御功能,簡化測試模型,準備一組由3 個同構執行體組成的Web 服務器和一臺數據庫服務器,安裝相同的版本的DVWA;在使用擬態數據庫的情況下,對部署在三臺Web 服務器上DVWA 中的SQL 保留字進行指紋異構化處理,在數據庫服務器中使用指紋過濾模塊和擬態化中間件模塊.

測試過程如下:

(1) 在使用傳統數據庫的情況下,先后用sqlmap、pangolin 等SQL 注入測試工具分別對DVWA 中低安全級別的SQL 注入測試模塊和高安全級別的SQL 注入測試模塊實施SQL 注入測試;

(2) 在使用擬態數據庫模型的情況下,使用注入DVWA 低安全級別的傳統數據庫使用的SQL 注入方法(后文稱低級SQL 注入),針對DVWA 低安全級別的SQL 注入測試模塊實施注入;

(3) 若注入失敗,則使用注入DVWA 高安全級別的傳統數據庫使用的SQL 注入方法(后文稱高級SQL 注入),針對使用擬態數據庫模型的DVWA 低安全級別的SQL 注入測試模塊實施注入;

(4) 在傳統SQL 注入方法失敗的情況下,構造含有某一執行體指紋特征的SQL 注入語句,再次進行SQL 注入測試.

3.2 測試結果

以使用sqlmap 為例,測試結果及說明如下:

(1) 使用傳統數據庫時對DVWA 低安全級別SQL 注入模塊進行SQL 注入的結果.

如圖6所示,在不使用擬態數據庫模型的情況下,當Web 應用的安全性較差時,攻擊者可以輕松實現SQL 注入.

(2) 使用傳統數據庫時對DVWA 高安全級別SQL 注入模塊進行SQL 注入的結果.

圖6 DVWA 低安全級別數據庫SQL 注入結果

如圖7所示,在不使用擬態數據庫模型的情況下,盡管Web 應用的安全性較高,但攻擊者也可以通過各種繞過手段,使用sqlmap 等工具成功實施SQL 注入攻擊.

圖7 DVWA 高安全級別數據庫SQL 注入結果

(3) 使用擬態數據庫模型時對DVWA 低安全級別的SQL 注入測試模塊進行低級SQL 注入的結果.

如圖8所示,在使用擬態數據庫模型的情況下,對DVWA 低安全級別的SQL 注入測試模塊進行低級SQL 注入,由于低級SQL 注入手段通過構造SQL 語句進行注入,并未帶有執行體指紋信息,擬態數據庫模型并不會將其當做SQL 指令進行執行,因此擬態數據庫模型可以防御低級SQL 注入.

圖8 低級SQL 注入結果

(4) 使用擬態數據庫模型時對DVWA 低安全級別的SQL 注入測試模塊進行高級SQL 注入的結果.

如圖9所示,在使用擬態數據庫模型的情況下,對DVWA 低安全級別的SQL 注入測試模塊進行高級SQL 注入,盡管高級SQL 注入可通過繞過手段成功將SQL 指令注入傳統數據庫欺騙其執行,但由于最終擬態數據庫模型接收到的SQL 語句中并未帶有指紋特征,因此并不會將SQL 注入語句作為指令進行執行,說明擬態數據庫模型可以防御高級SQL 注入.

圖9 高級SQL 注入結果

(5) 構造含某一執行體指紋特征的SQL 注入語句進行SQL 注入的結果

如圖10所示,在使用擬態數據庫模型的情況下,使用含某一執行體指紋特征的SQL 注入語句對DVWA 低安全級別的SQL 注入測試模塊進行SQL 注入失敗,因為擬態數據庫模型只接收到了帶有一個執行體指紋特征的SQL 指令,在擬態化中間件模塊進行SQL 指令的相似性判決時,另外兩個執行體對應的判決隊列為空,SQL 指令不會繼續向下執行.因此在少量指紋泄露的情況下,擬態數據庫模型可以防御構造指紋特征的SQL 注入.

圖10 含指紋特征的SQL 語句注入結果

4 結論與展望

針對傳統數據庫防御手段的靜態性和確定性,本文基于擬態防御的動態異構冗余原理提出應用于擬態系統中的擬態數據庫模型.模型的安全性測試結果證明該模型在執行體同構環境下的可用性和安全性,若應用于執行體異構的擬態系統中,則系統數據庫的安全性更會大大增加.但在測試過程中發現,引入擬態數據庫模型,由于存在去指紋化處理及相似性判決步驟,模型的時間性能有所降低,影響了數據庫查詢的效率.

今后將進一步探索能有效提高擬態數據庫模型判決速率切實可行的實現方法,并在現有擬態數據庫模型的基礎上,對保留字指紋特征的短期內動態變化以及注入攻擊觸發指紋特征變化的可能性進行更深一步的研究.

猜你喜歡
指令數據庫模型
一半模型
聽我指令:大催眠術
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
數據庫
財經(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 亚洲V日韩V无码一区二区| 97精品伊人久久大香线蕉| 2018日日摸夜夜添狠狠躁| 欧洲亚洲一区| 久久久久久高潮白浆| 亚洲第一综合天堂另类专| 久草网视频在线| 亚洲第一综合天堂另类专| 亚洲精品高清视频| 国产视频a| 国内精品久久久久久久久久影视| 亚洲男人在线| 啪啪免费视频一区二区| 伊人无码视屏| 亚洲熟女中文字幕男人总站| 亚洲大尺码专区影院| 婷婷色一二三区波多野衣 | 原味小视频在线www国产| 久久久久人妻精品一区三寸蜜桃| 香蕉久久国产精品免| 欧美成人一级| 国产微拍一区二区三区四区| 国产精品漂亮美女在线观看| 激情乱人伦| 亚洲天堂网在线观看视频| 国产激爽大片在线播放| 国产成人AV大片大片在线播放 | 亚洲成年人片| 久热中文字幕在线| 国产亚洲精品97在线观看| 色香蕉网站| 2019国产在线| 99无码熟妇丰满人妻啪啪| 午夜视频日本| 日韩精品久久久久久久电影蜜臀| 国产精品永久不卡免费视频 | 97精品国产高清久久久久蜜芽| 亚洲性视频网站| 久久精品丝袜| 97在线碰| 国产精品林美惠子在线观看| 久久综合九色综合97网| 国产你懂得| 国产精品污污在线观看网站| 欧美影院久久| 一级毛片在线播放免费| 精品国产香蕉伊思人在线| 成人国产免费| 91在线无码精品秘九色APP| 午夜国产小视频| 日韩精品成人在线| 四虎影视库国产精品一区| 99re这里只有国产中文精品国产精品 | 国产a网站| 91成人在线观看| 欧美性爱精品一区二区三区| 五月婷婷综合网| 国产精品部在线观看| 国产成人精品一区二区不卡| 欧美在线天堂| 综合网天天| 精品一区二区三区无码视频无码| 国产小视频网站| 国产97视频在线观看| 欧美成人区| 久久综合五月婷婷| 青青草国产精品久久久久| 网久久综合| 天天综合网亚洲网站| 亚洲香蕉久久| 亚洲浓毛av| 91亚洲免费| 亚洲欧洲一区二区三区| 爽爽影院十八禁在线观看| 国产人人乐人人爱| 欧美高清日韩| 亚洲一区二区日韩欧美gif| 欧美日韩午夜视频在线观看| 58av国产精品| 亚洲成a人片77777在线播放| 中文字幕日韩久久综合影院| 免费啪啪网址|