书籍详情
源代码安全审计基础(NSATP-SCA)
作者:霍珊珊 等
出版社:电子工业出版社
出版时间:2023-02-01
ISBN:9787121449710
定价:¥120.00
购买这本书可以去
内容简介
本书内容是注册网络安全源代码审计专业人员(NSATP-SCA)认证培训的理论知识部分,对代码审计的基础知识和涉及的内容、代码安全审计规范和审计指标进行了全面的介绍,同时,针对目前常用的程序设计语言Java、C/C++和C#,分别基于其特点和漏洞测试规范中的案例进行了具体的分析和解读。本书参考了大量国内外代码安全审计规范、安全开发规范、常见漏洞库和相关文献,并进行了解析、汇总和提取,以系统地阐述代码审计的思想、技术和方法,构建完备的代码审计知识体系,旨在为代码审计人员提供全面和系统的指导。
作者简介
本书作者牵头《GB/T 36958-2018 信息安全技术 网络安全等级保护安全管理中心技术要求》,参与《GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求》等10余项国家标准和行业标准的制定,作为项目负责人完成了《信息技术安全通用评价机制和关键技术研究》、《产品和服务网络安全审查指标体系建设和评价方法研究》等国家重点研发计划课题项目,发表了《网络安全测评领域能力验证的设计方法和关键技术研究》等多篇期刊论文。
目录
目 录
第1篇 代码审计基础
第1章 代码安全现状 2
1.1 典型漏洞代码案例分析 2
1.2 代码审计的基本思想 5
1.3 代码审计的现状 5
第2章 代码审计概述 7
2.1 代码审计的概念 7
2.2 代码审计对象 7
2.3 代码审计的目的 7
2.4 代码审计的原则 7
2.5 代码审计要素 8
2.6 代码审计的内容 9
2.6.1 认证管理 9
2.6.2 授权管理 11
2.6.3 输入/输出验证 11
2.6.4 密码管理 12
2.6.5 调试和接口 12
2.6.6 会话管理 13
2.7 代码审计的成果 13
2.8 代码审计的价值与意义 14
2.9 代码审计的发展趋势 14
第3章 代码审计与漏洞验证相关工具 15
3.1 常用代码编辑器 15
3.2 常用代码审计工具 18
3.3 常用漏洞验证工具 23
第4章 代码审计方法 28
4.1 自上而下 28
4.1.1 通读代码的技巧 28
4.1.2 应用案例 30
4.2 自下而上 39
4.3 利用功能点定向审计 42
4.4 优先审计框架安全 44
4.5 逻辑覆盖 45
4.5.1 白盒测试 45
4.5.2 逻辑覆盖法 47
4.6 代码审计方法综合应用示例 54
第5章 代码审计技术 56
5.1 词法分析 56
5.2 语法分析 59
5.3 基于抽象语法树的语义分析 59
5.4 控制流分析 63
5.5 数据流分析 65
5.6 规则检查分析 66
小结 67
参考资料 68
第2篇 代码审计规范
第6章 代码审计规范解读 72
6.1 代码审计说明 72
6.2 常用术语 72
6.3 代码审计的时机 73
6.4 代码审计方法 73
6.5 代码审计流程 74
6.6 代码审计报告 76
第7章 代码审计指标 78
7.1 安全功能缺陷审计指标 78
7.1.1 数据清洗 78
7.1.2 数据加密与保护 86
7.1.3 访问控制 88
7.1.4 日志安全 92
7.2 代码实现缺陷审计指标 92
7.2.1 面向对象程序安全 92
7.2.2 并发程序安全 95
7.2.3 函数调用安全 97
7.2.4 异常处理安全 100
7.2.5 指针安全 101
7.2.6 代码生成安全 103
7.3 资源使用缺陷审计指标 103
7.3.1 资源管理 103
7.3.2 内存管理 106
7.3.3 数据库使用 110
7.3.4 文件管理 110
7.3.5 网络传输 111
7.4 环境安全缺陷审计指标 113
小结 113
参考资料 114
第3篇 代码安全审计参考规范
第8章 国际代码安全开发参考规范 116
8.1 CVE 116
8.1.1 CVE概述 116
8.1.2 CVE的产生背景 116
8.1.3 CVE的特点 116
8.1.4 CVE条目举例 117
8.2 OWASP 118
8.2.1 OWASP概述 118
8.2.2 OWASP Top 10 118
8.2.3 OWASP安全测试指导方案 139
8.2.4 OWASP安全计划指导方案 140
8.2.5 OWASP应用程序管理方案 141
8.3 CWE 143
第9章 国内源代码漏洞测试规范 165
9.1 软件测试 165
9.2 《Java语言源代码漏洞测试规范》解读 171
9.2.1 适用范围 171
9.2.2 术语和定义 171
9.2.3 Java源代码漏洞测试总则 174
9.2.4 Java源代码漏洞测试工具 178
9.2.5 Java源代码漏洞测试文档 179
9.2.6 Java源代码漏洞测试内容 183
9.3 《C/C++语言源代码漏洞测试规范》解读 229
9.3.1 适用范围 230
9.3.2 术语和定义 230
9.3.3 C/C++源代码漏洞测试总则 232
9.3.4 C/C++源代码漏洞测试工具 236
9.3.5 C/C++源代码漏洞测试文档 236
9.3.6 C/C++源代码漏洞测试内容 236
9.4 《C#语言源代码漏洞测试规范》解读 272
9.4.1 适用范围 273
9.4.2 术语和定义 273
9.4.3 C#源代码漏洞测试总则 276
9.4.4 C#源代码漏洞测试工具 279
9.4.5 C#源代码漏洞测试文档 280
9.4.6 C#源代码漏洞测试内容 280
小结 329
参考资料 330
第4篇 实际开发中的常见漏洞分析
第10章 实际开发中常见的Java源代码漏洞分析 334
10.1 SQL注入 334
10.2 跨站脚本攻击 341
10.3 命令注入 347
10.4 密码硬编码 351
10.5 隐私泄露 353
10.6 Header Manipulation 356
10.7 日志伪造 358
10.8 单例成员字段 361
第11章 实际开发中常见的C/C++源代码漏洞分析 364
11.1 二次释放 364
11.2 错误的内存释放对象 366
11.3 返回栈地址 367
11.4 返回值未初始化 369
11.5 内存泄漏 370
11.6 资源未释放 371
11.7 函数地址使用不当 372
11.8 解引用未初始化的指针 374
小结 375
参考资料 375
英文缩略语 377
第1篇 代码审计基础
第1章 代码安全现状 2
1.1 典型漏洞代码案例分析 2
1.2 代码审计的基本思想 5
1.3 代码审计的现状 5
第2章 代码审计概述 7
2.1 代码审计的概念 7
2.2 代码审计对象 7
2.3 代码审计的目的 7
2.4 代码审计的原则 7
2.5 代码审计要素 8
2.6 代码审计的内容 9
2.6.1 认证管理 9
2.6.2 授权管理 11
2.6.3 输入/输出验证 11
2.6.4 密码管理 12
2.6.5 调试和接口 12
2.6.6 会话管理 13
2.7 代码审计的成果 13
2.8 代码审计的价值与意义 14
2.9 代码审计的发展趋势 14
第3章 代码审计与漏洞验证相关工具 15
3.1 常用代码编辑器 15
3.2 常用代码审计工具 18
3.3 常用漏洞验证工具 23
第4章 代码审计方法 28
4.1 自上而下 28
4.1.1 通读代码的技巧 28
4.1.2 应用案例 30
4.2 自下而上 39
4.3 利用功能点定向审计 42
4.4 优先审计框架安全 44
4.5 逻辑覆盖 45
4.5.1 白盒测试 45
4.5.2 逻辑覆盖法 47
4.6 代码审计方法综合应用示例 54
第5章 代码审计技术 56
5.1 词法分析 56
5.2 语法分析 59
5.3 基于抽象语法树的语义分析 59
5.4 控制流分析 63
5.5 数据流分析 65
5.6 规则检查分析 66
小结 67
参考资料 68
第2篇 代码审计规范
第6章 代码审计规范解读 72
6.1 代码审计说明 72
6.2 常用术语 72
6.3 代码审计的时机 73
6.4 代码审计方法 73
6.5 代码审计流程 74
6.6 代码审计报告 76
第7章 代码审计指标 78
7.1 安全功能缺陷审计指标 78
7.1.1 数据清洗 78
7.1.2 数据加密与保护 86
7.1.3 访问控制 88
7.1.4 日志安全 92
7.2 代码实现缺陷审计指标 92
7.2.1 面向对象程序安全 92
7.2.2 并发程序安全 95
7.2.3 函数调用安全 97
7.2.4 异常处理安全 100
7.2.5 指针安全 101
7.2.6 代码生成安全 103
7.3 资源使用缺陷审计指标 103
7.3.1 资源管理 103
7.3.2 内存管理 106
7.3.3 数据库使用 110
7.3.4 文件管理 110
7.3.5 网络传输 111
7.4 环境安全缺陷审计指标 113
小结 113
参考资料 114
第3篇 代码安全审计参考规范
第8章 国际代码安全开发参考规范 116
8.1 CVE 116
8.1.1 CVE概述 116
8.1.2 CVE的产生背景 116
8.1.3 CVE的特点 116
8.1.4 CVE条目举例 117
8.2 OWASP 118
8.2.1 OWASP概述 118
8.2.2 OWASP Top 10 118
8.2.3 OWASP安全测试指导方案 139
8.2.4 OWASP安全计划指导方案 140
8.2.5 OWASP应用程序管理方案 141
8.3 CWE 143
第9章 国内源代码漏洞测试规范 165
9.1 软件测试 165
9.2 《Java语言源代码漏洞测试规范》解读 171
9.2.1 适用范围 171
9.2.2 术语和定义 171
9.2.3 Java源代码漏洞测试总则 174
9.2.4 Java源代码漏洞测试工具 178
9.2.5 Java源代码漏洞测试文档 179
9.2.6 Java源代码漏洞测试内容 183
9.3 《C/C++语言源代码漏洞测试规范》解读 229
9.3.1 适用范围 230
9.3.2 术语和定义 230
9.3.3 C/C++源代码漏洞测试总则 232
9.3.4 C/C++源代码漏洞测试工具 236
9.3.5 C/C++源代码漏洞测试文档 236
9.3.6 C/C++源代码漏洞测试内容 236
9.4 《C#语言源代码漏洞测试规范》解读 272
9.4.1 适用范围 273
9.4.2 术语和定义 273
9.4.3 C#源代码漏洞测试总则 276
9.4.4 C#源代码漏洞测试工具 279
9.4.5 C#源代码漏洞测试文档 280
9.4.6 C#源代码漏洞测试内容 280
小结 329
参考资料 330
第4篇 实际开发中的常见漏洞分析
第10章 实际开发中常见的Java源代码漏洞分析 334
10.1 SQL注入 334
10.2 跨站脚本攻击 341
10.3 命令注入 347
10.4 密码硬编码 351
10.5 隐私泄露 353
10.6 Header Manipulation 356
10.7 日志伪造 358
10.8 单例成员字段 361
第11章 实际开发中常见的C/C++源代码漏洞分析 364
11.1 二次释放 364
11.2 错误的内存释放对象 366
11.3 返回栈地址 367
11.4 返回值未初始化 369
11.5 内存泄漏 370
11.6 资源未释放 371
11.7 函数地址使用不当 372
11.8 解引用未初始化的指针 374
小结 375
参考资料 375
英文缩略语 377
猜您喜欢