專利名稱:一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域的安全防護(hù)方法,特別是涉及一種基于數(shù)據(jù) 流還原#支術(shù)的凄t據(jù)庫安全防護(hù)方法。背景4支術(shù)隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫的應(yīng)用十分廣泛,深入到各個(gè)領(lǐng)域, 但隨之而來產(chǎn)生了數(shù)據(jù)庫的安全問題。數(shù)據(jù)庫系統(tǒng)作為信息的聚集體,是計(jì)算 機(jī)信息系統(tǒng)的核心部件,其安全性至關(guān)重要。在涉密單位或者大型企業(yè)中,廣泛的實(shí)施了安全防護(hù)措施,包括機(jī)房安全、 物理隔離、防火墻、入侵檢測、加密傳輸身份認(rèn)證系統(tǒng)等等。但是數(shù)據(jù)庫的自 身安全問題卻一直沒有有效的防護(hù)方法。同時(shí),目前的市場上也缺乏有效的數(shù) 據(jù)庫安全增強(qiáng)產(chǎn)品。常規(guī)的數(shù)據(jù)庫防護(hù)方法采用防火墻等安全設(shè)備進(jìn)行防護(hù),只能進(jìn)行通用的 端口、協(xié)議、地址等網(wǎng)絡(luò)層過濾,無法有效抵御對數(shù)據(jù)庫服務(wù)器的惡意攻擊,如SQL注入攻擊、基于數(shù)據(jù)庫操作接口攻擊等。 發(fā)明內(nèi)容針對現(xiàn)有技術(shù)的不足,本發(fā)明提出的是一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫 安全防護(hù)方法,將外網(wǎng)的應(yīng)用服務(wù)器和內(nèi)網(wǎng)的數(shù)據(jù)庫服務(wù)器直相隔離,應(yīng)用服 務(wù)器必須通過本系統(tǒng)與數(shù)據(jù)庫服務(wù)器進(jìn)行交互,從而達(dá)到對交互的操作內(nèi)容進(jìn)行細(xì)粒度檢查,最終實(shí)現(xiàn)對數(shù)據(jù)庫系統(tǒng)的安全防護(hù)。本發(fā)明實(shí)現(xiàn)的技術(shù)方案如下在應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之間部署采用本發(fā)明方法構(gòu)建的防護(hù)系統(tǒng), 應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的所有數(shù)據(jù)交互都要通過該系統(tǒng)進(jìn)行。本系統(tǒng) 將應(yīng)用服務(wù)器發(fā)送過來的報(bào)文將進(jìn)行數(shù)據(jù)流還原,識(shí)別其上下文的語義、語境, 對其進(jìn)行細(xì)致深度安全檢查。檢查成功后,將相應(yīng)信息發(fā)送到數(shù)據(jù)庫服務(wù)器。 操作結(jié)果將^皮依次傳遞到應(yīng)用服務(wù)器。應(yīng)用服務(wù)器通過本方法訪問數(shù)據(jù)庫時(shí)具體包括以下步驟1) 應(yīng)用程序?qū)⒁M(jìn)行的數(shù)據(jù)庫操作指令信息通過網(wǎng)絡(luò)協(xié)議發(fā)送給數(shù)據(jù)流還 原器;2) 數(shù)據(jù)流還原器接收到網(wǎng)絡(luò)報(bào)文,進(jìn)行初步的MAC、 IP、 Port等檢查。若 此部分信息不合法,則直接丟棄相應(yīng)的報(bào)文;3) 數(shù)據(jù)流還原器將接收到的報(bào)文進(jìn)行亂序重組,還原出兩端主機(jī)TCP協(xié)議 棧中的數(shù)據(jù)流;4) 從數(shù)據(jù)流中解析相應(yīng)的數(shù)據(jù)庫協(xié)議,從交互協(xié)議中解析出訪問所使用的 用戶名、應(yīng)用ID及每次搡作的SQL語句等信息,并提交至訪問控制器進(jìn)行檢查;5) 訪問控制器對還原后的SQL語句進(jìn)行細(xì)粒度檢查,將檢查結(jié)果返回給數(shù) 據(jù)流還原器;6) 檢查通過后,數(shù)據(jù)流還原器將相應(yīng)的數(shù)據(jù)包發(fā)送至后臺(tái)數(shù)據(jù)庫服務(wù)器, 由數(shù)據(jù)庫執(zhí)行相關(guān)的指令,并將結(jié)果返回至數(shù)據(jù)流還原器。7 )數(shù)據(jù)流還原器將進(jìn)行數(shù)據(jù)流的還原與檢查,并將結(jié)果傳遞到應(yīng)用服務(wù)器。 本發(fā)明的進(jìn)一步方案可以是 , 所述數(shù)據(jù)流交換器中可以配置相應(yīng)的MAC、 IP纟全查規(guī)則,具備基于狀態(tài)抬r測的數(shù)據(jù)包過濾功能。本發(fā)明的進(jìn)一步方案可以是所述數(shù)據(jù)流還原器具TCP數(shù)據(jù)包緩存功能,可以處理TCP數(shù)據(jù)包亂序、重 傳等情況。本發(fā)明的進(jìn)一步方案可以是所述數(shù)據(jù)流還原器具備TCP數(shù)據(jù)流還原功能,可以從捕獲的數(shù)據(jù)包中還原 出數(shù)據(jù)包對應(yīng)主機(jī)的TCP協(xié)議棧內(nèi)容,即去除TCP/IP頭按照正確順序拼裝的數(shù) 據(jù)內(nèi)容。本發(fā)明的進(jìn)一步方案可以是所述數(shù)據(jù)流還原器具備協(xié)議解析功能,可以對拼裝后的數(shù)據(jù)進(jìn)行協(xié)議解析, 從相應(yīng)的協(xié)議中解析出應(yīng)用服務(wù)器訪問數(shù)據(jù)庫的用戶名、應(yīng)用ID與操作的SQL 語句等信息。此部分信息將提交到訪問控制器進(jìn)行安全檢查。本發(fā)明的進(jìn)一步方案可以是所述訪問控制器具備SQL語法分析功能,其安全檢查步驟包括1) 檢查所述用戶是否具備數(shù)據(jù)庫的訪問權(quán)限;2) 檢查應(yīng)用服務(wù)器應(yīng)用ID是否與安全策略匹配; 3) 對應(yīng)用服務(wù)器發(fā)送的SQL語句進(jìn)行語法分析,檢查其是否包含注入特征, 或者包含特權(quán)才喿作、或者訪問特權(quán)系統(tǒng)表;4) 檢查應(yīng)用服務(wù)器對普通表的增加、刪除、修改、查詢數(shù)據(jù)庫操作是否符 合設(shè)定的安全策略。本發(fā)明的進(jìn)一步方案可以是所述訪問控制器在安全檢查不通過的情況下,將會(huì)向應(yīng)用服務(wù)器、數(shù)據(jù)庫 服務(wù)器的特定鏈路發(fā)送鏈路重置信號(hào),強(qiáng)制中斷相應(yīng)鏈路。本發(fā)明方法可以實(shí)現(xiàn)以下安全效果1) 通過數(shù)據(jù)流還原和訪問控制,可以防止針對常見數(shù)據(jù)庫系統(tǒng)自身安全 漏洞的攻擊;2) 通過數(shù)據(jù)流還原及SQL分析,可以完全還原通用網(wǎng)絡(luò)報(bào)文中的完整SQL 語句并跟蹤應(yīng)用對數(shù)據(jù)庫的SQL訪問;3) 通過SQL語句語法的分析,防止惡意的,非法的SQL訪問數(shù)據(jù)庫,從而 防止常見的SQL注入攻擊;4) 防止數(shù)據(jù)庫系統(tǒng)在身份認(rèn)證上留有后門,使惡意訪問者能夠繞過正常 的身份認(rèn)證過程,如隱藏賬號(hào)、萬能鑰匙和上下文相關(guān)觸發(fā)等;5) 防止數(shù)據(jù)庫系統(tǒng)在授權(quán)上留有后門,授權(quán)上的后門使惡意訪問者可以 繞過正常的訪問控制機(jī)制,如特定的主體、客體或動(dòng)作使得訪問控制模塊做出 錯(cuò)誤的決策等;6) 防止數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)處理模塊有惡意代碼,如使數(shù)據(jù)庫系統(tǒng)在關(guān)4建 時(shí)刻主動(dòng)或觸發(fā)式地增加、刪除或墓改數(shù)據(jù)等;7) 防止數(shù)據(jù)庫系統(tǒng)在審計(jì)上留有后門,數(shù)據(jù)庫系統(tǒng)后門可以使其審計(jì)模 塊不記載攻擊事件或偽造審計(jì)紀(jì)錄。
圖1本發(fā)明方法示意圖,其中1-8表示執(zhí)行順序。 圖2流還原系統(tǒng)部署示意圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明作進(jìn)一步說明。本方法的數(shù)據(jù)流還原器串接在應(yīng)用服務(wù)器與數(shù)據(jù)庫服務(wù)器之間,可以還原出 所有應(yīng)用服務(wù)器對數(shù)據(jù)庫服務(wù)器的操作。訪問控制器對還原出來的操作進(jìn)行檢 查,將與定義規(guī)則不符合的操作進(jìn)行拒絕,并割斷相應(yīng)的TCP鏈路。數(shù)據(jù)流還原器中配置基本的IP、 MAC等訪問信息,避免IP地址偽造和未授 權(quán)應(yīng)用服務(wù)器對數(shù)據(jù)庫的訪問。對于相應(yīng)的數(shù)據(jù)庫的相應(yīng)操作,權(quán)限控制器將進(jìn)行如下操作1) 檢查相應(yīng)網(wǎng)絡(luò)地址、網(wǎng)卡硬件地址、應(yīng)用端口等操作的合法性。2) 檢查應(yīng)用服務(wù)器的登錄認(rèn)證信息的合法性。3) 檢查應(yīng)用服務(wù)器的應(yīng)用ID信息的合法性。4) 檢查相應(yīng)數(shù)據(jù)庫增刪改查等操作的合法性。a) 檢查SQL語句的合法性檢查SQL語句是否含有注入特征;檢查SQL 語句是否含有訪問被禁止訪問的數(shù)據(jù)庫對象;檢查SQL語句是否使用 了不被許可的權(quán)限等。b) 檢查SQL語句參數(shù)的合法性。c) 深度檢查SQL各種類型數(shù)據(jù)的合法性對字符型的數(shù)據(jù)進(jìn)行敏感字符 過濾;對圖像類型的數(shù)據(jù)進(jìn)行敏感圖片識(shí)別,過濾非法圖片;對大字, 段類型數(shù)據(jù)進(jìn)行病毒檢查。 一個(gè)典型的交互示例用戶單擊應(yīng)用系統(tǒng)某查詢頁面,應(yīng)用系統(tǒng)生成查詢 語句,通過網(wǎng)絡(luò)報(bào)文發(fā)送至數(shù)據(jù)流還原器。數(shù)據(jù)流還原器對報(bào)文進(jìn)行初步的MAC、 IP等檢查,通過后對報(bào)文進(jìn)行亂序重組,還原出兩端主機(jī)TCP協(xié)議棧中的數(shù)據(jù) 流;解析報(bào)文中的SQL語句,并將SQL語句提交至訪問控制器。訪問控制器對 完整的SQL語句進(jìn)行細(xì)粒度檢查后,報(bào)文將被轉(zhuǎn)發(fā)至后臺(tái)數(shù)據(jù)庫服務(wù)器,相應(yīng) 結(jié)果將返回到數(shù)據(jù)流還原器,經(jīng)過訪問控制器進(jìn)一步檢查后,數(shù)據(jù)到達(dá)應(yīng)用服為增強(qiáng)數(shù)據(jù)庫系統(tǒng)的安全,本發(fā)明的方法在應(yīng)用系統(tǒng)和數(shù)據(jù)庫之間增加一 個(gè)采用本發(fā)明方法構(gòu)建的系統(tǒng),來屏蔽數(shù)據(jù)庫系統(tǒng)的訪問入口 ,所有應(yīng)用必須 通過本方法才能對數(shù)據(jù)庫進(jìn)行訪問或管理。本發(fā)明方法可阻止對數(shù)據(jù)庫系統(tǒng)各種惡意攻擊、SQL注入等威脅,極大增強(qiáng)企業(yè)核心數(shù)據(jù)庫的安全防護(hù)能力,并可 用于構(gòu)建通用的翁:據(jù)庫防護(hù)系統(tǒng)。本發(fā)明方法構(gòu)建的數(shù)據(jù)庫防護(hù)系統(tǒng)可以采用雙機(jī)模式部署在企業(yè)內(nèi)外網(wǎng)之間, 實(shí)現(xiàn)外網(wǎng)應(yīng)用服務(wù)器對內(nèi)網(wǎng)數(shù)據(jù)庫服務(wù)器的安全合法訪問,部署網(wǎng)絡(luò)拓樸如圖2 所示。。
權(quán)利要求
1、一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法,其特征在于應(yīng)用服務(wù)器訪問數(shù)據(jù)庫時(shí),包含如下步驟1)應(yīng)用程序?qū)⒁M(jìn)行的數(shù)據(jù)庫操作指令信息通過網(wǎng)絡(luò)(TCP/IP協(xié)議)發(fā)送給數(shù)據(jù)流還原器;2)數(shù)據(jù)流還原器接收到網(wǎng)絡(luò)報(bào)文,進(jìn)行初步的MAC、IP、Port檢查,若此部分信息不合法,則直接丟棄相應(yīng)的報(bào)文;3)數(shù)據(jù)流還原器將接收到的報(bào)文進(jìn)行亂序重組,還原出兩端主機(jī)TCP協(xié)議棧中的數(shù)據(jù)流;4)從數(shù)據(jù)流中解析相應(yīng)的數(shù)據(jù)庫協(xié)議,從交互協(xié)議中解析出訪問所使用的用戶名,及每次操作的SQL語句信息,并提交至訪問控制器進(jìn)行檢查;5)訪問控制器進(jìn)行操作相關(guān)的審計(jì)、檢查,將檢查結(jié)果返回給數(shù)據(jù)流還原器;6)檢查通過后,數(shù)據(jù)流還原器將相應(yīng)的數(shù)據(jù)包發(fā)送至后臺(tái)數(shù)據(jù)庫服務(wù)器,由數(shù)據(jù)庫執(zhí)行相關(guān)的指令,并將結(jié)果返回至數(shù)據(jù)流還原器。7)數(shù)據(jù)流還原器將進(jìn)行數(shù)據(jù)流的還原于檢查,并將結(jié)果傳遞到應(yīng)用服務(wù)器。
2、 根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法, 其特征在于,數(shù)據(jù)流還原器具備MAC、 IP檢查能力,可以直接過濾掉非法IP、 MAC地址 發(fā)送過來的數(shù)據(jù)包。
3、 根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法, 其特征在于,所述數(shù)據(jù)流還原器具備報(bào)文緩存的功能,可以將收到的報(bào)文進(jìn)行 亂序重組。
4、 根據(jù)權(quán)利要求3所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法,其特征在于數(shù)據(jù)流還原器可以將報(bào)文還原為兩側(cè)通信主機(jī)的TCP協(xié)議棧數(shù)據(jù)流,獲得 主機(jī)TCP協(xié)議棧發(fā)送的純數(shù)據(jù)。
5、 根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法, 其特征在于,所述步驟4)解析協(xié)議的步驟包括1) 解析數(shù)據(jù)庫協(xié)議頭,判斷協(xié)議類型;2) 對登錄認(rèn)證類型的數(shù)據(jù),偏移到指定位置解析出登錄用戶名、應(yīng)用ID信 自 &、3 )對SQL語句操作類型的數(shù)據(jù),偏移到SQL語句起始位置,按照其SQL語 句編碼規(guī)則逆向還原出完整SQL語句。
6、 根據(jù)權(quán)利要求5所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法, 其特征在于,還原出的SQL語句信息將提交到訪問控制器進(jìn)行細(xì)粒度檢查。
7、 根據(jù)權(quán)利要求6所述的一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法, 其特征在于,所述訪問控制器進(jìn)行細(xì)粒度檢查包括以下步驟1) 檢查所述用戶是否具備數(shù)據(jù)庫的訪問權(quán)限;2) 檢查應(yīng)用服務(wù)器應(yīng)用ID是否與安全策略匹配;3) 對應(yīng)用服務(wù)器發(fā)送的SQL語句進(jìn)行語法分析,檢查其是否包含注入特征, 或者包含特權(quán)才喿作、或者訪問特權(quán)系統(tǒng)表;4) 檢查應(yīng)用服務(wù)器對普通表的增加、刪除、修改、查詢數(shù)據(jù)庫操作是否符 合設(shè)定的安全策略。
全文摘要
本發(fā)明公開了一種基于數(shù)據(jù)流還原技術(shù)的數(shù)據(jù)庫安全防護(hù)方法,以實(shí)現(xiàn)對關(guān)鍵數(shù)據(jù)庫的安全保護(hù)。本系統(tǒng)串聯(lián)在應(yīng)用服務(wù)器與數(shù)據(jù)庫服務(wù)器之間,主要由數(shù)據(jù)流還原器、訪問控制器兩部分組成。應(yīng)用服務(wù)器發(fā)送至數(shù)據(jù)庫的報(bào)文被數(shù)據(jù)流還原器截獲,對報(bào)文進(jìn)行緩存并還原出相應(yīng)的TCP數(shù)據(jù)流,從數(shù)據(jù)流中還原出SQL語句提交訪問控制器進(jìn)行安全性檢查,檢查通過后將報(bào)文轉(zhuǎn)發(fā)至數(shù)據(jù)庫服務(wù)器,并將執(zhí)行結(jié)果依次進(jìn)行還原、檢查、轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器。本發(fā)明可以對現(xiàn)有的應(yīng)用與數(shù)據(jù)庫通信進(jìn)行細(xì)粒度的安全檢查與隔離,極大增強(qiáng)數(shù)據(jù)庫的安全防護(hù)能力。
文檔編號(hào)G06F17/30GK101610271SQ20091018129
公開日2009年12月23日 申請日期2009年7月21日 優(yōu)先權(quán)日2009年7月21日
發(fā)明者唐汗青, 濤 張, 楊維永, 林為民, 涌 焦, 浩 陳, 陳建業(yè) 申請人:國網(wǎng)電力科學(xué)研究院;南京南瑞集團(tuán)公司