百道网
 您现在的位置:Fun书 > 白帽子讲Web安全(纪念版)
白帽子讲Web安全(纪念版)


白帽子讲Web安全(纪念版)

作  者:吴翰清 著

出 版 社:电子工业出版社

出版时间:2014年06月

定  价:69.00

I S B N :9787121234101

所属分类: 专业科技  >  计算机/网络  >  信息安全    

标  签:计算机安全  计算机与互联网  

[查看微博评论]

分享到:

TOP好评推荐   [展开]

TOP内容简介

        互联网时代的数据安全与个人隐私受到前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?《白帽子讲Web 安全(纪念版)》将带你走进Web 安全的世界,让你了解Web 安全的方方面面。黑客不再神秘,攻击技术原来如此,小网站也能找到适合自己的安全道路。大公司如何做安全,为什么要选择这样的方案呢?在《白帽子讲Web 安全(纪念版)》中都能找到答案。详细的剖析,让你不仅能“知其然”,更能“知其所以然”。

        《白帽子讲Web 安全(纪念版)》根据安全宝副总裁吴翰清之前在顶级互联网公司若干年的实际工作经验而写成,在解决方案上具有极强的可操作性;深入分析诸多错误的方法及误区,对安全工作者有很好的参考价值;对安全开发流程与运营的介绍,同样具有深刻的行业指导意义。《纪念版》与前版内容相同,仅为纪念原作以多种语言在全球发行的特殊版本,请读者按需选用。

 

TOP作者简介

  吴翰清,国内著名安全组织Ph4nt0m的创始人,精通各种攻击与防御技术。2005年加入阿里巴巴(中国)有限公司,2007年成为阿里巴巴年轻的专家。先后完成阿里巴巴、淘宝、支付宝的安全评估与安全体系建设工作。主导了阿里巴巴的安全开发流程建设工作,在应用安全领域内有丰富的经验。现任阿里巴巴安全架构师,负责全集团WEB安全工作以及云计算安全。


TOP目录

第一篇 世界观安全

第1章 我的安全世界观...................................................................................................2

1.1 Web 安全简史................................................................................................2

1.1.1 中国黑客简史........................................................................................2

1.1.2 黑客技术的发展历程..............................................................................3

1.1.3 Web 安全的兴起....................................................................................5

1.2 黑帽子,白帽子.............................................................................................6

1.3 返璞归真,揭秘安全的本质..........................................................................7

1.4 破除迷信,没有银弹.....................................................................................9

1.5 安全三要素..................................................................................................10

1.6 如何实施安全评估.......................................................................................11

1.6.1 资产等级划分......................................................................................12

1.6.2 威胁分析.............................................................................................13

1.6.3 风险分析.............................................................................................14

1.6.4 设计安全方案......................................................................................15

1.7 白帽子兵法..................................................................................................16

1.7.1 Secure By Default 原则.........................................................................16

1.7.2 纵深防御原则......................................................................................18

1.7.3 数据与代码分离原则............................................................................19

1.7.4 不可预测性原则...................................................................................21

1.8 小结.............................................................................................................22

(附)谁来为漏洞买单?..................................................................................23

 

第二篇 客户端脚本安全

第2章 浏览器安全.........................................................................................................26

2.1 同源策略......................................................................................................26

2.2 浏览器沙箱..................................................................................................30

2.3 恶意网址拦截..............................................................................................33

2.4 高速发展的浏览器安全...............................................................................36

2.5 小结.............................................................................................................39

第3章 跨站脚本攻击(XSS) .....................................................................................40

3.1 XSS 简介......................................................................................................40

3.2 XSS 攻击进阶..............................................................................................43

3.2.1 初探XSSPayload.................................................................................43

3.2.2 强大的XSS Payload.............................................................................46

3.2.3 XSS 攻击平台.....................................................................................62

3.2.4 终极武器:XSSWorm..........................................................................64

3.2.5 调试JavaScript....................................................................................73

3.2.6 XSS 构造技巧......................................................................................76

3.2.7 变废为宝:Mission Impossible..............................................................82

3.2.8 容易被忽视的角落:Flash XSS.............................................................85

