内容简介
本书介绍网站安全防护措施与策略,这些策略用于解决重的漏洞及对抗当今网络罪犯使用的攻击方法。无论你是在处理电子商务网站上的拒绝服务攻击,还是对银行系统的造假事件进行应急响应,或者是对新上线的社交网站保护用户数据,翻阅本书都能找到某种场景下有效的应对方案。本书是作者多年来在政府、教育、商业网站中与大量攻击者的多种攻击对抗中获取的经验总结,内容丰富,实用性强。本书根据网站安全问题的类型将安全策略分为三大部分。第一部分“准备战场”介绍如何打造必将遭受网络攻击的网站平台。当你上线一个新的网站时,应该实施本部分介绍的安全策略。第二部分“非对称战争”介绍如何分析网站的数据,发现恶意行为。第三部分“战略反攻”介绍当发现网站上的恶意行为后如何应对这些攻击,以及怎样地使用不同的响应方式来应对攻击。
目录
Contents目 录
译者序
序 言
前 言
作者简介
第一部分 准备战场
第1章 网站驻防 6
策略1-1:实时网站请求分析 6
策略1-2:使用加密的哈希值来避免数据篡改 13
策略1-3:安装OWASP的ModSecurity核心规则集(CRS) 17
策略1-4:集成入侵检测系统的特征 29
策略1-5:使用贝叶斯分析方法检测攻击数据 33
策略1-6:打开全量HTTP审计日志 42
策略1-7:只记录有意义的请求 45
策略1-8:忽略静态资源的请求 46
策略1-9:在日志中屏蔽敏感数据 47
策略1-10:使用Syslog把告警发送到中央日志服务器 50
策略1-11:使用ModSecurity AuditConsole 53
第2章 漏洞检测与修复 57
策略2-1:被动地识别漏洞 59
策略2-2:主动地识别漏洞 67
策略2-3:手动转换漏洞扫描结果 75
策略2-4:扫描结果自动转换 79
策略2-5:实时资源评估与虚拟补丁修复 86
第3章 给黑客的陷阱 100
策略3-1:添加蜜罐端口 101
策略3-2:添加假的robots.txt的Disallow条目 102
策略3-3:添加假的HTML注释 107
策略3-4:添加假的表单隐藏字段 111
策略3-5:添加假的cookie 114
第二部分 非对称战争
第4章 信用度与第三方信息关联 121
策略4-1:分析用户的地理位置信息 123
策略4-2:识别使用了代理的可疑客户端 128
策略4-3:使用实时黑名单查找(RBL) 131
策略4-4:运行自己的RBL 137
策略4-5:检测恶意的链接 140
第5章 请求数据分析 148
策略5-1:访问请求体的内容 148
策略5-2:识别畸形请求体 154
策略5-3:规范化Unicode编码 158
策略5-4:识别是否进行多次编码 161
策略5-5:识别编码异常 164
策略5-6:检测异常的请求方法 168
策略5-7:检测非法的URI数据 172
策略5-8:检测异常的请求头部 174
策略5-9:检测多余的参数 183
策略5-10:检测缺失的参数 185
策略5-11:检测重复的参数名 187
策略5-12:检测异常的参数长度 189
策略5-13:检测异常的参数字符集 193
第6章 响应数据分析 196
策略6-1:检测异常的响应头部 196
策略6-2:检测响应头部的信息泄漏 206
策略6-3:访问响应体内容 209
策略6-4:检测变更的页面标题 211
策略6-5:检测响应页面大小偏差 214
策略6-6:检测动态内容变更 216
策略6-7:检测源代码泄漏 219
策略6-8:检测技术数据泄漏 223
策略6-9:检测异常的响应时延 226
策略6-10:检测是否有敏感用户数据泄漏 228
策略6-11:检测木马、后门及webshell的访问尝试 231
第7章 身份验证防护 234
策略7-1:检测是否提交了通用的或默认的用户名 235
策略7-2:检测是否提交了多个用户名 238
策略7-3:检测失败的身份验证尝试 240
策略7-4:检测高频率的身份验证尝试 242
策略7-5:规范化身份验证失败的提示信息 247
策略7-6:强制提高密码复杂度 250
策略7-7:把用户名和SessionID进行关联 253
第8章 防护会话状态 258
策略8-1:检测非法的cookie 258
策略8-2:检测cookie篡改 264
策略8-3:强制会话过期  
摘要与插图
第一部分 Part 1准 备 战 场
第1章 网站驻防
第2章 漏洞检测与修复
第3章 给黑客的陷阱
故用兵之法,无恃其不来,恃吾有以待之。
——孙子《孙子兵法》
“我们的网站安全吗?”如果你们公司的席执行官这样问你,你会怎么回答?如果你回答说“是”,CEO可能会说:“证明给我看”。你会怎样证明你的网站防护得很好了呢?这里列举了部分回答并说明了每一个回答的缺陷。第一个:
我们的网站符合支付卡产业数据安全标准(Payment Card Industry Data Security Standard,PCI DSS),所以是安全的。
与其他标准一样,PCI DSS是限度的标准。这意味着,达到了标准并不能确保你的站点不会被入侵。PCI DSS本质上是关于风险转移而不是风险消除(从信用卡公司转移到商业银行)。如果企业不真正的接受通过加固他们的应用环境来消除风险这一观念,而只是做到PCI DSS要求的,这一套标准认证流程只不过是一纸空文。虽然PCI是值得信赖的,但请记住:
如果你的站点是安全的,通过PCI审计很容易,而只是通过了PCI审计,却不一定代表你的站点就是安全的。
通常来讲,标准都是以控制为目的的,往往以实际的措施为中心,但不分析或者监控这些措施在实际操作中能产生的效果。一位德高望重的安全领域Richard Bejtlich,生动地说明了这个问题:
想象一个场景:一只美式足球队想要在一个季度赛中评估他们成功的概率。足球队管理人员决定量取每位球员的身高和体重、记录40码冲刺的速度、记录每位球员毕业的大学,他们收集了许多各方面的统计数据,并且花时间来讨论哪一个指标能地衡量他们球队取胜的概率。是需要体重超过300磅呢?还是接球员的鞋子要大于11码呢?抑或是发阵容的球员都来自东北部呢?这些因素从分析来看似乎都与这支队伍的成败极其相关。但如果一名旁观者看到这种情况只会说:“看看计分板吧,你们的分数落后了42比7,你们有个1胜6败的记录了。真是一群失败者。”
这就是安全领域投入导向与输出导向的本质区别。只有到了线上环境,你才能知道为安全所做的准备是有用的,还是毫无用处的。由于开发环境与预发布环境很少能保持与线上环境一致,只有到了真正有恶意用户攻击的时候,你才能真正知道你的网站的安全性。
我们的网站部署了商业的Web安全设备,所以我们的Web应用是安全的。
如此回答是对安全厂商的过度信任而导致的。安全厂商的网站或产品说明书上说他们的产品会使网站更安全,而在实际环境中并非如此。如果使用不当,安全产品与其所防护着的网站一样会有问题。如果不恰当地配置和部署,它们甚至可能成为攻击者操纵或绕过的潜在问题。
由于我们使用了SSL,所以我们是安全的。
许多电子商务网站在显眼的地方显示一张锁的图片。这表明他们使用了从的认证授权机构(CA)购买的Secure Socket Layer(SSL)证书来确保网站安全。使用SSL证书有助于避免如下攻击:
网络层截取。没使用SSL的话,数据是通过非加密通道在网上传输的。这意味可以从传输通道的路径的任意节点上截取到完整的网络流量。
网络诈骗。没有有效的SSL站点的证书,攻击者很难模仿真正的站点进行钓鱼诈骗。
SSL的使用有助于缓解这两类问题,但有一个明显的弱点:SSL无法阻止一个恶意用户直接攻击网站。事实上,许多攻击者更喜欢把目标锁定在使用了SSL的网站上,因为这些加密通道可以在其他网络监控设备的监控下掩护他们的攻击。
我们有警报显示我们阻断了Web攻击,所以我们的Web应用是安全的。
阻断攻击尝试的证据有说服力但并不足够。当管理人员询问网站是否安全时,他们真正想知道的是,在网络攻防战中表现如何。