原创

《代码审计:企业级web代码安全架构》

写在前面:本书作者是博主朋友,现在在阿里巴巴负责安全工作,本书的知识全是作者在一线工作的总结和精华之作。对安全有兴趣的朋友可以多多捧场!
2015年11月,在每天都被问到什么时候能买到的情况下,我的个人原著《代码审计:企业级web代码安全架构》终于开始预售(本文的目录更细,实书封面会是黑色这个),它是代码安全审计领域的第一本书,这本书从2014年5月开始动笔,时至今日,已经过去一年半之久。 2014年4月的时候我在北京国际会议中心参加了qcon(全球软件开发者大会)并演讲了议题《移动APP背后的安全问题》,会后机械工业出版社编辑吴怡老师找到我,问我有没有想法写一本移动安全方面的书,当时移动安全正热,这方面的内容也比较少,我虽然拒绝了,不过心里还是一直有想法写一本书,一是可以提升自己的影响力,二来算是给自己的积累做一个总结,三来算给安全行业贡献一份力量。 这本书本该在2014年年底就完成,14年9月我从创新工场安全宝离职加入到阿里巴巴之后,将近有一年的时间只字未动,导致了书的面世推迟。

购买链接:《代码审计企业级web代码安全架构》

一、为什么要写这本书? 这本书真正意义在于它承载了我在安全行业的使命,“建设更安全的互联网”这是道哥一直在讲也一直在做的事,我从加入安全行业之后一直与他在共事,非常认同他的这个理念,本书请了道哥作序,同时也把这句话作为这本书的使命。 二、这本书有哪些亮点? 这本书由浅入深讲解代码审计,比较有亮点的章节是第二部分的三、四、五、六、七、八章,主要讲漏洞的挖掘思路、技巧和修复方法,每种漏洞都有多个案例,站在攻击者的角度分析漏洞之后,再给出漏洞的修复方法。 另外一个比较有亮点的地方在第三部分的十一章【应用功能的安全设计】、十二章【应用安全体系建设】,所有的应用都是一个个功能堆砌起来的,在十一章详细介绍各种应用功能怎么样设计更加安全,从攻击者的角度详细分析常见功能通常会出现的安全问题,在分析出这些安全问题的利用方式后,再给出问题的解决方案,如果你是应用架构师或者研发工程师,这些能够帮助你在设计程序功能的时候避免这些安全问题。第十二章介绍应用安全体系建设中应该注意的点,比如用户密码策略、权限控制、敏感操作多因素验证等等,采用纵深防御和横向细化策略的防御原则,从应用程序本身的角度去考虑安全建设。 三、这本书有哪些内容? 第一部分 代码审计前的准备 本书总共分为三个部分,第一部分为代码审计前的准备,而这一部分又分为第一章“PHP运行环境搭建”以及第二章“审计辅助与漏洞验证工具”两大章,第一章详细介绍我们在学习代码审计前需要了解的PHP核心配置文件以及PHP环境搭建的方法,第二章这是介绍学习PHP代码审计,我们需要准备的工具,以及这些工具的详细使用方法。 第二部分 漏洞发现与防范 第二部分包括三、四、五、六、七、八章一共六章,将着重介绍PHP代码审计的中漏洞挖掘思路与防范方法。 其中第三章详细介绍PHP代码审计的思路,包括根据关键字回溯参数、通读全文代码以及根据功能点定向挖掘漏洞的三个思路。 第四、五、六章则是常见漏洞的审计方法,共分为基础篇、进阶篇以及深入篇,涵盖到SQL注入漏洞、XSS漏洞、文件操作漏洞、代码/命令执行漏洞、变量覆盖漏洞以及逻辑处理等等漏洞。 第七章介绍二次漏洞的挖掘方法,二次漏洞在逻辑上比常规漏洞要复杂,所以我们需要单独拿出来,以实例来进行介绍。 在经过前面几章的代码审计方法学习之后,相信大家已经能够挖掘不少有意思的漏洞,在第八章,将会介绍更多代码审计中的小技巧,利用这些小技巧可以挖掘到更多有意思的漏洞。 每类漏洞都有多个真实漏洞案例的分析过程,可以真正帮助大家学习代码审计的经验,不过这章不仅仅是介绍了漏洞的挖掘方法,还详细介绍了这些漏洞的修复方法,对开发者来说是非常有用的一部分内容。 第三部分 安全编程的规范 第三部分主要介绍的是PHP安全编程的规范,从攻击者的角度来告诉你应该怎么写出更安全的代码,这也是本书的核心价值,让代码没有漏洞,这部分包括第九、十、十一、十二 共四章。 第九章主要介绍参数的安全过滤,所有的攻击都需要有输入,所以我们要阻止攻击,第一件要做的事情就是对输入的参数进行过滤,本章详细分析discuz的过滤类,用实例说明什么样的过滤更有效果。 第十章主要介绍PHP中常用的加密算法,目前99%以上的知名网站都被拖过库,泄露了大量的用户数据,而在这一章,我们将详细的说明使用什么样的加密算法能够帮助你增强数据的安全性。 第十一章是安全编程比较核心的一章,所有的应用都是一个个功能堆砌起来的,我们在这章从设计安全功能的角度出发,从攻击者的角度详细分析常见功能通常会出现的安全问题,在分析出这些安全问题的利用方式后,再给出问题的解决方案,如果你是应用架构师,这些能够帮助你在设计程序功能的时候避免这些安全问题。 第十二章介绍应用安全体系建设中应该注意的点,比如用户密码策略、权限控制、敏感操作多因素验证等等,采用纵深防御和横向细化策略的防御原则,从应用程序本身的角度去考虑安全建设。 四、哪些人需要这本书? 我按读者按岗位进行了一个分类,如下 1.代码审计岗位 岗位描述:代码审计工程师负责对企业应用进行代码审计,经过审计过的代码才能发布上线。 代码审计能力是代码审计工程师必备的技术能力,对代码审计掌握的越全面则发现的漏洞会更多。 2.研发岗位 岗位描述:研发工程师负责应用的开发。 应用的代码出自研发工程师之手,如果研发人员对代码安全不理解,没有安全意识,则写出来的代码会漏洞百出,也可能出现不配合安全人员进行漏洞修复。 3.安全运维工程师 职位描述:安全运维工程师负责维护服务器安全。 黑客入侵之后会在服务器文件中插入后门代码,如果运维工程师不理解漏洞的攻击特征,不能从代码中发现漏洞或者后门,则无法清除后门和发现特定攻击。 4.应用架构师/设计师 岗位描述:负责应用的整体架构设计。 架构师不理解漏洞本质,设计的程序漏洞百出。应用架构师/设计师必须清楚每个功能和结构点容易出现什么样的安全漏洞,从单个功能和整个架构体系上对应用安全进行把控。 5.渗透测试工程师 岗位描述:对系统、应用、网络进行入侵测试。 渗透测试工程师需要对漏洞的实质性理解较深,具备代码审计和漏洞调试能力,这样才能在渗透测试过程中快速的发现并利用漏洞,否则技术很容易遇到瓶颈。 6.安全研究人员 岗位描述:负责安全研究,包括漏洞挖掘、分析等攻防对抗。 安全研究通常都会涉及到漏洞代码的分析,甚至编写攻击代码进行漏洞测试,需要具备代码审计能力才能对代码进行分析。 7.安全leader 岗位描述:负责管理安全团队,把控整个企业安全。 安全leader需要非常清楚应用容易出现漏洞的地方在哪里,才能合理分配资源,要重视代码安全。 8.学生 描述:学习安全知识。 代码审计是安全领域的基础能力,学生在熟悉代码审计之后能够快速理解漏洞本质,为其他方向的技术学习打下基础。
作者联系方式: 邮箱:root@cnseay.com 微信:seayace 博客:www.cnseay.com 微博:http://weibo.com/seayace
正文到此结束
Loading...