3.2.9 真的高枕无忧吗:JavaScript 开发框架..................................................87

3.3 XSS 的防御..................................................................................................89

3.3.1 四两拨千斤:HttpOnly.........................................................................89

3.3.2 输入检查.............................................................................................93

3.3.3 输出检查.............................................................................................95

3.3.4 正确地防御XSS..................................................................................99

3.3.5 处理富文本.......................................................................................102

3.3.6 防御DOM BasedXSS.........................................................................103

3.3.7 换个角度看XSS 的风险.....................................................................107

3.4 小结...........................................................................................................107

第4章 跨站点请求伪造(CSRF) ............................................................................109

4.1 CSRF 简介.................................................................................................109

4.2 CSRF 进阶.................................................................................................111

4.2.1 浏览器的Cookie 策略........................................................................111

4.2.2 P3P 头的副作用.................................................................................113

4.2.3 GET?POST?......................................................................................116

4.2.4 Flash CSRF........................................................................................118

4.2.5 CSRFWorm.......................................................................................119

4.3 CSRF 的防御..............................................................................................120

4.3.1 验证码..............................................................................................120

4.3.2 RefererCheck.....................................................................................120

4.3.3 Anti CSRFToken................................................................................121

4.4 小结...........................................................................................................124

第5章 点击劫持(ClickJacking).............................................................................125

5.1 什么是点击劫持.........................................................................................125

5.2 Flash 点击劫持...........................................................................................127

5.3 图片覆盖攻击............................................................................................129

5.4 拖拽劫持与数据窃取.................................................................................131

5.5 ClickJacking 3.0:触屏劫持.......................................................................134

5.6 防御ClickJacking.......................................................................................136

5.6.1 frame busting .....................................................................................136

5.6.2 X-Frame-Options................................................................................137

5.7 小结...........................................................................................................138

第6章 HTML 5 安全...................................................................................................139

6.1 HTML 5 新标签..........................................................................................139

6.1.1 新标签的XSS....................................................................................139

6.1.2 iframe 的sandbox...............................................................................140

6.1.3 Link Types: noreferrer .........................................................................141

6.1.4 Canvas 的妙用...................................................................................141

6.2 其他安全问题............................................................................................144

6.2.1 Cross-Origin Resource Sharing............................................................. 144

6.2.2 postMessage——跨窗口传递消息.........................................................146

6.2.3 Web Storage.......................................................................................147

6.3 小结...........................................................................................................150

 

第三篇 服务器端应用安全

第7章 注入攻击..........................................................................................................152

7.1 SQL 注入....................................................................................................152

7.1.1 盲注(Blind Injection) ......................................................................153

7.1.2 Timing Attack....................................................................................155

7.2 数据库攻击技巧.........................................................................................157

7.2.1 常见的攻击技巧.................................................................................157

7.2.2 命令执行...........................................................................................158

7.2.3 攻击存储过程....................................................................................164

7.2.4 编码问题...........................................................................................165

7.2.5 SQL Column Truncation...................................................................... 167

7.3 正确地防御SQL 注入................................................................................170

7.3.1 使用预编译语句.................................................................................171

7.3.2 使用存储过程....................................................................................172

7.3.3 检查数据类型....................................................................................172

7.3.4 使用安全函数....................................................................................172

7.4 其他注入攻击............................................................................................173

7.4.1 XML 注入.........................................................................................173

7.4.2 代码注入...........................................................................................174

7.4.3 CRLF 注入........................................................................................176

7.5 小结...........................................................................................................179

第8章 文件上传漏洞...................................................................................................180

8.1 文件上传漏洞概述.....................................................................................180

8.1.1 从FCKEditor 文件上传漏洞谈起......................................................... 181

8.1.2 绕过文件上传检查功能......................................................................182

8.2 功能还是漏洞............................................................................................183

8.2.1 Apache 文件解析问题.........................................................................184

8.2.2 IIS 文件解析问题...............................................................................185

8.2.3 PHP CGI 路径解析问题......................................................................187

8.2.4 利用上传文件钓鱼.............................................................................189

