新書推薦:
《
井邑无衣冠 : 地方视野下的唐代精英与社会
》
售價:NT$
434.0
《
星地融合移动通信系统与关键技术从5G NTN到6G的卫星互联网发展
》
售價:NT$
968.0
《
妈妈,你好吗?(一封写给妈妈的“控诉”信,日本绘本奖作品)
》
售價:NT$
194.0
《
保守主义:为传统而战
》
售價:NT$
704.0
《
不同境遇的36岁:无尽与有限+人生半熟
》
售價:NT$
510.0
《
小时光 油画棒慢绘零基础教程
》
售價:NT$
403.0
《
可控性混乱
》
售價:NT$
301.0
《
篡魏:司马懿和他的夺权同盟
》
售價:NT$
296.0
|
編輯推薦: |
* 传奇白帽子吴翰清成名作再续新篇,云安全名家叶敏实力加持。
* 重新打造完整体系与全部案例,增加ML|DevSecOps等新话题。
* 本书前版被美国斯普林格出版社隆重引进在全球发行英文版版。
* 阿里云奠基人王坚||冯大辉|知道创宇创始人|乌云创始人均力荐。
|
內容簡介: |
在当今的数字化时代,数据安全和个人隐私面临着前所未有的挑战,各种攻击技术层出不穷,Web安全依然是最主要的攻防战场。近10年与Web相关的技术飞速发展,本书第2版更新了前沿安全技术相关的内容,不仅从攻防原理的角度讲解了Web安全的各个方面,还介绍了安全开发、安全产品设计、企业安全建设等方面的最佳实践。Web开发者、安全专业人员以及对Web安全感兴趣的读者都可将本书作为参考指南。
|
關於作者: |
吴翰清
·毕业于西安交通大学少年班。全国青联委员,浙江省青联常委。清华大学创新领军工程博士(人工智能方向,在读)。
·2005年加入阿里,创建了阿里巴巴、淘宝、支付宝的安全体系,也是阿里云初创团队成员,是阿里安全从无到有、从有到强的亲历者。
·2017年开始致力于城市大脑的研究与建设,专注于构建机器智能系统。
·2017年入选“MIT全球青年科技创新人才榜”,是中国互联网安全领域入选TR35的第一人。
·2019年入选《大数据文摘》评选的“30位新生代数字经济人才”。
·2019年当选中国青年科技工作者协会第六届理事。
·公益项目“计算图书馆”发起人。目前正致力于人工智能的研究和创业。
叶敏
在安全领域从业超过15年,在网络安全攻防和云安全产品建设方面拥有丰富的经验。曾为阿里云资深安全专家,担任阿里云安全产品攻防
负责人,带领团队打造了DDoS防御、WAF、安骑士、态势感知等多个云安全产品。现为杭州亿格云科技联合创始人兼首席安全研究员。
|
目錄:
|
1 白帽子安全观 1
1.1 Web安全简史 1
1.1.1 黑客技术发展历程 1
1.1.2 Web安全的兴起 4
1.2 黑帽子,白帽子 5
1.3 返璞归真,揭秘安全的本质 6
1.4 破除迷信,没有银弹 9
1.5 安全三要素 10
1.6 如何实施安全评估 11
1.6.1 资产等级划分 11
1.6.2 威胁建模 13
1.6.3 风险分析 14
1.6.4 设计安全方案 15
1.6.5 态势感知 16
1.7 安全方案的设计原则 18
1.7.1 “默认安全”原则 18
1.7.2 “纵深防御”原则 19
1.7.3 “数据与代码分离”原则 21
1.7.4 “随机性”原则 23
1.8 小结 24
2 HTTP协议与Web应用 26
2.1 HTTP协议 26
2.1.1 HTTP协议简介 26
2.1.2 HTTP请求 26
2.1.3 HTTP响应 31
2.1.4 HTTP/2和HTTP/3 32
2.1.5 Websocket 34
2.2 Web服务器 35
2.3 Web页面 36
2.3.1 文档对象模型(DOM) 36
2.3.2 JavaScript 36
2.4 小结 37
3 浏览器安全 38
3.1 同源策略 38
3.2 浏览器沙箱 39
3.3 XSS保护 42
3.4 隐私策略 43
3.5 浏览器扩展 48
3.6 高速发展的浏览器安全 49
3.7 小结 51
4 Cookie和会话安全 53
4.1 Cookie和会话简介 53
4.2 第一方Cookie和第三方Cookie 54
4.3 Cookie属性 55
4.3.1 Domain属性 55
4.3.2 Path属性 56
4.3.3 Expires属性 57
4.3.4 HttpOnly属性 57
4.3.5 Secure属性 58
4.3.6 SameSite属性 59
4.3.7 SameParty属性 61
4.4 安全使用Cookie 62
4.4.1 正确设置属性值 62
4.4.2 Cookie前缀 62
4.4.3 保密性和完整性 63
4.5 会话安全 64
4.5.1 会话管理 64
4.5.2 固定会话攻击 66
4.6 小结 67
5 深入同源策略 68
5.1 同源策略详解 68
5.2 跨域DOM互访问 72
5.2.1 子域名应用互访问 72
5.2.2 通过window.name跨域 74
5.2.3 window.postMessage方案 74
5.3 跨域访问服务端 76
5.3.1 JSONP方案 76
5.3.2 跨域资源共享 77
5.3.3 私有网络访问 80
5.3.4 Websocket跨域访问 82
5.3.5 其他跨域访问 82
5.4 小结 82
6 跨站脚本攻击 84
6.1 XSS攻击简介 84
6.2 XSS攻击类型 86
6.2.1 反射型XSS攻击 86
6.2.2 存储型XSS攻击 87
6.2.3 基于DOM的XSS攻击 88
6.2.4 Self-XSS攻击 89
6.3 XSS攻击进阶 90
6.3.1 初探XSS Payload 90
6.3.2 强大的XSS Payload 91
6.4 XSS蠕虫 94
6.5 XSS攻击技巧 96
6.5.1 基本的变形 96
6.5.2 事件处理程序 96
6.5.3 JavaScript伪协议 97
6.5.4 编码绕过 98
6.5.5 绕过长度限制 99
6.5.6 使用标签 101
6.5.7 window.name的妙用 102
6.6 JavaScript框架 102
6.6.1 jQuery 103
6.6.2 Vue.js 103
6.6.3 AngularJS 103
6.7 XSS攻击的防御 104
6.7.1 HttpOnly 105
6.7.2 输入过滤 105
6.7.3 输出转义 107
6.8 关于XSS Filter 122
6.9 小结 124
7 跨站请求伪造(CSRF) 125
7.1 CSRF简介 125
7.2 CSRF详解 126
7.2.1 CSRF的本质 126
7.2.2 GET和POST请求 127
7.2.3 CSRF蠕虫 128
7.3 防御CSRF攻击 130
7.3.1 验证码 130
7.3.2 Referer校验 130
7.3.3 Cookie的SameSite属性 131
7.4 Anti-CSRF Token 131
7.4.1 原理 131
7.4.2 使用原则 133
7.5 小结 135
8 点击劫持 136
8.1 点击劫持简介 136
8.2 图片覆盖攻击 139
8.3 拖拽劫持与数据窃取 140
8.4 其他劫持方式 142
8.5 防御点击劫持 143
8.5.1 Frame Busting 143
8.5.2 Cookie的SameSite属性 144
8.5.3 X-Frame-Options 144
8.5.4 CSP: frame-ancestors 145
8.6 小结 145
9 移动Web安全 146
9.1 WebView简介 146
9.2 WebView对外暴露 147
9.3 Universal XSS 148
9.4 WebView跨域访问 148
9.5 与本地代码交互 150
9.6 其他安全问题 151
9.7 小结 151
10 注入攻击 152
10.1 SQL注入 152
10.1.1 Union注入 153
10.1.2 堆叠注入 153
10.1.3 报错注入 154
10.2 盲注 154
10.2.1 布尔型盲注 154
10.2.2 延时盲注 155
10.2.3 带外数据注入 157
10.3 二次注入 158
10.4 SQL注入技巧 158
10.4.1 常见攻击技巧 158
10.4.2 命令执行 161
10.4.3 攻击存储过程 163
10.4.4 编码问题 164
10.4.5 SQL Column Truncation 166
10.5 防御SQL注入 166
10.5.1 使用预编译语句 167
10.5.2 使用存储过程 168
10.5.3 参数校验 169
10.5.4 使用安全函数 169
10.6 其他注入攻击 171
10.6.1 NoSQL注入 171
10.6.2 XML注入 172
10.6.3 代码注入 175
10.6.4 CRLF注入 183
10.6.5 LDAP注入 184
10.7 小结 185
11 文件操作 186
11.1 上传和下载 186
11.1.1 上传和下载漏洞概述 186
11.1.2 路径解析漏洞 188
11.1.3 文件上传与下载的安全 189
11.2 对象存储的安全 190
11.3 路径穿越(Path Traversal) 192
11.4 文件包含(File Inclusion) 194
11.5 小结 196
12 服务端请求伪造(SSRF) 197
12.1 SSRF攻击简介 197
12.2 SSRF漏洞成因 199
12.3 SSRF攻击进阶 199
12.3.1 攻击内网应用 199
12.3.2 端口扫描 200
12.3.3 攻击非Web应用 201
12.3.4 绕过技巧 203
12.4 SSRF防御方案 204
12.5 小结 205
13 身份认证 206
13.1 概述 206
13.2 密码的安全性 207
13.3 身份认证的方式 210
13.3.1 HTTP认证 210
13.3.2 表单登录 213
13.3.3 客户端证书 214
13.3.4 一次性密码 214
13.3.5 多因素认证 215
13.3.6 FIDO 215
13.4 暴力破解和撞库 217
13.5 单点登录 217
13.5.1 OAuth 218
13.5.2 OIDC 221
13.5.3 SAML 221
13.5.4 CAS 223
13.6 小结 224
14 访问控制 225
14.1 概述 225
14.2 访问控制模型 227
14.2.1 自主访问控制 227
14.2.2 基于角色的访问控制 228
14.2.3 基于属性的访问控制 229
14.3 越权访问漏洞 230
14.3.1 垂直越权访问 230
14.3.2 水平越权访问 231
14.4 零信任模型 233
14.4.1 基本原则 234
14.4.2 实现方案 236
14.5 小结 237
15 密码算法与随机数 239
15.1 加密、编码和哈希 239
15.2 安全使用加密算法 240
15.2.1 流加密算法 240
15.2.2 分组加密算法 242
15.2.3 非对称加密算法 245
15.3 分组填充和Padding Oracle攻击 246
15.4 安全使用哈希函数 255
15.5 关于彩虹表 257
15.6 安全使用随机数 259
15.6.1 伪随机数生成器 260
15.6.2 弱伪随机数 261
15.6.3 关于随机数使用的建议 262
15.7 密钥管理 263
15.8 信息隐藏 265
15.9 HTTPS协议 267
15.9.1 SSL和TLS协议的发展 268
15.9.2 HTTP严格传输安全(HSTS) 274
15.9.3 公钥固定 276
15.9.4 证书透明度(Certificate Transparency) 277
15.10 小结 277
16 API安全 279
16.1 API安全概述 279
16.2 常见API架构 280
16.2.1 SOAP 280
16.2.2 REST 280
16.2.3 GraphQL 282
16.3 OpenAPI规范 284
16.4 常见的API漏洞 285
16.5 API安全实践 289
16.5.1 API发现 289
16.5.2 生命周期管理 290
16.5.3 数据安全 290
16.5.4 攻击防护 291
16.5.5 日志和审计 291
16.5.6 威胁检测 291
16.5.7 使用API网关 292
16.5.8 微服务安全 292
16.6 小结 293
17 业务逻辑安全 294
17.1 账号安全 294
17.1.1 注册账号 294
17.1.2 登录账号 296
17.1.3 退出账号 297
17.1.4 找回密码 298
17.2 图形验证码 299
17.2.1 验证逻辑 299
17.2.2 强度 300
17.3 并发场景 301
17.3.1 条件竞争 301
17.3.2 临时数据 302
17.3.3 支付逻辑缺陷 303
17.4 小结 304
18 开发语言的安全 305
18.1 PHP安全 305
18.1.1 变量覆盖 305
18.1.2 空字节问题 306
18.1.3 弱类型 307
18.1.4 反序列化 307
18.1.5 安全配置 308
18.2 Java安全 309
18.2.1 Security Manager 309
18.2.2 反射 310
18.2.3 反序列化 312
18.3 Python安全 316
18.3.1 反序列化 316
18.3.2 代码保护 317
18.4 JavaScript安全 317
18.4.1 第三方JavaScript资源 317
18.4.2 JavaScript框架 318
18.5 Node.js安全 319
18.6 小结 319
19 服务端安全配置 321
19.1 “最小权限”原则 321
19.2 Web服务器安全 323
19.2.1 nginx安全 323
19.2.2 Apache HTTP Server安全 326
19.3 数据库安全 327
19.4 Web容器安全 329
19.4.1 Tomcat远程代码执行 330
19.4.2 Weblogic远程代码执行 331
19.5 Web中间件安全 332
19.6 日志与错误信息 334
19.6.1 日志的记录和留存 335
19.6.2 敏感信息处理 335
19.6.3 错误处理 336
19.7 小结 337
20 代理和CDN安全 338
20.1 正向代理 338
20.2 反向代理 340
20.3 获取真实IP地址 342
20.4 缓存投毒 343
20.5 请求夹带攻击 345
20.6 RangeAMP攻击 348
20.7 域前置(Domain Fronting) 349
20.8 小结 352
21 应用层拒绝服务攻击 353
21.1 DDoS简介 353
21.2 应用层DDoS攻击 357
21.2.1 CC攻击 357
21.2.2 限制请求频率 359
21.2.3 道高一尺,魔高一丈 360
21.3 防御应用层DDoS攻击 362
21.3.1 IP威胁情报库 362
21.3.2 JavaScript校验 363
21.3.3 客户端指纹 364
21.3.4 人机校验 366
21.3.5 访问行为识别 367
21.4 资源耗尽型攻击 367
21.4.1 Slowloris攻击 367
21.4.2 HTTP POST DoS 369
21.4.3 ReDoS 370
21.4.4 HashDoS 373
21.5 小结 374
22 爬虫对抗 375
22.1 揭秘爬虫 375
22.1.1 爬虫的发展 376
22.1.2 行业挑战 377
22.2 反爬虫方案 378
22.2.1 客户端特征 378
22.2.2 行为分析 379
22.2.3 图形验证码 381
22.2.4 IP信誉 381
22.2.5 代码保护 382
22.2.6 数据保护 384
22.3 爬虫对抗 385
22.4 小结 386
23 安全检测和防御 387
23.1 Web应用防火墙(WAF) 387
23.1.1 参数解析 389
23.1.2 攻击检测 393
23.1.3 日志分析 395
23.2 RASP 396
23.3 Web后门检测 401
23.4 小结 405
24 机器学习在安全领域的应用 406
24.1 机器学习概述 406
24.1.1 机器学习模型 407
24.1.2 模型指标 410
24.2 攻击检测 411
24.2.1 Web攻击检测 411
24.2.2 识别钓鱼网站 414
24.3 异常行为检测 415
24.4 自动化攻击 417
24.4.1 识别验证码 417
24.4.2 破译密码 418
24.5 攻击机器学习模型 420
24.5.1 对抗性攻击 420
24.5.2 信息窃取 423
24.5.3 模型投毒 423
24.6 小结 424
25 DevSecOps 426
25.1 为什么需要DevSecOps 426
25.2 DevSecOps原则 429
25.2.1 安全责任共担 429
25.2.2 安全培训 430
25.2.3 安全左移 430
25.2.4 默认安全 431
25.2.5 自动化 431
25.3 DevSecOps工具链 431
25.3.1 需求分析与设计 432
25.3.2 软件成分分析 433
25.3.3 安全测试 435
25.3.4 容器安全 439
25.3.5 代码保护 439
25.3.6 威胁检测和响应 440
25.4 小结 441
|
內容試閱:
|
第2版序
时光荏苒,距本书第1版的出版转眼过去了十一年。在这十一年里,世界发生了许多变化:云计算不再是一个故事,大数据成了重要生产要素;深度学习的崛起则开启了第三次人工智能浪潮,机器人打败了人类棋手,在大模型的加持下,人工智能正在挑战越来越多的人类职业。我们经历了新冠疫情,正在经历俄乌冲突,这一切都让安全问题变得更加敏感。互联网的渗透无处不在,数据隐私、科技伦理变成人们愈发关心的话题。过去的十一年,我们看到了自动驾驶汽车失控酿成的交通事故、无人机被应用于战争、聊天机器人诱使人类自杀、元宇宙中发生性侵。科技的突破似乎总伴生着新的威胁,让人们在憧憬美好未来的同时,无法忽视那柄悬于头顶的达摩克利斯之剑。在这次技术革命的关口上,安全再次变成一个必须直面的问题:科技带来的是生存还是毁灭?
因此,在这个关口上将本书更新为第2版又增加了一份责任。正如本书开篇所言,“互联网本来是安全的,自从有了研究安全的人,就变得不安全了”。这似乎是一个悖论,但我们不妨认为,白帽子的使命,就是站在建设者的对立面,思考一个更加完善的系统应当是怎样的。这些年安全圈对白帽子理念不懈倡导,让产业界终于接受了“红蓝对抗”这一源自黑客文化的惯常做法,这是一场胜利,它给予所有白帽子应有的宽容和尊重,对应的回报是互联网变得越来越安全了。
十年前,多数公司会将报告漏洞的白帽子视为敲诈勒索者,白帽子在漏洞的缄默期之后选择公开漏洞的行为被视为对资本的挑衅。甚至还有公司将员工里的白帽子写脚本“刷”内部系统的中秋节月饼视为道德问题,而选择性忽视了白帽子报告漏洞的事实,令人哭笑不得。十年后的今天,在安全政策上成熟的公司会更多地建立友好的社区关系,将白帽子的这种行为视为类似于媒体的舆论监督。白帽子和记者的职责是类似的,首要的都是对公众负责,这是一种侠义精神。黑客精神中所谓的“挑战权威”,就是指通过一己之力让大企业在普通用户面前保持谦卑的态度。长期以来,这种独立的监督在人类社会中发挥了重要作用,从某种程度上来说,它是实现社会公平的一种保证。
如今在面临科技失控的挑战下,白帽子的责任在于,通过对安全技术、安全政策的研究,跟上科技发展的步伐,将科技的种种成果限定在对人类有益的范围内,控制科技所带来的负面影响。因此,科技发展的速度,委实受限于对应的安全技术发展的速度。第一次工业革命发生时,人们担心蒸汽机会爆炸;第二次工业革命发生时,人们担心高压电会带来生命危险;面对当前正在发生的人工智能革命,人们则担心GPT等大模型会冲击就业,带来机器意识失控的危险,因此多位计算机科学家联名签署了倡议书,建议暂缓训练更强大的人工智能大模型。但人类历史上所有的科技进步,最终都转化成造福人类的果实,其中必不可少的前提,就是科技的安全水平达到了一种可接受的程度。
帮助互联网相关的各类计算机系统达到一个可接受的安全水平,就是本书的写作目的。本书第1版在过去的十一年中得到了广大读者朋友的支持和好评,我也因编辑张春雨先生推荐,被评选为电子工业出版社四十年来50位有影响力的作者之一,倍感荣幸。但遗憾的是,在过去的日子里,我一直未能有时间和精力对本书内容进行修订,使其与时俱进。直到2022年,我才终于下定决心将本书更新为第2版。
在这次修订中,我邀请曾经的老同事,和我一起工作了十年的一位关键技术专家——叶敏,来担任第二作者。叶敏是团队中技术最好的几个人之一,有着高尚的品格和白帽子的职业操守。他见证了云计算安全从无到有的全过程,所涉猎安全知识的深度和广度都令我敬佩,交给他的安全技术问题还从来没有解决不了的。他深得云安全的精髓,是最合适的第二作者人选。叶敏修订了大量章节,更正了一些错漏和过时之处,同时新增了移动互联网、云计算、机器学习、DevSecOps等许多新领域的安全知识,使得第2版能够跟上时代的发展。
本书专注于安全技术的细节和原理,其内容来自我们多年的实践,对具体的工作有实际的指导意义,同时它也可以作为一本安全手册,供所有开发者查阅。从第2版开始,我们希望能够将这本书长期更新维护下去,以帮助更多需要它的人;同时,也希望未来有机会将这本书升级成“白帽子安全讲义”系列丛书,《白帽子讲Web安全》将会是这个系列的一个起点。
一起建设更安全的互联网!
吴翰清
2023年4月 于杭州
第1版序
在2010年年中的时候,博文视点的张春雨先生找到我,希望我可以写一本关于云计算安全的书。当时云计算的概念正如日中天,但关于云计算安全应该怎么做,市面上却没有足够多的资料。虽然由于工作的关系,我接触这方面工作比较多,但考虑到云计算的未来尚不清晰,以及其他的种种原因,婉拒了张春雨先生的提议,转而决定写一本关于Web安全的书。
我的安全之路
我对安全的兴趣起源于中学时期,当时我买到了一本没有书号的《黑客手册》,其中coolfire[ coolfire,真名“林正隆”,台湾著名黑客,中国黑客文化的先驱者。]的黑客教程令我印象深刻。此后,在有限的能接触互联网的机会里,我总会想方设法地寻找一些黑客教程,并以实践其中描述的方法为乐。
2000年,我进入西安交通大学学习。学校的计算机实验室平时会对学生开放,当时上网的资费仍然较贵,父母给我的生活费,除了必要的生活费用之外,我几乎全部用来上网了。也正是在学校的计算机实验室里,我在安全领域迅速成长起来。
大学期间,在父母的资助下,我拥有了自己的第一台个人电脑,这加快了我成长的步伐。与此同时,我和互联网上一些志同道合的朋友,一起建立了一个安全技术组织“幻影”(ph4nt0m.org,该网址已失效),名字来源于我当时最喜爱的一部动漫《幻影旅团》。历经十余载,尽管“幻影”最终由于种种原因未能得以延续,但它却培养出了如今安全行业中的许多顶尖人才。这也是我在这短短二十余载人生中的最大成就与自豪。
得益于互联网的开放性,以及良好的技术交流氛围,我见证了中国互联网安全发展的整个过程。从2000年开始,我投入大量精力研究渗透测试、缓冲区溢出、网络攻击等技术;而在2005年之后,出于工作需要,我把主要精力放在了对Web安全的研究上。
加入阿里巴巴
发生这种专业方向的转变,是因为2005年我在一位挚友(X-Laser)的推荐下,加入了阿里巴巴。加入这家公司的过程颇具传奇色彩。在面试的过程中,主管要求我展示自己的能力,在得到授权之后,我远程关闭了阿里巴巴办公网的一台关键网络设备的路由策略,导致阿里巴巴内部的办公网络中断。事后,主管立即对公司内部的网络安全进行了整改。
大学时期的兴趣爱好居然可以变成正经的职业(当时很多大学都尚未开设网络安全的课程与专业),这使得我的父母很震惊,同时也使我更坚定了以此作为事业的想法。
在阿里巴巴的安全工程师岗位上,我很快就崭露头角。在日常的内部安全测试中,我曾经在办公网中通过网络嗅探捕获到研发总监的邮箱密码;也曾经在压力测试中使公司的网络瞬间瘫痪;还有好几次,我成功获取了域控服务器的权限,从而可以以管理员的身份访问任何一位员工的工作电脑。这些工作让阿里巴巴的网络安全变得更加坚固。
但这些工作都远远比不上那厚厚的一摞网站安全评估报告让我更有成就感,因为我知道,网站上的每一个漏洞都影响着成千上万的用户,能够为上百万、千万的互联网用户服务,让我倍感自豪。当时,Web正在逐渐成为互联网的核心,Web安全技术也正在兴起,于是我义无反顾地投入到对Web安全的研究中。
2007年,我23岁,成为阿里巴巴集团最年轻的技术专家。在阿里巴巴,我有幸见证了安全部门从无到有的建设过程。同时由于淘宝、支付宝草创,尚未建立自己的安全团队,因此我亦有幸参与了淘宝、支付宝的安全建设,为它们奠定了安全开发框架、安全开发流程的基础。
对互联网安全的思考
当时,我隐隐地感觉到互联网安全与传统的网络安全、信息安全技术的区别。就如同开发者会遇到的挑战一样,有很多问题如果不放到海量用户的环境下,是难以暴露出来的。量变引起质变,所以管理10台服务器和管理1万台服务器的方法肯定会有所区别;同样,评估10名工程师的代码安全和评估1000名工程师的代码安全,方法肯定也有所不同。
互联网安全还有一些鲜明的特色,比如注重用户体验、注重性能、注重产品发布时间,因此传统的安全方案在这样的环境下可能完全行不通。这对安全工作提出了更高的要求和更大的挑战。
这些问题使我感觉到,互联网安全可能会成为一个新的领域,或者说应该把安全技术变得更加产业化。可是我在书店中却发现,安全类的图书要么是极为学术化的教科书(一般人看不懂),要么就是极为娱乐化的说明书(比如一些“黑客工具说明书”之类的书)。而那些极少数能够深入剖析安全技术原理的书,以我的经验看来,将其内容应用于实践时也会存在各种各样的问题。
这些问题使我萌发了写一本自己的书,分享多年来工作心得的想法。它将是一本阐述安全技术在企业级应用中实践的书,是一本大型互联网公司的工程师能够真正用得上的安全参考书。因此,张春雨先生一提到邀请我写书的想法时,我没有做过多的思考就答应了。
Web是互联网的核心,是未来云计算和移动互联网的最佳载体。因此,Web安全也是互联网安全业务中最重要的组成部分,我近年来的研究重心也在于此,故将选题范围定为Web安全。但其实本书的很多思维方式并不局限于Web安全,而是可以放到整个互联网安全的方方面面之中。
掌握正确的思维方式,学会以这样的方式看待安全问题,在解决安全问题时,就将无往而不利。我在2007年的时候,意识到掌握正确思维方式的重要性,因此告知好友:安全工程师的核心竞争力不在于他能独占多少个0day漏洞,掌握了多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。我是如此想的,也是如此做的。
因此在本书中,我认为最有价值的不是那些产业化的解决方案,而是在解决安全问题时背后的思考过程。我们不是要做一个能够解决问题的方案,而是要做一个能够“漂亮地”解决问题的方案。这是每一名优秀的安全工程师所应有的追求。
安全启蒙运动
然而,当今的互联网行业对安全的重视程度普遍不高。有统计数据显示,互联网公司对安全的投入不足收入的百分之一。
2011年岁末,中国互联网突然卷入了一场有史以来最大的安全危机。2011年12月21日,国内最大的开发者社区CSDN被黑客在互联网上公布了其600万注册用户的数据。更糟糕的是,CSDN在数据库中以明文形式保存用户的密码。黑客随后陆续公布了网易、人人、天涯、猫扑、多玩等多家大型网站的数据库数据,一时间风声鹤唳,草木皆兵。
这些数据其实在黑客的地下世界中已经辗转流传了多年,牵扯到一条巨大的黑色产业链。这次的偶然事件使之浮出水面,公之于众,也让用户清醒地认识到中国互联网安全现状有多么糟糕。
以往发生类似的事件时,我都会在博客上说点什么,但这次我保持了沉默。因为一来知道此种状况已经存在多年,涉事网站只是在为以前的不作为而买单;二来要解决“拖库”的问题,其实是要解决整个互联网安全问题,远非保证数据库的安全这么简单。这不是用一段文字、一篇文章就能够讲清楚的,但我想在本书中可以找到最好的答案。
希望经历这场危机之后,整个中国互联网在安全问题的认识上,能够有一个新的高度。那么,这场危机也就“物有所值”,或许它还能成为一个契机,发起中国互联网的一场安全启蒙运动。
这是我的第一本书,也是我坚持自己一个人写完的书,因此可以在书中尽情地阐述自己的安全观,而且对书中的任何错漏之处以及不成熟的观点都没有可以推卸责任的借口。
由于工作繁忙,我只能利用业余时间写书,交稿时间被多次推迟,深感写书的不易。最终能成书则有赖于各位亲友的支持,以及编辑的鼓励,在此深表感谢。书中很多地方未能写得更为深入细致,实乃精力有限所致,尚请多多包涵。
关于白帽子
在安全圈子里,素有“白帽子”“黑帽子”一说。黑帽子是指那些造成破坏的黑客,而白帽子则是指研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。
我于2008年开始在国内互联网行业中倡导白帽子的理念,并联合一些主要互联网公司的安全工程师建立了白帽子社区,旨在交流工作中遇到的各种问题及经验心得。
本书名为《白帽子讲Web安全》,即指站在白帽子的视角,讲述Web安全的方方面面。虽然也剖析攻击原理,但更重要的是讲如何防范。同时,也希望“白帽子”这一理念,能够更加广为人知,为中国互联网行业所接受。
吴翰清
2012年1月于杭州
|
|