欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

不可信dbms惡意入侵檢測系統(tǒng)及方法

文檔序號:7700009閱讀:220來源:國知局
專利名稱:不可信dbms惡意入侵檢測系統(tǒng)及方法
技術領域
本發(fā)明涉及不可信DBMS惡意入侵檢測系統(tǒng)及方法,屬于數(shù)據庫安全入侵檢測技術領域。
背景技術
在現(xiàn)代計算系統(tǒng)中,數(shù)據庫保存著系統(tǒng)的核心信息資源。因此,數(shù)據庫往往是黑客、商 業(yè)間諜的重點攻擊目標。由于我國數(shù)據庫技術起步較晚,目前數(shù)據庫產品DBMS (數(shù)據庫管 理系統(tǒng))基本被國外廠商所壟斷,造成"核心技術空心化"和"關鍵技術和產品受制于人" 的嚴重局面。國外產品中完全可能存在"后門"甚至被注入"惡意代碼",用于竊取或破壞 珍貴的數(shù)據資源。解決這一問題的最理想方式當然是在關鍵的應用系統(tǒng)中全部采用國產的數(shù) 據庫產品,這也確實是我國正在努力的方向,但目前國產數(shù)據庫在穩(wěn)定性、功能、性能和可 擴展性等各項指標上與國外產品相比還存在著差距,而且由于現(xiàn)有系統(tǒng)已經大量使用了國外 的數(shù)據庫產品,沉淀成本很高,因此不可能在短期內將其全部替換為國產產品。大量使用國 外數(shù)據庫軟件帶來了以下許多安全問題
1. 出售給我國的Oracle等DBMS通常只符合C類安全標準,大致相當于GB17859 —1999 的3級以下的水平,身份認證、訪問控制、安全審計等功能都較為薄弱;
2. 由于我們不掌握源代碼,Oracle等國外DBMS完全可能存在后門,即可能繞過正常的 身份認證、訪問控制等功能,自動將一些關鍵表中存放的數(shù)據向外傳輸。
3. 更危險的是,在某些特殊情況下,敵方甚至可能根據購買用途而故意在原有的標準 DBMS上進行修改,注入各種不同的惡意代碼,如惡意增、刪、改,惡意多刪除等等。這對 于我國的國防工業(yè)部門的威脅尤大。
為了保護關系到商業(yè)機密、國家安全的核心信息資源,必須對不可信DBMS產品可能造 成的安全威脅進行分析,并對惡意DBMS入侵檢測技術深入的研究,自動發(fā)現(xiàn)數(shù)據管理系統(tǒng) 中惡意代碼發(fā)起的數(shù)據插入、修改和刪除操作。
經過多年的發(fā)展,傳統(tǒng)數(shù)據庫安全領域的身份認證技術、訪問控制技術、信息流控制技 術、加密控制技術、推理控制技術、審計技術等方面均有了很多成果,但是己有的技術著重 于提高DBMS對抗外部攻擊的能力,尚未對如何提高應用系統(tǒng)對抗惡意的DBMS的能力進行深 入研究。顯然,惡意DBMS的對抗技術會更加復雜,因為DBMS負責管理目標數(shù)據資源,它了 解目標數(shù)據資源的結構和語義,可以對目標數(shù)據進行任何操作,也可以對用戶的請求返回任 意的結果。

