軟件安全開發:屬性驅動模式 软件安全开发:属性驱动模式

宋明秋

  • 出版商: 電子工業
  • 出版日期: 2016-06-01
  • 售價: $348
  • 貴賓價: 9.5$331
  • 語言: 簡體中文
  • 頁數: 289
  • 裝訂: 平裝
  • ISBN: 7121287501
  • ISBN-13: 9787121287503

立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

<內容簡介>

在日益嚴峻的信息安全背景下,軟件的安全性已經成為信息安全問題的重中之重。本書針對信息安全領域這一核心問題,站在軟件開發過程控制的視角,從系統工程基本理論思想出發,借鑒當前國際先進的軟件安全開發的理論和方法,提出安全屬性驅動的軟件開發方法。全書以軟件安全屬性為核心,將安全屬性貫穿於軟件開發生命週期的每一個階段,通過對軟件開發生命週期全過程的安全質量管理和控制,以期減少開發過程中可能產生的各種漏洞,提高軟件產品的本質安全性。全書共分為6章,第1章是軟件安全開發相關的基本概念,第2章介紹了軟件安全開發方法的歷史演化進程以及一些典型的軟件安全開發模型,第3章基於需求工程原理闡述了軟件安全屬性需求獲取方法,第4章從系統架構角度出發闡述了軟件安全架構的設計方法以及相關安全技術,第5章介紹了軟件開發編碼過程中的安全問題,第6章對於軟件安全性測試進行了全面的闡述。本書的特點是既註重系統性和科學性,又註重實用性,系統性地介紹軟件開發生命週期全過程的安全質量保證方法,可作為軟件開發組織者、系統分析師、軟件架構師、軟件設計人員、開發人員、測試人員、系統運維人員以及軟件相關專業的在校大學生和研究生學習與實踐的較好的參考書。

<章節目錄>

