还有一种情况是会有人专门运行一种服务器,这种服务器管理着一些利用浏览器的隐患内容,这些网站会诱惑用户手工下载和执行软件,从而绕过浏览的防御措施。
2.5 混入内容
所谓混入内容网站,就是指某个来源(服务器)使用HTTPS协议,然后又可以通过HTTP来传递内容,即所有页面内容都不是通过HTTPS发送的,而通过HTTP发送的内容就很有可能被修改,使得任何加密数据的措施形同虚设。如果通过未加密的通道传输的是脚本,那么攻击者就可能会在数据流中注入指令,进而对浏览器形成破坏。
3. 浏览器安全的基本情况攻击面
所谓攻击面就是指浏览器容易遭受未信任来源攻击影响的范围。现在随着浏览器大量的抽象功能的增加,浏览器的攻击面越来越大。
现代浏览器的更新一般都是采用后台自动和静默方式。有时候,攻击面的变化是防御者意识不到的。
1. 升级速度
浏览器的安全bug通常被开发者排在最低优先级,所以其实浏览器安全升级速度挺慢的,而且终端用户对于浏览器安全升级没有发言权,所以其实浏览器和其他正常软件是一样的。
2. 静默更新
所谓静默更新,就是指浏览器会自动后台更新,用户无权禁止这个功能,且更新的时候不会被用户阻断,这就可以保证及时提供所有更新。
他的优点在于可以更快速的更新应用。
他的缺点在于这种情况下,所有组织的安全团队对于浏览器的安全某种程度上会依赖浏览器的开发者,而在浏览器安全对终端用户组织的需求不够了解的情况下,属实不太行。
3. 扩展
扩展可以增强浏览器的功能,而又不需要单独开发一款软件。但扩展可以影响浏览器加载的每一个页面,发过来,每一个页面又会影响扩展。
每个扩展都可能成为攻击者的目标,因为他们会增大浏览器的攻击面。
4. 插件
一般来说,插件是能够影响浏览器运行的软件,与扩展不同,插件只有在Web应用通过对象标签或者Content-type首部包含他们的情况下,才可以运行插件。
有些互联网功能离不开插件,这也是浏览器支持增强插件的原因,大部分插件都没有集中更新的机制,因此,某种情况下,必须手工确保他们的使用安全,这也为防御带来了复杂性。
和扩展一样,插件也可能成为攻击者的目标,所以他其实也增大了浏览器的攻击面。
放弃控制
浏览器从互联网上请求指令,其主要功能是把内容呈现在屏幕之上,为用户和内容交互提供页面,而且会严格按照作者设计的方式呈现。所以放弃控制就出现了。所谓放弃控制,就是浏览器必须放弃很大一部分控制权给服务器,浏览器必须执行收到的命令,来保证正确的渲染页面。
对现代的Web应用而言,页面中包含大量脚本以及资源是很正常的,如果要正常显示页面。这些资源也必须正确处理和运行。
这种放弃控制必须保证浏览器访问的网站都不是恶意的,但这又是很难保证的,所以放弃控制也增大了浏览器的攻击面。
TCP协议控制
服务器-客户端模型并没有提供太多灵活性,发送和接收的端口以及IP地址都是固定的,不会变化,这就会使得攻击者能不受限制的攻击HTTP协议或特定系统。
加密通信
为了保证加密信息的完整性和机密性,可以使用SSL与受信任的组织通信,而同样的技术,它也可以与攻击者进行安全通信。这就会使得防御者也没有机会检测恶意数据。即浏览器支持的加密通信被攻击者所利用,让他们私藏恶意指令,从而形成攻击
谬论
一些常见的错误说法,比如健壮性法则谬论与外围安全防线谬论
健壮性法则谬论
健壮性法则,也称之为博斯塔尔法则,即:“发送是要保守,接收时要大胆”。因为浏览器对自己要渲染的内容是及其开放的,所以如果接收时要大胆,很难想象想象浏览器会遭受什么攻击。
外围安全防线谬论
外围安全防线,就是指那些把自己的安全领域想象成一个城堡外加护城河,像洋葱皮使得层层包围,或者像中世纪的欧洲一样,最内部是自己的重要资产。这其实不太对,现实的情况是浏览器提供了很多洞洞,就像在高高的围墙上打开了许多口子。防御围墙会因此而攻破,因为他难以阻挡浏览器带到围墙内的敌人。