Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Analyzing Forged SSL Certificates in the Wild

论文下载

Abstract

  • 本文设计实现了一种方法检测对Facebook的SSL中间人攻击发生情况。分析了300万个对Facebook的SSL连接,发现0.2%的连接被利用伪造证书篡改过,这些伪造证书大多和防毒软件或者公司内容过滤器(corporate-scale content filter)有关,也有部分SSL连接被恶意软件拦截。

Introduction

现实生活中观察到SSL MITMA行为,但是不知道这种攻击有多流行。之前的一些SSL survey收集了大量的证书,但是没有什么关于伪造证书的数据。我们推测因为攻击者通常只在某些特定地区或者只针对某些高价值会话进行攻击,之前的方法对于这些攻击很难有效检测到。但是,因为用户不使用client certificate网站无法区分正常用户和攻击者。目前web应用也无法检查底层的SSL连接证书验证情况,web应用也不能通过本地浏览器网络API访问SSL握手,从一个网站的角度来检测SSL MITMA难度很大。

本文利用浏览器广泛支持的Flash Player插件提供套接字功能,在客户端实现部分SSL握手捕捉伪造证书。

本文的贡献包括:

  • 为网站设计了一个新的方法来收集他们的SSL连接遭到MITM攻击的证据。
  • 利用300万个真实世界的SSL连接对伪造证书问题进行了研究。
  • 基于真实世界中的数据,对伪造证书产生的根本原因进行了分类。
  • 证实了有malware对SSL连接进行拦截,受影响用户分布于45个国家。

Background

  • EFF SSL Observatory通过扫描整个IPv4地址空间分析了1.3 million个不同的SSL证书,发现了1482个可信的证书签发者。
  • Durumeric等人扫描了109 million 个主机收集了42 million个不同的证书,发现了1832个可信的证书签发者。
  • Holz通过被动地监视实时流量和主动扫描流行网站分析SSL证书,发现40%的证书由于过期、不正确的主机名或者其他原因都是不合法的。
  • Akhawe通过监测实时流量分析了SSL证书,他对常见的证书提醒进行了分类,包括服务器错误配置,浏览器设计问题等。
  • 但是之前这些研究都未涉及伪造证书。本文由于Facebook的用户数量巨大分布广泛,可以分析不同的网络情况,研究伪造证书。 网站的篡改检测技术主要用来帮助网站检测客户端网络连接是否被篡改。本文主要关注不需要用户交互,不需要安装额外软件或者浏览器扩展的技术。现有Web Tripwires、Content Security Policy等技术。

  • Web Tripwires:利用客户端JS代码检测对网页的篡改,用来保证网页内容完整性。缺点是不能保护未加密流量,不能检测被动窃听(不篡改),不能检测SSL MITMA。

  • Content Security Policy(CSP):使网站能限制浏览器行为,只能从网站提供的可信列表源下载脚本和样式表,发现违反规则则上报服务器。缺点同上。
  • Browser Plugins:利用Java或者Flash Player插件诊断客户端网络,它们比JS能力强,能够打开原始套接字,甚至执行DNS查询。本文正是利用的这种方法。

SSL Tamper detection method

  • Threat Model:攻击者控制了受害者的网络连接,但没有控制网站。他想读取网站和用户间的加密流量。攻击者假扮成合法网站有两种情况,他有一个可信CA签发的合法证书;有一个不受信证书。后一种情况仍可能攻击成功,因为用户常无视安全提醒。假设用户都使用最新版浏览器。
  • Design:由于服务器难以分辨普通用户和攻击者,所以本文的一个基本的思路是从客户端的角度来观察服务器证书。如果客户端收到的证书和网站的合法证书不匹配,则可以直接认为网络连接受到篡改。那么设计思路就是在客户端部署一个插件,利用插件和服务器建立SSL连接,从客户端得到的SSL连接里提取证书发送给服务器,再在服务器端对证书进行检验。
  • Implementation:实现了一个Flash Player小程序,为SWF文件(2.1KB),由于大多数浏览器都支持Flash Player,在浏览器部署SWF文件适合实验。把swf文件发在Facebook服务器上,从总连接中抽取1%不到进行实验,为了避免原始网页的加载时间,在网页中嵌入一个JS脚本,使网页加载完成后,开始在浏览器端加载swf文件,然后利用swf文件盒服务器通信进行后续工作。服务器还实现了一个粒度控制机制,用来控制特定国家或者网络的样本率,以便当某种攻击发生后可以提高该地区的取样率。

Fig

  • Experimentation:利用这个基于Flash的检测方法在2012.11.20到2013.3.31间进行了收集和分析数据。

Fig

  • 表格中数据,9million到6.9million据分析是由于(1)客户浏览器不支持Flash Player插件或未安装。(2)少数浏览器不支持swf对象嵌入方法。(3)swf未加载完用户就关闭网页了。

Fig

表2中分析5million个报告,有64%的是格式完好的证书,后面也主要就分析了这些证书,其中0.2%的是伪造证书。

Analysis of forged SSL certificate

  • Size characteristics:主要分析了证书链大小,深度,公钥大小等信息。

Fig

表3表明大部分伪造证书链都很小,据推测是自签名证书,不包含中间CA证书。

Fig

大多数商用CA都使用中间key而不是root key来签发证书,也就是说它们一般会借助中间CA来签发证书,则证书链长度为1是不合理的。表4上表显示大部分伪造证书链长度为1,是可疑的。55个证书链长度为3或以上,超过了FB的合法长度。

  • Certificate Subjects:

Fig

大部分subject是FB,不奇怪。93个是Fortinet Ltd,这家公司是制造SSL代理设备的,用来提供MITM SSL检查。

  • Certificate Issures:伪造证书里,有10个签发者是合法组织,但是他们都没有签发这样的证书。其他的都不是由合法公司或者CA签发的。对这些签发者进行分类,主要有antivirus、firewalls、parental control software、adware、malware。排名最高的issuer就是一家杀毒软件公司Bitdefender,它的软件有一个选项“Scan SSL”选项用来解密流量。第二的ESET也是。第二大类issuer是是firewall,Fortinet是这样一种情况,NetSpark也是,主要进行HTTPS深度检查。Malware有lopFailZeroAccessCreate等待。FB和MS的专家确认了其中一些属于malware攻击。

Survey of mitigation

  • Strict Transport Security:是一个HTTP响应头,它允许网站命令浏览器强制使用SSL连接。
  • Public Key Pinning;
  • Origin-Bound Certificate;
  • Certificate Validation with Notaries;
  • Certificate Audit Logs:维护一个不可逆的已经合法签发的证书记录,不在这个记录里的证书可以直接拒绝掉。这种做法需要修改浏览器支持这种机制,CA或服务器也需要配合支持这种审计证明。Google已经宣布对Chrome里所有的EV证书采用证书透明化。
  • DNS-based Authentication.