軟件安全開發(fā)-V4.2_第1頁(yè)
軟件安全開發(fā)-V4.2_第2頁(yè)
軟件安全開發(fā)-V4.2_第3頁(yè)
軟件安全開發(fā)-V4.2_第4頁(yè)
軟件安全開發(fā)-V4.2_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件安全開發(fā)版本:4.2講師姓名 機(jī)構(gòu)名稱課程內(nèi)容2軟件安全開發(fā)知識(shí)域知識(shí)子域軟件安全開發(fā)生命周期軟件安全實(shí)現(xiàn)軟件安全測(cè)試軟件安全需求及設(shè)計(jì)軟件安全交付知識(shí)子域:軟件安全開發(fā)生命周期軟件生命周期模型了解軟件生命周期的概念及瀑布模型、迭代模型、增量模型、快速原型模型、螺旋模型、凈室模型等典型軟件開發(fā)生命周期模型。軟件危機(jī)與安全問(wèn)題了解三次軟件危機(jī)產(chǎn)生的原因、特點(diǎn)和解決方案;了解軟件安全和軟件安全保障的基本概念。軟件安全生命周期模型了解SDL、CLASP、CMMI、SAMM、BSIMM等典型的軟件安全開發(fā)生命周期模型。3軟件生命周期模型軟件的定義軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,

2、以及可能有的文件、文檔及數(shù)據(jù)軟件生命周期模型瀑布模型迭代模型增量模型快速原型模型螺旋模型凈室模型4軟件生命周期模型-瀑布模型最早出現(xiàn)的軟件開發(fā)模型核心思想按工序?qū)?wèn)題簡(jiǎn)化將功能的實(shí)現(xiàn)與設(shè)計(jì)分開不足沒(méi)有對(duì)開發(fā)周期后期發(fā)現(xiàn)錯(cuò)誤做出相應(yīng)的規(guī)定5軟件生命周期模型-迭代模型瀑布模型的小型化應(yīng)用完整的工作流程降低風(fēng)險(xiǎn)增量開支的風(fēng)險(xiǎn)產(chǎn)品無(wú)法按期進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)加快開發(fā)進(jìn)度任務(wù)清晰需求更容易隨需而變6軟件生命周期模型-增量模型融合了瀑布模型和迭代模型的特征本質(zhì)上是迭代,每個(gè)增量發(fā)布一個(gè)可操作產(chǎn)品7軟件生命周期模型-螺旋模型兼顧快速原型的迭代的特征以及瀑布模型的系統(tǒng)化與嚴(yán)格監(jiān)控引入了其他模型不具備的風(fēng)險(xiǎn)分析,使軟

3、件在無(wú)法排除重大風(fēng)險(xiǎn)時(shí)有機(jī)會(huì)停止,以減小損失構(gòu)建原型是螺旋模型用以減小風(fēng)險(xiǎn)的途徑8其他軟件開發(fā)方法快速原型模型快速原型模型又稱原型模型,它是增量模型的另一種形式;它是在開發(fā)真實(shí)系統(tǒng)之前,構(gòu)造一個(gè)原型,在該原型的基礎(chǔ)上,逐漸完成整個(gè)系統(tǒng)的開發(fā)工作。 凈室模型凈室是一種應(yīng)用數(shù)學(xué)與統(tǒng)計(jì)學(xué)理論以經(jīng)濟(jì)的方式生產(chǎn)高質(zhì)量軟件的工程技術(shù)。力圖通過(guò)嚴(yán)格的工程化的軟件過(guò)程達(dá)到開發(fā)中的零缺陷或接近零缺陷。 9軟件安全重要性軟件危機(jī)第一次“軟件危機(jī)”- 20世紀(jì)60年代根源:日益龐大和復(fù)雜的程序?qū)﹂_發(fā)管理的要求越來(lái)越高解決:軟件工程第二次“軟件危機(jī)”- 20世紀(jì)80年代根源:軟件規(guī)模繼續(xù)擴(kuò)大,程序數(shù)百萬(wàn)行,數(shù)百人同時(shí)

