带你走进维也纳版的CCS2016(现场报告点评四)

文/孙茗珅 香港中文大学

October 26: Main Conference

今天参加的 session 比较杂,我主要参加了 keynote, web/mobile security session, protection across execution session, attack and defense session, phone security session, panel discussion 还有晚上的维也纳传统美食。

Keynote: Is it practical to build a truly distributed payment system? – Ross Anderson

Ross 主要介绍了他在发展中国家试验的一种 distributed payment 系统,利用了简单的密码学知识,使用一个手机和短信验证码,完成了交易。加密方式很简单:

The crypto is simple enough: a challenge is copied from the payee’s phone to the payer’s, and an authorisation code is then copied back to the payee.

他的项目得到了 Gates Foundation 的资助,在一些贫穷国家尝试使用,效果非常不错。Ross 的研究真的改变了一个村子里的支付方式,这就是科研的影响力。

%e5%9b%be%e7%89%871

视频连接:https://www.youtube.com/watch?v=IbfG_KSlTD4

Technical Sessions

Measurement and Analysis of Private Key Sharing in the HTTPS Ecosystem

Frank Canglialosi (University of Maryland), Taejoong Chung, David Choffnes (Northeastern University), Dave Levin (University of Maryland), Bruce M. Maggs (Duke University), Alan Mislove and Christo Wilson (Northeastern University)

%e5%9b%be%e7%89%872

这篇文章主要介绍了在 CDN 中 HTTPS 使用情况的 measurement study。当今,大部分热门的网站都有在第三方的 CDN 上有部署。比如说 CloudFlare 就提供免费的 CDN 服务,我的主页就用了 CloudFlare 的服务。你把 DNS 解析服务放在 CloudFlare 上,一个 request 就有首先到达某个 CDN 服务器。CloudFlare 也提供了 HTTPS 链接服务,如果你使用了,那么所有的 HTTPS 访问就会使用 CloudFlare 的证书,而不是网站本身的证书。

%e5%9b%be%e7%89%873

measurement-and-analysis-1

%e5%9b%be%e7%89%874

所以,在 HTTPS 传输中,使用的 key 则来自于 CDN 服务。如果某个 CDN 服务出现漏洞,泄漏了 key,那么所有使用这个 CDN 的网站可能都会收到影响。

作者首先通过 WHOIS 里的信息区分了每个网站的拥有者,然后利用收集的数据回答了以下几个问题,(可以在论文中找到对应的答案):

  • How many organizatins share keys?
  • How may keys do providers have?
  • How are SAN lists used?

之后,文章又研究了 certificate management 的问题,我最感兴趣的是关于 Heartbleed 漏洞之后的证书管理情况,文章主要有两张图概括。

%e5%9b%be%e7%89%875

measurement-and-analysis-2

左边的是在 Heartbleed 漏洞公开之后证书没背撤销的比例,右面是没有 reissue 的证书的比例。可以得出一个结论是,outsourced 的证书(也就是 CDN 提供的证书)在漏洞刚出时,反应慢于自己管理的网站的证书。而一段时间之后(一周后),因为 outsourced 能够管理大量网站的证书,所以能够统一撤销、重新发放证书

 Build It, Break It, Fix It: Contesting Secure Development

Andrew Ruef, Michael Hicks, James Parker, Dave Levin, Michelle L. Mazurek (University of Maryland) and Piotr Mardziel (Carnegie Mellon University)

这个 talk 并不是讲科研的,而是主要介绍了作者组织的一种安全编程的比赛,不同于传统的 CTF, CGC,这个比赛主要面向刚刚接触安全的学生。比赛包括三个阶段:build, break, fix,模拟了真实世界当中的安全编程的情况。所以这个比赛考察了1. 如何写出安全可靠的代码,2. 如何找到软件的漏洞并且加以利用,最后3. 如何修复有漏洞的代码。

%e5%9b%be%e7%89%876

作者在论文中分析了 2014 年的比赛的一些信息:

%e5%9b%be%e7%89%877

build-it-break-it

