编者按
ACM Conferenceon Computerand Communications Security(CCS)是系统和网络安全领域的四大顶级学术会议(BIG4)之一,一般在每年十月举行,地点不定。2016年的CCS(第23届)于10月24~28号日奥地利的首都维也纳举行,会议地点选在奥地利总统官邸所在的霍夫堡宫殿(HofburgPalace)。CCS的主会是在10月25、26和27日三天。从831篇投稿中,录取了137篇论文,录取率为16.5%。会议的第一天(24日)和最后一天(28日)分别是pre-workshops(7个)和post-workshops(6个),参会总人数超过1000人。
将陆续分享香港中文大学孙茗珅博士提供的参会总结和感想。孙博士的总结图文并茂,内容详细。既有对CCS相关论文的概述,也有自己的思考和评论。相信这一系列文章,会给读者带来身临其境的参会感受。
带你走进维也纳版的CCS2016(一)
2016年的CCS是有史以来最大规模,参会人数最多的一次会议。笔者有幸参加了这一届的CCS。CCS pre-conferece 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首先介绍了2016年SPSM的论文接收情况,一共有31篇投稿,来自19个不同的国家,总计92个reviews,最后接收了11篇regular paper和2篇short paper。之后,Long介绍了SPS Mworkshop的历史情况:起源于2011年两个不同的proposals,然后不断的壮大。
最后Prof.William Enck上台宣布下一年的计划:2017年,SPSM将不再单独举办workshop,并入ACM WiSec。William解释了取消SPSM,并入WiSec的主要原因是50%的SPSM投稿都来自WiSecrecycle的paper,所以SPSM和WiSec的投稿有很大的重叠,为了减少审稿的工作量,索性并入WiSec。其实WiSec这个conference主要的方向应该是wireless security,但是随着后来mobile(system)security的火热发展,WiSec上面的好多paper也和mobile security相关了。笔者之前参加过2015年在纽约举办的WiSec,审稿质量很高,论文也非常有趣,会议组织的也很好,建议研究mobile security的人可以考虑一下投稿WiSec。
Keynote邀请了Trustonic的Jan-ErikEkberg,做了TrustZone和SGX相关的介绍。其中,他详细介绍了新的TrustZone-M在IoT设备上的应用,因为IoT设备的操作系统简单,TEE的重要性不言而喻。感兴趣的可以了解一下TrustZone-M,未来ARM-based的IoT设备可能都能用上。
Technical Session:Studies and Analyses
在这个session里有四篇paper,分别与Samsung KNOX、Android时间同步服务、Android app伪造用户活跃度,以及iOSApp大规模的分析有关。
1.Secure Containers in Android:the Samsung KNOX Case Study
三星KNOX是基于TrustZone的App隔离框架,只有在三星手机上才可以使用,因为并不是开源的框架,因此没有很多文章分析KNOX的整个结构框架。这篇文章分析了KNOX的框架,然后讨论了两种攻击方法。
KNOX自上而下包括以下几层安全组件:
SEAndroid:KNOX用自己的SEAndroidpolicy来隔离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权限。图1是作者得出的KNOX框架。本文还分析了KNOX2.0之后的变化。
总的来说这篇文章讨论了三星KNOX的框架,以及在这些安全保护下能做的攻击,建议做TrustZone的人了解一下现状,在设计实现细节中多注意。
2.White Rabbit in Mobile:Effect of Unsecured Clock Source inSmartphones
本文介绍了移动系统的时间同步系统,文章名字WhiteRabbit取自爱丽丝漫游记里不知道时间的白色兔子。
现代的移动操作系统一般通过以下三种方式同步系统时间。
NITZ:Network Identity and TimeZone,一般是手机网络提供(2G,3G和4G)。
NTP:Network TimeProtocol,通过WiFi网络链接NTP服务器获取当前时间。
GNSS:Global Navigation Stellite System,通过GPS获取。
前两种方式一般是操作系统自动获取的,GNSS是手动连接GPS获取的。
这篇文章主要研究了NITZ和NTP两种方式,在不同的操作系统下,不同的网络制式下,以及不同的手机上的不同现象。比如说某些移动运营商在2G/3G里提供NITZ,但在4G里却没有。不同手机对于NTP和NITZ两种方式的优先级也不同。这些不同就引发了一些问题,作者通过伪造时间,触发了系统的一些bug。
3.What You See Isn‘t Always What You Get:A Measurement Study of Usage Fraudon Android Apps
该文针对中国市场上App伪造活跃度做的measurement study。起因是荔枝FM为了伪造用户活跃度,会在后台开启多个服务,使用户数据统计工具重复统计用户的交互次数,从而让荔枝FM的用户看起来很多。其目的可能是为了以此获得更多的资本投资。
通过尝试欺骗现有的几个流行的分析系统,作者得出了以下结论,见表1。
一些分析系统只使用简单的deviceID作为统计用户的唯一标示,稍微复杂点的会使用简单组合变换,让伪造数据变复杂。
但是无论怎么设计in-device的统计系统,都无法避免伪造数据。笔者认为服务商只能通过数据分析,检测异常的数据增长才能发现这种行为,也算是anomaly detection system的一种。会议上session chair询问为什么这种usage fraud在中国发生,别的国家没有。这是一个非常有趣的问题,笔者认为,其原因可能是由于中国市场的同质化太严重,投资环境、舆论环境更看重的是用户活跃度(DAU)这一个数字。
4.CRiOS:Toward Large-Scale iOS Application Analysis
本篇文章下载了43404个iOS应用,在这些应用上做了一个大规模的动态分析,主要结论是很多应用的证书快要到期或者已经到期了。本文还提出了一种检测第三方library的方法,因为Android上面类似的方法已经有很多了,在此就不详细介绍。
Technical Session:Privacy
Privacy session有四篇paper,两篇是讲permission分析的,一篇讲视频隐私,另外一篇讲电话号码的问题。
SecuRank:Starving Permission-Hungry Apps Using Contextual Permission Analysis
现在市场上的应用相同功能的非常多,不同的应用使用的permission也不尽相同,SecuRank可以推荐相似功能的,并且不会需要那么多permission的App。这个系统提取应用的描述句子,用NLP的方法判断相似度,然后使用permission prevalence metric来定义稀有的可能是敏感的permission。通过这两种方法,就可以给用户推荐相对安全,功能类似的App了。
2.Securing Recognizers for Rich Video Applications
这篇文章讨论的是如何保护视频隐私的问题。解决方法就是在视频送给应用的时候,加入一个预处理,只提供必要的信息,尽量减少其他不相关的信息泄漏。文章用privacy budget表示一个视频包含的信息量。
3.Ona(Per)Mission:Building Privacy Into the App Marketplace
这篇文章研究了如何在应用市场中的显示App的permission/privacy情况,作者用AmazonMechanicalTurk测试不同用户对于不同形式的privacy级别显示的理解。
4.Exploiting Phone Numbers and Cross-Application Featuresin Targeted Mobile Attacks
这篇文章思路很简单,现在很多应用都会把手机号码当作登录,或者用户的ID。作者随机生成手机号码,通过Truecaller和其他一些社交网络应用的数据,就可以发起有目标的攻击。简单来说更像是一个自动的“社工”框架如图2所示,能快速的找到手机号对应的人。
Technical Session:Attacks and Defenses
1.Hardened Setup of Personalized Security Indicators to Counter Phishing Attacksin Mobile Banking这篇文章讲的是如何用personlizedsecurityindicator来区分phishingApp和官方的App。这个personlized seurity indicator就是一个PIN,银行通过邮寄的方式寄到用户手里面。想要避免phising App,需要使用手机的另外一个App:broker,输入PIN才能进入真正的官方银行App。可能是之前没有人研究过这个流程,所以这篇文章又重新的设计了流程,并且evaluate了这种protocol的performance。不知道市面上有银行在使用这种方式没有,但是实体的key——U盾这种方式的认证现在还是挺常见的。不知道银行有没有这个动力,避免phising malware盗取用户信息。
2.Picasso:Lightweight Device Class Finger printing for Web Clients
Picasso根据HTML5的graphicalAPI在canvase上面生成图片,因为不同平台的浏览器会生成的不可预测的noise,这些noise就可以用来区分浏览器。Picasso的工作流程是这样的,首先服务器会发送一个challenge给客户端,也就是浏览器。浏览器会根据challenge渲染出相应的图片返回给服务器。最后,服务器根据图片的不同来判断是由那种浏览器生成的,区分出是iOS的Safari或是Linux上的PhantomJS。
Picasso可以应用在统计访问来源,识别爬虫,判断运行环境等方面。
3.Detecting Misuse of Google Cloud Messaging in Android Badware
这篇文章提出了检测使用GCM(Google Cloud Messaging)服务的Android Badware的方法,简单来说就是使用静态检测的方法,发现GCM的control flow,提取特征,然后使用SVM,decision tree的classification方法来做分类,从而检测出相似的调用。
4.[ShortPaper]On the CCA (in)security of MTProto
本文分析了Telegram的加密方式,发现Telegram的protocal MTProto不是IND-CCA(indistinguishability under chosen-ciphertext attack)secure。证明了在某些情况下可以把任意密文替换成替换为另外一个密文,使得他们解密后的原文是一样的。作者给的take-awaymessage是:那些已经证明过的安全加密方法要比自己发明的(home-brewed)加密方法更安全。
5.[ShortPaper] Breaking TETRA Location Privacy and Network Availability
这篇文章主要讲了欧洲使用的TETRA(Terrestrial Trunked Radio)通信协议。作者实现了一个TETRA攻击设备,用来fuzz和jam广泛使用的TETRA设备。
(作者单位为香港中文大学)
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。