4、開發(fā),可維護(hù)性難解決:面向?qū)ο笳Z(yǔ)言-C+/java/c#第三次“軟件危機(jī)”- 21世紀(jì)頭十年根源:軟件安全解決:軟件安全開發(fā)生命周期管理10軟件缺陷普遍存在千行代碼缺陷數(shù)量普通軟件公司:440高管理軟件公司:24美國(guó)NASA軟件:0.1漏洞數(shù)量 國(guó)家漏洞庫(kù)漏洞數(shù)量趨勢(shì)11軟件安全問(wèn)題產(chǎn)生-內(nèi)因軟件規(guī)模增大,功能越來(lái)越多,越來(lái)越復(fù)雜軟件模塊復(fù)用,導(dǎo)致安全漏洞延續(xù)軟件擴(kuò)展模塊帶來(lái)的安全問(wèn)題Windows操作系統(tǒng)不同版本源代碼數(shù)量12軟件安全問(wèn)題產(chǎn)生-外因互聯(lián)網(wǎng)發(fā)展對(duì)軟件安全的挑戰(zhàn)開發(fā)環(huán)境和開發(fā)人員對(duì)軟件安全的挑戰(zhàn)開發(fā)者缺乏安全開發(fā)的動(dòng)機(jī)市場(chǎng)和業(yè)務(wù)要求將交付期和軟件功能做主要因素用戶方?jīng)]有提供安全方

5、面的壓力開發(fā)者缺乏相關(guān)知識(shí)軟件復(fù)雜性加大,開發(fā)者需要學(xué)習(xí)更多東西傳統(tǒng)軟件開發(fā)不進(jìn)行安全教育缺乏安全開發(fā)工具缺乏安全開發(fā)配套管理、測(cè)試等工具13軟件安全保障貫徹風(fēng)險(xiǎn)管理的思想安全不必是完美無(wú)缺的,但風(fēng)險(xiǎn)必須是可管理的樹立對(duì)軟件安全控制的信心,該信心是通過(guò)保障活動(dòng)來(lái)獲取的通過(guò)在軟件開發(fā)生命周期各階段采取必要的、相適應(yīng)的安全措施來(lái)避免絕大多數(shù)的安全漏洞采取措施只能有效減少,但并不能完全杜絕所有的安全漏洞!14軟件安全開發(fā)生命周期軟件安全開發(fā)覆蓋軟件整個(gè)生命周期需求分析階段考慮軟件的安全需求在設(shè)計(jì)階段設(shè)計(jì)符合安全準(zhǔn)則的功能編碼階段保證開發(fā)的代碼符合安全編碼規(guī)范安全測(cè)試和運(yùn)行維護(hù)確保安全需求、安全設(shè)計(jì)、