發(fā)明內容
基于上述,本發(fā)明將提供一種不可信DBMS惡意入侵檢測系統(tǒng)及方法,它可以做到自 動發(fā)現(xiàn)數(shù)據管理系統(tǒng)中惡意代碼發(fā)起的數(shù)據插入、修改和刪除操作;恢復受惡意代碼破壞的 數(shù)據庫;對關鍵數(shù)據加密,防止被惡意代碼竊取。本發(fā)明采用以下技術方案
一種不可信DBMS惡意入侵檢測系統(tǒng),包括DBMS和數(shù)據庫應用系統(tǒng),其特征在于 在DBMS和數(shù)據庫應用之間引入一個數(shù)據庫入侵檢測系統(tǒng),數(shù)據庫入侵檢測系統(tǒng)分為客 戶端和服務器端兩個部分,其中客戶端負責數(shù)據庫消息截獲和轉發(fā),以檢測惡意行為,保 護關鍵數(shù)據;服務器端同時管理一個不可信DBMS和一個可信DBMS,可信DBMS保存系統(tǒng)的 重要元數(shù)據信息,并作為不可信DBMS的鏡像數(shù)據庫;服務器端負責客戶端身份認證、分析 通訊協(xié)議、加解密數(shù)據和檢測惡意數(shù)據庫入侵。
所述重要元數(shù)據信息包括加密密鑰、數(shù)據庫對象映射關系、數(shù)據庫表模式。 一種在上述的系統(tǒng)中采用的不可信DBMS惡意入侵檢測方法,其包括以下步驟
1) 在數(shù)據庫客戶端設置服務器地址時,使用數(shù)據庫入侵檢測系統(tǒng)的客戶端的地址和端
2) 將應用程序發(fā)送給不可信數(shù)據庫服務器的操作請求全部轉發(fā)給數(shù)據庫入侵檢測系統(tǒng) 的客戶端;
3) 數(shù)據庫入侵檢測系統(tǒng)的客戶端將這些操作請求轉發(fā)給數(shù)據庫入侵檢測系統(tǒng)的服務器
端;
4) 數(shù)據庫入侵檢測系統(tǒng)的服務器端對收到的操作請求進行如下分析處理 若操作請求不會引起不可信DBMS中數(shù)據的惡意改動,則將操作請求轉發(fā)給不可信DBMS,
再將得到的應答轉送回應用程序,同時對可信DBMS中的數(shù)據對應不可信DBMS進行更新;否 則,拒絕本次應用程序的操作請求。 進一步地
在可信DBMS中的數(shù)據庫中存儲數(shù)據庫模式信息、數(shù)據庫對象映射規(guī)則、數(shù)據庫中的字 段和表的加密密鑰及加密算法;
數(shù)據庫入侵檢測系統(tǒng)的服務器端裝有以下模塊-
"SQL語法分析模塊"-用于將接收到的SQL語句轉換成SQL查詢樹;
"對象映射模塊"-用于重寫SQL査詢樹中的數(shù)據庫對象名;
"加密模塊"-用于加密數(shù)據;
"記錄校驗生成模塊"-用于將每條記錄的用戶數(shù)據通過加密算法生成一個密碼校驗和, 把該校驗和作為用戶表的一個透明字段存儲在不可信DBMS中; "數(shù)據包轉發(fā)模塊"-用于將查詢樹轉換為SQL語句,以及 "SQL日志緩存模塊"、"閂志回放模塊"、"錯誤匯報模塊"; 所述步驟4)進一步分為以下步驟
4. 1) "SQL語法分析模塊"根據可信DBMS中存儲的數(shù)據庫模式信息以及SQL的詞法規(guī) 則和語法規(guī)則,對接收到的SQL語句進行詞法分析和語法分析,得到SQL査詢樹;
4. 2)"對象映射模塊"根據可信DBMS中的數(shù)據庫對象映射規(guī)則重寫SQL査詢樹中的數(shù) 據庫對象名;4.3) 如果當前SQL是讀操作語句,則將SQL査詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊 轉換SQL査詢樹為SQL語句,轉發(fā)到不可信DBMS,完成本次請求處理,之后轉應答處理步 驟4. 7),否則繼續(xù)步驟4. 4);
4.4) 如果當前SQL是寫操作語句,則將査詢樹移交給"加密模塊",該模塊首先確定需 要加密的字段或者表,并從可信DBMS中獲取對應的加密密鑰以及加密算法,加密數(shù)據之后 把査詢樹傳遞給"記錄校驗生成模塊";
4.5) 每次執(zhí)行SQL語句時,系統(tǒng)首先確定哪些記錄將受到該SQL語句的訪問,然后檢査 這些記錄的校驗和是否正確,如果正確,說明數(shù)據沒有受到惡意DBMS的改動,則將SQL査 詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊轉換SQL查詢樹為SQL語句,轉發(fā)到不可信DBMS;
4.6) 將該寫操作SQL保存到"SQL日志緩存模塊"中,之后"日志回放模塊"從"SQL 日志緩存模塊"中以事務為單位取出SQL語句,從不可信DBMS讀取響應信息,并對可信DBMS 中的數(shù)據對應不可信DBMS進行更新,完成本次請求處理,之后轉應答處理步驟4. 7);
4.7) 從不可信DBMS讀取響應信息,之后進行對象映射,接著進行解密和記錄校驗驗證, 最后轉發(fā)數(shù)據包到客戶端,整個過程中的產生的錯誤交由錯誤匯報模塊發(fā)送到客戶端。
更進一步地,在對可信DBMS中的數(shù)據對應不可信DBMS進行更新之前,檢測不可信DBMS 中是否有惡意行為,若有惡意行為,則拒絕本次應用程序的操作請求,并恢復不可信DBMS 中的數(shù)據。
更進一步地,通過以下方法檢測不可信DBMS中是否有惡意行為讓每條SQL 命令在不可信DBMS和可信DBMS上分別執(zhí)行,然后在后繼的Select操作中比較它 們的返回結果,如果結果不同,則認為不可信DBMS有惡意行為。 更進一步地,檢測不可信DBMS中是否有惡意行為的具體步驟是-7. l)在不可信DBMS上執(zhí)行操作時,采取可串行化調度的Take-a-Ticket算法,在每個 事務中透明地加入一條Select語句讀取Ticket,然后再加入一條Update語句將Ticket的 值加一,這樣,每個事務讀到的Ticket值即代表了它們在串行化歷史中的次序; 7. 2)在可信DBMS上采取與不可信DBMS上同樣的執(zhí)行次序提交這些事務; 7. 3)當不可信DBMS和可信DBMS兩個數(shù)據庫同步操作完成之后,通過應用層提取每個表 的內容相互比較,若不相同,則表明不可信DBMS有惡意的行為。 本發(fā)明的優(yōu)點在于
1. 自動發(fā)現(xiàn)數(shù)據管理系統(tǒng)中惡意代碼發(fā)起的數(shù)據插入、修改和刪除數(shù)據操作;
2. 恢復受惡意代碼破壞的數(shù)據庫;
3. 對關鍵數(shù)據加密,防止被惡意代碼竊取。


