前言

Preface

背景

近年来,我国对网络安全高度重视。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 安全代码审查指南”项目保持跟进,持续完善和深化本书。