試析軟件開發(fā)生命周期各時期的應用軟件平安性測試_第1頁
試析軟件開發(fā)生命周期各時期的應用軟件平安性測試_第2頁
試析軟件開發(fā)生命周期各時期的應用軟件平安性測試_第3頁
試析軟件開發(fā)生命周期各時期的應用軟件平安性測試_第4頁
試析軟件開發(fā)生命周期各時期的應用軟件平安性測試_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、試析軟件開發(fā)生命周期各時期的應用軟件平安性測試論文關鍵詞:網(wǎng)絡應用軟件軟件開發(fā)生命周期OSD動平安性測試項目設計單元測試集成測試驗收側試論文摘要:文章論述了軟件開發(fā)生命周期中每一個時期添加的一系列關泣平安性的活動,提出將安奮瀏試整合到軟件開發(fā)生命周期中,分析了軟件平安性瀏試片祠試人員的要求,并以一個SQL注入實例來具體說明平安性瀏試在軟。信息網(wǎng)絡平安事件發(fā)生比例的不斷爬升、病毒利用軟件漏洞跋扈地傳播使得人們越發(fā)熟悉到信息平安的重要性。一樣以為,傳統(tǒng)的信息平安技術能夠借助防火墻(包括軟件和硬件防火墻)審核通過網(wǎng)絡的報文、限定用戶的訪問權限等來避免非授權用戶對重要數(shù)據(jù)的訪問,可是這一觀點是成立在軟

2、件平安基礎上的。網(wǎng)絡應用軟件需要暴露在網(wǎng)絡環(huán)境下,而且授權外部用戶能夠透過網(wǎng)絡來訪問此軟件。通過網(wǎng)絡,解決者有機遇接觸到軟件,若是軟件本身存在漏洞,那么所有的防火墻就形同虛設。暴露于網(wǎng)絡的應用軟件往往成為被解決的目標,是網(wǎng)絡應用軟件平安的重災區(qū)。美國國家標準與技術研究院(NIST)2002年的一項研究說明,美國花費在軟件缺點方面的費用達到595億美元。公安部2020年全國信息網(wǎng)絡平安狀況與運算機病毒疫情調查分析報b說明,在發(fā)生的平安事件中,未修補或防范軟件漏洞仍然是致使平安事件發(fā)生的最要緊緣故。1平安測試的概念平安測試是辨別信息系統(tǒng)數(shù)據(jù)愛惜和功能保護的進程。平安測試需要涵蓋的6個大體平安概念是

3、:保密性、完整性、權限(身份驗證)、授權(權限分派)、可提供性、不可抵賴性陰。軟件開發(fā)商都存在解決平安要挾方古的問題。對軟件開發(fā)商來講,平安性是其核心要求,這是由市場力量所驅動,也是由愛惜關鍵基礎結構及成立和維持計算的普遍信任的需要所決定的。所有軟件開發(fā)商面對的一個要緊挑戰(zhàn)確實是創(chuàng)建加倍平安的軟件,使其不需要頻繁地通過修補程序進行更新。軟件平安己經(jīng)成為評判軟件質量的一個重要標準,軟件平安測試那么成為保證軟件產品能夠符合這一標準的重要手腕。軟件的平安性測試主若是測試在正常和非正常情形下,軟件可否對數(shù)據(jù)進行平安有效的操作。2軟件開發(fā)生命周期流程(參見圖1)關于軟件行業(yè)來講,要知足現(xiàn)今提升平安性的需

4、要,軟件供給商必需轉為采納一種更嚴格的、加倍關注平安性的軟件開發(fā)流程。這種流程旨在盡可能減少設計、編碼和文檔編寫進程中存在的漏洞,并在軟件開發(fā)生命周期中盡可能早地檢測到并排除這些漏洞。用于處置來自Internet的輸入、操縱可能被解決的關鍵系統(tǒng)或處置個人身份信息的企業(yè)和消費者軟件最需要實施這種流程。在很多實際的軟件開發(fā)項目中,平安測試已經(jīng)成為SDL一個不可或缺的組成部份,并成為整個項目進程中的長期任務。黑盒一白盒測試方式往往執(zhí)行在產品遞交客戶之前,但有的乃至在投人利用以后都未進行平安檢測和風險評估;在一些平安性要求較高的項目中,盡管將平安風險評估納人預算,但在實際操作中卻對其并未作過量考慮。如

