源代码安全审计基础——注册网络安全源代码审计专业人员(NSATP-SCA)培训认证教材
定 价:120 元
- 作者:霍珊珊等
- 出版时间:2023/2/1
- ISBN:9787121449710
- 出 版 社:电子工业出版社
- 中图法分类:TP311.52
- 页码:
- 纸张:
- 版次:
- 开本:
本书内容是注册网络安全源代码审计专业人员(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 CVE116
8.1.1 CVE概述116
8.1.2 CVE的产生背景116
8.1.3 CVE的特点116
8.1.4 CVE条目举例117
8.2 OWASP118
8.2.1 OWASP概述118
8.2.2 OWASP Top 10118
8.2.3 OWASP安全测试指导方案139
8.2.4 OWASP安全计划指导方案140
8.2.5 OWASP应用程序管理方案141
8.3 CWE143
第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 Manipulation356
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