图表中最下面的图很有意思。比赛在 build 阶段会考虑 testcases 和 performance 的分数,在 break 阶段考虑 bugs 和 vulnerability 的分数,在 fix 阶段考虑 fix 后的结果。几乎所有的队伍在 break 阶段都会有减分,但是有些队伍在 fix 阶段就修补了漏洞。

对于这个 build, break, fix 的比赛,我感觉更像是综合了编程能力,算法能力,和安全能力的比赛。比赛还有奖金,感兴趣的同学可以关注一下明年的比赛。

比赛网址:https://builditbreakit.org

 SandScout: Automatic Detection of Flaws in iOS Sandbox Profiles

Luke Deshotels (North Carolina State University), Razvan Deaconescu, Mihai Chiroiu (University POLITEHNICA of Bucharest), Lucas Davi (TU Darmstadt), William Enck (North Carolina State University) and Ahmad-Reza Sadeghi (TU Darmstadt)

这篇文章主要研究了 iOS 的 sandbox 机制,主要是由 container profile 控制。iOS sandbox 是一种 mandatory access control policy,使用了 Trusted BSD MAC framework: http://www.trustedbsd.org/mac.html. 它可以为不同的 sandbox 设置不同的 “profile”。通过使用一种 SBPL (SandBox Profile Language) 的语言,可以在 Profile 里面可以定义 system call 的使用权限。

下图的这个例子就表示了 mobilesafaris 和 safarifetcherd 可以访问 /Media/Safari 目录下的所有文件,除了 secret.txt.需要注意的是苹果并没有公开最新的 SBPL 语法文档,profile 也是编译之后二进制文件。

%e5%9b%be%e7%89%878

sandscout-0

这篇文章要解决三个问题,反编译 profile 文档,model sandbox policy,自动化发现漏洞。正是因为 SBPL 的复杂,定义稍有不慎,就会出现逻辑上漏洞。沿着这个思路,作者把 graph-based SBPL 转化成 Prolog 的逻辑定义。profile 变为 Prolog 后,就可以用一些 policy quiery 来检查 profile 是否存在漏洞。

通过这种方法,作者发现了七类漏洞,并且通知了 Apple,大部分漏洞都能修改 profile 解决。下图这个例子是 iTunes 的隐私泄露漏洞,主要原因是 /private/var/mobile/Medi- a/iTunes_Control/iTunes 目录可以被任何第三方 app 访问,而目录下面包含一些隐私数据。

%e5%9b%be%e7%89%879

sandscout-1

iOS 的安全问题历来都是 “under the hood”,这次的 profile 机制以前确实没人研究过,但是想一想 SELinux/SEAndroid 不是也是 MAC 么?同样的问题,在 iOS 上一样存在,就是需要深入挖掘。

The “Web/Local” Boundary Is Fuzzy: A Security Study of Chrome’s Process-based Sandboxing

Yaoqi Jia, Zheng Leong Chua, Hong Hu (National University of Singapore), Shuo Chen (Microsoft Research), Prateek Saxena and Zhenkai Liang (National University of Singapore)

这篇文章讨论了在现在的浏览器中 web 和 local 的 boundary 开始模糊,因此造成的安全问题。下图左边描述了传统的 process-based 浏览器模式,在这种框架下 web/local boundary 非常清晰。最近出现的 cloud service (比如说 Dropbox) 引入了 cloud app, client app,使得 web/local boundary 不是唯一的。

%e5%9b%be%e7%89%8710

the-web-local-boundary

文中介绍了三种可能引起的问题:

  • accessing files on the local system
  • interacting with the local system
  • misusing system sensors

利用方法是假设通过 rederer 的 memory corruption exploit 修改 SOP enforcement,使 a.com 可以加载 b.com 到 iframe 里。那么就能通过 iframe 与 cloud service 通信,进而修改 local file system。

%e5%9b%be%e7%89%8711

the-web-local-boundary-2

Yaoqi 举了个例子,在 iframe 里显示 DropBox share file 的按钮,就能绕过以前的 web/local boundary 直接通过 DropBox 获得/修改文件。

因为从 memory corruption exploit 到 bypass SOP 还有很多工作要做,作者还详细介绍了如何绕过 Chrome 的 memory protection (ASLR, CFI)。

下面是 POC 的代码,以及视频。

Bookmark the permalink.

Comments are closed.