【文章內(nèi)容簡介】
:l Source IPl Destination IPl Fragmented datal HTTP requests?Insidel User sessionsl SQL queriesl Application variablesl Historical patternsKnow your code. Trust your codeInside軟件必須自我保護(hù)Outside:Know your code. Trust your code 傳統(tǒng)學(xué)校關(guān)于安全技術(shù)的教育的原則 :? 用防火墻來定義系統(tǒng)的 ”邊界 ”,把軟件與外界隔離 .? 過分依賴加密技術(shù) ? SSL? secure lock on a paper bag !? 當(dāng)產(chǎn)品要發(fā)布的時候才去審查產(chǎn)品? 在這個階段所做的都是 “Why did we do this like this?”? 我們將以補(bǔ)丁 (patch)的方式修復(fù)它 .? 我們已經(jīng)了解到這個問題 .? 不允許高級技術(shù)使用 :? 如果它是新的 ,肯定有問題 .? 讓我們等 ,直到這種技術(shù)成熟了 ,保險了 ,我們才使用 .? 想盡一切辦法去否定使用新技術(shù)的想法學(xué)校傳統(tǒng)的安全技術(shù)教育Know your code. Trust your code滲透測試和打補(bǔ)丁都不是最好的消除軟件安全問題的方式Perate and Patch is BadAverage Curve of Number of Intrusions for a Security Bug Over Time, as Reported by Arbaugh, Fithen and McHugh, 2023. Know your code. Trust your code傳統(tǒng)的安全模式 : ? 保護(hù) ” 邊界 ”? 網(wǎng)絡(luò)安全? 安全負(fù)責(zé)的人是 IT/MIS/CISSP等部門? 被動式新的安全模式:? 構(gòu)建安全的系統(tǒng)? 設(shè)計安全的軟件? 軟件開發(fā)人員和設(shè)計人員對安全負(fù)責(zé)? 主動式* COTS = Commercial off the shelf學(xué)校傳統(tǒng)的安全技術(shù)教育Know your code. Trust your code軟件安全的根源問題? 軟件安全的問題是軟件自身的缺陷問題 ,其主要在軟件設(shè)計 和 軟件實(shí)現(xiàn) 的過程中產(chǎn)生 ,具體表現(xiàn)在軟件設(shè)計的 架構(gòu)問題 和 實(shí)現(xiàn)上的錯誤 .– 開發(fā)軟件 造房子– 實(shí)現(xiàn)上的錯誤 軟件代碼錯誤 磚的問題– 架構(gòu)問題 軟件架構(gòu)風(fēng)險 墻問題– 在軟件安全問題上 ,架構(gòu)上的風(fēng)險往往比實(shí)現(xiàn)上的分析更重要 ,更難理解 .Know your code. Trust your code解決軟件安全問題? 軟件安全涉及 軟件工程,編程語言 ,安全工程 .根據(jù) Gary Mc Graw的建議 ,解決軟件安全主要要從如下幾個方面下手 :– Applied Risk Management – Software Security Best practices– KnowledgeKnow your code. Trust your code什么是風(fēng)險管理? Risk management. 預(yù)先去識別 \分析和修復(fù)那些對商業(yè)有負(fù)面影響的軟件缺陷 ,決定花多少成本去修復(fù)它 .? 軟件安全其實(shí)就是風(fēng)險管理 .Know your code. Trust your codeApplied Risk Management? 在軟件設(shè)計的時候就風(fēng)險模型分析或者安全設(shè)計分析 ,并在軟件的全生命開發(fā)周期去跟蹤和消除風(fēng)險 .分成如下六個階段 :– Understand the Business Context(了解業(yè)務(wù)需求)– Identify the Business and Technical Risk(確認(rèn)業(yè)務(wù) /技術(shù)風(fēng)險)– Synthesize and Rank the Risks(綜合分析風(fēng)險并劃分級別)– Define the Risk Mitigation Strategy(定制降低風(fēng)險的策略)– Carry Out Fixes and Validate(實(shí)施修復(fù)并驗(yàn)證結(jié)果)– Measuring and Reporting On Risk (測量并報告風(fēng)險)并利用風(fēng)險管理框架 (RMF)Know your code. Trust your code風(fēng)險管理框架Know your code. Trust your code軟件安全最佳實(shí)踐? Security requirements (安全需求 )? Abuse case (不好的測試用例)? Architecture risk analysis(軟件架構(gòu)風(fēng)險分析)? Riskbased security tests (基于風(fēng)險的安全測試)? Code review (代碼審查)? Peration testing (滲透測試)? Security operations (安全操作) Know your code. Trust your codeKnow your code. Trust your code安全需求? 需求階段? 識別和維護(hù)那些是安全的需求,那些是不安全的需求,從而從需求中除去威脅 .? 一些安全的需求可以幫助清理需求分析。– 敏感數(shù)據(jù)需要加密– 用戶識別機(jī)制– 調(diào)整方針? 安全是一個突發(fā)的需求。– 黑客僅需一個漏洞– “buffer overflows” 要消除– “Make it secure” 是模糊的Know your code. Trust your code不好的測試用例? 需求分析和用例( Use Cases)階段.? 用例來描述系統(tǒng)的行為. 1。正式的、標(biāo)準(zhǔn)的測試用例。描述正確行為 2。非正式的、非標(biāo)準(zhǔn)的測試用例。描述攻擊時的行為