浏览器系统安全-安全沙箱


浏览器系统安全 - 安全沙箱

首先,我们设想一下,如果我们下载了一个恶意程序,但是没有执行它,对我们有没有影响?

那肯定没有,而浏览器也是一样的

浏览器可以安全地下载各种网络资源,但是执行的时候就需要谨慎了。比如解析HTML、CSS、执行JS等操作,一不小心黑客就会利用这些操作对有漏洞的浏览器发起攻击

所以需要在渲染进程和操作系统之间建一堵墙,有这堵墙在挡着,黑客能黑进来,也只能获取渲染进的操作权限(如下图),不会影响到外面,而这隔离操作系统和渲染进程的一堵墙就是安全沙箱

f8cc6394832ed238f18a01eff5726f1b.webp

安全沙箱最小的保护单位是进程,并且能限制进程对操作系统资源的访问和修改,这就意味着,安全沙箱所在的进程不能有读写操作系统的功能,比如读写本地文件、发起网络请求,调用GPU接口等

安全沙箱怎么影响各个模块功能

  • 持久存储
    • 存储Cookie的读写,浏览器内核会维护一个存放所有Cookie的Cookie数据库,在渲染进程通过JS读取Cookie时,渲染进程会通过IPC将读取Cookie的信息发送给内核,浏览器内核读取Cookie之后再将内容通过IPC返回给渲染进程
    • 缓存文件的读写也是由浏览器内核实现
  • 网络访问:渲染进程不能直接访问网络,也需要通过浏览器内核,而浏览器内核在处理URL请求之前,会检查渲染进程有没有权限请求该URL,比如有没有跨域
  • 用户交互
    • 输入时:操作系统会将输入事件传给浏览器内核,内核判断如果是地址栏输入事件就直接在内核处理,如果是页面里的就转发给渲染进程
    • 渲染时:渲染进程渲染出位图后,需要将生成好的位图发送给浏览器内核,再由内核将位图复制到屏幕上显示

站点隔离你知道吗

我们知道一个标签页会有一个渲染进程,假如这个标签页里面有多个不同站点的 iframe 呢? 这就会导致多个不同站点的内容运行在同一个渲染进程中,这肯定不行

所有操作系统中都存在两个A级漏洞:幽灵(Spectre)和熔毁(Meltdown),这是处理器架构导致的,很难修补

如果银行页面中有一个恶意 iframe ,这个恶意站点利用两个A级漏洞入侵渲染进程,那恶意程序就可以读取银行站点渲染进程内所有内容了,这对用户来说风险就很大了,如果没有沙箱保护,甚至还可以对操作系统发起攻击

所以后来Chrome对渲染进程进行重构,将标签级的渲染进程改成 iframe 级渲染进程,就是说一个标签页内可能运行多个渲染进程,并且相互隔离,这样恶意 iframe 就无法访问页面中其他的内容了,也就无法攻击其他站点了,这就是站点隔离


文章作者: 沐华
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 沐华 !
 上一篇
同源策略、XSS和CSRF攻击 同源策略、XSS和CSRF攻击
随着互联网的高速发展,信息安全问题已经是企业最关注的焦点之一,虽然浏览器不断引入 CSP、SameSite、HttpOnly、Cookies 等但是仍存在很多潜在的威胁,需要我们不断进行查漏补缺
下一篇 
进程与线程 进程与线程
进程和线程是一个程序员必知概念,面试也经常被问到,尽管开发中用到的比较少,但是它对我们的帮助是不可忽视的CDN就是内容分发网络,是构建在现有网络基础之上的智能虚拟网络