試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件安全性測(cè)試_第1頁(yè)
試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件安全性測(cè)試_第2頁(yè)
試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件安全性測(cè)試_第3頁(yè)
試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件安全性測(cè)試_第4頁(yè)
試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件安全性測(cè)試_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、試析軟件開(kāi)發(fā)生命周期各階段的應(yīng)用軟件平安性測(cè)試論文關(guān)鍵詞:網(wǎng)絡(luò)應(yīng)用軟件軟件開(kāi)發(fā)生命周期sd動(dòng)平安性測(cè)試工程設(shè)計(jì)單元測(cè)試集成測(cè)試驗(yàn)收側(cè)試論文摘要:文章闡述了軟件開(kāi)發(fā)生命周期中每個(gè)階段添加的一系列關(guān)泣平安性的活動(dòng),提出將安奮瀏試整合到軟件開(kāi)發(fā)生命周期中,分析了軟件平安性瀏試片祠試人員的要求,并以一個(gè)sql注入實(shí)例來(lái)詳細(xì)說(shuō)明平安性瀏試在軟。信息網(wǎng)絡(luò)平安事件發(fā)生比例的不斷攀升、病毒利用軟件破綻猖狂地傳播使得人們?cè)桨l(fā)認(rèn)識(shí)到信息平安的重要性。一般認(rèn)為,傳統(tǒng)的信息平安技術(shù)可以借助防火墻(包括軟件和硬件防火墻)審核通過(guò)網(wǎng)絡(luò)的報(bào)文、限定用戶的訪問(wèn)權(quán)限等來(lái)防止非受權(quán)用戶對(duì)重要數(shù)據(jù)的訪問(wèn),但是這一觀點(diǎn)是建立在軟件平

2、安根底上的。網(wǎng)絡(luò)應(yīng)用軟件需要暴露在網(wǎng)絡(luò)環(huán)境下,并且受權(quán)外部用戶可以透過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)此軟件。通過(guò)網(wǎng)絡(luò),攻擊者有時(shí)機(jī)接觸到軟件,假如軟件本身存在破綻,那么所有的防火墻就形同虛設(shè)。暴露于網(wǎng)絡(luò)的應(yīng)用軟件往往成為被攻擊的目的,是網(wǎng)絡(luò)應(yīng)用軟件平安的重災(zāi)區(qū)。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(nist)2002年的一項(xiàng)研究說(shuō)明,美國(guó)花費(fèi)在軟件缺陷方面的費(fèi)用到達(dá)595億美元。公安部2022年全國(guó)信息網(wǎng)絡(luò)平安狀況與計(jì)算機(jī)病毒疫情調(diào)查分析報(bào)b說(shuō)明,在發(fā)生的平安事件中,未修補(bǔ)或防范軟件破綻仍然是導(dǎo)致平安事件發(fā)生的最主要原因。1平安測(cè)試的定義平安測(cè)試是鑒別信息系統(tǒng)數(shù)據(jù)保護(hù)和功能維護(hù)的過(guò)程。平安測(cè)試需要涵蓋的6個(gè)根本平安概念是:保

3、密性、完好性、權(quán)限(身份驗(yàn)證)、受權(quán)(權(quán)限分配)、可提供性、不可抵賴性陰。軟件開(kāi)發(fā)商都存在解決平安威脅方古的問(wèn)題。對(duì)軟件開(kāi)發(fā)商來(lái)說(shuō),平安性是其核心要求,這是由市場(chǎng)力量所驅(qū)動(dòng),也是由保護(hù)關(guān)鍵根底構(gòu)造及建立和保持計(jì)算的廣泛信任的需要所決定的。所有軟件開(kāi)發(fā)商面對(duì)的一個(gè)主要挑戰(zhàn)就是創(chuàng)立更加平安的軟件,使其不需要頻繁地通過(guò)修補(bǔ)程序進(jìn)展更新。軟件平安已經(jīng)成為評(píng)判軟件質(zhì)量的一個(gè)重要標(biāo)準(zhǔn),軟件平安測(cè)試那么成為保證軟件產(chǎn)品可以符合這一標(biāo)準(zhǔn)的重要手段。軟件的平安性測(cè)試主要是測(cè)試在正常和非正常情況下,軟件能否對(duì)數(shù)據(jù)進(jìn)展平安有效的操作。2軟件開(kāi)發(fā)生命周期流程(參見(jiàn)圖1)對(duì)于軟件行業(yè)來(lái)說(shuō),要滿足當(dāng)今提升平安性的需要,軟

