编者按:
ACM Conference on Computer and Communications Security (CCS) 是系统和网络安全领域的四大顶级学术会议(BIG4)之一,一般在每年的十月份举行,地点不定。今年的CCS(第23届)于10月24-28号日奥地利的首都维也纳举行。会议地点选在奥地利总统官邸所在的霍夫堡宫殿(Hofburg Palace) 。
CCS的主会是在10月25、26和27日三天。从831篇投稿中,录取了137篇论文,录取率为16.5%。 会议的第一天(24日)和最后一天(28日)分别是pre-workshops (7个)和post-workshops(6个),参会总人数超过1000人,大概是安全领域有史以来,规模最大的一次会议。
我们将陆续分享香港中文大学孙茗珅博士提供的参会总结和感想。孙博士的总结图文并茂,内容详细。既有对CCS相关论文的概述,也有自己的思考和评论。相信这一系列文章,会给读者带来身临其境的参会感受。
—— 万涛 华为加拿大
带你走进维也纳版的CCS2016(现场报告点评一)
孙茗珅 (香港中文大学)
今年的 CCS 是有史以来最大规模,参会人数最多的一次。我有幸参加了这一届的 CCS,在“音乐之都”维也纳度过了六天,参加了四天的会议,在霍夫堡宫殿介绍我们的系统,在多瑙河畔享受秋日的凉爽。这几天的会议感触颇深,我将把这次参会的所见所闻按照日记的形式给记录下来,中间会穿插我对于科研的思考和未来的畅想。
October 24: Pre-Conference Workshops (SPSM)
Opening
CCS pre-conferecen workshop 一天有 7 个 workshops 同时并行,我主要关心 mobile security 方向,所以我参加了 SPSM (6th Annual ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices)。
Session Chair Prof. Long Lu 首先介绍了今年 SPSM 的论文接收情况,一共有 31 篇投稿,来自 19 个不同的国家,总计 92 个 reviews,最后接收了 11 篇 regular paper 和 2 篇 short paper。之后,Long 介绍了 SPSM 这个 workshop 的历史情况:源于 2011 年两个不同的 proposals,然后不断的壮大。
最后 Prof. William Enck 上台宣布下一年的计划:2017 年,SPSM 将不再单独举办 workshop,并入 ACM WiSec。William 解释了取消 SPSM,并入 WiSec 的主要原因是 50% 的 SPSM 投稿都来自 WiSec recycle 的 paper,所以 SPSM 和 WiSec 的投稿有很大的重叠,为了减少审稿的工作量,索性并入 WiSec。其实 WiSec 这个 conference 主要的方向应该是 wireless security,但是随着后来 mobile (sysetm) security 的火热发展,WiSec 上面的好多 paper 也和 mobile security 相关了。我之前参加过 2015 年在纽约举办的 WiSec,审稿质量很高,论文也非常有趣,会议组织的也很好(主办方带我们去看歌剧去了),建议做 mobile security 的可以考虑一下投稿 WiSec。
spsm
Keynote
Keynote 请了 Trustonic 的 Jan-Erik Ekberg,做了 TrustZone 和 SGX 相关的介绍。其中,他详细介绍了新的 TrustZone-M 在 IoT 设备上的应用,因为 IoT 设备的操作系统简单,TEE 的重要性不言而喻。感兴趣的可以了解一下 TrustZone-M,未来 ARM-based 的 IoT 设备可能都能用上。
Technical Session: Studies and Analyses
在这 session 里有四篇 paper,分别和 Samsung KNOX、Android 时间同步服务、AndroidApp伪造用户活跃度,以及 iOSApp大规模的分析有关。下面,我简单介绍一下这四篇论文。
Secure Containers in Android: the Samsung KNOX Case Study
by Uri Kanonov (Tel Aviv University), Avishai Wool (Tel Aviv University)
三星 KNOX 是基于 TrustZone 的App隔离框架,只有在三星手机上才可以使用,因为并不是开源的框架,所以没有很多文章分析 KNOX 的整个结构框架。这篇文章分析了 KNOX 的框架,然后讨论了两种攻击方法。
KNOX 自上而下包括以下几层安全组件:
•SEAndroid: KNOX 有自己的 SEAndroid policy 来隔离 apps
•TIMA: TrustZone-based Integrity Measurement Architecture。TIMA 包括一个 PKM (Periodic Kernel Measurement) 组件,每各一段时间 PKM 就会检查 kernel 代码和数据的 integrity。它的详细的检查工作流程没有文档记录。另外一个组件是 RKP (Real-time Kernel Protection)。RKP 可以保护运行时的 page table 只能在 TrustZone 的 secure world 修改,在 normal world 只读。
•TrustZone
•Secure Boot: 启动时会在 TrustZone 中验证代码的 integrity,确保启动的代码是安全可信的
作者通过使用 IDA Pro 反编译 native libraries,使用 Universal Deodexer, dex2jar, jd-gui 反编译 Android Java 代码,并且使用 hooking 方式对 KNOX 进行动态分析。当然,想要动态分析 KNOX 需要先 root,本文使用了 CVE-2013-6282 SafeRoot 获得 root 权限。下面是作者得出的 KNOX 框架:
knox
之后,本文分析了在 KNOX 1.0 上的一些攻击:
•不需要 root 环境
–VPN Man-in-the-Middle: CVE-2016-1920
–Clipboard: CVE-2016-3996
–ADB
–结论是:1. 需要限制 secure container 的攻击面,比如说不要把 clipboardEx 服务暴露给非 KNOX 应用。2. secure container 和 insecure container 的共享资源非常容易泄漏信息。上面三个例子感兴趣的可以详细阅读这篇论文。
•需要 Root 的攻击
–读取 KNOX 数据
–eCryptFs Key: CVE-2016-1919
–Keyboard 监听:CVE-2015-4640
–隐藏 KNOX 的保修 bit 数据
–结论是:secure container 需要在 TrustZone 里检测是否已经被 root。
本文还分析了 KNOX 2.0 之后的变化。
总的来说这篇文章讨论了三星 KNOX 的框架,以及在这些安全保护下能做的攻击,建议做 TrustZone 的人了解一下现状,在设计实现细节中多注意。
White Rabbit in Mobile: Effect of Unsecured Clock Source in Smartphones
Shinjo Park (TU Berlin/Telekom Innovation Labs), Altaf Shaik (TU Berlin/Telekom Innovation Labs), Ravishankar Borgaonkar (Oxford University), Jean-Pierre Seifert (TU Berlin/Telekom Innovation Labs)
本文介绍了移动系统的时间同步系统,文章名字 White Rabbit 取自爱丽丝梦游仙境里之一白色兔子不知道时间(我也不知道我为啥对这个印象深刻)。
现代的移动操作系统一般通过以下三种方式同步系统时间:
•NITZ: Network Identity and Time Zone,一般是手机网络提供(2G,3G和4G)。
•NTP: Network Time Protocol,通过 WiFi 网络链接 NTP 服务器获取当前时间。
•GNSS: Global Navigation Stellite System,通过 GPS 获取。
前两种方式一般是操作系统自动获取的,GNSS 是手动连接 GPS 获取的。
white-rabbit
这篇文章主要研究了 NITZ 和 NTP 两种方式,在不同的操作系统下,不同的网络制式下,以及不同的手机上的不同现象。比如说某些移动运营商在 2G/3G 里提供 NITZ,但在 4G 里却没有。不同手机对于 NTP 和 NITZ 两种方式的优先级也不同。这些不同就引发了一些问题,作者通过伪造时间,触发了系统的一些 bug。
之前 iOS 把时间调到 UNIX time 之前就无法开机的问题就能通过 NTP 伪造时间。我猜作者看到了这个新闻,想到分析一下当前的时间同步系统,或许会有有趣的结论。总的来说,这边文章分析的很全面,还把各个国家的运营商不同制式尝试了一下,工作量还是挺大的。
What You See Isn’t Always What You Get: A Measurement Study of Usage Fraud on Android Apps
Wei Liu (Tsinghua University), Yueqian Zhang (Tsinghua University), Zhou Li (ACM Member), Haixin Duan (Tsinghua University)
这篇文章是清华大学段海新老师团队的研究。由段老师的学生刘炜宣讲。该文针对中国市场上App伪造活跃度做的 measurement study。起因是荔枝FM为了伪造用户活跃度,会在后台开启多个服务,使用户数据统计工具重复统计用户的交互次数,从而让荔枝FM的用户看起来很多。目的嘛,可能是为了以此获得更多的资本投资。
通过尝试欺骗现有的几个流行的分析系统,作者得出了以下结论:
usage-fraud
一些分析系统只使用简单的 device ID 作为统计用户的唯一标示,稍微复杂点的会使用简单组合变换,让伪造数据变复杂。
但是无论怎么设计 in-device 的统计系统,都无法避免伪造数据。我认为服务商只能通过数据分析,检测异常的数据增长才能发现这种行为,也算是 anomaly detection system 的一种。会议上 session chair 问为什么这种 usage fraud (只)在中国发生,别的国家没有。这是一个非常有趣的问题,我觉得原因可能是中国市场的同质化太严重,投资环境、舆论环境更看重的是用户活跃度(DAU)这一个数字。这个问题不禁让我想到,是不是还有很多中国(发展中国家)独有的安全现象、安全问题可以来做一些研究呢?
CRiOS: Toward Large-Scale iOS Application Analysis
本篇文章下载了 43,404 个 iOS 应用,在这些应用上做了一个大规模的动态分析,主要结论是很多应用的证书快要到期或者已经到期了。本文还提出了一种检测第三方 library 的方法,因为 Android 上面类似的方法已经有很多了,我就不详细介绍了,感兴趣的可以看一下论文。