蓝:浏览器安全概述
本篇文章内容较为简略,主要目的是描述浏览器安全的概念,建立浏览器攻防的框架,每部分具体内容将在之后的文章中详述。
一、浏览器的组成
1、浏览器的设计规格
- 它要向互联网请求指令,然后执行获取的指令。
- 防御者无法控制这些指令。
- 某些指令会要求浏览器从互联网的其他地方、内部网的其他地方或非标准的HTTP和HTTPS TCP端口再次请求指令。
- 某些指令会要求浏览器通过TCP发送数据。这可能会造成对其他联网设备的攻击。
- 它会与互联网中任意服务器进行加密通信。防御者无法看到通信内容。
- 它会不断向攻击者暴露攻击目标。它会在后台静默更新。
- 它经常会依赖插件获得某些功能,但没有统一的机制更新这些插件。
2、浏览器安全与Web安全
- 浏览器的主要功能就是从外部世界的任意位置获取并执行指令,而这一行为的潜在风险是显而易见的。
- Web采用客户端-服务器模型,客户端与服务器通信使用请求-响应模式,即浏览器负责发送请求,服务器负责给出响应。
- 一般来说,浏览器与Web应用的联结点是最需要保护的地方。从攻击者角度来说,这也是主要的攻击目标。
3、浏览器的组成元素
- 同源策略(Same Origin Policy,SOP)。
- HTTP首部
- 标记语言,HTML和XML。
- CSS(Cascading Style Sheet,层叠样式表)
- 脚本,所有浏览器默认的脚本语言都是JavaScript。
- DOM(Document Object Model,文档对象模型),它是在浏览器中操作HTML或XML文档的API,使用脚本语言可以通过DOM提供的对象操作HTML元素。
- 浏览器引擎(web browser engine),又称渲染引擎(rendering engine)或布局引擎(layout engine)。常见的浏览器引擎有WebKit、Trident、Gecko、Presto、Blink。
- Geolocation,Geolocation API是为移动和桌面浏览器访问设备地理位置信息而开发的,该API可以通过GPS、蜂窝小区三角测量、IP地理定位和本地Wi-Fi热点取得地理位置信息。
- Web存储(Web storage)又称DOM存储(DOM storage),可看作超级cookie。
- 跨域资源共享(cross-origin resource sharing,CORS),是一个让来源忽略同源策略的规范。在最宽松的配置下,Web应用可以通过XMLHttpRequest跨域访问任何资源。CORS给HTTP响应首部增加了一下字段:
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST, GET
- HTML5
- 隐患(vulnerability)
二、浏览器安全强化
1、基本防御
1、HTTP首部
- 内容安全策略
- 安全cookie标志
- HttpOnly cookie标志,HttpOnly标志指示浏览器禁止任何脚本访问cookie内容,从而降低通过JavaScript发起的XSS攻击偷取cookie的风险。
- X-Content-type-Options标志,判断服务器返回了什么类型的内容。
- Strict-Transport-Security,指示浏览器必须通过有效的HTTPS通道与网站通信。
- X-Frame-Options,阻止浏览器中的页面内嵌框架。可以防止界面伪装(UI redressing)攻击。
2、反射型XSS过滤
3、沙箱(sandbox)
- 浏览器沙箱
- IFrame沙箱
4、反网络钓鱼与反恶意软件
5、混入内容
混入内容(mixed content)网站,是指某个来源使用HTTPS协议,然后又通过HTTP协议请求内容,也就是所有的页面内容都不是通过HTTPS发送的。
2、核心安全问题
1、攻击面
指浏览器容易遭受未信任来源攻击影响的范围,涉及如下几个方面。
- 升级速度
- 静默更新
- 扩展
- 插件
2、放弃控制
3、TCP协议控制
4、加密通信
5、同源策略
6、谬论
三、浏览器攻防方法
对浏览器的攻击过程分为三个阶段,首先是初始化,然后是持久化,最后是攻击。
1、初始化
这是攻击浏览器的第一步,目的是使用各种方法是浏览器遇到并执行你的指令,甚至是执行任意代码。
2、持久化
持久化控制,在进行下一次攻击之前要保持住对浏览器的控制。
3、攻击
对浏览器攻击的形式有很多种,常见的有对浏览器的“本地攻击”,对浏览器所在操作系统的攻击,以及对任意位置的远程系统的攻击。
这里给出一些核心攻击方法,具体内容将在以后的文章中介绍。
- 绕过同源策略
- 攻击用户
- 攻击浏览器,即直接攻击浏览器的核心。
- 攻击扩展
- 攻击插件
- 攻击Web应用
- 攻击网络
四、参考文献
1 《黑客攻防技术宝典浏览器实战篇》.[澳]Wade Alcorn, [美]Christian Frichot, [意]Michele Orru著,奇舞团译.