4、件供給商必須轉(zhuǎn)為采用一種更嚴(yán)格的、更加關(guān)注平安性的軟件開(kāi)發(fā)流程。這種流程旨在盡量減少設(shè)計(jì)、編碼和文檔編寫過(guò)程中存在的破綻,并在軟件開(kāi)發(fā)生命周期中盡可能早地檢測(cè)到并消除這些破綻。用于處理來(lái)自internet的輸人、控制可能被攻擊的關(guān)鍵系統(tǒng)或處理個(gè)人身份信息的企業(yè)和消費(fèi)者軟件最需要施行這種流程。在很多實(shí)際的軟件開(kāi)發(fā)工程中,平安測(cè)試已經(jīng)成為sdl一個(gè)不可或缺的組成局部,并成為整個(gè)工程過(guò)程中的長(zhǎng)期任務(wù)。黑盒一白盒測(cè)試方法往往執(zhí)行在產(chǎn)品遞交客戶之前,但有的甚至在投人使用之后都未進(jìn)展平安檢測(cè)和風(fēng)險(xiǎn)評(píng)估;在一些平安性要求較高的工程中,雖然將平安風(fēng)險(xiǎn)評(píng)估納人預(yù)算,但在實(shí)際操作中卻對(duì)其并未作過(guò)多考慮。這樣,所導(dǎo)

5、致的直接后果是在開(kāi)發(fā)工作幾近完成的情況下進(jìn)展問(wèn)題分析處理所造成的本錢將遠(yuǎn)遠(yuǎn)大于在軟件開(kāi)發(fā)階段進(jìn)展缺陷修改的本錢。即便是從充分利用現(xiàn)有的有限資金和資源的角度來(lái)考慮,也有必要將平安測(cè)試囊括到sdl中。這樣做雖然不能取代軟件開(kāi)發(fā)后期的浸透測(cè)試和脆弱性測(cè)試,卻可以有效減少后者在施過(guò)程中的投人。開(kāi)發(fā)人員應(yīng)該根據(jù)客戶的功能需求來(lái)制定相應(yīng)的平安規(guī)約,利用內(nèi)建的明確的控制機(jī)制來(lái)降低平安風(fēng)險(xiǎn)。開(kāi)發(fā)人員可以根據(jù)風(fēng)險(xiǎn)評(píng)估的結(jié)果來(lái)確定測(cè)試工程:軟件能否可靠運(yùn)行(safety)以及軟件運(yùn)行結(jié)果是否可靠(seurity)。軟件開(kāi)發(fā)生命周期(sdl)中常用的測(cè)試方法有:單元測(cè)試、集成測(cè)試和驗(yàn)收測(cè)試。2.1需求、設(shè)計(jì)階段平安

6、性分析在軟件工程的設(shè)計(jì)過(guò)程中,人們往往只是關(guān)注系統(tǒng)的特性和功能,而沒(méi)有充分考慮其他重要的非功能問(wèn)題(例如性能、可用性、平臺(tái)支持、平安,及要在稍后的軟件開(kāi)發(fā)生命周期中需要解決的平安性),導(dǎo)致了工程中許多不必要的波動(dòng)和延遲。由于平安性分析影響了整個(gè)的設(shè)計(jì)和架構(gòu),因此應(yīng)該在工程設(shè)計(jì)階段充分地審查和理解它們。平安性考慮包括一系列問(wèn)題,例如訪問(wèn)控制和受權(quán)、敏感數(shù)據(jù)的適當(dāng)處理、數(shù)據(jù)和存儲(chǔ)器訪問(wèn)的適當(dāng)使用,以及加密方法。一些平安性需求不是非功能的需求,如所施行的加密類型。另外,許多平安性需求是更直接地面向用例的,并且需要定義主要場(chǎng)景,以及定義備選途徑和異常途徑。在沒(méi)有將功能的和非功能的需求適當(dāng)?shù)囟x及并人軟

