近日来互联网安全事件不断,前有 Evernote 遭黑客攻击用户数据存在泄露风险,后有 Cloudflare 被超大流量 DDoS,纽约时报称其为“欧洲电脑狂人引爆网络核战争”,再往前看段时间,CSDN 的600 万用户明文密码事件依然历历在目……照理来说,Web 安全向来都是不容忽视的,但在问题发生之前,又有多少人真的把安全问题放在心上?
记得还在读书时,一位“少年黑客”出版了一部《黑客攻击防范秘技》,红极一时,我当时出于好奇还买来读过,要知道影视剧作品中的黑客无所不能,入侵系统拯救世界,也许很多懵懂少年会因为这个形象去学习黑客攻击技术。“黑客”一词在诞生之初其实并非贬义,我相信很多人心中也有黑客精神,就像“中国黑客传说”系列中的黑哥和 V .
去年,“道哥的黑板报”作者、前阿里巴巴安全专家吴翰清( @aullik5 ,人称“刺”或者“道哥”)结合自己的经验出版了一部安全领域的“实战宝典”——《白帽子讲 Web 安全》。该书前言中是这样来描述“白帽子”的:
黑帽子是指那些造成破坏的黑客,而白帽子则是研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。
好一句“以建设更安全的互联网为己任”,国内著名的安全网站乌云上就有不少白帽子在发现漏洞,向厂商积极反馈。道哥除了用自己的技术为无数网名保驾护航,还用文字来传播安全知识与技术。《白帽子讲 Web 安全》一书的内容安排非常清晰:
- 世界观安全(先统一认识,站在同一起跑线上再去谈具体的内容)
- 客户端脚本安全
- 服务器端应用安全
- 安全运营(光有技术、有想法,整个公司没有安全运营的意识,产品的规划和设计不当,技术上的投入都可能打水漂)
在介绍具体的安全技术时,基本分成了两部分——攻击方法说明和防御手段介绍,所谓知己知彼方能百战不殆,只有先了解攻击的原理,攻击是如何发生的,才能有更好的防御思路。以 XSS 和 CSRF 为例,这两个词耳熟能详,但说实话,我之前对它们的了解并不深刻,还是服务端的 SQL 注入比较熟悉,书中的介绍不止由浅入深,还有点手把手的感觉,更重要的是除了网上常见的做法之外,还能有很多进阶技术。在介绍 DDoS 时,除了常见的大流量暴力攻击外,还有诸如 Slowloris 这样的攻击方式,甚至还有正则引发的血案。随之而来的则是相对应的防御技术,特定的配置与参数,各种内容娓娓道来。
书中有一个观点,是我个人非常赞同的,即将部分安全相关的功能默认集成到开发框架之中。由于开发人员的水平参差不齐,而且有时迫于项目进度的压力,可能在安全方面考虑不周,很容易造成安全漏洞。而像 XSS、CSRF 等威胁,在框架层面上提供一些辅助方法后,只要使用得当即可起到很好的保护作用。对于限制频繁访问,可以在框架中加入限流模块,通过验证码或限流页面等方式保护系统,而那些非 Web 的提供接口服务的系统,同样也能融入类似的限流功能自我保护。
说到框架,其实众多流行的开发框架都有不同程度的安全漏洞,发布安全补丁也是常有的事情,书中就介绍了 Struts2、Spring MVC、Django、jQuery 等前后端框架的多个漏洞,其实不止这些,Rails 也曝出过多个严重漏洞, GitHub 一定深有感触。而且,近日Apache 官方宣布Struts 1.x 正式退出历史舞台,最关键的是宣布EOL 后,发现严重安全漏洞也不会再进行维护了,这时使用Struts 1.x 的用户只能自己解决了。可见,选择一个有大量用户使用,有团队稳定维护的框架是很重要的。
在本书的最后部分谈到了微软的SDL,对于互联网公司来说,可能经常需要上线新功能,修正线上问题等等,这时完整运用SDL 也许不太合适,但是不妨参考其中一些思想和做法。此外,事先制定一些突发安全事件的应急预案也是必须的,不光是技术的,还有业务和公关的等等……
前几天,从“道哥的黑板报”上得知《白帽子讲Web 安全》销量很好,还被评为2012 年10 大最佳原创技术类书籍,看来还是有很多同学对安全方面的知识非常感兴趣的,希望本书能帮助大家。
感谢张逸对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论