5、此,所致使的直接后果是在開發(fā)工作幾近完成的情形下進行問題分析處置所造成的本錢將遠遠大于在軟件開發(fā)時期進行缺點修改的本錢。即即是從充分利用現(xiàn)有的有限資金和資源的角度來考慮,也有必要將平安測試囊括到SDL中。如此做盡管不能取代軟件開發(fā)后期的滲透測試和脆弱性測試,卻能夠有效減少后者在施進程中的投人。開發(fā)人員應該依照客戶的功能需求來制定相應的平安規(guī)約,利用內建的明確的操縱機制來降低平安風險。開發(fā)人員能夠依照風險評估的結果來確信測試項目:軟件可否靠得住運行(Safety)和軟件運行結果是不是靠得住(Security)。軟件開發(fā)生命周期(SDL)中經(jīng)常使用的測試方式有:單元測試、集成測試和驗收測試。需求、

6、設計時期一平安性分析在軟件項目的設計進程中,人們往往只是關注系統(tǒng)的特性和功能,而沒有充分考慮其他重要的非功能問題(例如性能、可用性、平臺支持、平安,及要在稍后的軟件開發(fā)生命周期中需要解決的平安性),致使了項目中許多沒必要要的波動和延遲。由于平安性分析阻礙了整個的設計和架構,因此應該在項目設計時期充分地審查和了解它們。平安性考慮包括一系列問題,例如訪問操縱和授權、靈敏數(shù)據(jù)的適當處置、數(shù)據(jù)和存儲器訪問的適當利用,和加密方式。一些平安性需求不是非功能的需求,如所實施的加密類型。另外,許多平安性需求是更直接地而向用例的,而且需要概念要緊場景,和概念備選途徑和異樣途徑。在沒有將功能的和非功能的需求適本地

7、概念及并人軟件中的情形下,編碼錯誤和設計缺點會表現(xiàn)出關鍵的信息和操作處于危險。咱們應該像對待其他的需求那樣處置平安性需求,并將平安性需求劃分出優(yōu)先級,設定范圍,同時作為整體用例和功能需求的一部份進行治理。實施時期一單元測試受測試方式的阻礙,開發(fā)者對軟件平安風險的評估不可能面面俱到。最典型的確實是在代碼設計時期,開發(fā)者能夠通過單元測試來查驗代碼行為,這些結果都是能夠預知的,可是受到范圍的局限,不能測試這些類或模塊集成后的行為。實施單元測試能夠從軟件大體單位(單個類)的檢測上保證輸人的有效性;在可能顯現(xiàn)歹意解決的地址,也能夠利用這一思想來組織針對單個類或方式的單元測試,從而組織起軟件內部的縱深防御

8、策略,避免歹意行為對軟件平安造成的損害??墒?,這一方式將軟件各組件進行強制孤立,因此關于因大量組件交互而引發(fā)的軟件缺點,利用此種方式無法檢測。單元層的平安測試比較適合于避免緩沖區(qū)溢出,格式化字符串和數(shù)據(jù)缺失的審核。驗證時期一集成測試在集成層,軟件的整體平安屬性變得可見和可測試,使得這一層的可測試屬性數(shù)量相對單元層而言要多得多,可是關于跨站腳本和網(wǎng)絡效勞器提供的一些效勞(例如平安套接層SsL和URL過濾)的測試,存在必然的困難。咱們能夠將實際案例和風險分析的結果作為組織集成測試的指南。集成測試要求測試人員通過平安測試培訓,而且是有熟練技術的軟件開發(fā)人員。在這一層,咱們能夠開展諸如注人缺點驗證、旁