7、件中的情況下,編碼錯(cuò)誤和設(shè)計(jì)缺陷會(huì)表現(xiàn)出關(guān)鍵的信息和操作處于危險(xiǎn)。我們應(yīng)該像對(duì)待其他的需求那樣處理平安性需求,并將平安性需求劃分出優(yōu)先級(jí),設(shè)定范圍,同時(shí)作為整體用例和功能需求的一局部進(jìn)展管理。2.2施行階段單元測(cè)試受測(cè)試方式的影響,開(kāi)發(fā)者對(duì)軟件平安風(fēng)險(xiǎn)的評(píng)估不可能面面俱到。最典型的就是在代碼設(shè)計(jì)階段,開(kāi)發(fā)者可以通過(guò)單元測(cè)試來(lái)檢驗(yàn)代碼行為,這些結(jié)果都是可以預(yù)知的,但是受到范圍的局限,不能測(cè)試這些類或者模塊集成后的行為。施行單元測(cè)試可以從軟件根本單位(單個(gè)類)的檢測(cè)上保證輸人的有效性;在可能出現(xiàn)惡意攻擊的地方,也可以利用這一思想來(lái)組織針對(duì)單個(gè)類或者方法的單元測(cè)試,從而組織起軟件內(nèi)部的縱深防御策略,

8、防止惡意行為對(duì)軟件平安造成的損害。但是,這一方法將軟件各組件進(jìn)展強(qiáng)迫孤立,因此對(duì)于因大量組件交互而引起的軟件缺陷,利用此種方法無(wú)法檢測(cè)。單元層的平安測(cè)試比擬合適于防止緩沖區(qū)溢出,格式化字符串以及數(shù)據(jù)缺失的審核。2.3驗(yàn)證階段集成測(cè)試在集成層,軟件的整體平安屬性變得可見(jiàn)和可測(cè)試,使得這一層的可測(cè)試屬性數(shù)量相對(duì)單元層而言要多得多,但是對(duì)于跨站腳本和網(wǎng)絡(luò)效勞器提供的一些效勞(例如平安套接層ssl和url過(guò)濾)的測(cè)試,存在一定的困難。我們可以將實(shí)際案例和風(fēng)險(xiǎn)分析的結(jié)果作為組織集成測(cè)試的指南。集成測(cè)試要求測(cè)試人員通過(guò)平安測(cè)試培訓(xùn),并且是有純熟技術(shù)的軟件開(kāi)發(fā)人員。在這一層,我們可以開(kāi)展諸如注人缺陷驗(yàn)證、旁

9、路驗(yàn)證以及訪問(wèn)控制等方面的平安測(cè)試,來(lái)源于外部代碼的平安審查結(jié)果也應(yīng)該以集成測(cè)試的方式加以確認(rèn)。2.4發(fā)布階段驗(yàn)收測(cè)試驗(yàn)收測(cè)試是軟件產(chǎn)品交付客戶之前的最后一個(gè)測(cè)試階段,是在真實(shí)的測(cè)試環(huán)境中,利用基于惡意事件的平安檢測(cè)模板,測(cè)試在典型的浸透活動(dòng)中可被識(shí)別的平安缺陷。驗(yàn)收測(cè)試的這一特性(基于平安檢測(cè)模板),使得我們可以借助于強(qiáng)大的自動(dòng)化測(cè)試軟件進(jìn)展檢測(cè),并且可以用驗(yàn)收測(cè)試的結(jié)果來(lái)完善浸透測(cè)試報(bào)告內(nèi)容,從而有助于開(kāi)發(fā)人員理解軟件的脆弱性以及針對(duì)軟件脆弱性所采取的補(bǔ)救措施是否有效。驗(yàn)收測(cè)試針對(duì)軟件的外部api,因此不如單元測(cè)試和集成測(cè)試松散,并且只能測(cè)試當(dāng)前且暴露的破綻或者缺陷。非定制的商業(yè)軟件重新設(shè)

10、計(jì)的關(guān)鍵功能或者其他改變都會(huì)影響到軟件的整體平安性,因此,假如改變會(huì)使得軟件產(chǎn)生不可預(yù)知的缺陷,針對(duì)這些缺陷的測(cè)試就應(yīng)該在單元層或者集成層開(kāi)展,而不是在驗(yàn)收層。在驗(yàn)收層,我們可以測(cè)試針對(duì)解釋性程序(sql,xpath,ldap等)的注人式攻擊、跨站腳本攻擊、跨站懇求偽造等。緩沖區(qū)溢出及格式化字符串等軟件缺陷也可以在驗(yàn)收測(cè)試層得到檢測(cè)。3平安測(cè)試隊(duì)伍軟件測(cè)試一度被認(rèn)為是編程才能偏低的員工的工作,直到今天,仍然有許多公司把優(yōu)秀的人才安排在編碼工作上,也有更多公司讓優(yōu)秀的人才進(jìn)展設(shè)計(jì),僅有很少公司讓優(yōu)秀的人才進(jìn)展測(cè)試工作。實(shí)際的軟件工程理論證明,讓對(duì)軟件思想有深入理解的工程師進(jìn)展軟件測(cè)試,可以大幅度

