吳紀蕓
數據庫安全評估方法研究
吳紀蕓

吳紀蕓1,2陳志德1,2
1.福建師范大學 數學與計算機科學學院;2.福建師范大學 網絡安全與密碼技術福建省重點實驗室
吳紀蕓(1990-)女,福建龍巖,碩士研究生,主要研究方向:網絡與信息安全;陳志德(1976-)男,福建泉州,博士,教授,主要研究方向:網絡與信息安全、物聯網與移動計算。

隨著信息技術的普遍運用,數據庫已經應用在人們日常生活中的各個方面,其存儲著大量隱私和機密信息,關系到整個社會的根本利益。因此,數據庫安全正面臨嚴峻的挑戰和考驗,它已成為人們關注的焦點。但目前的漏洞掃描工具在實際應用中存在隱藏測試結果的問題,給數據庫造成巨大的安全隱患。面對該問題,本文提出一種數據庫安全評估方法,包括信息收集和分析模塊、審計模塊、滲透測試模塊、痕跡處理模塊、評估模塊、系統控制模塊。利用掃描到的數據庫漏洞對其進行非破壞性質的滲透測試,提供具有安全性和可靠性的評估報告,強調數據庫當前存在的漏洞風險等級,及時提醒數據庫管理員完善安全策略,降低安全風險。
隨著數據庫應用的逐漸廣泛,數據庫安全問題備受關注。人們對數據庫安全進行了大量的研究,認為數據庫安全是保證數據庫的完整性、機密性、可用性及其本身的相關安全特性,提出了如訪問控制、安全語義、數據加密等數據庫安全機制。現如今,數據庫通常存在的漏洞有口令復雜度低、低安全設置級別、啟動不必要的數據庫功能、數據泄露、緩沖區溢出等。這些安全漏洞和不恰當配置通常會帶來嚴重的后果。
國際上從早期開始,美國的國防部就開展了有關數據庫系統的多級安全機制的研究工作,其中主要內容包括數據庫系統安全性的需求、數據倉庫的保密、建立安全模型和數據庫系統的推理控制等。在國內,已經有越來越多的人認識到數據庫安全的重要性,我國的數據庫軟件生產商也在產品中添加了保護數據庫安全的功能,例如數據庫滲透測試、數據庫的備份與恢復、數據庫審計等。與國外產品相比較,國內產品由于缺乏技術支持,如數據庫非公開協議的技術支持,使得國內數據庫安全審計和安全檢測產品在功能和性能上存在不足。
由于現階段缺乏數據庫安全評估工具,漏洞風險等級不斷提升,數據庫管理員無法及時發現數據庫面臨的安全問題。滲透測試完全模擬黑客的入侵和攻擊手段,利用數據庫存在的安全漏洞,在可控制和非破壞性的范圍之內,對數據庫進行模擬攻擊,能夠直觀地向管理員反映數據庫存在的安全漏洞。
一般常用的數據庫滲透測試工具有DSQLTools(SQL注入工具)、nbsi3.0(MSSQL注入工具)、mysqlweak(Mysql數據庫弱口令掃描器)、pangolin(數據庫注入工具)、db2utils(DB2漏洞利用工具)、oscanner(Oracle掃描工具)、oracle_checkpwd_ big(Oracle弱口令猜解工具)等,但這些商用的漏洞掃描工具在實際應用中存在隱藏測試結果的問題,若無法對某種漏洞進行測試,無法了解存在漏洞的風險等級,數據庫管理員會誤以為數據庫是安全的,可實際上卻存在安全隱患。所以,提供具有可靠性和安全性的評估報告和漏洞風險等級是保證數據庫管理員及時了解數據庫是否安全的必要基礎。
在這篇文章中,我們提出一種數據庫安全評估方法,主要包括信息收集和分析模塊、審計模塊、滲透測試模塊、痕跡處理模塊、評估模塊和系統控制模塊。本方法實現了利用掃描到的數據庫漏洞對其進行非破壞性質的滲透測試,提供具有安全性和可靠性的評估報告,強調數據庫當前存在的漏洞風險等級,及時提醒數據庫管理員完善安全策略,降低安全風險。
本文所提出的數據庫安全評估方法主要包括以下幾個模塊:(1)信息收集和分析模塊,對數據庫情況、拓撲情況、應用情況有一個大致的了解,分析數據庫存在的弱點,為更深入地進行滲透測試提供資料,可以有針對性地制定出滲透測試方案;(2)審計模塊,通過弱點對數據庫進行審計工作,精確地監控所有訪問及操作請求;(3)滲透測試模塊,模擬黑客使用的攻擊技術,針對分析出的數據庫漏洞進行深入的探測,讓管理員知道數據庫最脆弱的環節;(4)痕跡處理模塊,清除攻擊痕跡;(5)評估模塊,根據攻擊結果,對數據庫的安全性進行評估,并生成報告,強調漏洞風險等級;(6)系統控制模塊,該模塊采用可編程控制器實現,與其余模塊相連接,控制各個模塊的運作和數據傳輸。本方法實現了利用掃描到的數據庫漏洞對其進行非破壞性質的滲透測試,提供具有安全性和可靠性的評估報告,強調數據庫當前存在的漏洞風險等級,及時提醒數據庫管理員完善安全策略,降低安全風險。圖1為該數據庫安全評估方法的模塊連接圖。

