新書推薦:
《
Python贝叶斯深度学习
》
售價:NT$
407.0
《
文本的密码:社会语境中的宋代文学
》
售價:NT$
306.0
《
启微·狂骉年代:西洋赛马在中国
》
售價:NT$
357.0
《
有趣的中国古建筑
》
售價:NT$
305.0
《
十一年夏至
》
售價:NT$
347.0
《
如何打造成功的商业赛事
》
售價:NT$
407.0
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
《
慈悲与玫瑰
》
售價:NT$
398.0
內容簡介:
本书分为两大部分,共15章。*部分包含第1~4章,介绍了安全代码审查的作用和方法,以及在软件安全开发生命周期(S-SDLC)代码审查过程中查找安全漏洞的方法。第二部分包含第5~15章,介绍2013年版《OWASP Top 10》中提出的安全风险的处理方法和技术,以及其他漏洞处理的方法和技术。本书适合软件研发组织机构的高层管理人员、专业技术负责人、开发人员、测试人员和软件安全人员,以及高等院校软件工程、网络安全专业的师生等阅读学习。
關於作者:
OWASP基金会是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究,在业界具有一流的影响力和权威性。作为OWASP面向中国的区域分支,OWASP中国自2006年正式启动,目前已拥有来自互联网安全专业领域和政府、电信、金融、教育等相关领域的会员5000多名,形成了强大的专业技术实力和行业资源聚集能力,有力推动了安全标准、安全测试工具、安全指导手册等应用安全技术在中国的发展,成为了积极推动中国互联网安全技术创新、人才培养和行业发展的中坚力量。作为OWASP中国的运营中心,互联网安全研究中心(Security Zone,简称SecZone)是国内首个独立、开源的互联网安全研究机构。中心始终秉持引入、吸收、创新的发展宗旨,专注于互联网安全前沿技术和OWASP项目的深度研究,常年组织开展各类开源培训及沙龙活动,致力于通过对国内外技术、资源的整合、应用和创新,更好地服务业界同仁、服务行业发展,更有力地推动国内互联网安全技术的进步与升级。
目錄 :
第1章如何使用《应用软件安全代码审查指南》1
第2章安全代码审查4
2.1为什么代码有漏洞5
2.2代码审查和安全代码审查之间的区别是什么6
2.3什么是安全代码审查6
2.4确定安全代码审查的范围7
2.5我们不能破解自己的安全性9
2.6安全代码审查和渗透测试耦合11
2.7安全代码审查对开发实践的好处13
2.8安全代码审查的技术15
2.9安全代码审查与合规性15
第3章安全代码审查的方法论18
3.1制定安全代码审查流程时需要考虑的因素19
3.1.1风险19
3.1.2目的与背景19
3.1.3代码行数19
3.1.4编程语言20
3.1.5资源、时间和期限20
3.2在S-SDLC中集成安全代码审查20
3.3何时进行安全代码审查21
3.4敏捷和瀑布开发中的安全代码审查23
3.5基于风险的安全代码审查方法23
3.6安全代码审查准备26
3.7安全代码审查发现和信息收集28
3.8静态代码分析30
3.9应用威胁建模34
3.10度量指标和安全代码审查42
3.11代码爬行45
第4章安全代码审查注意事项47
第5章A1注入攻击49
5.1概述50
5.2概览50
5.3SQL盲注51
5.3.1SQL查询参数化51
5.3.2安全的字符串拼接52
5.3.3运用灵活的参数化语句53
5.3.4PHP SQL注入54
5.3.5Java SQL注入55
5.3.6.NET SQL注入55
5.3.7参数集合56
5.4要点回顾57
5.5OWASP参考资料57
5.6其他参考资料58
第6章A2失效的身份认证和会话管理59
6.1失效的身份认证60
6.1.1概述60
6.1.2概览60
6.1.3如何审查60
6.1.4参考资料62
6.1.5被遗忘的密码62
6.1.6验证码64
6.1.7带外通信66
6.2A2会话管理68
6.2.1概述68
6.2.2概览68
6.2.3审查的内容69
6.2.4会话超时70
6.2.5会话注销和结束71
6.2.6会话管理的服务器端防御72
第7章A3跨站脚本攻击(XSS)74
7.1什么是跨站脚本攻击(XSS)75
7.2概览75
7.3如何审查75
7.3.1安全代码审查需要详尽75
7.3.2工具介绍76
7.4OWASP参考资料77
7.5其他参考资料77
第8章A4不安全的直接对象引用79
8.1概述80
8.2概览80
8.3如何审查80
8.3.1SQL注入80
8.3.2HTTP POST请求81
8.3.3间接引用映射81
8.3.4数据绑定技术82
8.3.5安全设计建议82
8.3.6审查准则82
8.4安全代码审查人员应该做什么82
8.5MVC.NET中的绑定问题83
8.5.1相应的视图(HTML)83
8.5.2建议84
8.6参考资料84
第9章A5安全配置错误85
9.1Apache Struts86
9.2Java企业版声明配置87
9.3JEE注释91
9.4框架特定配置:Apache Tomcat92
9.5框架特定配置:Jetty93
9.6框架特定配置:JBoss AS94
9.7框架特定配置:Oracle WebLogic94
9.8程序配置:JEE95
9.9Microsoft IIS97
9.10框架特定配置:Microsoft II99
9.11程序配置:Microsoft IIS102
9.12进一步的IIS配置103
9.12.1过滤请求和URL重写103
9.12.2参考资料111
9.13强名称111
9.13.1如何使用强名称112
9.13.2参考资料115
9.14Round Tripping115
9.14.1混淆的重要性116
9.14.2使用混淆116
9.14.3ASPNetCon?gs116
9.14.4参考资料118
9.15.NET验证控件118
第10章A6敏感数据暴露124
10.1加密控制125
10.1.1概述125
10.1.2审查内容:传输保护127
10.1.3审查内容:存储保护129
10.1.4加密、哈希和盐值135
10.1.5参考资料138
10.2减少攻击面139
10.2.1概述139
10.2.2审查内容140
10.2.3参考资料141
第11章A7功能级权限控制缺失142
11.1授权143
11.2概述144
11.3注意事项146
11.4访问控制备忘单148
11.4.1硬编码方法148
11.4.2防御访问控制攻击148
第12章A8跨站请求伪造(CSRF)150
12.1概述151
12.2CSRF的工作原理152
12.3注意事项153
12.3.1无效的防御措施153
12.3.2高风险功能154
12.3.3防御CSRF攻击154
第13章A9使用含有已知漏洞的组件159
13.1概述160
13.2注意事项160
第14章A10未经验证的重定向和转发162
14.1概述163
14.2注意事项164
14.3参考资料166
第15章其他技术167
15.1HTML5168
15.1.1概述168
15.1.2注意事项:Web信息传递168
15.1.3注意事项:跨源资源共享169
15.1.4注意事项:WebSockets170
15.1.5注意事项:服务器推送事件172
15.2同源策略172
15.2.1概述172
15.2.2注意事项173
15.3审计日志代码174
15.3.1概述174
15.3.2注意事项175
15.3.3参考资料176
15.4错误处理177
15.4.1概述177
15.4.2注意事项178
15.4.3注意事项:安全的失败180
15.4.4注意事项:潜在漏洞代码180
15.4.5注意事项:IIS错误处理183
15.4.6注意事项:在Apache中处理错误185
15.4.7注意事项:领先的实践错误处理186
15.4.8注意事项:捕获异常的顺序187
15.4.9注意事项:释放资源和良好的资源管理188
15.4.10参考资料190
15.5查看安全警报190
15.5.1概述190
15.5.2注意事项192
15.6检查主动防御193
15.6.1概述193
15.6.2注意事项194
15.6.3参考资料196
15.7竞争条件196
15.7.1概述196
15.7.2注意事项197
15.7.3参考资料198
15.8缓冲区溢出198
15.8.1概述198
15.8.2注意事项:缓冲区溢出200
15.8.3注意事项:格式函数溢出201
15.8.4注意事项:整数溢出202
15.8.5参考资料204
附录A软件安全开发生命周期图表205
附录B安全代码审查清单210
附录C威胁建模示例214
C.1威胁建模示例步骤1:分解应用214
C.2威胁建模示例步骤2:威胁分类219
C.3威胁建模示例步骤3:确定对策221
附录D代码爬虫224
D.1在.NET中搜索代码224
D.2在Java中搜索代码230
D.3在经典ASP中搜索代码234
D.4在JavaScript和Ajax中搜索代码236
D.5在C和Apache中搜索代码236
附录E参考资料239
內容試閱 :
序1
关于指南
《应用软件安全代码审查指南》是为应用程序研发组织机构的高层管理人员、专业技术负责人、开发人员、测试人员、软件安全人员及其他负责代码审查人员等编写的技术书籍,由《OWASP代码审查指南(第2.0版)》翻译而来。
版权和许可证
版权所有?20082016 OWASP基金会。本书依照《知识共享署名授权许可协议3.0》发布(许可协议参见:http:creativecommons.orglicensesby-sa3.0)。本书的方法论是开源的,但是基于本指南的重用、分发、翻译和商业用途,必须向他人明确这项工作的许可条款。
发布历史
《OWASP代码审查指南(第2.0版)》发布于2017年,该OWASP项目由Larry Conklin和Gary Robinson领导。
序2
《OWASP代码审查指南(第2.0版)》已成功引入当前主流的安全威胁和对策。此版本还包括了能反映OWASP组织有关安全代码审查最佳实践经验的新内容。
内容说明
本指南旨在向软件开发人员和管理人员建议有关安全代码审查的最佳实践,以及如何在软件安全开发生命周期(S-SDLC)中使用它。本指南的开头部分向读者介绍了安全代码审查,以及如何将其引入公司的S-SDLC中。随后,本指南集中在特定的技术主题,并提供了审查人员应该在审查技术代码时查找的样例。要特别指出的是,本指南包括如下几部分。
1. 概述
本部分向读者介绍了安全代码审查,以及安全代码审查可以为开发组织带来的好处。另外,还对安全代码审查技术进行了概述,并介绍了安全代码审查与其他安全代码分析技术的对比。
2. 方法论
本部分详细介绍了如何将安全代码审查技术集成到开发组织的S-SDLC中,以及安全代码审查人员如何确保他们执行有效的安全代码审查。另外,本部分还包含了在安全代码审查中应用基于风险的信息,使用威胁模型了解正在审查的应用程序,以及了解由外部业务所驱动的应用程序是如何影响安全代码审查需要的。
3. 基于控制技术的审查
本部分深入常见的安全控制技术,包括身份验证、授权、日志记录和信息防泄露,并使用多种语言的安全代码示例指导审查人员。本部分可用于学习各种控件的重要方面,并在执行安全代码审查时作为直接参考。
4. 基于安全漏洞的审查
本部分深入分析了常见的应用程序安全漏洞,包括XSS、SQL注入和会话跟踪问题。与前面的内容一样,读者可以了解各种安全漏洞的信息,并将本指南作为直接参考。
前言
背景
近年来,我国对网络安全高度重视。2016年年底至2017年,国家先后发布并实施了《网络空间安全战略》《网络安全法》《关于加强网络安全学科建设和人才培养的意见》等法律法规和国家指导意见,并对全国各行各业提出了保护网络运行安全和网络数据安全的要求。与此同时,诸如Equifax企业数据泄露这样由应用软件程序漏洞所引起的全球性网络安全事件仍不时刺痛着人们的神经。随着行业与技术的快速发展,越来越多的安全研究机构、软件研发团队、专家学者认识到:做好软件安全开发、做好软件安全开发生命周期(S-SDLC)管理,才是从技术上解决网络安全的根本之道。国内大量企业也已开始关注、规划和实践S-SDLC。我国有关部门也逐渐针对软件安全开发领域,陆续推出了有关软件安全开发的人员能力认证、企业安全开发成熟度认定及软件产品安全检验等全方位的工作。
那么,软件研发团队应该如何开展软件安全开发工作或S-SDLC实践工作呢?软件研发团队应该如何快速着手软件安全开发呢?软件开发人员和安全人员如何建立一致的交流语言呢?软件安全开发如何与DevOps相融合呢?本书就是基于这样的背景译制的。
项目简介
《OWASP代码审查指南(第2.0版)》最初是从《OWASP测试指南》中诞生的,其内容涵盖在《OWASP测试指南》中,因为在那时候是恰当的。但是,随着安全代码审查涉及的主题越来越多,其逐步发展成为一个独立的指南。
OWASP在2006年启动了审查人员项目。而本版本则是在2013年4月OWASP重启项目(OWASP Project Reboot)的指导下开始的,并获得了美国国土安全部的项目资金赞助。
OWASP代码审查项目团队由一批少量但颇有才华的志愿者组成。这些志愿者具有丰富的经验,并在各类企业组织(从小型的初创公司到世界上最大的软件开发企业)中推动安全代码审查的最佳实践。
在软件开发生命周期的早期检测软件中的Bug,可以以较低的成本投入更加有效地生产和开发更安全的软件,这已是一个常识。将适当的安全代码审查功能集成到软件安全开发生命周期(S-SDLC)中的企业组织,可以开发出安全性明显较好的代码。简单来说,我们不能攻击自己的安全性。相对于为安全运营人员分配的时间,攻击者有更多的时间去探寻应用系统中的漏洞。攻击者对软件系统的入侵和攻击,是一个人数不均、力量不对等的战争和一场极有可能失败的战斗。
本指南没有包含所有的编程语言,主要侧重于C#、.NET和Java,但在有些部分包含了C、C、PHP和其他语言。本书提倡的技术可以很容易地适应几乎任何代码环境。幸运的是(或不幸运的是),Web应用程序中的安全漏洞在不同的编程语言中是非常相似的。
读者对象
本书的主要读者对象包括:
? 软件研发组织机构的高层管理人员。
? 软件研发组织机构的专业技术负责人。
? 软件研发人员、软件测试人员和软件安全人员。
? 软件安全开发服务咨询与培训相关人员,网络安全前沿领域的专家学者。
? 高等院校软件工程专业和网络安全专业的教育工作者。
? 高等院校软件工程专业和网络安全专业的在校学生。
? 对软件安全开发感兴趣的个人。
内容结构
本书分为两大部分,共15章。第一部分包含第1~4章,介绍了安全代码审查的作用和方法,以及在软件安全开发生命周期(S-SDLC)审查人员过程中查找安全漏洞的方法。第二部分包含第5~15章,介绍了2013年版《OWASP Top 10》中提出的安全风险的处理方法和技术,以及其他漏洞处理的方法和技术。
全书由王颉负责总体架构设计,由Rip、李绪勤、郭锡泉担任翻译顾问,由夏天泽、余瞰、陈香锡进行技术指导。前言、第1、2章由王颉翻译,第3章由杨盛明翻译,第4章由陈中举翻译,第5、6章由何伊圣翻译,第7、8章由徐瑞祝和何伊圣共同翻译,第9~15章由何伊圣翻译,附录由陈中举翻译。全书由赵学文统稿与编排。
致谢
特别感谢OWASP总部对OWASP中国组织开展中文版《应用软件安全代码审查指南》相关工作予以的支持。
感谢OWASP中国和SecZone自OWASP Code Review Guide(V 2.0)发布以来对该项目持续的跟进、翻译、研究与分享。同时,也对该项目的参与人员表示感谢。
OWASP中国将对OWASP 安全代码审查指南项目保持跟进,持续完善和深化本书。