8.3 设计安全的文件上传功能..........................................................................190

8.4 小结...........................................................................................................191

第9章 认证与会话管理...............................................................................................192

9.1 Who am I? ..................................................................................................192

9.2 密码的那些事儿.........................................................................................193

9.3 多因素认证................................................................................................195

9.4 Session 与认证...........................................................................................196

9.5 Session Fixation 攻击.................................................................................198

9.6 Session 保持攻击.......................................................................................199

9.7 单点登录(SSO)......................................................................................201

9.8 小结...........................................................................................................203

第10章 访问控制........................................................................................................205

10.1 What Can I Do?........................................................................................205

10.2 垂直权限管理...........................................................................................208

10.3 水平权限管理...........................................................................................211

10.4 OAuth 简介..............................................................................................213

10.5 小结..........................................................................................................219

第11章 加密算法与随机数.........................................................................................220

11.1 概述..........................................................................................................220

11.2 Stream Cipher Attack................................................................................222

11.2.1 Reused Key Attack............................................................................222

11.2.2 Bit-flipping Attack............................................................................228

11.2.3 弱随机IV 问题................................................................................230

11.3 WEP 破解.................................................................................................232

11.4 ECB 模式的缺陷......................................................................................236

11.5 Padding Oracle Attack...............................................................................239

11.6 密钥管理..................................................................................................251

11.7 伪随机数问题...........................................................................................253

11.7.1 弱伪随机数的麻烦...........................................................................253

11.7.2 时间真的随机吗...............................................................................256

11.7.3 破解伪随机数算法的种子.................................................................257

11.7.4 使用安全的随机数...........................................................................265

11.8 小结..........................................................................................................265

(附)Understanding MD5 Length Extension Attack.................................... 267

第12章 Web 框架安全...............................................................................................280

12.1 MVC 框架安全.........................................................................................280

12.2 模板引擎与XSS 防御..............................................................................282

12.3 Web 框架与CSRF 防御............................................................................285

12.4 HTTP Headers 管理..................................................................................287

12.5 数据持久层与SQL 注入..........................................................................288

12.6 还能想到什么...........................................................................................289

12.7 Web 框架自身安全...................................................................................289

12.7.1 Struts 2 命令执行漏洞.......................................................................290

12.7.2 Struts 2 的问题补丁..........................................................................291

12.7.3 Spring MVC 命令执行漏洞................................................................292

12.7.4 Django 命令执行漏洞.......................................................................293

12.8 小结..........................................................................................................294

第13章 应用层拒绝服务攻击.....................................................................................295

13.1 DDOS 简介...............................................................................................295

13.2 应用层DDOS...........................................................................................297

13.2.1 CC 攻击...........................................................................................297

13.2.2 限制请求频率..................................................................................298

13.2.3 道高一尺,魔高一丈........................................................................300

13.3 验证码的那些事儿...................................................................................301

13.4 防御应用层DDOS...................................................................................304

13.5 资源耗尽攻击...........................................................................................306

13.5.1 Slowloris 攻击..................................................................................306

13.5.2 HTTP POSTDOS..............................................................................309

13.5.3 Server LimitDOS..............................................................................310

13.6 一个正则引发的血案:ReDOS................................................................311

13.7 小结..........................................................................................................315

第14章 PHP 安全.......................................................................................................317

14.1 文件包含漏洞...........................................................................................317

14.1.1 本地文件包含..................................................................................319

14.1.2 远程文件包含..................................................................................323

14.1.3 本地文件包含的利用技巧.................................................................323

14.2 变量覆盖漏洞...........................................................................................331

14.2.1 全局变量覆盖..................................................................................331

14.2.2 extract()变量覆盖.............................................................................334

14.2.3 遍历初始化变量...............................................................................334

14.2.4 import_request_variables 变量覆盖..................................................... 335

14.2.5 parse_str()变量覆盖..........................................................................335

14.3 代码执行漏洞...........................................................................................336

14.3.1 “危险函数”执行代码......................................................................336

14.3.2 “文件写入”执行代码......................................................................343

14.3.3 其他执行代码方式...........................................................................344

