《代碼安全》
網絡空間安全重點規劃叢書- 圖書作者:
- 楊東曉、章磊、付威、金竹君
- 出版商:
- 清華大學出版社
- 發行時間:
- 2020年07月01
本書首先系統地介紹了軟件安全開發的基礎知識,包括軟件開發的現狀和常見的開發生命週期模型;在傳統需求分析方法基礎上介紹軟件安全需求與設計,重點介紹威脅建模方法;並結合軟件開發模型介紹軟件發佈和部署階段的安全措施;之後具體結合C、C++、Java、PHP、Python等語言,詳細講解其安全現狀、常見漏洞和編碼規範;最後概述了安全測試的流程和方法,並結合典型案例讓學生能夠對這些代碼中的安全漏洞有比較全面和深入的瞭解,從而在實際研發工作中避免出現相似漏洞。
1.1.1軟件安全面臨的挑戰1
1.1.2軟件安全開發問題2
1.1.3軟件安全問題成因5
1.3.1安全開發生命週期11
1.3.2內建安全成熟度模型14
1.3.3軟件保證成熟度模型15
1.3.4綜合的輕量應用安全過程16
2.1.1安全需求的定義18
2.1.2安全需求的標準19
2.2.1安全需求分析過程20
2.2.2安全需求分析的常用方法20
2.3.1系統設計內容23
2.3.2安全設計原則24
2.4.1危險性分析27
2.4.2基於模式的軟件安全設計27
2.4.3安全關鍵單元的確定和設計29
2.5.1威脅建模概述29
2.5.2威脅建模過程302.5.3威脅建模的輸出與緩解35
3.2.1緩衝區溢出漏洞38
3.2.2釋放後使用漏洞39
3.2.3整型溢出漏洞40
3.2.4空指針解引用漏洞40
3.2.5格式化字符串漏洞41
3.2.6內存泄漏42
3.2.7二次釋放漏洞42
3.2.8類型混淆漏洞43
3.2.9未初始化漏洞43
4.2.1SQL注入漏洞48
4.2.2XSS漏洞51
4.2.3重定向漏洞55
4.2.4路徑遍歷漏洞57
4.2.5不安全的安全哈希算法60
4.2.6XPath注入漏洞61
4.2.7硬編碼密碼63
4.3.1聲明和初始化64
4.3.2表達式69
4.3.3面向對象73
4.3.4方法75
4.3.5異常處理77
4.3.6線程鎖81
4.3.7線程API83
4.3.8輸入輸出87
5.2.1會話攻擊94
5.2.2命令注入攻擊95
5.2.3客户端腳本注入攻擊96
5.2.4變量覆蓋漏洞98
5.2.5危險函數99
5.3.1語言規範102
5.3.2程序註釋103
5.3.3項目規範104
5.3.4特殊規範105
5.3.5配置安全106
6.2.1代碼注入的防禦111
6.2.2密碼存儲方式112
6.2.3異常處理機制113
6.2.4文件上傳漏洞的防禦115
6.3.1代碼佈局116
6.3.2註釋語句117
6.3.3命名規範118
6.3.4函數安全120
6.3.5編程建議121
7.2.1安全測試具體流程125
7.2.2安全測試具體內容127
7.2.3安全測試原則129
7.2.4PDCA循環129
7.3.1人工審查131
7.3.2代碼分析131
7.3.3模糊測試134
7.3.4滲透測試138
8.1.1最終安全審查141
8.1.2安全事故響應計劃143
8.2.1漏洞管理143
8.2.2環境強化143
8.2.3操作激活143