目錄
第1章理解軟件安全開發1
1.1信息安全面臨的困境1
1.2軟件安全基本概念2
1.2.1軟件定義2
1.2.2軟件安全錯誤2
1.2.3軟件安全的定義3
1.3軟件安全屬性刻畫4
1.3. 1保密性4
1.3.2完整性5
1.3.3可用性5
1.3.4認證性6
1.3.5授權6
1.3.6可記賬性/審計性7
1.3.7抗抵賴性7
1.3.8可控性8
1.3.9可信性8
1.4信息產品的安全性評估標準8
1.5系統安全工程9
1.6系統安全工程能力成熟度模型10
1.7屬性驅動的軟件安全開發的基本思想11
1.7.1軟件安全開發方法11
1.7.2軟件定義安全11
1.7.3屬性驅動的軟件安全開發方法14
1.8本章小結14
第2章將安全嵌入軟件開發整個生命週期16
2.1系統安全開發方法的進化史16
2.2軟件安全開發模型17
2.2 .1啟發式軟件安全開發模型17
2.2.2軟件安全生命週期開發模型18
2.3微軟的SDL模型20
2.3.1傳統的系統開發瀑布模型20
2.3.2軟件安全開發生命週期模型SDL20
2.3.3敏捷的SDL23
2.3.4ISO/IEC2703425
2.4McGraw的軟件安全開發模型26
2.4.1McGraw的七個接觸點模型BSI26
2.4.2軟件安全開發成熟度模型BSIMM27
2.5OWASP的軟件安全開發模型30
2.5.1CLASP30
2.5.2SAMM33
2.6NIST的軟件安全開發生命週期34
2.7屬性驅動的軟件安全開發生命週期模型36
2.8本章小結36
第3章軟件安全需求分析37
3.1概述37
3.1.1基本內涵37
3.1.2安全需求的來源39
3.1.3軟件安全需求的內容39
3.2核心軟件安全需求40
3.2.1保密性需求40
3.2.2完整性需求42
3.2.3可用性需求43
3.2.4認證需求44
3.2.5授權需求46
3.2.6可記賬性/審計需求50
3.3通用軟件安全需求51
3.3.1安全架構需求51
3.3.2會話管理需求51
3.3.3錯誤和例外管理需求52
3.3.4配置參數管理需求52
3.4運維安全需求52
3.4. 1環境部署需求53
3.4.2歸檔需求54
3.4.3反盜版需求54
3.5其他安全需求55
3.5.1順序和時間需求55
3.5.2國際性需求55
3.5.3採購需求56
3.6軟件安全需求獲取方法57
3.6.1軟件安全需求獲取的概念57
3.6.2頭腦風暴57
3.6.3問捲調查和訪談58
3.6.4策略分解58
3.6.5數據分類60
3.6.6主/客體關係矩陣62
3.6.7使用用例和濫用案例建模62
3.7軟件安全需求跟蹤矩陣63
3.8本章小結64
第4章軟件安全保障設計65
4.1概述65
4.1.1軟件安全設計的概念65
4.1.2軟件安全設計的基本原則65
4.1. 3平衡安全設計原則71
4.2屬性驅動的軟件安全設計72
4.3軟件安全架構設計73
4.3.1康威定律73
4.3.2軟件安全架構的設計方法74
4.3.3攻擊面評估75
4.3.4威脅建模75
4.3.5風險分析82
4.3.6軟件架構的選擇86
4.3.7軟件架構的安全考慮92
4.3.8與現有架構的集成93
4.4基於核心安全需求的軟件安全設計94
4.4.1保密性設計94
4.4.2完整性設計99
4.4.3可用性設計101
4.4.4認證設計102
4.4.5授權設計103
4.4.6可記賬性/審計設計103
4.5其他安全需求設計104
4.5.1接口安全設計104
4.5.2互聯互通性106
4.6軟件安全技術106
4.6.1認證106
4.6.2身份管理107
4.6.3憑證管理109
4.6.4流控制112
4.6.5防火牆和網絡代理113
4.6.6中間件114
4.6 .7排隊基礎設施和技術114
4.6.8日誌與審計114
4.6.9入侵檢測系統115
4.6.10入侵防禦系統116
4.6.11數據丟失保護116
4.6.12虛擬化117
4.6.13數字版權管理118
4.6 .14可信計算120
4.6.15數據庫安全121
4.6.16編程語言環境128
4.6.17公共語言運行庫130
4.6.18Java虛擬機131
4.6.19編譯器選項132
4.6.20操作系統安全132
4.6.21嵌入式系統安全133
4.7安全架構與設計檢查134
4.8本章小結135
第5章編寫安全的代碼136
5.1概述136
5.1.1漏洞的基本概念136
5.1.2漏洞分類137
5.1.3漏洞產生的原因138
5.1 .4通用軟件漏洞數據庫139
5.1.5軟件安全編碼實踐與控制141
5.2常見軟件漏洞類型分析與防禦方法142
5.2.1緩衝區溢出142
5.2.2註入缺陷145
5.2.3認證和會話管理149
5.2. 4跨站腳本攻擊XSS152
5.2.5不安全的直接對象引用154
5.2.6安全配置錯誤156
5.2.7敏感數據洩露157
5.2.8加密機製本身的安全問題162
5.2.9缺少功能級檢查163
5.2. 10跨站請求偽造CSRF164
5.2.11使用已知漏洞組件167
5.2.12未經驗證的重定向和轉發167
5.2.13文件攻擊168
5.2.14競爭條件171
5.2.15邊通道攻擊172
5.3軟件安全編碼實踐174
5.3.1輸入驗證174
5.3.2標準化176
5.3.3數據淨化177
5.3.4錯誤處理178
5.3.5安全的API178
5.3.6內存管理179
5.3.7例外管理182
5.3.8會話管理183
5.3 .9配置參數管理183
5.3.10安全啟動184
5.3.11加密機制的安全保護184
5.3.12並發控制186
5.3.13標籤化187
5.3.14沙箱188
5.3.15防篡改技術188
5.4軟件安全編碼保證過程190
5.4.1選擇安全的編程語言190
5.4.2版本(配置)管理190
5.4.3代碼分析191
5.4.4代碼評審192
5.4.5構建安全的軟件編譯環境194
5.5本章小結195
第6章軟件安全測試196
6.1概述196
6.1.1軟件安全測試的定義和目的196
6.1.2軟件安全測試的基本內涵196
6.1.3軟件安全測試框架199
6.1.4軟件安全測試方法200
6.1.5從攻擊者角度思考201
6.2軟件安全功能測試201
6.2.1保密性測試201
6.2.2完整性測試202
6.2.3可用性測試205
6.2.4認證性測試206
6.2.5授權測試207
6.2.6可記賬性/審計測試207
6.3軟件安全漏洞測試208
6.3.1攻擊面驗證208
6.3.2環境測試208
6.3.3模擬測試209
6.4其他測試210
6.4.1性能測試210
6.4.2可擴展性測試211
6.4.3隱私測試211
6.5軟件安全功能測試方法212
6.5.1單元測試212
6.5.2集成測試213
6.5.3回歸測試213
6.5.4系統測試214
6.5.5邏輯測試214
6.5.6用戶接收測試215
6.6軟件安全漏洞測試方法216
6.6.1源代碼測試216
6.6.2白盒測試216
6.6.3黑盒測試217
6.6.4Fuzzing測試218
6.6.5掃描219
6.6.6滲透測試222
6.6.7靜態測試224
6.6.8動態測試225
6.7幾種重要的軟件安全漏洞控制測試225
6.7.1輸入驗證測試225
6.7.2緩衝區溢出控制測試226
6.7.3SQL註入缺陷控制測試226
6.7.4XSS腳本攻擊控制測試227
6.7.5抗抵賴控制測試227
6.7.6假冒控制測試228
6.7.7失效控制測試228
6.7.8優先權提升控制測試228
6.7.9抗逆向工程保護測試229
6.7.10Web應用漏洞測試229
6.8測試過程模型230
6.8.1軟件安全測試基本過程230
6.8.2V模型231
6.8.3W模型231
6.8.4X模型232
6.8.5H模型232
6.8.6前置測試模型233
6.8.7基於軟件開發生命週期的測試234
6.9測試數據的管理236
6.9.1漏洞報告和跟蹤238
6.9.2漏洞影響評估與修復242
6.10常見的軟件安全測試工具242
6.11本章小結242
附錄A軟件安全開發生命週期模型243
附錄B常見的HTTP狀態代碼和原因解釋245
附錄C用於輸入驗證的正則表達式語法247
附錄D常用軟件測試工具249
參考文獻251