14.4 定制安全的PHP 环境..............................................................................348

14.5 小结..........................................................................................................352

第15章 Web Server 配置安全...................................................................................353

15.1 Apache 安全.............................................................................................353

15.2 Nginx 安全...............................................................................................354

15.3 jBoss 远程命令执行.................................................................................356

15.4 Tomcat 远程命令执行..............................................................................360

15.5 HTTP ParameterPollution.........................................................................363

15.6 小结..........................................................................................................364

 

第四篇 互联网公司安全运营

第16章 互联网业务安全............................................................................................366

16.1 产品需要什么样的安全............................................................................366

16.1.1 互联网产品对安全的需求.................................................................367

16.1.2 什么是好的安全方案........................................................................368

16.2 业务逻辑安全...........................................................................................370

16.2.1 永远改不掉的密码...........................................................................370

16.2.2 谁是大赢家......................................................................................371

16.2.3 瞒天过海.........................................................................................372

16.2.4 关于密码取回流程...........................................................................373

16.3 账户是如何被盗的...................................................................................374

16.3.1 账户被盗的途径...............................................................................374

16.3.2 分析账户被盗的原因........................................................................376

16.4 互联网的垃圾...........................................................................................377

16.4.1 垃圾的危害......................................................................................377

16.4.2 垃圾处理.........................................................................................379

16.5 关于网络钓鱼...........................................................................................380

16.5.1 钓鱼网站简介..................................................................................381

16.5.2 邮件钓鱼.........................................................................................383

16.5.3 钓鱼网站的防控...............................................................................385

16.5.4 网购流程钓鱼..................................................................................388

16.6 用户隐私保护...........................................................................................393

16.6.1 互联网的用户隐私挑战.....................................................................393

16.6.2 如何保护用户隐私...........................................................................394

16.6.3 Do-Not-Track...................................................................................396

16.7 小结..........................................................................................................397

(附)麻烦的终结者........................................................................................398

第17章 安全开发流程(SDL) .................................................................................402

17.1 SDL 简介..................................................................................................402

17.2 敏捷SDL..................................................................................................406

17.3 SDL 实战经验..........................................................................................407

17.4 需求分析与设计阶段...............................................................................409

17.5 开发阶段..................................................................................................415

17.5.1 提供安全的函数...............................................................................415

17.5.2 代码安全审计工具...........................................................................417

17.6 测试阶段..................................................................................................418

17.7 小结..........................................................................................................420

第18章 安全运营........................................................................................................422

18.1 把安全运营起来.......................................................................................422

18.2 漏洞修补流程...........................................................................................423

18.3 安全监控..................................................................................................424

18.4 入侵检测..................................................................................................425

18.5 紧急响应流程...........................................................................................428

18.6 小结..........................................................................................................430

(附)谈谈互联网企业安全的发展方向....................................................... 431

TOP书摘

