精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>通信技術>數據通信>

Sensor由API處理模塊 - 數據庫自主安全防護技術的研究與實現

2011年07月16日 11:26 本站整理 作者:網絡 用戶評論(0
Sensor由API處理模塊、訪問控制模塊(Access Control)、Sensor核心模塊(Core)、注射模塊四部分組成。Core是Sensor的核心部件,主要負責攔截接口,解析并分離接口中的重要信息,使程序轉入自定義的安檢程序中執行安全檢查。Access Control組件實現不同級別的訪問控制,根據用戶提供的安檢信息,組態出對應的安防模塊,并在合適的時候調用其進行訪問控制。API(dll)主要將數據庫系統提供的接口信息,轉化為dll以便Sensor偵聽時使用。Inject/Eject為Sensor提供遠程注射的功能。
?? ?Core通過攔截對API的調用來實現定制功能。程序在調用API函數之前,首先要把API所在的動態鏈接庫載入到程序中;然后將API函數的參數、返回地址(也就是函數執行完后,下一條語句的地址)、系統當前的環境(主要是一些寄存器的值)壓入系統調用棧;接著,進入到API函數的入口處開始執行API函數,執行過程中從系統調用棧中取出參數,執行函數的功能,返回值存放在EAX寄存器中,最終從堆棧中取出函數的返回值并返回(參數壓棧的順序還要受到調用約定的控制,本文不詳細介紹)。
?? ?舉例說明函數調用時堆棧的情況。假設調用約定采用_stdcall,堆棧由高向低遞減,API為Int? func(int a, int b, int c)。系統調用棧的部分內容如表1所示。

??? 攔截主要通過HOOK API技術實現,可以攔截的操作包括DOS下的中斷、Windows中的API調用、中斷服務、IFS和NDIS過濾等。目前微軟提供了一個實現HOOK的函數庫Detours。其實現原理是:將目標函數的前幾個字節改為jmp指令跳轉到自己的函數地址,以此接管對目標函數的調用,并插入自己的處理代碼。
 HOOK API技術的實質是改變程序流程。在CPU的指令集中,能夠改變程序流程的指令包括JMP、CALL、INT、RET、RETF、IRET等。理論上只要改變API入口和出口的任何機器碼,都可以實現HOOK。但實際實現上要復雜得多,主要需要考慮如何處理好以下問題:(1)CPU指令長度。在32 bit系統中,一條JMP/CALL指令的長度是5 B,因此只需要替換API中入口處的前5 B的內容,否則會產生不可預料的后果。(2)參數。為了訪問原API的參數,需要通過EBP或ESP來引用參數,因此需要明確HOOK代碼中此時的EBP/ESP的值。(3)時機問題。有些HOOK必須在API的開頭,如CreateFileA( )。有些必須在API的尾部,如RECV()。(4)程序上下文內容的保存。在程序執行中會涉及修改系統棧的內容,因此注意保存棧中原有內容,以便還原。(5)在HOOK代碼里盡量杜絕全局變量的使用,以降低程序之間的耦合性。通過以上的分析,整理出如圖4所示的實現的流程。

 DSS與傳統數據庫的安全防護功能相比,具有以下特點:
 (1)獨立于具體的數據庫。這種獨立性體現在:①DSS只需要數據庫提供其接口信息即可工作。②支持不同標準的SQL語句,通過數據庫命令映射表可將非標準的SQL語句映射為系統設置的SQL命令。③系統自身數據的物理存儲是獨立于數據庫的。
?? ?(2)靈活性和針對性的統一。用戶可以根據自己的需要配置針對特定應用的相關規則。
?? ?(3)完善的自我安全保護措施。DSS只有數據庫安全管理員和安全審計員才能訪問。安全管理員和安全審計員是一類特殊的用戶,他們只負責安全方面的操作,而不能訪問數據庫中的數據。這與Oracle等的數據庫不同,在這些數據庫中,DBA可以進行所有的操作。DSS系統本身具有故障恢復能力,能使系統出現問題時恢復到一個安全的狀態。
 (4)完備的信息查閱和報警功能。在DSS中,本文提供了便利的設計查閱工具,方便用戶對系統進行監控。另外,用戶也可以自己定義報警條件和報警處理措施,一旦滿足報警條件,系統就會自動地做出響應。
3 實驗及結果分析
 DSS的開發主要采用VS 2005實現,開發完成后在一臺主頻為2.8 GHz、內存2 GB、裝有Windows 2000操作系統的普通 PC機上對其進行了功能和性能的測試,使用的數據庫是開源的嵌入式數據庫SQLite 3.6。為了搭建測試環境,需要在SQLite中添加初始化系統自身的數據字典,并開發應用程序。測試內容包括:登錄、用戶管理、Sensor、訪問控制、日志審計以及增加DSS前后數據庫系統安全性變化等功能性測試和增加DSS系統后對數據庫性能的影響兩方面。其中,性能測試主要從時間和資源的增加情況來說明,針對不同數據庫對象分別在五個級別(20 000、40 000、60 000、80 000、100 000)的數據上進行了插入和查詢操作測試。為了做好性能對比,在SQLite中也添加了相同的訪問控制功能,記為Inline Processing。插入操作的測試結果如圖5所示,查詢操作的測試結果如圖6所示。

??? 從功能測試結果可以看出,DSS可以為數據庫系統提供自主防護。從性能測試的結果中看出,查詢操作和插入操作耗時相差比較大,這主要是SQLite工作方式引起的,在執行用戶的插入操作時,數據庫需將內存中的數據寫入磁盤數據庫文件中,占用了一部分時間。而查詢時,SQLite會將數據庫文件部分內容緩存起來,加快了查詢的速度。另外,增加DSS會對性能有略微的影響,但是它能實現對數據庫系統自主保護。
?? ?本文針對傳統數據庫安全防護功能配置不靈活的問題,提出了一種基于HOOK技術的數據庫通用安全防護系統。該系統的最大優點在于,它不受數據庫自身的約束,完全獨立于數據庫系統,為用戶提供一種按需定制的功能,不僅增加了安防配置的靈活性而且提高了通用性,可以用于不同的數據庫系統中。

非常好我支持^.^

(7) 100%

不好我反對

(0) 0%

( 發表人:小蘭 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?