6、安全編碼各個(gè)環(huán)節(jié)得以正確有效的實(shí)施在軟件的各個(gè)階段引入安全措施!15軟件安全問(wèn)題越早解決成本越低在軟件開發(fā)生命周期中,后面的階段改正錯(cuò)誤開銷比前面的階段要高出數(shù)倍NIST:在軟件發(fā)布以后進(jìn)行修復(fù)的代價(jià)是在軟件設(shè)計(jì)和編碼階段即進(jìn)行修復(fù)所花代價(jià)的30倍16相關(guān)模型和研究安全軟件開發(fā)生命周期安全設(shè)計(jì)原則安全開發(fā)方法最佳實(shí)踐安全專家經(jīng)驗(yàn)多種模型被提出和研究可信計(jì)算安全開發(fā)生命周期(微軟)CLASP(OWASP)綜合的輕量應(yīng)用安全過(guò)程BSI系列模型(Gary McGraw等)SAMM(OWASP)軟件保證成熟度模型17SDL什么是SDL安全開發(fā)生命周期(Security Development Life

7、cycle,SDL)SDL發(fā)展18SDL的階段和安全活動(dòng)七個(gè)階段十七項(xiàng)必需的安全活動(dòng)19正式發(fā)布軟件后12個(gè)月內(nèi)的漏洞對(duì)比IE:漏洞總數(shù)下降35%,高危漏洞數(shù)下降63%操作系統(tǒng):漏洞總數(shù)降低45%SDL實(shí)施效果20CLASP21什么是CLSAP綜合的輕量應(yīng)用安全過(guò)程(Comprehensive, Lightweight Application Security Process ,CLASP)用于構(gòu)建安全軟件的輕量級(jí)過(guò)程,由30個(gè)特定的活動(dòng)(activities)和輔助資源構(gòu)成的集合針對(duì)這些活動(dòng)給出了相應(yīng)的指南、導(dǎo)則和檢查列表特點(diǎn)基于角色的安排CMMI什么是CMMI軟件能力成熟度集成模型(Cap

8、ability Maturity Model Integration)五級(jí)過(guò)程區(qū)域22SAMM什么是SAMM軟件保證成熟度模型(Software Assurance Maturity Mode,SAMM)提供了一個(gè)開放的框架,用以幫助軟件公司制定并實(shí)施所面臨來(lái)自軟件安全的特定風(fēng)險(xiǎn)的策略,23BSI系列模型BSI(Building Security IN)使安全成為軟件開發(fā)必須的部分強(qiáng)調(diào)應(yīng)該使用工程化的方法來(lái)保證軟件安全軟件安全的三根支柱風(fēng)險(xiǎn)管理:策略性方法接觸點(diǎn):一套輕量級(jí)最優(yōu)工程化方法,攻擊與防御綜合考慮安全知識(shí):強(qiáng)調(diào)對(duì)安全經(jīng)驗(yàn)和專業(yè)技術(shù)進(jìn)行收集匯總,對(duì)軟件開發(fā)人員進(jìn)行培訓(xùn),并通過(guò)安全接觸點(diǎn)

9、實(shí)際運(yùn)用24BSIMMBSI成熟度模型對(duì)真實(shí)的軟件安全項(xiàng)目所開展的活動(dòng)進(jìn)行量化構(gòu)建和不斷發(fā)展軟件安全行動(dòng)的指南25各模型比較SDL文檔豐富,維護(hù)更新及時(shí)較多工具支持適合大型企業(yè)BSI接觸點(diǎn)強(qiáng)調(diào)開發(fā)安全重點(diǎn)注重實(shí)用方法上手容易BSIMM最佳實(shí)踐參考他山之玉不強(qiáng)制實(shí)踐CLASP 輕量級(jí)過(guò)程;以角色及其職責(zé)為核心適合小型企業(yè)SAMM開放框架安全知識(shí)要求較低和BSIMM的安全活動(dòng)能對(duì)應(yīng)CMMI自動(dòng)的、可擴(kuò)展的框架集成化框架,消除了各個(gè)模型的不一致性持續(xù)改進(jìn),就可克服軟件開發(fā)中困難26知識(shí)子域:軟件安全需求及設(shè)計(jì)威脅建模理解威脅建模的作用及每個(gè)階段的工作內(nèi)容;掌握STRIDE模型用于進(jìn)行威脅建模實(shí)踐。軟

10、件安全需求分析 理解軟件安全需求在軟件安全開發(fā)過(guò)程中的重要性;理解安全需求分析的方法和過(guò)程。軟件安全設(shè)計(jì) 理解軟件安全設(shè)計(jì)的重要性及內(nèi)容和主要活動(dòng);理解最小特權(quán)、權(quán)限分離等安全設(shè)計(jì)的重要原則;理解攻擊面的概念并掌握降低攻擊面的方式。27威脅建模什么是威脅建模威脅建模是了解系統(tǒng)面臨的安全威脅,確定威脅風(fēng)險(xiǎn)并通過(guò)適當(dāng)?shù)木徑獯胧┮越档惋L(fēng)險(xiǎn),提高系統(tǒng)安全性的過(guò)程。為什么要威脅建模幫助在設(shè)計(jì)階段充分了解各種安全威脅,并指導(dǎo)選擇適當(dāng)?shù)膽?yīng)對(duì)措施對(duì)可能的風(fēng)險(xiǎn)進(jìn)行管理可以重新驗(yàn)證其架構(gòu)和設(shè)計(jì)有助于軟件的受攻擊面降低28威脅建模流程確定對(duì)象識(shí)別威脅評(píng)估威脅消減威脅威脅降低威脅漏洞攻擊者29威脅建模-確定對(duì)象確定要