前言

  在2010年年中的时候,博文视点的张春雨先生找到我,希望我可以写一本关于云计算安全的书。当时云计算的概念正如日中天,但市面上关于云计算安全应该怎么做却缺乏足够的资料。我由于工作的关系接触这方面比较多,但考虑到云计算的未来尚未清晰,以及其他的种种原因,婉拒了张春雨先生的要求,转而决定写一本关于Web安全的书。

  我的安全之路

  我对安全的兴趣起源于中学时期。当时在盗版市场买到了一本没有书号的黑客手册,其中coolfire的黑客教程令我印象深刻。此后在有限的能接触到互联网的机会里,我总会想方设法地寻找一些黑客教程,并以实践其中记载的方法为乐。

  在2000年的时候,我进入了西安交通大学学习。在大学期间,最大的收获,是学校的计算机实验室平时会对学生开放。当时上网的资费仍然较贵,父母给我的生活费里,除了留下必要的生活所需费用之外,几乎全部投入在这里。也是在学校的计算机实验室里,让我迅速在这个领域中成长起来。

  大学期间,在父母的资助下,我拥有了自己的第一台个人电脑,这加快了我成长的步伐。与此同时,我和一些互联网上志同道合的朋友,一起建立了一个技术型的安全组织,名字来源于我当时最喜爱的一部动漫:“幻影旅团”(ph4nt0m。org)。历经十余载,“幻影”由于种种原因未能得以延续,但它却曾以论坛的形式培养出了当今安全行业中非常多的顶尖人才。这也是我在这短短二十余载人生中的最大成就与自豪。

  得益于互联网的开放性,以及我亲手缔造的良好技术交流氛围,我几乎见证了全部互联网安全技术的发展过程。在前5年,我投入了大量精力研究渗透测试技术、缓冲区溢出技术、网络攻击技术等;而在后5年,出于工作需要,我把主要精力放在了对Web安全的研究上。

  加入阿里巴巴

  发生这种专业方向的转变,是因为在2005年,我在一位挚友的推荐下,加入了阿里巴巴。

  加入的过程颇具传奇色彩,在面试的过程中主管要求我展示自己的能力,于是我远程关闭了阿里巴巴内网上游运营商的一台路由设备,导致阿里巴巴内部网络中断。事后主管立即要求与运营商重新签订可用性协议。

  大学时期的兴趣爱好,居然可以变成一份正经的职业(当时很多大学都尚未开设网络安全的课程与专业),这使得我的父母很震惊,同时也更坚定了我自己以此作为事业的想法。

  在阿里巴巴我很快就崭露头角,曾经在内网中通过网络嗅探捕获到了开发总监的邮箱密码;也曾经在压力测试中一瞬间瘫痪了公司的网络;还有好几次,成功获取到了域控服务器的权限,从而可以以管理员的身份进入任何一位员工的电脑。

  但这些工作成果,都远远比不上那厚厚的一摞网站安全评估报告让我更有成就感,因为我知道,网站上的每一个漏洞,都在影响着成千上万的用户。能够为百万、千万的互联网用户服务,让我倍感自豪。当时,Web正在逐渐成为互联网的核心,Web安全技术也正在兴起,于是我义无返顾地投入到对Web安全的研究中。

  我于2007年以23岁之龄成为了阿里巴巴集团最年轻的技术专家。虽未有官方统计,但可能也是全集团里最年轻的高级技术专家,我于2010年获此殊荣。在阿里巴巴,我有幸见证了安全部门从无到有的建设过程。同时由于淘宝、支付宝草创,尚未建立自己的安全团队,因此我有幸参与了淘宝、支付宝的安全建设,为他们奠定了安全开发框架、安全开发流程的基础。

  对互联网安全的思考

  当时,我隐隐地感觉到了互联网公司安全,与传统的网络安全、信息安全技术的区别。就如同开发者会遇到的挑战一样,有很多问题,不放到一个海量用户的环境下,是难以暴露出来的。由于量变引起质变,所以管理10台服务器,和管理1万台服务器的方法肯定会有所区别;同样的,评估10名工程师的代码安全,和评估1000名工程师的代码安全,方法肯定也要有所不同。

  互联网公司安全还有一些鲜明的特色,比如注重用户体验、注重性能、注重产品发布时间,因此传统的安全方案在这样的环境下可能完全行不通。这对安全工作提出了更高的要求和更大的挑战。

  这些问题,使我感觉到,互联网公司安全可能会成为一门新的学科,或者说应该把安全技术变得更加工业化。可是我在书店中,却发现安全类目的书,要么是极为学术化的(一般人看不懂)教科书,要么就是极为娱乐化的(比如一些“黑客工具说明书”类型的书)说明书。极少数能够深入剖析安全技术原理的书,以我的经验看来,在工业化的环境中也会存在各种各样的问题。

  这些问题,也就促使我萌发了一种写一本自己的书,分享多年来工作心得的想法。它将是一本阐述安全技术在企业级应用中实践的书,是一本大型互联网公司的工程师能够真正用得上的安全参考书。因此张春雨先生一提到邀请我写书的想法时,我没有做过多的思考,就答应了。

  Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分。我近年来的研究重心也在于此,因此将选题范围定在了Web安全。但其实本书的很多思路并不局限于Web安全,而是可以放宽到整个互联网安全的方方面面之中。

  掌握了以正确的思路去看待安全问题,在解决它们时,都将无往而不利。我在2007年的时候,意识到了掌握这种正确思维方式的重要性,因此我告知好友:安全工程师的核心竞争力不在于他能拥有多少个0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。我是如此想的,也是如此做的。

  因此在本书中,我认为最可贵的不是那一个个工业化的解决方案,而是在解决这些问题时,背后的思考过程。我们不是要做一个能够解决问题的方案,而是要做一个能够“漂亮地”解决问题的方案。这是每一名优秀的安全工程师所应有的追求。

  安全启蒙运动

  然而在当今的互联网行业中,对安全的重视程度普遍不高。有统计显示,互联网公司对安全的投入不足收入的百分之一。

  在2011年岁末之际,中国互联网突然卷入了一场有史以来最大的安全危机。12月21日,国内最大的开发者社区CSDN被黑客在互联网上公布了600万注册用户的数据。更糟糕的是,CSDN在数据库中明文保存了用户的密码。接下来如同一场盛大的交响乐,黑客随后陆续公布了网易、人人、天涯、猫扑、多玩等多家大型网站的数据库,一时间风声鹤唳,草木皆兵。

  这些数据其实在黑客的地下世界中已经辗转流传了多年,牵扯到了一条巨大的黑色产业链。这次的偶然事件使之浮出水面,公之于众,也让用户清醒地认识到中国互联网的安全现状有多么糟糕。

  以往类似的事件我都会在博客上说点什么,但这次我保持了沉默。因为一来知道此种状况已经多年,网站只是在为以前的不作为而买单;二来要解决“拖库”的问题,其实是要解决整个互联网公司的安全问题,远非保证一个数据库的安全这么简单。这不是通过一段文字、一篇文章就能够讲清楚的。但我想最好的答案,可以在本书中找到。

  经历这场危机之后,希望整个中国互联网,在安全问题的认识上,能够有一个新的高度。

  那这场危机也就物有所值,或许还能借此契机成就中国互联网的一场安全启蒙运动。

  这是我的第一本书,也是我坚持自己一个人写完的书,因此可以在书中尽情地阐述自己的安全世界观,且对书中的任何错漏之处以及不成熟的观点都没有可以推卸责任的借口。

  由于工作繁忙,写此书只能利用业余时间,交稿时间多次推迟,深感写书的不易。但最终能成书,则有赖于各位亲朋的支持,以及编辑的鼓励,在此深表感谢。本书中很多地方未能写得更为深入细致,实乃精力有限所致,尚请多多包涵。

  关于白帽子

  在安全圈子里,素有“白帽”、“黑帽”一说。

  黑帽子是指那些造成破坏的黑客,而白帽子则是研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。

  我于2008年开始在国内互联网行业中倡导白帽子的理念,并联合了一些主要互联网公司的安全工程师,建立了白帽子社区,旨在交流工作中遇到的各种问题,以及经验心得。

  本书名为《白帽子讲Web安全》,即是站在白帽子的视角,讲述Web安全的方方面面。虽然也剖析攻击原理,但更重要的是如何防范这些问题。同时也希望“白帽子”这一理念,能够更加的广为人知,为中国互联网所接受。

  本书结构

  全书分为4大篇共18章,读者可以通过浏览目录以进一步了解各篇章的内容。在有的章节末尾,还附上了笔者曾经写过的一些博客文章,可以作为延伸阅读以及本书正文的补充。

  第一篇我的安全世界观是全书的纲领。在此篇中先回顾了安全的历史,然后阐述了笔者对安全的看法与态度,并提出了一些思考问题的方式以及做事的方法。理解了本篇,就能明白全书中所涉及的解决方案在抉择时的取舍。

  第二篇客户端脚本安全就当前比较流行的客户端脚本攻击进行了深入阐述。当网站的安全做到一定程度后,黑客可能难以再找到类似注入攻击、脚本执行等高风险的漏洞,从而可能将注意力转移到客户端脚本攻击上。

  吴翰清

  2012年1月于杭州


TOP插图


TOP 其它信息

装  帧:平装

页  数:448

开  本:16开

加载页面用时:46.8722