圖1是本發(fā)明不可信DBMS惡意入侵檢測系統(tǒng)示意圖2是請求截獲和處理過程示意圖; 圖3是記錄校驗生成和驗證示意6圖4是結果分析和驗證示意圖; 圖5是本發(fā)明系統(tǒng)部署實例。
具體實施例方式
下面結合附圖對本發(fā)明作詳細說明。 本發(fā)明是一種不可信DBMS惡意入侵檢測系統(tǒng)及方法。
如圖l,本發(fā)明在DBMS和數(shù)據庫應用之間引入一個數(shù)據庫入侵檢測系統(tǒng)(DBIDS)來截 獲DBMS和應用的消息通訊,以檢測惡意行為,保護關鍵數(shù)據。DBIDS分為客戶端和服務器 端兩個部分,客戶端主要負責數(shù)據庫消息截獲和轉發(fā),服務器端負責客戶端身份認證、分析 通訊協(xié)議、實現(xiàn)透明數(shù)據加解密和惡意數(shù)據庫入侵檢測功能。
DBIDS采用數(shù)據轉發(fā)的方式來截獲數(shù)據庫通訊。在數(shù)據庫客戶端設置服務器地址時,使 用DBIDS客戶端的地址和端口。這樣,應用程序發(fā)送給不可信數(shù)據庫服務器的請求,全部都 發(fā)給了 DBIDS的客戶端,然后DBIDS客戶端使用基于SSL協(xié)議的網絡連接發(fā)送這些請求給 DBIDS的服務器端,最后DBIDS服務器端將信息轉發(fā)給真正的數(shù)據庫服務器,并從數(shù)據庫服 務器得到應答,轉送回應用程序。對于應用程序和數(shù)據庫服務器來說,這個過程是完全透明 的。而且,從安全的角度上看,即使DBIDS客戶端被破壞了,由于此時客戶端和服務端的邏 輯連接也被破壞了,所以也不會出現(xiàn)信息泄漏。
DBIDS服務器同時管理一個不可信DBMS和一個可信DBMS,其中可信DBMS的第一個功能 是保存系統(tǒng)的一些重要元數(shù)據信息,比如加密密鑰,數(shù)據庫對象映射關系,數(shù)據庫表模式等 等。第二個功能是作為鏡像數(shù)據庫,從不可信DBMS復制一份數(shù)據,這樣,既能檢測不可信 DBMS的惡意行為,又能保障數(shù)據的可恢復性。對可信DBMS的功能、性能要求不高,單機、 單事務的DBMS就能夠勝任了。因此可以選用許多國產DBMS或者開源數(shù)據庫,比如安全增強 的MySQL (在其源碼中去掉了網絡功能,并增強了一些安全控制)。
在可信DBMS中的數(shù)據庫中存儲了數(shù)據庫模式信息、數(shù)據庫對象映射規(guī)則、數(shù)據庫中的 字段和表的加密密鑰及加密算法。
在數(shù)據庫入侵檢測系統(tǒng)的服務器端中裝有以下軟件模塊-"SQL語法分析模塊"-用于將接收到的SQL語句轉換成SQL査詢樹; "對象映射模塊"-用于重寫SQL査詢樹中的數(shù)據庫對象名; "加密模塊"-用于加密數(shù)據;
"記錄校驗生成模塊"-用于將每條記錄的用戶數(shù)據通過加密算法生成一個密碼校驗和, 把該校驗和作為用戶表的一個透明字段存儲在不可信DBMS中; "數(shù)據包轉發(fā)模塊"-用于將査詢樹轉換為SQL語句,以及 "SQL日志緩存模塊"、"日志回放模塊"、"錯誤匯報模塊"等。 本發(fā)明的不可信DBMS惡意入侵檢測方法包括以下步驟
l)在數(shù)據庫客戶端設置服務器地址時,使用數(shù)據庫入侵檢測系統(tǒng)的客戶端的地址和端2) 將應用程序發(fā)送給不可信數(shù)據庫服務器的操作請求全部轉發(fā)給數(shù)據庫入侵檢測系統(tǒng) 的客戶端;
3) 數(shù)據庫入侵檢測系統(tǒng)的客戶端將這些操作請求轉發(fā)給數(shù)據庫入侵檢測系統(tǒng)的服務器
i山
順;
4) 數(shù)據庫入侵檢測系統(tǒng)的服務器端對收到的操作請求進行如下分析處理
若操作請求不會引起不可信DBMS中數(shù)據的惡意改動,則將操作請求轉發(fā)給不可信DBMS, 再將得到的應答轉送回應用程序,同時對可信DBMS中的數(shù)據對應不可信DBMS進行更新;否 則,拒絕本次應用程序的操作請求。
所述步驟4)進一步分為以下步驟
4. 1) "SQL語法分析模塊"根據可信DBMS中存儲的數(shù)據庫模式信息以及SQL的詞法規(guī) 則和語法規(guī)則,對接收到的SQL語句進行詞法分析和語法分析,得到SQL查詢樹;
4. 2)"對象映射模塊"根據可信DBMS中的數(shù)據庫對象映射規(guī)則重寫SQL査詢樹中的數(shù) 據庫對象名;
4.3) 如果當前SQL是讀操作語句,則將SQL査詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊 轉換SQL查詢樹為SQL語句,轉發(fā)到不可信DBMS,完成本次請求處理,之后轉應答處理步 驟4.7),否則繼續(xù)步驟4.4);
4.4) 如果當前SQL是寫操作語句,則將查詢樹移交給"加密模塊",該模塊首先確定需 要加密的字段或者表,并從可信DBMS中獲取對應的加密密鑰以及加密算法,加密數(shù)據之后 把査詢樹傳遞給"記錄校驗生成模塊";
4.5) 每次執(zhí)行SQL語句時,系統(tǒng)首先確定哪些記錄將受到該SQL語句的訪問,然后檢査 這些記錄的校驗和是否正確,如果正確,說明數(shù)據沒有受到惡意DBMS的改動,則將SQL查 詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊轉換SQL査詢樹為SQL語句,轉發(fā)到不可信DBMS;
4.6) 將該寫操作SQL保存到"SQL日志緩存模塊"中,之后"日志回放模塊"從"SQL 曰志緩存模塊"中以事務為單位取出SQL語句,從不可信DBMS讀取響應信息,并對可信DBMS 中的數(shù)據對應不可信DBMS進行更新,完成本次請求處理,之后轉應答處理步驟4. 7);
4. 7)從不可信DBMS讀取響應信息,之后進行對象映射,接著進行解密和記錄校驗驗證, 最后轉發(fā)數(shù)據包到客戶端,整個過程中的產生的錯誤交由錯誤匯報模塊發(fā)送到客戶端。
更進一步地,在對可信DBMS中的數(shù)據對應不可信DBMS進行更新之前,檢測不可信DBMS 中是否有惡意行為,若有惡意行為,則拒絕本次應用程序的操作請求,并恢復不可信DBMS 中的數(shù)據。
更進一步地,通過以下方法檢測不可信DBMS中是否有惡意行為讓每條SQL 命令在不可信DBMS和可信DBMS上分別執(zhí)行,然后在后繼的Select操作中比較它 們的返回結果,如果結果不同,則認為不可信DBMS有惡意行為。 更進一步地,檢測不可信DBMS中是否有惡意行為的具體步驟是 7. l)在不可信DBMS上執(zhí)行操作時,采取可串行化調度的Take-a-Ticket算法,在每個事務中透明地加入一條Select語句讀取Ticket,然后再加入一條Update語句將Ticket的 值加一,這樣,每個事務讀到的Ticket值即代表了它們在串行化歷史中的次序; 7. 2)在可信DBMS上采取與不可信DBMS上同樣的執(zhí)行次序提交這些事務; 7. 3)當不可信DBMS和可信DBMS兩個數(shù)據庫同步操作完成之后,通過應用層提取 每個表的內容相互比較,若不相同,則表明不可信DBMS有惡意的行為。 本發(fā)明不可信數(shù)據庫入侵檢測方法的工作原理從以下幾個方面說明
1.數(shù)據請求
圖2是數(shù)據請求的處理過程,客戶端轉發(fā)應用程序的數(shù)據請求到服務端,服務端的"SQL 語法分析模塊"首先根據可信DBMS中存儲的表、視圖定義,以及SQL的詞法規(guī)則和語法規(guī) 則對接收到的SQL語句進行詞法分析和語法分析,得到SQL査詢樹。
接著,"對象映射模塊"利用可信DBMS中的數(shù)據庫對象映射規(guī)則重寫SQL査詢樹中的數(shù) 據庫對象名。該模塊負責將"表"、"字段"、"表空間"等數(shù)據庫對象名稱替換為無意義的隨 機名稱,這樣就使得外部應用所掌握的、語義豐富的數(shù)據庫對象名稱在進入不可信的DBMS 之前,己經進行了語義淡化處理。數(shù)據庫對象映射規(guī)則是指用戶可見的表、視圖、列等數(shù)據 庫對象名字和實際存儲在不可信數(shù)據庫中的數(shù)據庫對象名之間的映射關系。假定可信數(shù)據庫 中包含規(guī)則"USERNAME-〉 A"、 "PASSW0RD-〉B"、 "ACCOUNT->C",那么語句SELECT USERNAME, PASSWORD FROM ACCOUNT WHERE USERNAME=userl'的重寫結果對應的SQL是SELECT A, B FROM C WHERE A=userr 。
如果當前SQL不是INSERT /UPDATE/DELETE等更新語句,査詢樹被移交給"數(shù)據包轉發(fā) 模塊",該模塊轉換查詢樹為SQL語句,構造網絡消息包轉發(fā)到不可信DBMS,完成本次請求 處理。
如果當前SQL是INSERT /UPDATE,查詢樹被移交給"加密模塊",該模塊讀取用戶配置 的需要加密的字段或者表,從可信DBMS中獲取對應的加密密鑰以及加密算法,加密數(shù)據之 后把查詢樹傳遞給"記錄校驗生成模塊"。
因當前SQL是包含寫操作,故該SQL被保存到"SQL日志緩存模塊"中,之后"日志回 放模塊"從緩存中以事務為單位取出SQL語句,把更新應用到可信DBMS。
"記錄校驗生成模塊"為每條記錄的用戶數(shù)據通過加密算法生成一個密碼校驗和,把該 校驗和作為表的一個透明字段存儲在不可信的DBMS中。每次執(zhí)行SQL語句時,系統(tǒng)首先 確定哪些記錄將受到該SQL語句的訪問對于讀操作,SQL語句訪問的記錄就是SQL的結 果集;對于更新操作,需把更新條件轉換為一個讀查詢,該査詢的結果集就是SQL語句 訪問的記錄。然后,檢査這些記錄的校驗和是否正確,如果正確,說明數(shù)據沒有受到惡意 DBMS的改動;如果不正確,則表明數(shù)據庫受到了惡意篡改,此時要進行報警,并從可信數(shù) 據庫恢復數(shù)據。最后,數(shù)據包轉發(fā)模塊轉換查詢樹成SQL語句,構造網絡消息轉發(fā)到不可 信DBMS完成本次請求處理。圖3描述了生成記錄校驗、驗證校驗的過程。字段A、 B、 D 是正常字段,字段C是校驗字段。插入記錄或者更新記錄時,C字段的內容根據A、 B、 D
9自動生成。訪問記錄時,根據A、 B、 D字段重新內容計算校驗,并和C字段進行對比,如 果相同那么驗證通過,否則驗證失敗。
數(shù)據請求處理過程中的產生的所有錯誤都由"錯誤匯報模塊"處理,統(tǒng)一匯報給客戶端。
2. 數(shù)據應答
如圖4所示,數(shù)據應答的處理過程基本上是數(shù)據請求流程的逆過程,"結果集分析模塊" 從不可信DBMS讀取響應信息,之后進行對象映射,接著進行解密和記錄校驗驗證,最后轉 發(fā)數(shù)據包到客戶端,整個過程中的產生的錯誤交由錯誤匯報模塊發(fā)送到客戶端。
3. 惡意行為檢測和數(shù)據恢復
雖然通過記錄校驗可以檢測數(shù)據庫對記錄的惡意篡改操作,但是不能檢測惡意數(shù)據庫對 查詢語義的曲解。例如,執(zhí)行Select語句時數(shù)據庫符合條件的記錄有N項,而惡意DBMS故 意多返回或少返回幾項,或執(zhí)行Delete語句時故意多刪除或少刪除幾項。由于這兩種惡意 動作已經觸及DBMS的核心功能,須采用多個DBMS的并聯(lián)結構,讓每條SQL命令在多個DBMS 上分別執(zhí)行,然后在后繼的Select操作中比較它們的返回結果,如果結果不同,則認為DBMS 有惡意動作。
DBIDS在可信DBMS和不可信DBMS之間進行異步復制,即不可信DBMS中的數(shù)據更新異 步地傳播到可信DBMS中。為了使兩個DBMS中的數(shù)據保持一致,此時一個關鍵的任務是要確 定并發(fā)提交給不可信DBMS的多個事務的真正提交次序(也就是它們在等價的串行化調度下 的次序),以便在后備的可信DBMS采取同樣的次序提交這些事務,從而在兩個數(shù)據庫中產 生邏輯上可以比較的結果。我們采取了原本用于多數(shù)據庫的可串行化調度的Take-a-Ticket 算法來得到這一點。即,在每個事務中透明地加入一條Select語句讀取Ticket的語句,然 后再加入一條Update語句將Ticket的值加一。這樣,通過強制讓每個事務在Ticket上產 生讀寫沖突,從而確保了事務執(zhí)行的串行化,每個事務讀到的Ticket值即代表了它們在串 行化歷史中的次序。
當兩個數(shù)據庫同步完成之后,可以通過應用層提取每個表的內容相互比較以便檢測是否 不可信DBMS有惡意的行為。當然,安全管理員可以定時讓系統(tǒng)自動進行抽樣檢測。如果發(fā) 現(xiàn)不可信的DBMS的惡意行為導致數(shù)據庫的結果與SQL命令的語義不符,可以利用后備數(shù)據 庫來恢復不可信DBMS中的數(shù)據。注意,此時不能依賴惡意DBMS產生的備份來恢復,因為它 們是不可信的。
如圖5所示,DBIDS數(shù)據庫入侵檢測系統(tǒng)位于數(shù)據庫和應用服務器,或者數(shù)據庫和客戶 端之間。在客戶端和應用服務器看來DBIDS就是一個數(shù)據庫管理系統(tǒng),在不可信DBMS看來, DBIDS就是唯一的數(shù)據庫用戶。如果繞開DBIDS直接訪問數(shù)據庫,那么客戶端只能讀到語義 弱化的數(shù)據庫模式信息和加密之后的密文。
DBIDS的部署比較靈活,雖然DBIDS客戶端可以和應用服務器或者客戶端在同一臺服務 器上,但是為了減少網絡代價,DBIDS客戶端通常部署在客戶機或者應用服務器上,而DBIDS 服務器和DBMS服務器部署在同一個局域網中。
權利要求
1.一種不可信DBMS惡意入侵檢測系統(tǒng),包括DBMS和數(shù)據庫應用系統(tǒng),其特征在于在DBMS和數(shù)據庫應用之間引入一個數(shù)據庫入侵檢測系統(tǒng);數(shù)據庫入侵檢測系統(tǒng)分為客戶端和服務器端兩個部分,其中客戶端負責數(shù)據庫消息截獲和轉發(fā),以檢測惡意行為,保護關鍵數(shù)據;服務器端同時管理一個不可信DBMS和一個可信DBMS,可信DBMS保存系統(tǒng)的重要元數(shù)據信息,并作為不可信DBMS的鏡像數(shù)據庫;服務器端負責客戶端身份認證、分析通訊協(xié)議、加解密數(shù)據和檢測惡意數(shù)據庫入侵。
2. 如權利要求1所述的不可信DBMS惡意入侵檢測系統(tǒng),其特征在于 所述重要元數(shù)據信息包括加密密鑰、數(shù)據庫對象映射關系、數(shù)據庫表模式。
3. —種在權利要求1所述的系統(tǒng)中采用的不可信DBMS惡意入侵檢測方法,其特征在于 包括以下步驟1) 在數(shù)據庫客戶端設置服務器地址時,使用數(shù)據庫入侵檢測系統(tǒng)的客戶端的地址和端2) 將應用程序發(fā)送給不可信數(shù)據庫服務器的操作請求全部轉發(fā)給數(shù)據庫入侵檢測系統(tǒng) 的客戶端;3) 數(shù)據庫入侵檢測系統(tǒng)的客戶端將這些操作請求轉發(fā)給數(shù)據庫入侵檢測系統(tǒng)的服務器端;4) 數(shù)據庫入侵檢測系統(tǒng)的服務器端對收到的操作請求進行如下分析處理 若操作請求不會引起不可信DBMS中數(shù)據的惡意改動,則將操作請求轉發(fā)給不可信DBMS,再將得到的應答轉送回應用程序,同時對可信DBMS中的數(shù)據對應不可信DBMS進行更新;否 則,拒絕本次應用程序的操作請求。
4. 如權利要求3所述的不可信DBMS惡意入侵檢測方法,其特征在于在可信DBMS中的數(shù)據庫中存儲數(shù)據庫模式信息、數(shù)據庫對象映射規(guī)則、數(shù)據庫中的字 段和表的加密密鑰及加密算法;數(shù)據庫入侵檢測系統(tǒng)的服務器端裝有以下模塊-"SQL語法分析模塊"-用于將接收到的SQL語句轉換成SQL查詢樹;"對象映射模塊"-用于重寫SQL査詢樹中的數(shù)據庫對象名;"加密模塊"-用于加密數(shù)據;"記錄校驗生成模塊"-用于將每條記錄的用戶數(shù)據通過加密算法生成一個密碼校驗和, 把該校驗和作為用戶表的一個透明字段存儲在不可信DBMS中; "數(shù)據包轉發(fā)模塊"-用于將查詢樹轉換為SQL語句,以及 "SQL日志緩存模塊"、"日志回放模塊"、"錯誤匯報模塊"; 所述步驟4)進一步分為以下步驟4. 1) "SQL語法分析模塊"根據可信DBMS中存儲的數(shù)據庫模式信息以及SQL的詞法規(guī)則和語法規(guī)則,對接收到的SQL語句進行詞法分析和語法分析,得到SQL査詢樹;4. 2)"對象映射模塊"根據可信DBMS中的數(shù)據庫對象映射規(guī)則重寫SQL查詢樹中的數(shù)據庫對象名;4.3) 如果當前SQL是讀操作語句,則將SQL査詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊 轉換SQL査詢樹為SQL語句,轉發(fā)到不可信DBMS,完成本次請求處理,之后轉應答處理步 驟4.7),否則繼續(xù)歩驟4.4);4.4) 如果當前SQL是寫操作語句,則將査詢樹移交給"加密模塊",該模塊首先確定需 要加密的字段或者表,并從可信DBMS中獲取對應的加密密鑰以及加密算法,加密數(shù)據之后 把査詢樹傳遞給"記錄校驗生成模塊";4.5) 每次執(zhí)行SQL語句時,系統(tǒng)首先確定哪些記錄將受到該SQL語句的訪問,然后檢査 這些記錄的校驗和是否正確,如果正確,說明數(shù)據沒有受到惡意DBMS的改動,則將SQL査 詢樹移交給"數(shù)據包轉發(fā)模塊",該模塊轉換SQL査詢樹為SQL語句,轉發(fā)到不可信DBMS;4.6) 將該寫操作SQL保存到"SQL日志緩存模塊"中,之后"日志回放模塊"從"SQL 日志緩存模塊"中以事務為單位取出SQL語句,從不可信DBMS讀取響應信息,并對可信DBMS 中的數(shù)據對應不可信DBMS進行更新,完成本次請求處理,之后轉應答處理步驟4. 7);4.7) 從不可信DBMS讀取響應信息,之后進行對象映射,接著進行解密和記錄校驗驗證, 最后轉發(fā)數(shù)據包到客戶端,整個過程中的產生的錯誤交由錯誤'匯報模塊發(fā)送到客戶端。
5. 如權利要求3或4所述的不可信DBMS惡意入侵檢測方法,其特征在于在對可信DBMS中的數(shù)據對應不可信DBMS進行更新之前,檢測不可信DBMS中是否有惡 意行為,若有惡意行為,則拒絕本次應用程序的操作請求,并恢復不可信DBMS中的數(shù)據。
6. 如權利要求5所述的不可信DBMS惡意入侵檢測方法,其特征在于 通過以下方法檢測不可信DBMS中是否有惡意行為讓每條SQL命令在不可信DBMS和可信DBMS上分別執(zhí)行,然后在后繼的Select操作中比較它們的返回結果,如果結果不同,則 認為不可信DBMS有惡意行為。
7. 如權利要求6所述的不可信DBMS惡意入侵檢測方法,其特征在于-檢測不可信DBMS中是否有惡意行為的具體步驟是7. l)在不可信DBMS上執(zhí)行操作時,采取可串行化調度的Take-a-Ticket算法,在每個 事務中透明地加入一條Select語句讀取Ticket,然后再加入一條Update語句將Ticket的 值加一,這樣,每個事務讀到的Ticket值即代表了它們在串行化歷史中的次序; 7. 2)在可信DBMS上采取與不可信DBMS上同樣的執(zhí)行次序提交這些事務; 7. 3)當不可信DBMS和可信DBMS兩個數(shù)據庫同步操作完成之后,通過應用層提取每個表 的內容相互比較,若不相同,則表明不可信DBMS有惡意的行為。
全文摘要
本發(fā)明涉及不可信DBMS惡意入侵檢測系統(tǒng)及方法,它在DBMS和數(shù)據庫應用之間引入數(shù)據庫入侵檢測系統(tǒng)來截獲DBMS和應用的消息通訊,以檢測惡意行為、保護關鍵數(shù)據。數(shù)據庫入侵檢測系統(tǒng)分為客戶端和服務器端兩部分,客戶端負責數(shù)據庫消息截獲和轉發(fā),服務器端同時管理不可信DBMS和可信DBMS,可信DBMS保存系統(tǒng)的重要元數(shù)據信息,并作為不可信DBMS的鏡像數(shù)據庫;服務器端負責客戶端身份認證、分析通訊協(xié)議、實現(xiàn)透明數(shù)據加解密和惡意數(shù)據庫入侵檢測功能。本發(fā)明的優(yōu)點在于自動發(fā)現(xiàn)數(shù)據管理系統(tǒng)中惡意代碼發(fā)起的數(shù)據插入、修改和刪除數(shù)據操作;恢復受惡意代碼破壞的數(shù)據庫;對關鍵數(shù)據加密,防止被惡意代碼竊取。
文檔編號H04L29/06GK101540704SQ20091008315
公開日2009年9月23日 申請日期2009年5月5日 優(yōu)先權日2009年5月5日
發(fā)明者何清法, 趙明智, 顧云蘇 申請人:北京神舟航天軟件技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜梁县| 丰镇市| 黎平县| 托里县| 巴彦县| 桦南县| 黑水县| 平乡县| 山丹县| 博罗县| 古浪县| 罗江县| 新巴尔虎左旗| 井研县| 沁源县| 石柱| 邯郸县| 元谋县| 鹰潭市| 海城市| 岱山县| 巴彦淖尔市| 萨迦县| 乌海市| 邯郸市| 阆中市| 昌图县| 平舆县| 中牟县| 苏州市| 墨脱县| 自贡市| 古交市| 长沙市| 兴安盟| 湾仔区| 沙田区| 景德镇市| 开江县| 衢州市| 探索|