11、保護(hù)和評(píng)估的目標(biāo)(資產(chǎn))在使用實(shí)例和應(yīng)用場(chǎng)景中分析明確應(yīng)用或系統(tǒng)的關(guān)鍵威脅場(chǎng)景部署方式、配置信息、用戶使用方式等典型場(chǎng)景移動(dòng)或小型設(shè)備物理失竊場(chǎng)景Web應(yīng)用匿名用戶場(chǎng)景30威脅建模-識(shí)別威脅識(shí)別每一個(gè)可能面臨的威脅理解軟件可能面臨的威脅是安全開發(fā)的前提威脅不等于漏洞威脅永遠(yuǎn)存在SSpoolfing Identity假冒身份/欺騙標(biāo)識(shí)TTampering with data篡改數(shù)據(jù)RRepudiation抵賴IInformation Disclosure信息泄漏DDenial of Service拒絕服務(wù)EElevation of Privilege權(quán)限提升31理解STRIDE六類威脅32威脅安

12、全屬性定義舉例Spoofing(哄騙)可鑒別性模仿其他人或?qū)嶓w偽裝成或ntdll.dll。Tampering(篡改)完整性修改數(shù)據(jù)或代碼修改硬盤、DVD或網(wǎng)絡(luò)數(shù)據(jù)包中的DLLRepudiation(抵賴)不可抵賴性聲稱沒(méi)有執(zhí)行某個(gè)動(dòng)作“我沒(méi)有發(fā)送過(guò)那封電子郵件”,“我沒(méi)有修改過(guò)那個(gè)文件”,“親愛(ài)的,我確實(shí)沒(méi)有訪問(wèn)過(guò)那個(gè)網(wǎng)站!”Information Disclosure(信息泄露)機(jī)密性把信息披露給那些無(wú)權(quán)知道的人允許某人閱讀Windows源代碼;公布某個(gè)Web網(wǎng)站的用戶清單。Denial of Service(拒絕服務(wù))可用性拒絕為用戶提供服務(wù)使得Windows或Web網(wǎng)站崩潰,發(fā)送數(shù)據(jù)包并

13、耗盡CPU時(shí)間,將數(shù)據(jù)包路由到某黑洞中。Elevation of Privilege(權(quán)限提升)授權(quán)獲得非授權(quán)訪問(wèn)權(quán)允許遠(yuǎn)程因特網(wǎng)用戶執(zhí)行命令,讓受限用戶獲得管理員權(quán)限。威脅建模-評(píng)估威脅評(píng)估威脅風(fēng)險(xiǎn)值評(píng)估被利用和攻擊發(fā)生的概率評(píng)估攻擊后資產(chǎn)的受損后果,并計(jì)算風(fēng)險(xiǎn)參考風(fēng)險(xiǎn)管理、安全工程中相關(guān)內(nèi)容!33威脅建模-消減威脅重新設(shè)計(jì)并排除這個(gè)威脅使用標(biāo)準(zhǔn)的威脅消減技術(shù)發(fā)明新的消減方法根據(jù)安全Bug標(biāo)準(zhǔn)來(lái)確定是否可接受風(fēng)險(xiǎn)把威脅作為漏洞記錄下來(lái),以后再想辦法消減要想辦法消減每個(gè)威脅!34軟件安全需求及安全設(shè)計(jì)的重要性軟件安全需求和設(shè)計(jì)是開發(fā)安全軟件的基礎(chǔ)軟件安全需求分析以風(fēng)險(xiǎn)管理為基礎(chǔ),建立“威脅”分

