亚洲色影视在线播放_国产一区+欧美+综合_久久精品少妇视频_制服丝袜国产网站

信息安全畢業(yè)論文

測試軟件安全的方法

時間:2022-10-05 22:11:24 信息安全畢業(yè)論文 我要投稿
  • 相關(guān)推薦

測試軟件安全的方法

  測試軟件安全的方法【1】

  摘要:科學(xué)技術(shù)不斷更新、發(fā)展,使得計算機(jī)的軟件有了越來越廣泛的應(yīng)用范圍。

  然而軟件的安全問題也變得越來越重要,安全是軟件在它的一個軟件生命周期中最最重要的環(huán)節(jié)之一,我們只有解決好軟件的安全問題才能促使軟件更好的發(fā)展。

  該文主要介紹了軟件測試的注意事項和測試軟件安全的方法。

  關(guān)鍵詞:軟件;安全;測試;方法

  Abstract: With the development of science and technology, the computer software has been applied more and more range.

  But the security of software is becoming more and more important, safety is one of the most important link in a software cycle life. Only when we solve software security issues well we can urge software better development. This paper mainly introduces attentions and methods of the software testing.

  Key words: software; security; testing; methods

  軟件的安全測試的目的是為了保證軟件能夠滿足與軟件預(yù)期的設(shè)計要求相符合的安全系數(shù),和平常的軟件缺陷不同的是,計算機(jī)的軟件安全測試檢測的是軟件不應(yīng)該做什么,而軟件缺陷是軟件應(yīng)該做什么沒有做到。

  檢測軟件的安全性能我們可以分成安全功能和漏洞兩個方面來進(jìn)行檢測。

  功能的測試是為了驗證計算機(jī)的軟件安全功能能不能達(dá)到安全所需要的要求。

  檢測軟件的安全功能會涉及到比較廣的內(nèi)容和方面,大致包含授權(quán)、機(jī)密、安全管理以及訪問的控制等。

  [1]安全漏洞的檢測主要是針對軟件存在的缺陷有哪些可能以及這些缺陷可能會引起的軟件使用過程中發(fā)生危險。

  就軟件安全檢測工作本身而言研究檢測軟件安全方法具有很高的價值和意義,軟件安全的測試方法的研究是保障計算機(jī)軟件安全重要的保障之一。

  軟件的安全檢測作為開發(fā)過程中重要的環(huán)節(jié)之一,主要的目的就是要發(fā)現(xiàn)軟件存在的漏洞,通過對程序進(jìn)行執(zhí)行、檢查,從而有效的發(fā)現(xiàn)、解決、更正軟件存在的潛在風(fēng)險和問題。

  [2]我們就目前應(yīng)用在計算機(jī)軟件的安全檢測技術(shù)情況而言,我們通常使用的軟件安全測試方法大致可以分為手工檢測以及靜態(tài)、動態(tài)檢測等數(shù)種方法。

  1計算機(jī)軟件安全檢測是應(yīng)注意的問題

  我們在檢測軟件的安全性的時候要特別的注意一些問題:首先我們要從實際出發(fā),根據(jù)所要檢測計算機(jī)軟件的自身特點以及安全性的要求進(jìn)行綜合的分析判斷,在這些基礎(chǔ)上科學(xué)的選擇最適合此軟件的安全檢測方法,安全檢測方案的制定貴在實事求是的合理選擇。

  其次,我們在檢測軟件安全的時候要注意好身邊的人員的分配,最好進(jìn)行多元化的配置,因為在檢測軟件安全的過程我們要配備的不僅僅是軟件的安全分析員,還要找一些熟悉那個軟件系統(tǒng)的、以及設(shè)計這個軟件系統(tǒng)的設(shè)計人員,讓他們一同加入軟件的安全測試中去,多領(lǐng)域配合會使得軟件的安全檢測更全面更有效。

  [3]最后,我們要注意在檢測軟件安全的時候,要積極的認(rèn)真的分析需求級、系統(tǒng)級以及代碼級,在適當(dāng)那個的時候比如規(guī)模大的軟件,我們還應(yīng)該分析軟件的結(jié)構(gòu)設(shè)計。

  計算機(jī)軟件的安全檢測過程是系統(tǒng)化的,我們不能用簡單的方法來解決,我們要向全面的檢測出系統(tǒng)所有的安全問題就要選擇合理的檢測方法,安排配置好檢測人員。

  2軟件安全漏洞檢測方法

  2.1手工分析

  現(xiàn)在絕大多數(shù)的安全研究員采用的依然是最古老的最傳統(tǒng)的手工分析方法。

  手工分析方法如果運用在開源軟件上,這種方法一般通過Source Insight這樣的源碼閱讀工具來進(jìn)行源碼的查詢和檢索。

  例如我們分析C語言或者C++的程序,最簡單的辦法是首先審查軟件系統(tǒng)中的gets、strcpy等輸入命令有沒有存在危險的函數(shù)調(diào)用,接著需要審核的就是庫函數(shù)以及軟件中的循環(huán)。

  [4]對于閉源軟件來說,他們和開源不同,閉源的源代碼獲得比較的困難,所以我們要使用必要的反匯編以及調(diào)試器,我們利用反匯編來得到軟件的匯編代碼,在這個代碼的基礎(chǔ)上再來分析軟件的安全性,閉源軟件的手工分析難度比源代碼閱讀要高得多,這就會造成理解源程序以及程序的逆向工程分析困難。

  總之不論是用什么手工分析方法,我們都要求我們的安全分析員能夠深入的了解軟件安全漏洞原理,對軟件結(jié)構(gòu)和功能的掌握也是必不可少的。

  用手工分析的方法來檢測軟件的安全性能,軟件開發(fā)員即使精通檢測軟件安全漏洞技術(shù),手工撿漏仍然非常的費時耗力。

  可是現(xiàn)在還沒有完全自動化的檢測軟件安全的技術(shù),而且機(jī)器的檢測最終還需要我們?nèi)ヲ炞C,因此人工參與是一個必須的也是不可或缺的過程,在確認(rèn)靜態(tài)分析結(jié)果、分析動態(tài)程序數(shù)據(jù)的構(gòu)造等操作的時候我們也少不了手工分析。

  2.2動態(tài)測試

  軟件的動態(tài)測試的目的是檢驗軟件運行過程中的動態(tài)行為以及結(jié)果的正確性。

  現(xiàn)在,動態(tài)測試成為了軟件安全測試主要的方法之一。

  這個測試需要執(zhí)行程序的來完成測試需要,動態(tài)分析在運行程序以后可以得到一次或者多次的信息,然后工作人員根據(jù)得到的信息檢測特定的漏洞,進(jìn)而完成安全分析。

  最常見的動態(tài)測試是程序的測試以及剖析,動態(tài)測試對程序的測試結(jié)果非常的準(zhǔn)確,因為動態(tài)測試沒有抽象化處理程序,在程序的執(zhí)行過程中是哪條路被執(zhí)行了,計算得出的數(shù)據(jù)是多少,程序運行時使用的內(nèi)存、執(zhí)行的時間等都可以很明確的知道。

  可是動態(tài)測試的結(jié)果不完整,因為程序的執(zhí)行的一個情況無法代表程序還可能會執(zhí)行的其他情況。

  也就是如果輸入的一個數(shù)據(jù)集無法保證程序能夠執(zhí)行完所有可能的路徑,程序一次甚至多次執(zhí)行還是可能會有一些安全的問題無法被發(fā)現(xiàn)軟件,可是這些漏洞是真實存在的,我們要做好動態(tài)測試就是要設(shè)計好分支和狀態(tài)覆蓋測試。

  2.3靜態(tài)測試

  我們在安全檢查的時候還有一種效率比較高的軟件安全分析方法就是靜態(tài)測試,它的應(yīng)用越來越受到人們的重視。

  只要用戶給出抽象語義,靜態(tài)測試技術(shù)就可以自動的發(fā)現(xiàn)軟件所有可能執(zhí)行的狀態(tài),以及狀態(tài)下的軟件屬性。

  軟件的靜態(tài)測試分析速度快、自動化程度高,在實際的應(yīng)用中我們也發(fā)現(xiàn)靜態(tài)測試和動態(tài)相比效率更高,而且找到缺陷的速度也快不少。

  雖然軟件的靜態(tài)分析有可能會發(fā)生漏報、誤報可是到目前為止和其他的安全測試方法比起來靜態(tài)測試最實用、有效的方法。

  靜態(tài)測試使用靜態(tài)分析技術(shù),直接分析程序的源代碼,通過詞法分析、語法分析和靜態(tài)語義分析,檢測程序中潛在的安全漏洞。

  現(xiàn)在,主要有類型推斷、數(shù)據(jù)流以及約束分析三種靜態(tài)分析方法。

  2.3.1類型推斷

  我們知道我們分析運算符作用的對象、賦值,實際參數(shù)的傳遞時,或多或少都會存在一些類型合適不合適的情況。

  我們所說的類型推斷屬于處理過程,它的目的是保證進(jìn)行對象的每個操作的數(shù)目和類型都是正確、合理的,確保操作有效。

  類型推斷可以檢查類型錯誤,選擇合適的操作,根據(jù)情況確定必要的類型轉(zhuǎn)換。

  這種方法簡單、高效,對快速的檢測軟件的安全性非常的適合。

  我們在檢查操作系統(tǒng)內(nèi)核權(quán)限、遇到程序中字符串格式化漏洞和內(nèi)核中不安全的指針使用的安全檢測的時候采用類型推斷方法檢測。

  2.3.2數(shù)據(jù)流分析

  在編譯的時候我們可以使用數(shù)據(jù)流分析技術(shù),這種技術(shù)可以收集程序代碼中的語義信息,然后用代數(shù)的方式對它進(jìn)行編譯,從而確定變量定義以及變量的使用。

  我們可以用數(shù)據(jù)流分析來優(yōu)化編譯、調(diào)試、驗證、并行、測試、向量化程序的環(huán)境因素。

  在安全檢測中數(shù)據(jù)流分析有非常廣泛的應(yīng)用,我們用數(shù)據(jù)流分析可以檢測程序軟件中的數(shù)組的越界等多種類型的安全漏洞。

  2.3.3約束分析

  約束分析分為約束產(chǎn)生、約束求解兩個步驟,約束分析的第一步是利用約束規(guī)則建立分析狀態(tài)和變量類型的約束,第二步是求解這些約束系統(tǒng)。

  約束系統(tǒng)分為三種形式:等式、集合以及混合。

  約束項之間僅僅存在等式關(guān)系的是等式約束,集合約束是把程序變量看作值集,混合約束系統(tǒng)由部分等式約束和部分集合約束組成。

  在安全檢測中我們使用約束分析來測試軟件的安全性能也是比較廣泛的。

  例如我們利用集合約束的方法來測試程序中緩沖區(qū)是不是存在溢出漏洞。

  以上三種靜態(tài)檢測方法各有各的利弊,通過對各自的比較我們可以看出,檢測能力強但是速度慢的是約束分析,這種分析方法檢測軟件安全比較適合;檢測強速度較快的是數(shù)據(jù)流分析,這種方法最適合的是要求考慮控制流信息并且變量之間的操作簡單的問題;最檢測能力弱檢測速度快的是類型推斷,這種方法最適合的問題是與控制流無關(guān)、屬性域有限的安全屬性。

  2.4偵聽技術(shù)

  我們所說的偵聽技術(shù)有的也叫做網(wǎng)絡(luò)監(jiān)聽,這種方法可以獲取網(wǎng)絡(luò)傳輸?shù)男畔,獲取的信息并非發(fā)給自己的。

  在測試軟件的安全性時網(wǎng)絡(luò)偵聽技術(shù)是常用手段,這種方法可有效診斷、管理網(wǎng)絡(luò)問題,可以很好的檢查軟件網(wǎng)絡(luò)安全存在的威脅。

  我們現(xiàn)在最常用的網(wǎng)絡(luò)是一個廣播型的網(wǎng)絡(luò),我們可以從該網(wǎng)中的任何的一臺計算機(jī)都可以偵聽到這個網(wǎng)段所有的數(shù)據(jù)傳輸包。

  我們可以利用這種技術(shù)對軟件進(jìn)行安全性檢測,防止軟件泄露一些重要的數(shù)據(jù),我們可以利用工具或者是自己編的小程序復(fù)制我們偵聽到的數(shù)據(jù)包并把他們存儲下來,然后我們就可以通過得到的這些信息數(shù)據(jù)來分析網(wǎng)絡(luò)、軟件的安全。

  我們最好把偵聽放在路由器、網(wǎng)關(guān)、防火墻、交換機(jī)等設(shè)備的地方,由于這些地方流過的信息包多,所以這里的監(jiān)聽效果最好。

  我們經(jīng)常使用的網(wǎng)絡(luò)偵聽經(jīng)典程序有Snoop等,一般來說偵聽程序還不能做到把偵聽到的數(shù)據(jù)包馬上進(jìn)行分解分析,這些軟件一般是先進(jìn)行不停地存儲,然后慢慢再進(jìn)行分析,這樣可以防止數(shù)據(jù)包的遺漏。

  3總結(jié)

  從上面的介紹和論述中我們可以看出,軟件的安全是計算機(jī)信息安全最重要的組成部分之一,安全性測試的重要性越來越得到軟件開發(fā)以及測試人員的認(rèn)可。

  現(xiàn)在軟件安全的檢測辦法有很多,我們主要了解介紹了比較傳統(tǒng)但是不可缺少的手動分析方法,還有動態(tài)分析和靜態(tài)分析,通過對程序的執(zhí)行來檢測軟件的安全,還有偵聽技術(shù),保證網(wǎng)絡(luò)和軟件的安全使用,保證軟件的重要數(shù)據(jù)不被泄露。

  但是我們現(xiàn)在的測試軟件安全的方法還不夠的系統(tǒng)全面,還或多或少的存在著這樣那樣的問題,這些還需要我們進(jìn)一步的去研究。

  在接下來,我們要深入的研究軟件的授權(quán)等安全功能建模與測試技術(shù),把安全測試方法形式化,研究模糊測試、故障注入以及基于屬性的安全測試方法還有很多新的軟件安全測試技術(shù)等著我們?nèi)ド钊氲难芯块_發(fā),我相信,通過我們的努力,我們一定能夠開發(fā)出更好的軟件安全測試技術(shù),讓軟件的安全性能得到保障。

  參考文獻(xiàn):

  [1]黎連業(yè),王華,李淑春.軟件測試與測試技術(shù)[M].北京:清華大學(xué)出版社,2009(5):24.

  [2]羅國慶.實用軟件測試方法與應(yīng)用[M].北京:電子工業(yè)出版社,2007:129-130.

  [3]陳璇.淺談關(guān)于軟件安全性測試方法研究[J].電腦知識與技術(shù),2009(3):78.

  [4]黎連業(yè),王華,李淑春.軟件測試與測試技術(shù)[M].北京:清華大學(xué)出版社,2009:45-48.

  軟件安全性測試方法研究【2】

  摘 要為了提高軟件研發(fā)的安全性,需要對軟件的安全性進(jìn)行測試,筆者根據(jù)軟件安全測試的主要內(nèi)容及特征,總結(jié)出了相關(guān)的軟件安全測試的方法,為提高軟件質(zhì)量及安全性提供借鑒。

  【關(guān)鍵詞】軟件 安全測試 方法 研究

  軟件安全性是指在其運行的過程中,采用相關(guān)的技術(shù)方法將可能發(fā)生的風(fēng)險控制在可以接受的范圍內(nèi),避免系統(tǒng)發(fā)生不能接受的風(fēng)險,提高軟件系統(tǒng)的安全性能。

  雖然作為系統(tǒng)不會直接威脅到人們的生命財產(chǎn)安全,但是一旦人工操作失誤也會造成危機(jī)。

  例如,在運用航天軟件時,一旦飛機(jī)比預(yù)期的高度低,航天軟件就要及時發(fā)送警告,避免飛機(jī)下墜。

  對軟件的安全性進(jìn)行分析測試,及時發(fā)現(xiàn)和排除錯誤,減少損失。

  目前國內(nèi)的安全軟件測試針對性不強,缺乏測試依據(jù),需要改進(jìn)。

  1 軟件安全性測試的特點和分類

  對軟件進(jìn)行安全測試就是看其安全特性是否和設(shè)計時要求的效果一致,包含對軟件的功能測試,驗證測試及滲透測試。

  軟件安全測試有其獨特性,安全性的缺陷和普通的軟件缺陷不同,安全方面出現(xiàn)漏洞會使很多的用戶受到損失,注重強調(diào)軟件不應(yīng)該做什么而不是強調(diào)讓軟件做什么,強調(diào)的是其否定需求,比如說,未經(jīng)允許用戶沒有權(quán)利訪問數(shù)據(jù)。

  軟件安全測試可以分為兩類,安全功能測試(Security Functional Testing)和安全漏洞測試(Security Vulnerability Testing),前者主要從軟件功能角度出發(fā),根據(jù)安全功能的要求測試軟件的安全性是否達(dá)標(biāo),軟件的功能要求主要有軟件的完整性、機(jī)密性、不可否認(rèn)性及隱私保護(hù)等等;后者相關(guān)的漏洞測試主要站在攻擊者的層面上看,主要目標(biāo)是發(fā)現(xiàn)軟件的安全漏洞,主要的安全漏洞包括,軟件在操作、設(shè)計、運行方面是否有漏洞或者缺陷。

  因為一旦漏洞被攻擊者利用,必然使軟件處于危險狀態(tài),所以,安全漏洞測試就是辨識軟件的缺陷及漏洞。

  2 軟件測試的方法

  2.1 靜態(tài)測試

  在測試軟件的代碼時,并不真實運行被測試的軟件,靜態(tài)測試還經(jīng)常被應(yīng)用于軟件文檔測試,比如,可以檢測或者驗證文檔,對系統(tǒng)軟件設(shè)計的文檔或者軟件代碼的檢查。

  2.2 動態(tài)測試

  和靜態(tài)測試不同的就是需要在檢測時實際運行軟件,通過運行檢測軟件的運行情況及動態(tài)的行為。

  所以,在進(jìn)行動態(tài)測試時,一定要運行被測試的軟件,真正輸入數(shù)據(jù)進(jìn)行驗證檢測。

  2.3 功能測試

  功能測試時建立在刺痛或者程序的功能上,測試的人員無需知道程序的運行過程,重點關(guān)注軟件程序的功能是否符合標(biāo)準(zhǔn)、規(guī)格。

  2.4 結(jié)構(gòu)測試

  結(jié)構(gòu)測試要求測試工作人員了解程序軟件的內(nèi)部結(jié)構(gòu)和邏輯過程,重點關(guān)注軟件生成的代碼,可以忽略功能測試,不關(guān)注功能是否匹配。

  3 安全性測試的主要方法

  3.1 形式化安全測試

  形式化安全測試就是通過建立數(shù)學(xué)模型,運用形式規(guī)范的語言,供給軟件的說明。

  可以將這種測試方法氛圍兩類,

  3.1.1 定理證明

  就是把相關(guān)的軟件程序轉(zhuǎn)變?yōu)檫壿嫻,運用之前的理論及規(guī)則證實程序的合法性。

  3.1.2 模型檢測

  在描述軟件行為方面使用S代表狀態(tài)遷移系統(tǒng),在描述軟件執(zhí)行必須滿足的性質(zhì)方面用計算樹邏輯F代表,然后對S這一過程進(jìn)行自動搜索,找到不能滿足F這一公式的狀態(tài)的方式發(fā)現(xiàn)軟件漏洞。

  NASA的一個實驗室叫JPL曾經(jīng)進(jìn)行過形式化安全測試,通過建立形式化模型,比如,狀態(tài)機(jī),對軟件進(jìn)行形式化安全測試就是通過搜索狀態(tài)空間,尋找路徑使其達(dá)到違背規(guī)約的不安全狀態(tài),模型不斷增大,逐漸變得復(fù)雜,狀態(tài)空間也不斷增長,JPL研發(fā)了一種方式避免狀態(tài)爆炸。

  3.2 建立在模型基礎(chǔ)上的安全功能測試

  通過對軟件的行為和機(jī)構(gòu)建模,再將測試模型生成測試軟件,一般會用到的測試模型有UML模型、有限狀態(tài)機(jī)及馬爾可夫鏈等等。

  Mark Blackburn、Robert Busser研發(fā)了安全功能測試,就是通過利用SCRModeling建模,運用表單的形式建立安全功能行為模型,把相應(yīng)的表單模型轉(zhuǎn)化為說明模型,運用T-VEC生成向量,包括輸入和輸出變量,研發(fā)測試驅(qū)動模式,再將測試向量輸入測試驅(qū)動模式,運行測試模式。

  通過這種安全功能測試,能夠有效測試軟件的安全性,但是它只適用于安全功能建模能力達(dá)到一定的程度,例如,對授權(quán)、訪問控制等進(jìn)行軟件應(yīng)用進(jìn)行測試。

  3.3 語法測試

  這種測試方法是用來檢測軟件對各種輸入情況的反應(yīng),檢測軟件的功能接口的語法生成測試輸入。

  接口的類型有很多,例如,命令行、環(huán)境變量等等,接口需要已經(jīng)規(guī)定了所要求輸入的語法,這一語法對輸入的數(shù)據(jù)的格式及類型進(jìn)行了定義。

  測試的一般過程就是辨識接口的語法形式,據(jù)此生成測試用例,執(zhí)行測試。

  測試時正確、錯誤及畸形的語法都應(yīng)該包括在測試范圍內(nèi),檢測軟件的處理情況及缺陷,語法測試和故障注入技術(shù)相結(jié)合效果會更好。

  3.4 模糊測試

  在發(fā)現(xiàn)軟件的安全漏洞方面,模糊測試是一種很重要的方法,它是通過將隨機(jī)的不完善的數(shù)據(jù)插入到程序中,觀測軟件程序是否能夠接受胡亂的數(shù)據(jù)輸入,模糊測試一般是不符合邏輯的,通過產(chǎn)生雜亂的數(shù)據(jù)供給程序來達(dá)到測試的目的,通過這種間接的測試方法可以可以檢測出來正常邏輯思維難以發(fā)現(xiàn)的安全漏洞。

  4 結(jié)語

  軟件安全測試時軟件研發(fā)過程中的重要環(huán)節(jié),通過發(fā)現(xiàn)軟件之星時的故障和缺陷,及時更正,避免造成更大的破壞,軟件測試的最理想效果就是使用較少的測試用例實現(xiàn)較大的安全測試。

  在進(jìn)行軟件安全測試前,要針對所要測試軟件的類型,制定測試方案,分析測試結(jié)果,整理測試資料,查找漏洞。

  出了筆者探討的上述安全測試方法之外,還有建立在故障注入基礎(chǔ)上的安全性測試方法,基于屬性的安全測試方法等。

  在未來,Web服務(wù)軟件發(fā)展迅速,怎樣針對Web服務(wù)進(jìn)行安全測試是需要研究的新課題。

  參考文獻(xiàn)

  [1]陸璐,王柏勇.軟件自動化測試技術(shù)[M].北京:清華大學(xué)出版社,2006.

  [2]郭群.軟件測試設(shè)計技術(shù)[J].電腦知識與技術(shù),2007(17).

  [3]游歷貞,郭宇春,李純喜.AJAX引擎的原理和應(yīng)用[J].微計算機(jī)信息,2006(22):2-3.

  [4]黃愛明.國內(nèi)軟件測試現(xiàn)狀及對策研究[J].中國管理信息化,2007(02).

  軟件安全測試的原則【3】

  摘要:軟件安全性是一個廣泛而復(fù)雜的主題,要避免因安全性缺陷問題受各種可能類型的攻擊是不切實際的。

  本文從軟件安全測試需要考慮的問題,來探討軟件安全測試原則,通過遵循這些原則避免許多常見的安全性測試問題出現(xiàn)。

  關(guān)鍵詞:軟件安全;測試;原則

  軟件安全性是一個廣泛而復(fù)雜的主題,每一個新的軟件總可能有完全不符合所有已知模式的新型安全性缺陷出現(xiàn)。

  要避免因安全性缺陷問題受各種可能類型的攻擊是不切實際的。

  在軟件安全測試時,運用一組好的原則來避免不安全的軟件上市、避免不安全軟件受攻擊,就顯得十分重要。

  一、軟件安全性測試基本概念

  軟件安全性測試包括程序、網(wǎng)絡(luò)、數(shù)據(jù)庫安全性測試。

  根據(jù)系統(tǒng)安全指標(biāo)不同測試策略也不同。

  1.用戶程序安全的測試要考慮問題包括:①明確區(qū)分系統(tǒng)中不同用戶權(quán)限;②系統(tǒng)中會不會出現(xiàn)用戶沖突;③系統(tǒng)會不會因用戶的權(quán)限的改變造成混亂;④用戶登陸密碼是否是可見、可復(fù)制;⑤是否可以通過絕對途徑登陸系統(tǒng)(拷貝用戶登陸后的鏈接直接進(jìn)入系統(tǒng));⑥用戶推出系統(tǒng)后是否刪除了所有鑒權(quán)標(biāo)記,是否可以使用后退鍵而不通過輸入口令進(jìn)入系統(tǒng)。

  2.系統(tǒng)網(wǎng)絡(luò)安全的測試要考慮問題包括:①測試采取的防護(hù)措施是否正確裝配好,有關(guān)系統(tǒng)的補丁是否打上;② 模擬非授權(quán)攻擊,看防護(hù)系統(tǒng)是否堅固;③采用成熟的網(wǎng)絡(luò)漏洞檢查工具檢查系統(tǒng)相關(guān)漏洞;④ 采用各種木馬檢查工具檢查系統(tǒng)木馬情況;⑤ 采用各種防外掛工具檢查系統(tǒng)各組程序的客外掛漏洞。

  3.數(shù)據(jù)庫安全考慮問題:①系統(tǒng)數(shù)據(jù)是否機(jī)密(比如對銀行系統(tǒng),這一點就特別重要,一般的網(wǎng)站就沒有太高要求);② 系統(tǒng)數(shù)據(jù)的完整性; ③系統(tǒng)數(shù)據(jù)可管理性; ④系統(tǒng)數(shù)據(jù)的獨立性;⑤系統(tǒng)數(shù)據(jù)可備份和恢復(fù)能力(數(shù)據(jù)備份是否完整,可否恢復(fù),恢復(fù)是否可以完整)。

  二、根據(jù)軟件安全測試需要考慮的問題

  1.保護(hù)了最薄弱的環(huán)節(jié)

  攻擊者往往設(shè)法攻擊最易攻擊的環(huán)節(jié),這對于您來說可能并不奇怪。

  即便他們在您系統(tǒng)各部分上花費相同的精力,他們也更可能在系統(tǒng)最需要改進(jìn)的部分中發(fā)現(xiàn)問題。

  這一直覺是廣泛適用的,因此我們的安全性測試應(yīng)側(cè)重于測試最薄弱的部分。

  如果執(zhí)行一個好的風(fēng)險分析,進(jìn)行一次最薄弱環(huán)節(jié)的安全測試,標(biāo)識出您覺得是系統(tǒng)最薄弱的組件應(yīng)該非常容易,消除最嚴(yán)重的風(fēng)險,是軟件安全測試的重要環(huán)節(jié)。

  2.是否具有縱深防御的能力

  縱深防御背后的思想是:使用多重防御策略來測試軟件,以至少有一層防御將會阻止完全的黑客破壞。

  “保護(hù)最薄弱環(huán)節(jié)”的原則適用于組件具有不重疊的安全性功能。

  當(dāng)涉及到冗余的安全性措施時,所提供的整體保護(hù)比任意單個組件提供的保護(hù)要強得多,縱深防御能力的測試是軟件安全測試應(yīng)遵循的原則。

  3.是否有保護(hù)故障的措施

  大量的例子出現(xiàn)在數(shù)字世界。

  經(jīng)常因為需要支持不安全的舊版軟件而出現(xiàn)問題。

  例如,比方說,該軟件的原始版本十分“天真”,完全沒有使用加密。

  現(xiàn)在該軟件想修正這一問題,但已建立了廣大的用戶基礎(chǔ)。

  此外,該軟件已部署了許多或許在長時間內(nèi)都不會升級的服務(wù)器。

  更新更聰明的客戶機(jī)和服務(wù)器需要同未使用新協(xié)議更新的較舊的客戶機(jī)進(jìn)行互操作。

  該軟件希望強迫老用戶升級,沒有指望老用戶會占用戶基礎(chǔ)中如此大的一部分,以致于無論如何這將真的很麻煩。

  怎么辦呢?讓客戶機(jī)和服務(wù)器檢查它從對方收到的第一條消息,然后從中確定發(fā)生了什么事情。

  如果我們在同一段舊的軟件“交談”,那么我們就不執(zhí)行加密。

  遺憾的是,老謀深算的黑客可以在數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)時,通過篡改數(shù)據(jù)來迫使兩臺新客戶機(jī)都認(rèn)為對方是舊客戶機(jī)。

  更糟的是,在有了支持完全(雙向)向后兼容性的同時仍無法消除該問題。

  對這一問題的一種較好解決方案是從開始就采用強制升級方案進(jìn)行設(shè)計;使客戶機(jī)檢測到服務(wù)器不再支持它。

  如果客戶機(jī)可以安全地檢索到補丁,它就升級。

  否則,它告訴用戶他們必須手工獲得一個新的副本。

  但是從一開始就應(yīng)準(zhǔn)備使用這一解決方案,就會得罪早期用戶。

  測試采取的防護(hù)措施是否正確裝配好,有關(guān)系統(tǒng)的補丁是否打上就十分的重要。

  4.最小特權(quán)

  最小特權(quán)原則規(guī)定:確定只授予執(zhí)行操作所必需的最少訪問權(quán),并且對于該訪問權(quán)只準(zhǔn)許使用所需的最少時間。

  當(dāng)軟件給出了某些部分的訪問權(quán)時,一般會出現(xiàn)濫用與那個訪問權(quán)相關(guān)的特權(quán)的風(fēng)險。

  例如,我們假設(shè)您出去度假并把您家的鑰匙給了您的朋友,好讓他來喂養(yǎng)您的寵物、收集郵件等等。

  盡管您可能信任那位朋友,但總是存在這樣的可能:您的朋友未經(jīng)您同意就在您的房子里開派對或發(fā)生其它您不喜歡的事情。

  一位程序員可能希望訪問某種數(shù)據(jù)對象,但只需要從該對象上進(jìn)行讀。

  不過,不管出于什么原因,通常該程序員實際需要的不僅是必需的特權(quán)。

  通常,該程序員是在試圖使編程更容易一些。

  如果軟件設(shè)置的訪問權(quán)結(jié)構(gòu)不是“完全訪問或根本不準(zhǔn)訪問”,那么最小特權(quán)原則會非常有效。

  5.分隔

  分隔背后的基本思想是如果我們將系統(tǒng)分成盡可能多的獨立單元,那么我們可以將對系統(tǒng)可能造成損害的量降到最低。

  通常,如果攻擊者利用了代碼中的緩沖區(qū)溢出,對磁盤進(jìn)行原始寫并胡亂修改內(nèi)核所在內(nèi)存中的任何數(shù)據(jù)。

  沒有保護(hù)機(jī)制能阻止他這樣做。

  因此,系統(tǒng)進(jìn)行適度的分隔顯得十分重要,軟件要能直接支持本地磁盤上永遠(yuǎn)不能被擦去的日志文件,這意味著直到

  攻擊者闖入時,才不能保持精確的審計信息。

  適度使用的分隔,將利于系統(tǒng)的管理,但是對每一個功能都進(jìn)行分隔,那么系統(tǒng)將很難管理。

  三、安全性測試的主要目的是查找軟件自身程序設(shè)計中存在的安全隱患,并檢查應(yīng)用程序?qū)Ψ欠ㄇ秩氲姆婪赌芰Γ?根據(jù)安全指標(biāo)不同測試策略也不同,如果遵循相同的原則,去證明軟件的安全性,將有利于軟件安全測試的工作規(guī)范的進(jìn)行,有利于軟件安全測試工作的發(fā)展。

  參考文獻(xiàn):

  [1]《Windows漏洞攻擊與安全防范 計算機(jī)與網(wǎng)絡(luò)安全實用叢書》 蔡毅 周繼軍 彭海龍

  [2]《軟件安全-使安全成為軟件開發(fā)必需的部分》(美)麥克勞

  [3]《軟件安全開發(fā)生命周期》 Michael Howard

【測試軟件安全的方法】相關(guān)文章:

軟件測試方法概述10-26

軟件測試方法有哪些10-26

軟件測試中綜合測試的基本方法10-26

軟件安全性測試技術(shù)10-05

計算軟件的安全檢測方法10-05

軟件測試簡歷10-06

軟件測試實習(xí)報告11-25

軟件測試的實習(xí)報告05-19

軟件測試學(xué)習(xí)總結(jié)11-23