11、地進(jìn)步軟件質(zhì)量軟件供給商還必須認(rèn)識(shí)到組織測(cè)試人員進(jìn)展“平安進(jìn)修對(duì)平安測(cè)試的成功施行至關(guān)重要。在這些情況下,軟件供給商必須負(fù)責(zé)對(duì)其工程人員進(jìn)展適當(dāng)教育。根據(jù)組織的規(guī)模和可用的資源,擁有大批工程人員的組織可建立一個(gè)內(nèi)部方案對(duì)其工程師進(jìn)展在職平安培訓(xùn),而小型組織那么可能需要依賴外部培訓(xùn)。測(cè)試人員要像攻擊者那樣帶有“惡意的想法去考慮,而且在測(cè)試軟件時(shí)還要扮演攻擊者,攻擊自己的系統(tǒng),以此來(lái)幫助發(fā)現(xiàn)軟件的平安破綻。平安測(cè)試并不會(huì)總是直接導(dǎo)致平安溢出或者暴露可利用的破綻,從而引出平安缺陷。要平安測(cè)試盡可能地發(fā)揮作用,測(cè)試人員需具備較強(qiáng)的分析才能,而這更多的是依靠純熟的開(kāi)發(fā)技術(shù)和開(kāi)發(fā)經(jīng)歷。4破綻舉例:一個(gè)sq

12、l的注入式破綻有幾種情形使得sql注人攻擊成為可能。最常見(jiàn)的原因是,使用拼接形成的sql語(yǔ)句去操作數(shù)據(jù)庫(kù)。譬如,傳入用戶輸人的管理員用戶名和密碼,把這2個(gè)參數(shù)拼接形成sql語(yǔ)句,通過(guò)執(zhí)行該sql語(yǔ)句,以便驗(yàn)證用戶輸人的管理員用戶名和密碼的正確性。詳細(xì)過(guò)程如下:一般情況下,用戶傳人正常的用戶名和密碼進(jìn)展驗(yàn)證,如傳人“ynae和“ypassrd進(jìn)展驗(yàn)證,得到的sql語(yǔ)句將是:這個(gè)sql語(yǔ)句很正常。但是,這只是開(kāi)發(fā)人員預(yù)期的做法:通過(guò)管理員用戶名和密碼來(lái)驗(yàn)證賬戶信息。但因?yàn)閰?shù)值沒(méi)有被正確地加碼,黑客可以很容易地修改查詢字符串的值,以改變sql語(yǔ)句的邏輯。譬如,分別傳人“ynaeri=1-,ypas

13、srd,得到的sql語(yǔ)句將是:在用戶名“ynaeri=i-中,第一個(gè)“完畢了原有字符串中第一個(gè)單撇號(hào)的配對(duì),r后面的“i=i會(huì)導(dǎo)致不管前面的驗(yàn)證結(jié)果如何,都會(huì)返回真true值,而隨后的“一將把其后的sql語(yǔ)句注釋掉。如今問(wèn)題出現(xiàn)了,不管使用什么用戶名和密碼,都能驗(yàn)證通過(guò)。在存在破綻的數(shù)據(jù)顯示頁(yè)面,假如注人jin語(yǔ)句,就能獲取數(shù)據(jù)庫(kù)里的所有數(shù)據(jù),顯示在頁(yè)面上,如獲取用戶名、密碼等;而注入up-date/insert/delete語(yǔ)句將改變數(shù)據(jù),如添加新的管理員賬號(hào)等。這樣,數(shù)據(jù)庫(kù)將不再平安。sql注人平安破綻的形成,根本在于sql語(yǔ)句的拼接,只要放棄sql語(yǔ)句拼接,適用標(biāo)準(zhǔn)的加碼訪問(wèn)方式,問(wèn)題自然迎刃而解。以下便

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論