圖1 數據庫安全評估方法的模塊連接圖
如圖1所示,此數據庫安全評估方法包括信息收集和分析模塊、審計模塊、滲透測試模塊、痕跡處理模塊、評估模塊和系統控制模塊。系統控制模塊采用可編程控制器實現,與其余各模塊相連接,控制各個模塊的運作和數據傳輸。
數據庫安全評估方法實施步驟
步驟一、對目標任務進行信息收集,對目標任務軟硬件環境、用戶設置、拓撲情況、應用情況有一個基本的了解,為更深入地進行滲透測試提供資料,可以有針對性地制定出滲透測試方案。
圖2為信息手機模塊的技術示意圖。如圖2所示,信息收集采用攻擊服務器與遠程目標任務的數據庫進行數據同步的方法。當啟動信息收集應用程序時,即當攻擊服務器要接收目標任務的數據庫信息時,該服務器向目標任務的服務器端發出HTTP請求,目標任務的服務器與數據庫連接,執行SQL請求。接著數據被傳送到攻擊服務器中,復制到攻擊服務器所連接的數據庫中。

圖2 信息收集模塊的技術示意圖
利用信息收集模塊收集數據庫端口掃描,賬號掃描,口令、權限結構、版本信息、配置選項等基本信息。通過信息收集,可以基本確定一個數據庫的基本信息和它可能存在以及被利用的安全弱點或易被猜解的口令,為進行深層次的滲透提供依據。
步驟二、通過弱點對數據庫進行審計工作,精確地監控所有訪問及操作請求;數據庫審計模塊實時監控數據庫活動,將網絡與網關相連,監聽網絡上的數據包,讀取包體信息,將包體信息連同捕獲的接收時間、發送端IP和接收端IP、庫、表、函數等重要信息字段連同SQL操作命令保存至對應的數據庫表中,同時記錄這些SQL操作是否成功。
步驟三、模擬黑客使用的攻擊技術,針對分析出的數據庫漏洞進行滲透測試,讓數據庫管理員知道數據庫最脆弱的環節;進行滲透測試的數據庫應用系統為MSSQL、Oracle、MySQL、Informix、Sybase、DB2、Access等。
步驟四、清除攻擊痕跡,包括清除應用程序日志、安全日志、系統日志;
痕跡清除模塊采用clearlog.exe工具,方法:
清除目標任務應用程序日志為clearlogs ip -app;
清除目標任務安全日志為clearlogs ip -sec;
清除目標任務系統日志為clearlogs ip -sys。
步驟五、根據攻擊結果,對數據庫的安全性進行評估,并生成報告。
攻擊服務器根據滲透測試攻擊結果的反饋信息,對目標任務是否存在漏洞以及漏洞風險等級多大以文本形式輸出,將此文本信息傳輸給目標任務服務器。其中,評估報告中的漏洞風險等級從低到高可做以下劃分:
一級:掃描無漏洞,但這并不代表數據庫無漏洞風險;
二級:危害級別輕微的漏洞,例如數據庫安全漏洞,此類漏洞比較不容易構成嚴重后果;
三級:危害級別較小的漏洞,例如可獲取非機密性質的文件資料,但不造成嚴重數據泄露;
四級:危害級別一般的漏洞,例如拒絕服務攻擊漏洞、隨意授予權限漏洞、空/弱口令漏洞等;
五級:危害級別嚴重的漏洞,例如緩沖區溢出漏洞、權限提升漏洞、數據嚴重泄露和篡改。
滲透測試模塊實施步驟
圖3為滲透測試模塊的實施流程圖。如圖3所示,滲透測試模塊包括以下步驟。

圖3 滲透測試模塊實施流程圖
步驟一、利用掃描或嗅探技術對目標任務進行測試,若識別出口令為空,則利用SQL Tools工具或手工方式對數據庫進行違規操作;若識別出口令為弱,則使用暴力攻擊,不斷輸入枚舉的用戶名和密碼組合,直到可以登錄為止,獲得口令,進而利用SQL Tools工具或手工方式對數據庫進行違規操作。
數據庫的違規操作方法可以包括:
(1)訪問不可能存在的文件或數據;
(2)竊取無訪問權限的數據,破壞數據庫的數據完整性;
(3)實用暴力攻擊獲取數據庫的訪問權限,獲得控制權;
(4)增加SQL賬戶或執行DOS命令。
步驟二、若識別不出空/弱口令,則掃描目標任務看其是否存在安全漏洞,若存在安全漏洞,則利用漏洞進行滲透測試,其中主要的漏洞類型包括:
(1)權限漏洞
①權限提升漏洞。在內置函數、SQL操作指令中找到安全漏洞,利用漏洞將普通用戶的權限提升為管理員權限,進而可以獲取數據庫資料,惡意篡改數據等。
②隨意授予權限漏洞。利用用戶的普通權限對數據庫執行自身權限以外的操作。
(2)安裝漏洞
①安全設置級別低。
②啟動不必要的數據庫功能。
(3)產品漏洞
①拒絕服務攻擊漏洞。向目標任務發送少量數據導致其資源被大幅占用,從而拒絕服務。
②緩沖區溢出漏洞:向有限空間的緩沖區拷貝一個過長的字符串,可導致程序癱瘓,造成宕機、重啟;或者運行惡意代碼,執行任意指令,獲得權限。
對于目前信息安全工作而言,開展數據庫安全測評工作的研究是十分有意義的,數據庫安全已經成為信息安全領域的一個重要方面,這將關系到整個社會的利益。針對目前商用的數據庫漏洞掃描工具在實際應用中存在隱藏測試結果的問題,本文提出一種數據庫安全評估方法,主要包括信息收集和分析模塊、審計模塊、滲透測試模塊、痕跡處理模塊、評估模塊和系統控制模塊。本方法實現了利用掃描到的數據庫漏洞對其進行非破壞性質的滲透測試,提供具有安全性和可靠性的評估報告,強調數據庫當前存在的漏洞風險等級,及時提醒數據庫管理員完善安全策略,降低安全風險。
福州市科技局項目(項目編號2013-G-84)
10.3969/j.issn.1001-8972.2015.02.045