吳紀(jì)蕓
數(shù)據(jù)庫(kù)安全評(píng)估方法研究
吳紀(jì)蕓
吳紀(jì)蕓1,2陳志德1,2
1.福建師范大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院;2.福建師范大學(xué) 網(wǎng)絡(luò)安全與密碼技術(shù)福建省重點(diǎn)實(shí)驗(yàn)室
吳紀(jì)蕓(1990-)女,福建龍巖,碩士研究生,主要研究方向:網(wǎng)絡(luò)與信息安全;陳志德(1976-)男,福建泉州,博士,教授,主要研究方向:網(wǎng)絡(luò)與信息安全、物聯(lián)網(wǎng)與移動(dòng)計(jì)算。
隨著信息技術(shù)的普遍運(yùn)用,數(shù)據(jù)庫(kù)已經(jīng)應(yīng)用在人們?nèi)粘I钪械母鱾€(gè)方面,其存儲(chǔ)著大量隱私和機(jī)密信息,關(guān)系到整個(gè)社會(huì)的根本利益。因此,數(shù)據(jù)庫(kù)安全正面臨嚴(yán)峻的挑戰(zhàn)和考驗(yàn),它已成為人們關(guān)注的焦點(diǎn)。但目前的漏洞掃描工具在實(shí)際應(yīng)用中存在隱藏測(cè)試結(jié)果的問(wèn)題,給數(shù)據(jù)庫(kù)造成巨大的安全隱患。面對(duì)該問(wèn)題,本文提出一種數(shù)據(jù)庫(kù)安全評(píng)估方法,包括信息收集和分析模塊、審計(jì)模塊、滲透測(cè)試模塊、痕跡處理模塊、評(píng)估模塊、系統(tǒng)控制模塊。利用掃描到的數(shù)據(jù)庫(kù)漏洞對(duì)其進(jìn)行非破壞性質(zhì)的滲透測(cè)試,提供具有安全性和可靠性的評(píng)估報(bào)告,強(qiáng)調(diào)數(shù)據(jù)庫(kù)當(dāng)前存在的漏洞風(fēng)險(xiǎn)等級(jí),及時(shí)提醒數(shù)據(jù)庫(kù)管理員完善安全策略,降低安全風(fēng)險(xiǎn)。
隨著數(shù)據(jù)庫(kù)應(yīng)用的逐漸廣泛,數(shù)據(jù)庫(kù)安全問(wèn)題備受關(guān)注。人們對(duì)數(shù)據(jù)庫(kù)安全進(jìn)行了大量的研究,認(rèn)為數(shù)據(jù)庫(kù)安全是保證數(shù)據(jù)庫(kù)的完整性、機(jī)密性、可用性及其本身的相關(guān)安全特性,提出了如訪問(wèn)控制、安全語(yǔ)義、數(shù)據(jù)加密等數(shù)據(jù)庫(kù)安全機(jī)制?,F(xiàn)如今,數(shù)據(jù)庫(kù)通常存在的漏洞有口令復(fù)雜度低、低安全設(shè)置級(jí)別、啟動(dòng)不必要的數(shù)據(jù)庫(kù)功能、數(shù)據(jù)泄露、緩沖區(qū)溢出等。這些安全漏洞和不恰當(dāng)配置通常會(huì)帶來(lái)嚴(yán)重的后果。
國(guó)際上從早期開(kāi)始,美國(guó)的國(guó)防部就開(kāi)展了有關(guān)數(shù)據(jù)庫(kù)系統(tǒng)的多級(jí)安全機(jī)制的研究工作,其中主要內(nèi)容包括數(shù)據(jù)庫(kù)系統(tǒng)安全性的需求、數(shù)據(jù)倉(cāng)庫(kù)的保密、建立安全模型和數(shù)據(jù)庫(kù)系統(tǒng)的推理控制等。在國(guó)內(nèi),已經(jīng)有越來(lái)越多的人認(rèn)識(shí)到數(shù)據(jù)庫(kù)安全的重要性,我國(guó)的數(shù)據(jù)庫(kù)軟件生產(chǎn)商也在產(chǎn)品中添加了保護(hù)數(shù)據(jù)庫(kù)安全的功能,例如數(shù)據(jù)庫(kù)滲透測(cè)試、數(shù)據(jù)庫(kù)的備份與恢復(fù)、數(shù)據(jù)庫(kù)審計(jì)等。與國(guó)外產(chǎn)品相比較,國(guó)內(nèi)產(chǎn)品由于缺乏技術(shù)支持,如數(shù)據(jù)庫(kù)非公開(kāi)協(xié)議的技術(shù)支持,使得國(guó)內(nèi)數(shù)據(jù)庫(kù)安全審計(jì)和安全檢測(cè)產(chǎn)品在功能和性能上存在不足。
由于現(xiàn)階段缺乏數(shù)據(jù)庫(kù)安全評(píng)估工具,漏洞風(fēng)險(xiǎn)等級(jí)不斷提升,數(shù)據(jù)庫(kù)管理員無(wú)法及時(shí)發(fā)現(xiàn)數(shù)據(jù)庫(kù)面臨的安全問(wèn)題。滲透測(cè)試完全模擬黑客的入侵和攻擊手段,利用數(shù)據(jù)庫(kù)存在的安全漏洞,在可控制和非破壞性的范圍之內(nèi),對(duì)數(shù)據(jù)庫(kù)進(jìn)行模擬攻擊,能夠直觀地向管理員反映數(shù)據(jù)庫(kù)存在的安全漏洞。
一般常用的數(shù)據(jù)庫(kù)滲透測(cè)試工具有DSQLTools(SQL注入工具)、nbsi3.0(MSSQL注入工具)、mysqlweak(Mysql數(shù)據(jù)庫(kù)弱口令掃描器)、pangolin(數(shù)據(jù)庫(kù)注入工具)、db2utils(DB2漏洞利用工具)、oscanner(Oracle掃描工具)、oracle_checkpwd_ big(Oracle弱口令猜解工具)等,但這些商用的漏洞掃描工具在實(shí)際應(yīng)用中存在隱藏測(cè)試結(jié)果的問(wèn)題,若無(wú)法對(duì)某種漏洞進(jìn)行測(cè)試,無(wú)法了解存在漏洞的風(fēng)險(xiǎn)等級(jí),數(shù)據(jù)庫(kù)管理員會(huì)誤以為數(shù)據(jù)庫(kù)是安全的,可實(shí)際上卻存在安全隱患。所以,提供具有可靠性和安全性的評(píng)估報(bào)告和漏洞風(fēng)險(xiǎn)等級(jí)是保證數(shù)據(jù)庫(kù)管理員及時(shí)了解數(shù)據(jù)庫(kù)是否安全的必要基礎(chǔ)。
在這篇文章中,我們提出一種數(shù)據(jù)庫(kù)安全評(píng)估方法,主要包括信息收集和分析模塊、審計(jì)模塊、滲透測(cè)試模塊、痕跡處理模塊、評(píng)估模塊和系統(tǒng)控制模塊。本方法實(shí)現(xiàn)了利用掃描到的數(shù)據(jù)庫(kù)漏洞對(duì)其進(jìn)行非破壞性質(zhì)的滲透測(cè)試,提供具有安全性和可靠性的評(píng)估報(bào)告,強(qiáng)調(diào)數(shù)據(jù)庫(kù)當(dāng)前存在的漏洞風(fēng)險(xiǎn)等級(jí),及時(shí)提醒數(shù)據(jù)庫(kù)管理員完善安全策略,降低安全風(fēng)險(xiǎn)。
本文所提出的數(shù)據(jù)庫(kù)安全評(píng)估方法主要包括以下幾個(gè)模塊:(1)信息收集和分析模塊,對(duì)數(shù)據(jù)庫(kù)情況、拓?fù)淝闆r、應(yīng)用情況有一個(gè)大致的了解,分析數(shù)據(jù)庫(kù)存在的弱點(diǎn),為更深入地進(jìn)行滲透測(cè)試提供資料,可以有針對(duì)性地制定出滲透測(cè)試方案;(2)審計(jì)模塊,通過(guò)弱點(diǎn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行審計(jì)工作,精確地監(jiān)控所有訪問(wèn)及操作請(qǐng)求;(3)滲透測(cè)試模塊,模擬黑客使用的攻擊技術(shù),針對(duì)分析出的數(shù)據(jù)庫(kù)漏洞進(jìn)行深入的探測(cè),讓管理員知道數(shù)據(jù)庫(kù)最脆弱的環(huán)節(jié);(4)痕跡處理模塊,清除攻擊痕跡;(5)評(píng)估模塊,根據(jù)攻擊結(jié)果,對(duì)數(shù)據(jù)庫(kù)的安全性進(jìn)行評(píng)估,并生成報(bào)告,強(qiáng)調(diào)漏洞風(fēng)險(xiǎn)等級(jí);(6)系統(tǒng)控制模塊,該模塊采用可編程控制器實(shí)現(xiàn),與其余模塊相連接,控制各個(gè)模塊的運(yùn)作和數(shù)據(jù)傳輸。本方法實(shí)現(xiàn)了利用掃描到的數(shù)據(jù)庫(kù)漏洞對(duì)其進(jìn)行非破壞性質(zhì)的滲透測(cè)試,提供具有安全性和可靠性的評(píng)估報(bào)告,強(qiáng)調(diào)數(shù)據(jù)庫(kù)當(dāng)前存在的漏洞風(fēng)險(xiǎn)等級(jí),及時(shí)提醒數(shù)據(jù)庫(kù)管理員完善安全策略,降低安全風(fēng)險(xiǎn)。圖1為該數(shù)據(jù)庫(kù)安全評(píng)估方法的模塊連接圖。
圖1 數(shù)據(jù)庫(kù)安全評(píng)估方法的模塊連接圖
如圖1所示,此數(shù)據(jù)庫(kù)安全評(píng)估方法包括信息收集和分析模塊、審計(jì)模塊、滲透測(cè)試模塊、痕跡處理模塊、評(píng)估模塊和系統(tǒng)控制模塊。系統(tǒng)控制模塊采用可編程控制器實(shí)現(xiàn),與其余各模塊相連接,控制各個(gè)模塊的運(yùn)作和數(shù)據(jù)傳輸。
數(shù)據(jù)庫(kù)安全評(píng)估方法實(shí)施步驟
步驟一、對(duì)目標(biāo)任務(wù)進(jìn)行信息收集,對(duì)目標(biāo)任務(wù)軟硬件環(huán)境、用戶(hù)設(shè)置、拓?fù)淝闆r、應(yīng)用情況有一個(gè)基本的了解,為更深入地進(jìn)行滲透測(cè)試提供資料,可以有針對(duì)性地制定出滲透測(cè)試方案。
圖2為信息手機(jī)模塊的技術(shù)示意圖。如圖2所示,信息收集采用攻擊服務(wù)器與遠(yuǎn)程目標(biāo)任務(wù)的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)同步的方法。當(dāng)啟動(dòng)信息收集應(yīng)用程序時(shí),即當(dāng)攻擊服務(wù)器要接收目標(biāo)任務(wù)的數(shù)據(jù)庫(kù)信息時(shí),該服務(wù)器向目標(biāo)任務(wù)的服務(wù)器端發(fā)出HTTP請(qǐng)求,目標(biāo)任務(wù)的服務(wù)器與數(shù)據(jù)庫(kù)連接,執(zhí)行SQL請(qǐng)求。接著數(shù)據(jù)被傳送到攻擊服務(wù)器中,復(fù)制到攻擊服務(wù)器所連接的數(shù)據(jù)庫(kù)中。
圖2 信息收集模塊的技術(shù)示意圖
利用信息收集模塊收集數(shù)據(jù)庫(kù)端口掃描,賬號(hào)掃描,口令、權(quán)限結(jié)構(gòu)、版本信息、配置選項(xiàng)等基本信息。通過(guò)信息收集,可以基本確定一個(gè)數(shù)據(jù)庫(kù)的基本信息和它可能存在以及被利用的安全弱點(diǎn)或易被猜解的口令,為進(jìn)行深層次的滲透提供依據(jù)。
步驟二、通過(guò)弱點(diǎn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行審計(jì)工作,精確地監(jiān)控所有訪問(wèn)及操作請(qǐng)求;數(shù)據(jù)庫(kù)審計(jì)模塊實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)庫(kù)活動(dòng),將網(wǎng)絡(luò)與網(wǎng)關(guān)相連,監(jiān)聽(tīng)網(wǎng)絡(luò)上的數(shù)據(jù)包,讀取包體信息,將包體信息連同捕獲的接收時(shí)間、發(fā)送端IP和接收端IP、庫(kù)、表、函數(shù)等重要信息字段連同SQL操作命令保存至對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中,同時(shí)記錄這些SQL操作是否成功。
步驟三、模擬黑客使用的攻擊技術(shù),針對(duì)分析出的數(shù)據(jù)庫(kù)漏洞進(jìn)行滲透測(cè)試,讓數(shù)據(jù)庫(kù)管理員知道數(shù)據(jù)庫(kù)最脆弱的環(huán)節(jié);進(jìn)行滲透測(cè)試的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)為MSSQL、Oracle、MySQL、Informix、Sybase、DB2、Access等。
步驟四、清除攻擊痕跡,包括清除應(yīng)用程序日志、安全日志、系統(tǒng)日志;
痕跡清除模塊采用clearlog.exe工具,方法:
清除目標(biāo)任務(wù)應(yīng)用程序日志為clearlogs ip -app;
清除目標(biāo)任務(wù)安全日志為clearlogs ip -sec;
清除目標(biāo)任務(wù)系統(tǒng)日志為clearlogs ip -sys。
步驟五、根據(jù)攻擊結(jié)果,對(duì)數(shù)據(jù)庫(kù)的安全性進(jìn)行評(píng)估,并生成報(bào)告。
攻擊服務(wù)器根據(jù)滲透測(cè)試攻擊結(jié)果的反饋信息,對(duì)目標(biāo)任務(wù)是否存在漏洞以及漏洞風(fēng)險(xiǎn)等級(jí)多大以文本形式輸出,將此文本信息傳輸給目標(biāo)任務(wù)服務(wù)器。其中,評(píng)估報(bào)告中的漏洞風(fēng)險(xiǎn)等級(jí)從低到高可做以下劃分:
一級(jí):掃描無(wú)漏洞,但這并不代表數(shù)據(jù)庫(kù)無(wú)漏洞風(fēng)險(xiǎn);
二級(jí):危害級(jí)別輕微的漏洞,例如數(shù)據(jù)庫(kù)安全漏洞,此類(lèi)漏洞比較不容易構(gòu)成嚴(yán)重后果;
三級(jí):危害級(jí)別較小的漏洞,例如可獲取非機(jī)密性質(zhì)的文件資料,但不造成嚴(yán)重?cái)?shù)據(jù)泄露;
四級(jí):危害級(jí)別一般的漏洞,例如拒絕服務(wù)攻擊漏洞、隨意授予權(quán)限漏洞、空/弱口令漏洞等;
五級(jí):危害級(jí)別嚴(yán)重的漏洞,例如緩沖區(qū)溢出漏洞、權(quán)限提升漏洞、數(shù)據(jù)嚴(yán)重泄露和篡改。
滲透測(cè)試模塊實(shí)施步驟
圖3為滲透測(cè)試模塊的實(shí)施流程圖。如圖3所示,滲透測(cè)試模塊包括以下步驟。
圖3 滲透測(cè)試模塊實(shí)施流程圖
步驟一、利用掃描或嗅探技術(shù)對(duì)目標(biāo)任務(wù)進(jìn)行測(cè)試,若識(shí)別出口令為空,則利用SQL Tools工具或手工方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行違規(guī)操作;若識(shí)別出口令為弱,則使用暴力攻擊,不斷輸入枚舉的用戶(hù)名和密碼組合,直到可以登錄為止,獲得口令,進(jìn)而利用SQL Tools工具或手工方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行違規(guī)操作。
數(shù)據(jù)庫(kù)的違規(guī)操作方法可以包括:
(1)訪問(wèn)不可能存在的文件或數(shù)據(jù);
(2)竊取無(wú)訪問(wèn)權(quán)限的數(shù)據(jù),破壞數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性;
(3)實(shí)用暴力攻擊獲取數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,獲得控制權(quán);
(4)增加SQL賬戶(hù)或執(zhí)行DOS命令。
步驟二、若識(shí)別不出空/弱口令,則掃描目標(biāo)任務(wù)看其是否存在安全漏洞,若存在安全漏洞,則利用漏洞進(jìn)行滲透測(cè)試,其中主要的漏洞類(lèi)型包括:
(1)權(quán)限漏洞
①權(quán)限提升漏洞。在內(nèi)置函數(shù)、SQL操作指令中找到安全漏洞,利用漏洞將普通用戶(hù)的權(quán)限提升為管理員權(quán)限,進(jìn)而可以獲取數(shù)據(jù)庫(kù)資料,惡意篡改數(shù)據(jù)等。
②隨意授予權(quán)限漏洞。利用用戶(hù)的普通權(quán)限對(duì)數(shù)據(jù)庫(kù)執(zhí)行自身權(quán)限以外的操作。
(2)安裝漏洞
①安全設(shè)置級(jí)別低。
②啟動(dòng)不必要的數(shù)據(jù)庫(kù)功能。
(3)產(chǎn)品漏洞
①拒絕服務(wù)攻擊漏洞。向目標(biāo)任務(wù)發(fā)送少量數(shù)據(jù)導(dǎo)致其資源被大幅占用,從而拒絕服務(wù)。
②緩沖區(qū)溢出漏洞:向有限空間的緩沖區(qū)拷貝一個(gè)過(guò)長(zhǎng)的字符串,可導(dǎo)致程序癱瘓,造成宕機(jī)、重啟;或者運(yùn)行惡意代碼,執(zhí)行任意指令,獲得權(quán)限。
對(duì)于目前信息安全工作而言,開(kāi)展數(shù)據(jù)庫(kù)安全測(cè)評(píng)工作的研究是十分有意義的,數(shù)據(jù)庫(kù)安全已經(jīng)成為信息安全領(lǐng)域的一個(gè)重要方面,這將關(guān)系到整個(gè)社會(huì)的利益。針對(duì)目前商用的數(shù)據(jù)庫(kù)漏洞掃描工具在實(shí)際應(yīng)用中存在隱藏測(cè)試結(jié)果的問(wèn)題,本文提出一種數(shù)據(jù)庫(kù)安全評(píng)估方法,主要包括信息收集和分析模塊、審計(jì)模塊、滲透測(cè)試模塊、痕跡處理模塊、評(píng)估模塊和系統(tǒng)控制模塊。本方法實(shí)現(xiàn)了利用掃描到的數(shù)據(jù)庫(kù)漏洞對(duì)其進(jìn)行非破壞性質(zhì)的滲透測(cè)試,提供具有安全性和可靠性的評(píng)估報(bào)告,強(qiáng)調(diào)數(shù)據(jù)庫(kù)當(dāng)前存在的漏洞風(fēng)險(xiǎn)等級(jí),及時(shí)提醒數(shù)據(jù)庫(kù)管理員完善安全策略,降低安全風(fēng)險(xiǎn)。
福州市科技局項(xiàng)目(項(xiàng)目編號(hào)2013-G-84)
10.3969/j.issn.1001-8972.2015.02.045