白帽子讲web安全02-客户端脚本安全

客户端脚本安全

Posted by Claire on May 17, 2021

ROUND-02 客户端脚本安全

  • 简单结构图

一、浏览器安全

  • 同源策略,限制来自不同源的document或脚本,对于当前 document读取或设置某些属性

  • 影响源的因素有:host/IP,子域名、端口、协议

  • 浏览器中

<script><iframe> <img> <link> 
  • 都能够通过GET请求,跨域加载不同源的资源,不同于XMLHTTP request 浏览器会限制Js的权限,返回的内容无法读写
  • JS无法改变请求头内容,因为通过头信息传递token信息认为是可行的
  • 会受到浏览器同源策略影响的DOM COOKIE XMLHTTPREQUEST FLASH JAVA APPLET SILVERLIGHT GOOGLE GEARS
  • flash 9 的防止跨域安全操作
  • IE8的css漏洞
  • 浏览器安全策略是浏览器安全的基础,同源策略对于客户端脚本攻击有着重要意义,如果被绕过,安全将荡然无存

二、浏览器沙箱

  • 挂马:通过浏览器漏洞,在网站植入恶意代码的攻击方式

2.1 防御策略

  • 密切结合操作系统的保护机制,开发多进程架构提高安全性
  • google chrome 是第一个采取多进程架构的浏览器
  • Chrome的主要进程有:浏览器进程、渲染进程、插件进程、扩展进程 - sanbox IPCChannel 会将用户JS代码 与操作系统和浏览器内核隔离,通过多层安全检查和API的方式进行调用
  • 即使拥有多进程架构和sandbox的加持,但是一些第三方插件也是不受沙箱管束,因为插件的漏洞或崩溃依旧会导致整个浏览器出现问题

三、恶意网址拦截

  • 除了挂马,这种通过插入恶意代码加载的方式会破坏浏览器安全,还存在一些恶意网站,浏览器通常通过黑名单的方式弹出警告,或拒绝跳转

3.1恶意网址分为两类

  • 一类是挂马网站,依旧通过通过插件或者代码漏洞,植入恶意代码,获取操作系统权限,执行可执行脚本
  • 一类是钓鱼网站,模仿知名网站的相似页面来欺骗用户

3.2 浏览器如何解决

  1. 推送恶意网址黑名单 浏览器接收到后,会对用户访问进行黑名单拦截。大多采用方案一
  2. 在用户端建立模型,一些大公司会做一些安全识别,用以提供黑名单
  3. 支持ev ssl 证书,变为绿色,教育用户识别浏览器地址栏中的绿色表现
  4. 有一些公开恶意网站的公益组织
  5. 也有Google这种,提供api供查询恶意网址库的
  • xss filter 是在IE8 率先推出 跨站脚本攻击 ,用于对抗反射型xss
  • firefox 4 推出 content security policy, 由服务器返回一个http 头来表明应该遵守什么安全策略
  • xss无法控制http 头,所以具有安全性
  • csp的理念是优秀的,但是在目前多页面的网站技术下,这种每个页面都进行安全设置的举措维护成本非常巨大,也就不好推广
  • 新的功能往往会带来很多新的挑战