14、析計(jì)劃建立軟件安全需求定義,確保軟件安全需求定義正確安全需求應(yīng)文檔化軟件安全設(shè)計(jì)軟件系統(tǒng)的每一項(xiàng)需求,都應(yīng)該在軟件安全設(shè)計(jì)階段認(rèn)真考慮35安全需求分析安全需求分類安全功能需求安全保障需求需求分析的要點(diǎn)安全需求進(jìn)行有效定義不僅考慮系統(tǒng)功能,還要考慮系統(tǒng)不應(yīng)該做什么功能需求、安全需求、安全目標(biāo)要達(dá)到平衡36需求工程師不要僅僅從用戶的角度出發(fā)考慮系統(tǒng)的功能,還應(yīng)從攻擊者的角度出發(fā)考慮系統(tǒng)的漏洞。需求分析過(guò)程系統(tǒng)調(diào)查定性分析系統(tǒng)的脆弱點(diǎn)和可能遭受的安全威脅脆弱點(diǎn)和安全威脅的定量分析需求的確定37建立在風(fēng)險(xiǎn)分析的基礎(chǔ)上!安全設(shè)計(jì)的重要性安全編碼?安全測(cè)試?傳統(tǒng)方法:軟件發(fā)布后測(cè)試、等待修復(fù)BugGary

15、 McGraw :50%的安全問(wèn)題由設(shè)計(jì)瑕疵引起安全提前介入,效益高,成本低38設(shè)計(jì)缺陷舉例Microsoft Bob明文存儲(chǔ)口令,甚至將口令拿到客戶端對(duì)比驗(yàn)證軟件安全設(shè)計(jì)安全概要設(shè)計(jì)階段包括但不限于:安全體系結(jié)構(gòu)設(shè)計(jì)、各功能塊間的處理流程、與其他功能的關(guān)系、安全協(xié)議設(shè)計(jì)、安全接口設(shè)計(jì)等。安全詳細(xì)設(shè)計(jì)階段詳細(xì)設(shè)計(jì)階段作為安全功能的程序設(shè)計(jì)階段,應(yīng)當(dāng)直接指導(dǎo)安全功能的編碼工作。包括但不限于:模塊設(shè)計(jì)、內(nèi)部處理流程、數(shù)據(jù)結(jié)構(gòu)、輸入/輸出項(xiàng)、算法、邏輯流程圖等39根據(jù)安全需求方案確定的安全目標(biāo),對(duì)初步風(fēng)險(xiǎn)評(píng)估確定的控制措施的具體技術(shù)實(shí)現(xiàn)而進(jìn)行安全設(shè)計(jì)安全設(shè)計(jì)的主要活動(dòng)40詳細(xì)風(fēng)險(xiǎn)評(píng)估控制措施選擇安全

16、技術(shù)實(shí)現(xiàn)安全設(shè)計(jì)評(píng)審安全設(shè)計(jì)原則41最小特權(quán)原則權(quán)限分離原則最少共享機(jī)制原則完全中立原則心理可接受度原則默認(rèn)故障處理保護(hù)原則經(jīng)濟(jì)機(jī)制原則不信任原則縱深防御原則保護(hù)最薄弱環(huán)節(jié)原則公開設(shè)計(jì)原則隱私保護(hù)原則攻擊面最小化原則降低攻擊面作用攻擊面越小,安全風(fēng)險(xiǎn)越小實(shí)現(xiàn)取消不需要的功能增加對(duì)功能的安全防護(hù)示例SQL Server2005默認(rèn)關(guān)閉xp_cmdshell存儲(chǔ)過(guò)程42分析軟件攻擊面分析產(chǎn)品功能的重要性(是否必須)分析從哪里訪問(wèn)這些功能(本地&遠(yuǎn)程)分析訪問(wèn)權(quán)限(匿名&經(jīng)過(guò)認(rèn)證)受攻擊面增加遠(yuǎn)程訪問(wèn)受限訪問(wèn)本地訪問(wèn)僅管理員訪問(wèn)用戶訪問(wèn)匿名訪問(wèn)43降低攻擊面策略重要等級(jí)為低的功能:攻擊面大,取消該功

