軟件安全技術課件:軟件安全開發模型_第1頁
軟件安全技術課件:軟件安全開發模型_第2頁
軟件安全技術課件:軟件安全開發模型_第3頁
軟件安全技術課件:軟件安全開發模型_第4頁
軟件安全技術課件:軟件安全開發模型_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件安全開發模型本講要點1.軟件開發模型2.軟件安全開發模型3.軟件安全開發模型應用1.軟件開發模型(1)軟件生命周期軟件生命周期劃可分成3個時期8個階段1)軟件定義時期通常進一步劃分成3個階段,即問題定義、可行性研究和需求分析。這個時期的工作通常又稱為系統分析,由系統分析員負責完成。1.軟件開發模型(1)軟件生命周期軟件生命周期劃可分成3個時期8個階段2)軟件開發時期通常由4個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。前兩個階段又稱為系統設計,后兩個階段又稱為系統實現。1.軟件開發模型(1)軟件生命周期軟件生命周期劃可分成3個時期8個階段3)軟件維護時期軟件維護時期的任務是,使軟件持久地滿足用戶的需要:當軟件在使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟件以適應新的環境;當用戶有新要求時應該及時改進軟件以滿足用戶的新需要。1.軟件開發模型(1)軟件生命周期軟件生命周期劃可分成3個時期8個階段事實上,在實際從事軟件開發工作時,根據軟件規模、種類、開發環境及開發時使用的技術方法等因素,這些階段的劃分都會有所不同。1.軟件開發模型(2)軟件過程與軟件開發模型進入20世紀90年代,軟件工程領域提出了軟件過程的概念。所謂軟件過程,是指為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。通常使用軟件生命周期模型簡潔地描述軟件過程。軟件生命周期模型規定了把生命周期劃分為哪些階段及各個階段的執行順序,因此,也稱為軟件過程模型。1.軟件開發模型(2)軟件過程與軟件開發模型為了強調軟件開發者在軟件過程中對于確保軟件安全的主導地位和重要作用,本書仍沿用“軟件過程模型”的傳統叫法——“軟件開發模型”。軟件開發模型(SoftwareDevelopmentModel)是跨越整個軟件生存周期的系統開發、運行和維護所實施的全部工作和任務的結構框架,它給出了軟件開發活動各階段之間的關系。1.軟件開發模型(2)軟件過程與軟件開發模型8種典型的軟件開發模型瀑布模型(WaterfallModel)快速原型模型(RapidPrototypeModel)增量模型(IncrementalModel)螺旋模型(SpiralModel)噴泉模型(FountainModel)Rational統一過程(RationalUnifiedProcess,RUP)極限編程和敏捷開發(eXtremeProgramming&AgileDevelopment)微軟過程(MicrosoftProcess)1.軟件開發模型(2)軟件過程與軟件開發模型本節給出的許多軟件開發模型保障了用戶需求和軟件系統功能、性能的實現,但是從軟件安全開發生命周期的角度來看,上述軟件開發模型的安全性并沒有得到系統、完整地重視和體現。2.軟件安全開發模型軟件安全開發主要是從生命周期的角度,對安全設計原則、安全開發方法、最佳實踐和安全專家經驗等進行總結,通過采取各種安全活動來保證得到盡可能安全的軟件。具有代表性的4類安全開發模型,以及在其上發展改進的相關模型:1)微軟的軟件安全開發生命周期模型(SecureDevelopmentLifecycle,SDL),以及相關的敏捷SDL和ISO/IEC27034標準。2)McGraw的內建安全模型(BuildingSecurityIn,BSI),以及BSI成熟度模型(BuildingSecurityInMaturityModel,BSIMM)。2.軟件安全開發模型3)美國國家標準與技術研究院(NIST)的安全開發生命周期模型。4)OWASP提出的綜合的輕量級應用安全過程(ComprehensiveLightweightApplicationSecurityProcess,CLASP),以及軟件保障成熟度模型(SoftwareAssuranceMaturityModel,SAMM)。以上各類模型的核心思想是,為了開發盡可能安全的軟件,把安全活動融入到軟件生命周期的各個階段中去。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL2002年,微軟推行可信計算計劃,期望提高微軟軟件產品的安全性。2004年,微軟公司的SteveLipner在計算機安全應用年度會議(ACSAC)上提出了可信計算安全開發生命周期模型,簡稱安全開發生命周期(SecurityDevelopmentLifecycle,SDL)。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDLSDL模型是由軟件工程的瀑布模型發展而來,是在瀑布模型的各個階段添加了安全活動和業務活動目標。為了實現所需安全目標,軟件項目團隊或安全顧問可以自行添加可選的安全活動。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDLSD3+C原則是SDL模型實施的基本原則,其基本內容如下:安全設計(SecurebyDesign)。在架構設計和實現軟件時,需要考慮保護其自身及其存儲和處理的信息,并能抵御攻擊。安全配置(SecurebyDefault)。在現實世界中,軟件達不到絕對安全,所以設計者應假定其存在安全缺陷。為了使攻擊者針對這些缺陷發起攻擊時造成的損失最小,軟件在默認狀態下應具有較高的安全性。例如,軟件應在最低的所需權限下運行,非廣泛需要的服務和功能在默認情況下應被禁用或僅可由少數用戶訪問。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDLSD3+C原則是SDL模型實施的基本原則,其基本內容如下:安全部署(SecuritybyDeployment)。軟件需要提供相應的文檔和工具,以幫助最終用戶或管理員安全地使用。此外,更新應該易于部署。溝通(Communication)。軟件開發人員應為產品漏洞的發現準備響應方案,并與系統應用的各類人員不斷溝通,以幫助他們采取保護措施(如打補丁或部署變通辦法)。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL很多軟件產品開發的時間都很緊迫,一般Web項目開發可能只有2~3周的時間,采用完整的SDL開發流程顯然不切實際,需要更簡潔快速的軟件安全開發方法。為此,微軟對SDL進行調整,使其能夠快速利用敏捷開發流程更好地實現安全需求,這就是敏捷SDL。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL敏捷SDL與典型SDL的差別主要有兩點:敏捷SDL不采用傳統的瀑布模型而是采用無階段的迭代開發模型,以實現軟件版本的快速更新和發布。在敏捷SDL中,并不是每個發布版本(或每次“突擊發布”)都需要達到所有的要求。可能在SDL中每一個安全需求都很重要,但是在短暫的發布周期內沒有足夠的時間來完成每一個安全需求,必須將一些重要性相對低的需求暫時擱置,為此敏捷SDL框架定義了3種頻率的需求,每個SDL需求均屬于這3種類別之一。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL3種頻率的需求1)“突擊發布”的級別。這些需求是在每一個開發迭代中必須達到的要求,無論每個“突擊發布”的時間多短也必須實現,沒有妥協的余地。這些安全需求在選擇時必須要仔細斟酌,以精簡這類需求的數量2)板載型需求。是指在軟件開發過程中可以用模板來表達的一組關系相對穩定的需求。板載型需求使產品團隊必須在項目開始一次性完成這些要求,之后就不再需要進一步的處理。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL3種頻率的需求3)存儲桶型需求。不屬上述兩種類型的所有其他SDL安全需求均被歸類于存儲桶型需求通常包括3個存儲桶,分別是安全驗證桶、設計檢查桶與響應計劃桶。例如,模糊輸入測試需求被置于安全驗證桶,隱私保護檢查被設置于設計檢查桶,而災難恢復計劃需求被置入響應計劃桶。在敏捷SDL中,這些需求并不要求在每次產品發布之前全部完成,通常每個“突擊發布”版本中只需要完成每個存儲桶中的一個要求,這是敏捷SDL對發布時間有限的敏捷開發項目做出的讓步。但是,實際上團隊至少要每年完成一次全部存儲桶型需求。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL3種頻率的需求3)存儲桶型需求。不屬上述兩種類型的所有其他SDL安全需求均被歸類于存儲桶型需求通常包括3個存儲桶,分別是安全驗證桶、設計檢查桶與響應計劃桶。例如,模糊輸入測試需求被置于安全驗證桶,隱私保護檢查被設置于設計檢查桶,而災難恢復計劃需求被置入響應計劃桶。在敏捷SDL中,這些需求并不要求在每次產品發布之前全部完成,通常每個“突擊發布”版本中只需要完成每個存儲桶中的一個要求,這是敏捷SDL對發布時間有限的敏捷開發項目做出的讓步。但是,實際上團隊至少要每年完成一次全部存儲桶型需求。2.軟件安全開發模型(1)微軟的軟件安全開發生命周期模型SDL2011年,國際標準組織公布了安全開發標準ISO/IEC27034。該標準以商業和非技術人員為中心,聚焦于軟件安全管理,是工業領域實現軟件安全和風險管理的重要里程碑。ISO/IEC27034是在SDL基礎之上發展起來的,目標是幫助組織將安全集成到系統應用的整個生命周期,將安全作為一種需求在軟件開發和應用過程的每一個階段都要進行定義和分析,并進行持續的有效控制。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型模型核心思想:對軟件全生命周期各個階段產品(工件)的安全性進行評估、測試、驗證以及操作控制,實現面向過程的全生命周期安全質量控制方法。該模型引用了工業生產領域“工件”的概念,非常形象地描述了軟件開發各階段所產生的中間產品,并將其作為評測的對象,體現了BSI模型面向全過程產品評測與控制的特點。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型BSI模型繼承了SDL各階段的安全實踐,如安全需求分析、安全系統結構設計、安全測試計劃、安全編碼等,同時強調對每階段產生的軟件工件的安全性進行分析與檢測,避免將上一階段的安全問題帶入下一個開發階段,從而實現軟件開發全過程的安全質量管理。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型模型主要內容:以風險管理、軟件安全接觸點和安全知識作為軟件安全的三根支柱。1)風險管理。風險管理是一種戰略性方法,即將減輕風險作為一種貫穿整個生命周期的指導方針。2)軟件安全接觸點。BSI模型強調與開發流程無關,而是在每個開發階段通過一些關鍵的安全接觸點來保證軟件開發的安全性,從而實現在整個軟件開發生命周期中既保證軟件安全,又超脫于具體的開發模型。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型模型主要內容:以風險管理、軟件安全接觸點和安全知識作為軟件安全的三根支柱。3)安全知識。安全知識強調對安全經驗和專業技術進行收集匯總,對軟件開發人員進行培訓,并通過安全接觸點實際運用到項目過程中。BSI模型歸納了7種軟件安全知識:原則、方針、歷史風險、攻擊模式、規則、弱點和攻擊程序并劃分為3個知識類:說明性知識、診斷性知識和歷史知識。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型BSI成熟度模型BSIMM在BSI模型基礎之上發展起來的。自2008年BSIMM模型提出以來,該項研究共開發了72項安全活動、112項指標。在2013年推出的BSIMM-v中,除了接觸點模型所描述的軟件安全開發過程的一些基本方法之外,BSIMM框架還引入了治理(Governance)、信息/情報(Intelligence)和部署(Deployment)3個領域,每個領域又分為3個層次,共包含12項安全實踐活動。2.軟件安全開發模型(2)McGraw的軟件內建安全開發模型BSI成熟度模型BSIMMBSIMM作為能力成熟度模型,通過生命周期的各層次和各階段的安全實踐活動,關注軟件安全的過程保證與每一階段的業務目標相一致。為了刻畫軟件安全開發的過程能力管理,BSIMM為每一個安全實踐活動進一步定義了3個能力級別,能力級別越高,組織的安全開發成熟度越高。2.軟件安全開發模型(3)NIST的軟件安全開發生命周期模型2008年,美國商務部與標準技術研究院聯合推出NISTSP800-64。該標準提出的模型在SDL基礎之上,著重關注軟件開發生命周期各階段的安全考慮。2.軟件安全開發模型(3)NIST的軟件安全開發生命周期模型特點體現在以下兩個方面。1)明確提出了軟件安全控制的經濟性問題。采用基于風險管理的系統或項目開發方法,將安全因素集成到系統開發生命周期的各個階段,包括規劃、采購、開發、部署。突出了風險管理在軟件開發各個階段中對于度量和強化安全需求實施的重要作用。2)明確提出了軟件開發控制門(ControlGate)的概念。這意味著在生命周期中設置系統評估與管理決策的檢查點和基準值,為組織提供了評價安全要素的實現狀況以及系統開發工作是否進入生命周期下一階段的可控節點。2.軟件安全開發模型(3)NIST的軟件安全開發生命周期模型模型主要內容。將系統開發的生命周期劃分為啟動、開發/采購、實施/評估、操作/維護,以及部署處理5個階段,除此以外還增加了其他幾個方面的安全考慮2.軟件安全開發模型(4)OWASP的軟件安全開發模型1)綜合的輕量級應用安全過程CLASP2009年,OWASP針對Web的安全開發提出了綜合的輕量級應用安全過程(ComprehensiveLightweightApplicationSecurityProcess,CLASP)。該模型更適用于小型Web開發組織。2.軟件安全開發模型(4)OWASP的軟件安全開發模型1)綜合的輕量級應用安全過程CLASP模型特點:由30個特定活動和輔助資源組成,用于提升整個開發團隊的安全意識。安全活動與角色相關聯,強調安全開發過程中各角色的職責。角色分別包括:項目經理、需求專家、軟件架構師、設計者、實施人員、集成和編譯人員、測試者和測試分析師、安全審計員。2.軟件安全開發模型模型特點:對于每一個角色的安全活動,CLASP都對以下問題進行了描述:安全活動應該在什么時間實施、如何實施;如果不進行這項安全活動,將會帶來多大的風險;如果實施這項安全活動,估計需要多少成本。CLASP實際上是一組可以被集成到任何軟件開發過程中的過程塊。它被設計為容易采用而且有效,包括組織必須執行的活動,規定的方法和文檔記錄。此外,它為改進這些活動提供了豐富的安全資源。2.軟件安全開發模型軟件保證成熟度模型(SoftwareAssuranceMaturityModel,SAMM)是在OWASPCLASP的基礎上發展起來的,最初由Fortify公司贊助,由獨立軟件安全顧問PravirChandra開創、設計并編寫,目前已經成為開放的應用安全項目OWASP的一部分。與SDL和BSIMM的生命周期開發模型不同,SAMM強調建立一種迭代的安全保證計劃,根據組織的行為隨著時間的推移而慢慢地改變,軟件的安全保證也應該持續改進,以保證信息系統對于業務功能支持的不斷進化。2.軟件安全開發模型模型的核心是軟件開發過程中面向安全保證的4個核心業務職能,每一個核心業務職能有3個主要的安全實踐活動,共有12項安全實踐活動。模型為12個安全實踐活動都定義了3個成熟度等級和一個隱含的零起點,在每一個成熟度等級上,組織可以進行各種實踐,以降低軟件產品的安全風險并加強軟件開發過程的安全質量保證。2.軟件安全開發模型小結1)SDL系列相關文檔較為豐富。微軟不斷更新升級SDL版本,并通過專門網站和開

溫馨提示

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

評論

0/150

提交評論