9、路驗證和訪問操縱等方面的平安測試,來源于外部代碼的平安審查結果也應該以集成測試的方式加以確認。發(fā)布時期一驗收測試驗收測試是軟件產品交付客戶之前的最后一個測試時期,是在真實的測試環(huán)境中,利用基于歹意事件的平安檢測模板,測試在典型的滲透活動中可被識別的平安缺點。驗收測試的這一特性(基于平安檢測模板),使得咱們能夠借助于壯大的自動化測試軟件進行檢測,而且能夠用驗收測試的結果來完善滲透測試報告內容,從而有助于開發(fā)人員明白得軟件的脆弱性和針對軟件脆弱性所采取的補救方法是不是有效。驗收測試針對軟件的外部API,因此不如單元測試和集成測試松散,而且只能測試當前己知且暴露的漏洞或缺點。非定制的商業(yè)軟件從頭設計

10、的關鍵功能或其他改變都會阻礙到軟件的整體平安性,因此,若是改變會使得軟件產生不可預知的缺點,針對這些缺點的測試就應該在單元層或集成層開展,而不是在驗收層。在驗收層,咱們能夠測試針對說明性程序(SQL,XPATH,LDAP等)的注人式解決、跨站腳本解決、跨站請求偽造等。緩沖區(qū)溢出合格式化字符串等軟件缺點也能夠在驗收測試層取得檢測。3平安測試隊伍軟件測試一度被以為是編程能力偏低的員工的工作,直到今天,仍然有許多公司把優(yōu)秀的人材安排在編碼工作上,也有更多公司讓優(yōu)秀的人材進行設計,僅有很少公司讓優(yōu)秀的人材進行測試工作。實際的軟件工程實踐證明,讓對軟件思想有深刻明白得的工程師進行軟件測試,能夠大幅度地提

11、高軟件質量軟件供給商還必需熟悉到組織測試人員進行“平安深造”對平安測試的成功實施相當重要。在這些情形下,軟件供給商必需負責對其工程人員進行適當教育。依照組織的規(guī)模和可用的資源,擁有大量工程人員的組織可成立一個內部打算對其工程師進行在職平安培訓,而小型組織那么可能需要依托外部培訓。測試人員要像解決者那樣帶有“歹意的”方式去試探,而且在測試軟件時還要扮演解決者,解決自己的系統(tǒng),以此來幫忙發(fā)覺軟件的平安漏洞。平安測試并非會老是直接致使平安溢出或暴露可利用的漏洞,從而引出平安缺點。要平安測試盡可能地發(fā)揮作用,測試人員需具有較強的分析能力,而這更多的是依托熟練的開發(fā)技術和開發(fā)體會。4漏洞舉例:一個SQL

12、的注入式漏洞有幾種情形使得SQL注人解決成為可能。最多見的緣故是,利用拼接形成的SQL語句去操作數(shù)據(jù)庫。譬如,傳入用戶輸人的治理員用戶名和密碼,把這2個參數(shù)拼接形成SQL語句,通過執(zhí)行該SQL語句,以使驗證用戶輸人的治理員用戶名和密碼的正確性。具體進程如下:一樣情形下,用戶傳人正常的用戶名和密碼進行驗證,如傳人MyName”和“MyPassword”進行驗證,取得的SQL語句將是:那個SQL語句很正常??墒?,這只是開發(fā)人員預期的做法:通過治理員用戶名和密碼來驗證賬戶信息。但因為參數(shù)值沒有被正確地加碼,黑客能夠很容易地修改查詢字符串的值,以改變SQL語句的邏輯。譬如,別離傳人MyNameorl=

13、l-,MyPassword”,取得的SQL語句將是:在用戶名MyName。1=1一”中,第一個終止了原有字符串中第一個單撇號的配對,or”后面的“1=1”會致使不管前面的驗證結果如何,都會返回真True值,而隨后的“一”將把其后的SQL語句注釋掉。此刻問題顯現(xiàn)了,不管利用什么用戶名和密碼,都能驗證通過。在存在漏洞的數(shù)據(jù)顯示頁面,若是注人JOIN語句,就能夠獲取數(shù)據(jù)庫里的所有數(shù)據(jù),顯示在頁面上,如獲取用戶名、密碼等;而注入UP-DATE/INSERT/DELETE語句將改變數(shù)據(jù),如添加新的治理員賬號等。如此,數(shù)據(jù)庫將再也不平安。SQL注入平安漏洞的形成,全然在于SQL語句的拼接,只要舍棄SQL語句拼接,適用標準的加碼訪問方式,問題自然迎刃而解。以

溫馨提示

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

評論

0/150

提交評論