17、能重要等級(jí)為中的功能:攻擊面大,設(shè)置為非默認(rèn)開啟,需要用戶配置后才予以開啟重要等級(jí)為高的功能:攻擊面大,關(guān)閉或限制一些接口方式,增加一些安全的保證措施或技術(shù)降低受攻擊面對(duì)于提高軟件源代碼安全性至關(guān)重要!44降低軟件攻擊面通常做法較高受攻擊面較低受攻擊面默認(rèn)執(zhí)行默認(rèn)關(guān)閉打開網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接同時(shí)偵聽UDP和TCP流量?jī)H偵聽TCP流量匿名訪問(wèn)鑒別用戶訪問(wèn)弱ACLs強(qiáng)ACLs管理員訪問(wèn)普通用戶訪問(wèn)因特網(wǎng)訪問(wèn)本地子網(wǎng)訪問(wèn)代碼以管理員或root權(quán)限運(yùn)行代碼以Network Services、Local Services或自定義的低權(quán)限賬戶運(yùn)行統(tǒng)一缺省配置用戶可選的配置ActiveX控件.NET代碼標(biāo)記

18、有腳本安全的ActiveX控件未標(biāo)記有腳本安全的ActiveX控件非SiteLocked ActiveX控件SiteLocked ActiveX控件45知識(shí)子域:軟件安全實(shí)現(xiàn)安全編碼原則 了解驗(yàn)證輸入、避免緩沖區(qū)溢出、程序內(nèi)部安全、安全調(diào)用組件、禁用有風(fēng)險(xiǎn)的函數(shù)等通用安全編程準(zhǔn)則;了解相關(guān)的安全編碼標(biāo)準(zhǔn)及建議;理解常見(jiàn)的代碼安全問(wèn)題及處置辦法;代碼安全編譯了解代碼編譯需要關(guān)注的安全因素;代碼安全審核理解代碼審查的目的;了解常見(jiàn)源代碼靜態(tài)分析工具及方法46通用安全編碼原則-驗(yàn)證輸入對(duì)所有輸入數(shù)據(jù)進(jìn)行檢查、驗(yàn)證及過(guò)濾應(yīng)用軟件的“數(shù)據(jù)防火墻”,避免惡意數(shù)據(jù)進(jìn)入什么時(shí)候驗(yàn)證最初接收數(shù)據(jù)時(shí)(第一次)使用

19、數(shù)據(jù)時(shí)47驗(yàn)證輸入-常見(jiàn)輸入源命令行參數(shù)數(shù)量、數(shù)據(jù)格式、內(nèi)容環(huán)境變量環(huán)境變量可能超出期望有的環(huán)境變量存儲(chǔ)格式存在危險(xiǎn)文件不信任可以被不可信用戶控制的文件內(nèi)容不信任臨時(shí)文件網(wǎng)絡(luò)來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)是“高度不可信的”其他來(lái)源48通用安全編碼原則-避免緩沖區(qū)溢出緩沖區(qū)溢出緩沖區(qū):包含相同數(shù)據(jù)類型的實(shí)例的一個(gè)連續(xù)計(jì)算機(jī)內(nèi)存塊溢出:數(shù)據(jù)被添加到分配給該緩沖區(qū)的內(nèi)存塊之外外部數(shù)據(jù)比目標(biāo)空間大是一個(gè)非常普遍而且嚴(yán)重的問(wèn)題49通用編碼原則-避免緩沖區(qū)溢出溢出后果攻擊者可以使遠(yuǎn)程服務(wù)程序或者本地程序崩潰攻擊者可以設(shè)計(jì)溢出后執(zhí)行的代碼C/C+語(yǔ)言語(yǔ)言特性決定大量的庫(kù)函數(shù)存在溢出strcpy、strcat、gets等其他

20、語(yǔ)言調(diào)用C語(yǔ)言庫(kù)C#允許設(shè)置“不安全”例程50通用編碼原則-避免緩沖區(qū)溢出解決辦法填充數(shù)據(jù)時(shí)計(jì)算邊界動(dòng)態(tài)分配內(nèi)存控制輸入使用沒(méi)有緩沖區(qū)溢出問(wèn)題的函數(shù)strncpy、strncat、C+中std:string使用替代庫(kù)Libmib、libsafe基于探測(cè)方法的防御StackGuard、ProPolice、/GS將一個(gè)“探測(cè)”值插入到返回地址的前面非執(zhí)行的堆棧防御不可在堆棧上執(zhí)行代碼51通用編碼原則-程序內(nèi)部安全程序內(nèi)部接口安全程序內(nèi)部接口數(shù)據(jù)的檢查異常的安全處理檢測(cè)異常,安全處理各種可能運(yùn)行路徑檢測(cè)到某些錯(cuò)誤行為/數(shù)據(jù),必須以合適的方式處理,保證程序運(yùn)行安全必要時(shí)立即拒絕服務(wù),甚至不回送詳細(xì)的錯(cuò)

