《軟件供應鏈安全:源代碼缺陷實例剖析》

奇安信原創出版書籍
圖書作者:
奇安信代碼安全實驗室
出版商:
電子工業出版社
發行時間:
2021年09月01
立即購買

內容簡介 CONTENT VALIDITY

        源代碼缺陷是指在軟件開發生命週期的編碼階段,產生的有意或者無意的缺陷。為了便於讀者更好地瞭解各種缺陷的基本特性,本書根據缺陷產生的原因、造成的結果以及表現形式等因素,將60種重要且常見缺陷分為3大類:輸入驗證類、資源管理類和代碼質量類。全書分為4章,第1章概述了源代碼缺陷的基本概念、發現缺陷的方法、自動化缺陷檢測技術、缺陷處置流程、缺陷種類劃分、代碼審計工具、代碼安全保障技術趨勢;第2章至第4章通過具體實例依次介紹了各類缺陷的原理、危害、在代碼中的表現形式及修復建議。本書適合有一定計算機編碼基礎和網絡安全基礎的讀者閲讀,也適合作為網絡安全愛好者的參考書。

更多

作者簡介 ABOUT THE AUTHORS

        奇安信代碼安全實驗室專注於軟件源代碼安全分析技術和二進制漏洞挖掘技術的研究與開發。基於多年的技術積累,奇安信代碼安全實驗室在國內率先推出了自主可控的軟件代碼安全分析系統――奇安信代碼衞士和奇安信開源衞士。奇安信代碼安全實驗室支撐***漏洞平台的技術工作,多次向國家信息安全漏洞庫(CNNVD)和國家信息安全漏洞共享平台(CNVD)報送原創通用型漏洞信息,並獲得表彰。同時,還為微軟、谷歌、蘋果、華為等大型廠商和機構的軟件安全缺陷和漏洞發現提供服務與支撐,並以期為更多用户構建代碼安全保障體系,消除軟件代碼安全隱患。


更多

目錄 CONTENTS

第1章 概述 1

              1.1     缺陷的基本概念 1
              1.2     發現缺陷的方法 2
              1.3     自動化缺陷檢測技術 4
              1.4     缺陷處置流程 5
              1.5     缺陷種類劃分 6
              1.6     代碼審計工具使用實例 11
              1.7     代碼安全保障技術趨勢前瞻 14


第2章 輸入驗證類缺陷分析 17

              2.1     SQL注入 17
              2.2     XML外部實體注入 20
              2.3     命令注入 24
              2.4     XPath注入 28
              2.5     LDAP注入 32
              2.6     JSON注入 37
              2.7     XQuery注入 40
              2.8     HTTP響應截斷 43
              2.9     不安全的反序列化(XStream) 46
              2.10   動態解析代碼 49
              2.12   反射型XSS 54
              2.13   存儲型XSS 58
              2.14   弱驗證 62
              2.15   組件間通信XSS 66
              2.16   進程控制 69
              2.17   路徑遍歷 72
              2.18   重定向 76
              2.19   日誌偽造 79


第3章 資源管理類缺陷分析 82

              3.1     緩衝區上溢 82
              3.2     緩衝區下溢 85
              3.3     越界訪問 88
              3.4     釋放後使用 91
              3.5     二次釋放 94
              3.6     內存泄漏 97
              3.7     文件資源未釋放 99
              3.8     流資源未釋放 101
              3.9     錯誤的資源關閉 105
              3.10   重複加鎖 107
              3.11   錯誤的內存釋放對象 110
              3.12   錯誤的內存釋放方法 113
              3.13   返回棧地址 115
              3.14   被污染的內存分配 117
              3.15   數據庫訪問控制 122
              3.16   硬編碼密碼 125
              3.17   不安全的隨機數 128
              3.18   不安全的哈希算法 131
              3.19   弱加密 135
              3.20   硬編碼加密密鑰 139


第4章 代碼質量類缺陷分析 141

              4.1     有符號整數溢出 141
              4.2     無符號整數迴繞 144
              4.3     空指針解引用 147
              4.4     解引用未初始化的指針 149
              4.5     除數為零 151
              4.6     在scanf()函數中沒有對%s格式符進行寬度限制 154
              4.7     被污染的格式化字符串 157
              4.8     不當的循環終止 160
              4.9     雙重檢查鎖定 162
              4.10  未初始化值用於賦值操作 165
              4.11   參數未初始化 167
              4.12   返回值未初始化 169
              4.13   Cookie:未經過SSL加密 171
              4.14   郵件服務器建立未加密的連接 174
              4.15   不安全的SSL:過於廣泛的信任證書 176
              4.16   Spring Boot配置錯誤:不安全的Actuator 179
              4.17   未使用的局部變量 181
              4.18   死代碼 182
              4.19   函數調用時參數不匹配 184
              4.20   不當的函數地址使用 186
              4.21   忽略返回值 188