鄧文艷
山西金融職業(yè)學(xué)院
數(shù)據(jù)庫系統(tǒng)安全性測試技術(shù)研究
鄧文艷
山西金融職業(yè)學(xué)院
數(shù)據(jù)庫系統(tǒng)存儲著大量的數(shù)據(jù)信息,其本身的安全性非常重要,一旦存在安全問題,將會帶來相應(yīng)的信息風(fēng)險(xiǎn),引發(fā)數(shù)據(jù)信息的泄露、丟失或者損壞,因此,需要重視對數(shù)據(jù)庫系統(tǒng)安全性的測試。本文結(jié)合數(shù)據(jù)庫系統(tǒng)安全性測試的相關(guān)內(nèi)容,對其測試技術(shù)進(jìn)行了研究和討論。
數(shù)據(jù)庫系統(tǒng) 安全性 測試技術(shù)
無論是哪一種軟件系統(tǒng)的開發(fā),都不可能忽略數(shù)據(jù)庫系統(tǒng),這是進(jìn)行數(shù)據(jù)管理的基礎(chǔ)。通過數(shù)據(jù)庫系統(tǒng)的安全性測試,能夠幫助技術(shù)人員及時(shí)發(fā)現(xiàn)數(shù)據(jù)庫中存在的漏洞,從而減少信息泄露的風(fēng)險(xiǎn)。
數(shù)據(jù)庫系統(tǒng)的安全性測試,主要是針對系統(tǒng)本身對于非法入侵防范能力的檢驗(yàn),可以對數(shù)據(jù)庫系統(tǒng)內(nèi)存在的保護(hù)機(jī)制在遭遇非法入侵時(shí)的效果進(jìn)行測試。數(shù)據(jù)庫安全性測試的內(nèi)容主要包括三個(gè),一是資源,或者更加直觀的說數(shù)據(jù)庫中的數(shù)據(jù)信息以及應(yīng)用功能,為了對其進(jìn)行測試,需要羅列出所有需要進(jìn)行保護(hù)的數(shù)據(jù)和功能,然后分析其對于數(shù)據(jù)庫用戶的價(jià)值,找出可能對這些數(shù)據(jù)和功能進(jìn)行利用的非法手段;二是風(fēng)險(xiǎn),即可能造成用戶損失的事件。在安全性測試中,同樣需要將所有可能發(fā)生的風(fēng)險(xiǎn)羅列出來,同時(shí)根據(jù)風(fēng)險(xiǎn)的誘發(fā)因素,將其分為自然風(fēng)險(xiǎn)、人為風(fēng)險(xiǎn)和意外風(fēng)險(xiǎn),在分析風(fēng)險(xiǎn)發(fā)生概率的同時(shí),做好風(fēng)險(xiǎn)危害的預(yù)測評估,對于可能引發(fā)嚴(yán)重后果的風(fēng)險(xiǎn)必須重點(diǎn)關(guān)注;三是安全性控制,換言之,就是針對風(fēng)險(xiǎn)的保護(hù)措施,對于所有的風(fēng)險(xiǎn)都應(yīng)該給出相應(yīng)的保護(hù)措施,尤其需要重點(diǎn)關(guān)注人為風(fēng)險(xiǎn)以及誤操作帶來的風(fēng)險(xiǎn)。
在進(jìn)行數(shù)據(jù)庫系統(tǒng)的安全性測試時(shí),需要合理把握測試策略。通常來講,可以從正向和反向兩個(gè)方面進(jìn)行分析和考慮。正向是立足系統(tǒng)需求、系統(tǒng)設(shè)計(jì)以及編碼等,對其中可能存在安全隱患的地方信息測試,反向則是從已經(jīng)明確的缺陷和漏洞出發(fā),尋找軟件系統(tǒng)中可能存在的缺陷,構(gòu)建相應(yīng)的缺陷威脅模型,利用模型尋找非法入侵點(diǎn),進(jìn)行系統(tǒng)漏洞的掃描檢測。如果數(shù)據(jù)庫系統(tǒng)對于安全性的要求一般,則可以采用反向測試的策略,如果對于安全性要求較高的系統(tǒng),則可以綜合運(yùn)用兩種測試策略,以正向測試為主,反向測試為輔。
2.1 完整性測試
數(shù)據(jù)的完整性是保證其應(yīng)用功能的前提,也是必須重點(diǎn)關(guān)注的內(nèi)容,數(shù)據(jù)完整性的測試,具體來講就是在數(shù)據(jù)庫中發(fā)現(xiàn)不完整、不準(zhǔn)確數(shù)據(jù)信息的過程,多數(shù)情況下都是針對數(shù)據(jù)存儲的方式而言。就目前來看,影響數(shù)據(jù)庫數(shù)據(jù)存儲方式的因素是多種多樣的,例如,數(shù)據(jù)本身的類型、長度等,都可能會造成數(shù)據(jù)的不完整。在進(jìn)行數(shù)據(jù)完整性測試時(shí),可以結(jié)合文檔或者代碼進(jìn)行審查,分析數(shù)據(jù)庫管理系統(tǒng)是否能夠提供實(shí)體完整性定義語句、參照完整性定義語句等。同時(shí),應(yīng)該對數(shù)據(jù)庫是否存在事務(wù)機(jī)制進(jìn)行檢驗(yàn),如果存在,則可以在SQL語句處理執(zhí)行環(huán)節(jié)出現(xiàn)錯誤時(shí),通過回滾事務(wù)將數(shù)據(jù)庫恢復(fù)到之前事務(wù)尚未開始的狀態(tài),從而保證數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的完整性,也可以實(shí)現(xiàn)數(shù)據(jù)庫的并發(fā)訪問。
2.2 防范性測試
一方面,針對SQL注入攻擊的防范測試,需要檢驗(yàn)所有涉及SQL語句提交的位置,看是否對用戶輸入的字符串進(jìn)行了準(zhǔn)確處理,如果必要,也可以模擬SQL注入攻擊,對數(shù)據(jù)庫管理系統(tǒng)進(jìn)行攻擊測試,檢驗(yàn)管理系統(tǒng)對于攻擊的響應(yīng)情況;另一方面,針對緩沖區(qū)溢出攻擊的防范測試,主要是看緩沖區(qū)是否寫入了超出限值長度的內(nèi)容,導(dǎo)致數(shù)據(jù)溢出進(jìn)而破壞程序的堆棧,導(dǎo)致程序放棄執(zhí)行相應(yīng)的指令??梢岳孟鄳?yīng)的攻擊工具向數(shù)據(jù)庫服務(wù)器端口發(fā)送可能導(dǎo)致緩沖器溢出的畸形保溫,分析管理系統(tǒng)的響應(yīng)情況。對于測試人員而言,必須在用戶可能輸入的地方,進(jìn)行不同長度數(shù)據(jù)的輸入測試,保證程序能夠?qū)τ脩糨斎氲母鞣N數(shù)據(jù)進(jìn)行正確處理,避免數(shù)據(jù)異常或者數(shù)據(jù)溢出的情況。
2.3 備份恢復(fù)測試
數(shù)據(jù)庫系統(tǒng)一旦遭到黑客或者病毒的攻擊,又或者出現(xiàn)硬件問題,可能會導(dǎo)致數(shù)據(jù)信息的丟失,而想要對丟失的數(shù)據(jù)進(jìn)行恢復(fù),就必須保證數(shù)據(jù)庫系統(tǒng)具備良好的備份及恢復(fù)功能。如果由于一些意外情況,如硬件故障、網(wǎng)絡(luò)中斷、停電等導(dǎo)致了數(shù)據(jù)的意外丟失,系統(tǒng)應(yīng)該能夠?qū)?shù)據(jù)庫恢復(fù)到之前沒有損壞的狀態(tài)。
備份恢復(fù)測試主要是分析數(shù)據(jù)庫是否提供數(shù)據(jù)備份方式,管理系統(tǒng)是否提供數(shù)據(jù)恢復(fù)技術(shù)。在進(jìn)行測試的過程中,應(yīng)該數(shù)據(jù)庫服務(wù)器的硬盤或者客戶端在備份時(shí)是否被惡意拷貝,同時(shí)在對數(shù)據(jù)庫版本進(jìn)行更新后,應(yīng)該檢查原來數(shù)據(jù)庫中的數(shù)據(jù)是否已經(jīng)完成備份,確保在備份數(shù)據(jù)導(dǎo)入時(shí)不會出現(xiàn)不兼容的情況。
在當(dāng)前信息技術(shù)飛速發(fā)展的背景下,數(shù)據(jù)庫系統(tǒng)在越來越多的行業(yè)和領(lǐng)域中得到了應(yīng)用,為了保證數(shù)據(jù)信息安全,應(yīng)該做好數(shù)據(jù)庫系統(tǒng)的安全性測試,及時(shí)發(fā)現(xiàn)數(shù)據(jù)庫系統(tǒng)中存在的問題和漏洞,對其進(jìn)行彌補(bǔ),推動數(shù)據(jù)庫系統(tǒng)的穩(wěn)定發(fā)展。
[1]張巖.數(shù)據(jù)局安全性測試研究[J].計(jì)算機(jī)安全,2012,(11):33-36
[2]張麗蘋.入侵檢測技術(shù)在數(shù)據(jù)庫系統(tǒng)中的應(yīng)用[J].中國電子商務(wù),2014,(19):44
[3]周薇.數(shù)據(jù)庫系統(tǒng)安全性測試技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,34(2)