21、誤代碼52通用編碼原則-程序內(nèi)部安全最小化反饋避免給予不可靠用戶過(guò)多的信息成功或失敗作為跟蹤檢查的日志可以記錄較為詳細(xì)的信息認(rèn)證程序在認(rèn)證前盡量少給信息如果程序接受了密碼,不要返回它避免競(jìng)爭(zhēng)條件訪問(wèn)共享資源時(shí)(文件/變量)沒(méi)有被適當(dāng)?shù)乜刂剖褂迷硬僮魇褂面i操作避免死鎖安全使用臨時(shí)文件53通用編碼原則-安全調(diào)用組件應(yīng)用程序?qū)嶋H上幾乎都不會(huì)是自包含的,它們通常都會(huì)調(diào)用其他組件底層的操作系統(tǒng)數(shù)據(jù)庫(kù)可重用的庫(kù)網(wǎng)絡(luò)服務(wù)(WEB、DNS)54通用編碼原則-安全調(diào)用組件使用安全組件,并且只采用安全的方式檢查組件文檔,搜索相關(guān)說(shuō)明gets隨機(jī)數(shù)使用經(jīng)過(guò)認(rèn)可的組件盡可能不調(diào)用外部命令,如果不得已要調(diào)用,必須嚴(yán)格

22、檢查參數(shù)system、open、exec、55通用編碼原則-安全調(diào)用組件正確處理返回值一定要檢查返回值,調(diào)用是否成功成功時(shí)檢查返回值,是否按照期望值處理數(shù)據(jù)中可能含有 NUL 字符、無(wú)效字符或其他可能產(chǎn)生問(wèn)題的東西錯(cuò)誤時(shí)檢查錯(cuò)誤碼保護(hù)應(yīng)用程序和組件之間傳遞的數(shù)據(jù)視安全需求和安全環(huán)境考慮傳輸加密,包括密碼算法和安全協(xié)議56通用編碼原則-禁用不安全函數(shù)編碼中禁止使用的危險(xiǎn)函數(shù)舉例57禁止使用strcpy, wcscpy, trcpy, strcpy, _tcscpy, _ftcscpy,_mbscpystrcat, wcscat, trcat, strcat, _tcscat, _ftcscat,

23、_mbscatvsprintf, vswprintf, wvsprintf, wvnsprintf, _vstprintfsprintf, swprintf, wsprintf, wnsprintf, _stprintfgets, _getws, _getts軟件安全編譯確保編譯環(huán)境的安全使用最新版本編譯器與支持工具可靠的編譯工具使用編譯器內(nèi)置防御特性確保運(yùn)行環(huán)境的安全將軟件運(yùn)行環(huán)境基于較新版本的系統(tǒng)58源代碼審核 統(tǒng)計(jì)證明,在整個(gè)軟件開發(fā)生命周期中,30%至70%的代碼邏輯設(shè)計(jì)和編碼缺陷是可以通過(guò)源代碼審核來(lái)發(fā)現(xiàn)的。59什么是源代碼審核通過(guò)分析或檢查源程序的語(yǔ)法、結(jié)構(gòu)、過(guò)程、接口等來(lái)檢查程序

