迄今为止,我们已经关注了常见Web应用安全漏洞的识别、利用和缓解,并对服务器端的缺陷予以强调。但是在客户端又是什么情形呢?
历史上,Web应用的客户端安全曾经相对被忽视,主要是因为攻击者聚焦于大量的服务器端漏洞(这些漏洞通常将整个客户列表拱手交出)。随着服务器端安全的加强,攻击者开始转向下一个明显的攻击目标。
简单地看一眼现在的新闻提要,就能说明Web客户端安全已经成了巨大的灾害。仿冒(钓鱼)、恶意软件、间谍软件和广告软件这类的术语,过去绝对是学院派的词汇,现在则常常出现在主流媒体上。世界上最流行的Web客户端软件中的漏洞似乎永远没有减少。有组织的犯罪分子越来越多地利用Web客户端技术对在线客户和企业展开欺诈。专家们很迟才共同意识到,在互联网的另一端存在着至少和服务器端一样多的安全漏洞,而许多其他的因素使得客户端可能遭到攻击。
本章中将讨论这些因素和相关的漏洞。我们的讨论围绕Web客户端攻击的下列基本类型展开:
·漏洞利用: 恶意的操作或者代码通过一个公开的漏洞在Web客户端及其宿主系统上运行。这些漏洞包括软件缺陷以及/或错误配置,导致意外的行为发生,例如获得系统控制或者拒绝服务。如果没有这些漏洞,这种方法对于攻击者来说明显要困难得多,他们通常会转向可靠的变通方法——社会工程(见下一条)。
·骗术: 使用骗术导致Web客户端软件操作人员发送有价值的信息给攻击者,不管客户端有没有公开的漏洞都可用此法使用上当。攻击者用一些有吸引力的信息“挑逗”客户,而后客户(及/或操作人)直接将敏感信息发送给攻击者,或者安装攻击者提供的软件,这些软件用于从客户系统获取数据。
和往常一样,我们将讨论关键时刻的对策,在本章的最后进行总结。