24、的正確性,報(bào)告源代碼中可能隱藏的錯(cuò)誤和缺陷源代碼審核方式人工審核費(fèi)時(shí)費(fèi)力容易遺漏工具審核速度快,自動(dòng)可升級(jí)知識(shí)庫(kù)知識(shí)子域:軟件安全測(cè)試軟件測(cè)試 了解軟件測(cè)試的基本概念;了解常見(jiàn)的軟件測(cè)試方法及不同測(cè)試方法之間的區(qū)別和優(yōu)缺點(diǎn);軟件安全測(cè)試了解軟件安全測(cè)試的基本概念;理解模糊測(cè)試、滲透測(cè)試等軟件安全測(cè)試方法的的原理、相互的區(qū)別以及各自的優(yōu)勢(shì);掌握安全測(cè)試的思路和方法。60軟件測(cè)試什么是軟件測(cè)試使用人工和自動(dòng)化的手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差異基本概念測(cè)試用例測(cè)試覆蓋率度量指標(biāo)61軟件測(cè)試的基本概念測(cè)試的信條預(yù)期測(cè)試的測(cè)試結(jié)果是預(yù)

25、先確定的好的測(cè)試用例發(fā)現(xiàn)錯(cuò)誤的概率高成功的測(cè)試就是發(fā)現(xiàn)了錯(cuò)誤的測(cè)試測(cè)試獨(dú)立于編碼需要具備應(yīng)用(用戶)及軟件(編程)兩方面的專業(yè)知識(shí)測(cè)試人員使用不同于開發(fā)人員的工具只檢查常見(jiàn)的測(cè)試用例是不夠的測(cè)試文檔要能夠再利用62軟件測(cè)試方法單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試黑盒測(cè)試、白盒測(cè)試、灰盒測(cè)試靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試代碼走查、代碼審查、代碼評(píng)審回歸測(cè)試驗(yàn)收測(cè)試63軟件安全測(cè)試什么是軟件安全測(cè)試確定軟件的安全特性實(shí)現(xiàn)是否與預(yù)期設(shè)計(jì)一致的過(guò)程有關(guān)驗(yàn)證軟件安全等級(jí)和識(shí)別潛在安全缺陷的過(guò)程查找軟件自身程序設(shè)計(jì)中存在的安全隱患,并檢查應(yīng)用程序?qū)Ψ欠ㄇ秩氲姆婪赌芰槭裁葱枰浖踩珳y(cè)試傳統(tǒng)測(cè)試僅考慮軟件出錯(cuò)時(shí)的處理,沒(méi)有考

26、慮對(duì)軟件的故意攻擊64軟件安全測(cè)試方法在應(yīng)用投產(chǎn)前,應(yīng)由獨(dú)立的安全團(tuán)隊(duì)對(duì)應(yīng)用的安全性進(jìn)行綜合評(píng)估功能性安全測(cè)試對(duì)抗性安全測(cè)試安全測(cè)試方法模糊測(cè)試滲透測(cè)試靜態(tài)源代碼審核65模糊測(cè)試(Fuzzing)什么是模糊測(cè)試也稱Fuzzing測(cè)試,一種通過(guò)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來(lái)發(fā)現(xiàn)軟件故障的方法黑盒測(cè)試,不關(guān)心被測(cè)試目標(biāo)的內(nèi)部實(shí)現(xiàn),而是利用構(gòu)造畸形的輸入數(shù)據(jù)引發(fā)被測(cè)試目標(biāo)產(chǎn)生異常,從而發(fā)現(xiàn)相應(yīng)的安全漏洞 非常有效的漏洞挖掘技術(shù),已知漏洞大部分都是通過(guò)這種技術(shù)發(fā)現(xiàn)的。 66模糊測(cè)試強(qiáng)制軟件程序使用惡意/破壞性的數(shù)據(jù)并進(jìn)行觀察結(jié)果的一種測(cè)試方法不夠強(qiáng)壯的程序會(huì)崩潰編碼良好的程序正常運(yùn)行特性方法學(xué) 隨機(jī)值大量測(cè)試用例查找漏洞或可靠性錯(cuò)誤67模糊測(cè)試模糊測(cè)試過(guò)程生成大量的畸形數(shù)據(jù)作為測(cè)試用例;將這些測(cè)試用例作為輸入應(yīng)用于被測(cè)對(duì)象;監(jiān)測(cè)和記錄由輸入導(dǎo)致的任何崩潰或異?,F(xiàn)象;查看測(cè)試日志,深入分析產(chǎ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)論