安大略湖畔的安全之光——ACM CCS 2018 小记(4)

安大略湖畔的安全之光——ACM CCS 2018 小记(4)

10月18日,CCS大会进入到最后一天(19日还有一天的workshop议程),最近几年的CCS都会把一些广受关注的压轴议题放到最后一天,今年的会议将传统安全研究颇为关注的Web Security、Binary Defense、Mobile Security、Vulnerability Detection和Fuzzing等session放在了这一天,由于不可能逐一跟踪所有论文,我们只能尽力将其中我们听到的精彩议题在此与大家分享。

Binary Defenses

在二进制防御相关研究方向上,今天共有两个session共六篇论文,首先引起大家关注的是来自ETH Zurich(苏黎世联邦理工学院)的研究者设计的二进制反编译辅助工具DEBIN(Debin: Predicting Debug Information in Stripped Binaries),这个工具基于人工智能学习方法,对现有的具备debug和符号信息的二进制代码进行学习之后,可以智能地预测stripped binaries中的函数和变量名称(知识迁移),作者提供了在线网站供大家测试(经过我们实测,还有很大的进步空间):

DEBIN | Predicting Debug Information in Stripped Binaries

debin:基于人工智能的反编译信息恢复系统


除了对于传统二进制代码防护的论文,今年有两篇论文从比较新颖的角度关注了代码防护:

首先来自Ruhr-Universität Bochum(德国波鸿鲁尔大学)的研究人员介绍了他们在Microcode层面上开展的系统防护(An Exploratory Analysis of Microcode as a Building Block for System Defenses ),这项工作基于AMD CPU支持运行时microcode(微码)更新的机制开展,可以通过添加一些自定义的microcode,去实现一些CPU上原来没有的安全相关指令(例如进行内存越界检查的指令)。可以把这项工作看成是对CPU指令集的手工定制,然而其问题在于当机器重启以后,这个手工更新的指令集就消失了。。。

第二篇论文Milkomeda: Safeguarding the Mobile GPU Interface Using WebGL's Security Checks来自UC Irvine(加州大学Irvine分校),作者介绍了一种对抗GPU device driver恶意调用的安全机制。作者发现,由于移动平台上GPU device driver缺乏良好的输入过滤机制,攻击者可以通过低权限的用户代码层面调用GPU驱动接口,实现一系列提权攻击;为了对抗这一攻击,本文设计了一个叫做Mikomeda(用日文发音法念……)的系统:

Mikomeda实现了对GPU驱动调用的统一管理

在Mikomeda的控制下,所有的非授权GPU driver调用都会被阻止(这是通过修改系统内核实现的),从而完成安全管控。但是Mikomeda的问题也在于需要修改已有的system kernel,会导致部署的困难。

Web Security

在web安全方面,有两篇论文讨论了当前新出现的一些web攻击:

第一篇论文MineSweeper: An In-depth Look into Drive-by Cryptocurrency Mining and Its Defense讨论的是在密码货币流行的情况下,分析的991,513个网站上,作者发现了有1,735个网站存在恶意的挖矿脚本。尽管这个事实并不是特别的新奇,但是作者通过系统地分析,总结了恶意挖矿脚本的类型、特点和相关的密码货币受益地址等,不失为一篇非常系统性的总结论文。

第二篇论文Pride and Prejudice in Progressive Web Apps: Abusing Native App-like Features in Web Applications(嗯这是本次会议第二篇向Jane Austen致敬的论文了)是来自韩国科学技术院的研究人员对一类叫做Progressive Web Apps (PWA)的新型web app的安全分析,其实所谓的PWA就是2015年开始Google提出的一种web app模型,尽管号称有诸多好处,PWA的设计往往也和其它所有的新生计算机技术一样对安全存在一定程度的忽视。本文就从多个方面分析了PWA使用过程中面临的安全威胁,为开发人员和使用者提供了安全参考。

Vulnerability Detection

今年8月27-28日在北京国家会议中心举行的第四届互联网安全领袖峰会(Cyber Security Summit,简称 CSS)上,除了我们组关于智能门锁的报告《易伪造的数字钥匙——智能门锁Token安全性分析与保护》之外,夺得会议突破奖的《迈向自动化攻击的一小步》(作者张超、王琰;清华大学+中科院)这一报告也来到了CCS。关于他们的论文Revery: from Proof-of-Concept to Exploitable (One Step towards Automatic Exploit Generation),国内亦有人发表了相关论文笔记:

[读] Revery: From Proof-of-Concept to Exploitablesimp1e.leanote.com图标

网络协议安全

在网络应用与协议安全方面,有两篇有意思的文章,第一篇论文Pseudo Constant Time Implementations of TLS Are Only Pseudo Secure讨论了当前密码学算法库中的一个热门议题:密码算法的常量时间执行。由于最近一段时间各种side channel attacks的论文实在是太火热,因此密码学算法库的开发人员往往也在提升性能的同时,考虑自己的代码实现是否能够做到常量时间执行。例如流行的密码算法库Libsodium就号称在关键代码上去除了所有的分支跳转,保证了常量执行时间。然而,本文指出,在很多TLS库上的常量时间执行实现其实是伪常量时间(Pseudo Constant Time),仍然无法避免cache based timing attacks,作者具体发现了GnuTLS、mbed TLS、wolfSSL和亚马逊的s2n库上的问题,并向相关vendor进行了通报。值得一提的是本文的一作Eyal Ronen即去年的Oakland上的论文IoT goes Nuclear(Creating a ZigBee Chain Reaction)的一作,而论文的三作是大名鼎鼎的图灵奖得主 Adi Shamir

在18日的午餐会上我们碰到了一位在德国的中国安全研究人员Tianxiang Dai,他给我们介绍了他在Fraunhofer Institute for Secure Information Technology SIT的研究成果——基于DNS污染的域名证书劫持攻击和防御(论文Domain Validation ++ for MitM-Resilient PKI),我们惊讶于即使到了2018年,DNS仍然还是网络安全中十分薄弱的一环。

Fuzzing, Exploitation, & Side Channels

本次CCS大会的最后一个session留给了fuzzing和side channel攻击的相关技术论文,其中论文Hawkeye: Towards a Desired Directed Grey-box Fuzzer是由新加坡南洋理工大学刘杨老师的网络安全实验室完成,他们设计了一个新的fuzzing框架Hawkeye,我们有幸邀请到上海交通大学毕业的一作陈泓旭为他们的论文进行介绍:

Hawkeye(鹰眼,谐音读作“好可爱” ^_^)是一个基于变异的灰盒模糊测试器。和通常情况下以提高程序覆盖率并找到更多的程序漏洞为目的的模糊测试不同,它主要用于测试程序的特定位置(一般是文件名和行号)并希望通过测试找到更多和目标位置有关的漏洞。它可以用于补丁测试、程序崩溃重现以及佐证其他漏洞检测工具的结果。Hawkeye受到CCS17年AFLGo的启发,总结了提高这类给定位置的模糊测试有效性的四种属性。Hawkeye结合了静态分析及插桩技术,根据动态测试时测试用例执行过程中覆盖的函数、基本块设计了到目标位置的距离指标,从而指导模糊测试。

Hawkeye的实现基于作者们自己实现的类AFL的模糊测试框架FOT (Fuzzing Orchestration Toolkit)。该框架致力于集成现有并探索新的模糊测试技术,和其他框架相比,它提供了多种配置选项并且易于扩展。经过一年多的努力,FOT找到了知名开源程序中的100多处漏洞。FOT获得2017年NASAC原型竞赛(命题型)一等奖,相应的工具论文被ESEC/FSE2018 demonstrations track接受
FOT模糊测试框架

值得一提的是,当这篇论文进行报告的时候,会场的麦克风出现了问题,尽管如此大家还是非常专注地听完了报告,特别是报告最后,作者介绍了他们的FOT模糊测试框架时,大家都非常热切地提了许多问题,非常期待又一个AFL这样强大的框架能够早日推广!


从时间上看,本session的最后一篇论文Rendered Insecure: GPU side channel attacks are practical的报告,也差不多是本次CCS大会的最后一篇论文报告。

颤抖吧,NVIDIA!

这篇论文报告非常流畅生动,可以说是在本次CCS上报告中非常吸引人的报告之一,其内容也很有趣,作者发现即使是在GPU这种计算模型上,依然可以发现一些Side Channel,例如当打开一个特定的网站首页时候,GPU的渲染占用的内存会有一个特定的模式,而因为GPU本身提供了一些内存使用的查询API,一个低权限进程可以简单地持续查询当前GPU的内存使用,就可以从pattern中发现这台机器当前在访问哪一个网站,的确是一个很有意思的研究工作。

Lest we forget!

安全从来就不是一个轻松的话题,本次CCS大会尽管诸多报告中充满了欢声笑语,但是仍然有一个报告让我们觉得心情无比沉重:在今天上午的EviHunter: Identifying Digital Evidence in the Permanent Storage of Android Devices via Static Analysis论文报告中,我们看到了令人心痛的内容:

本文的作者系统性地研究了移动设备上的存储内容,并通过程序分析方法,能够确定哪些存储内容可以被法庭用作数字证据,而其研究成果也被用在2017年中国留学生章莹颖绑架案上,针对嫌犯的手机进行的分析,让该案件从missing变成了kidnapping,并帮助警方开展了后续的调查。尽管目前该嫌犯依然还没有被定罪,但是我们相信,正义可以迟到,却永远不会缺席。我们也始终坚信,计算机安全研究不只是一些小众的攻防游戏,它过去、现在和未来都一直是保障所有人的信息安全乃至现实安全的最强有力的手段之一。

关于2019

CCS 2019 submission model

2018年CCS结束了,我很怀念它;接下来,我们要展望一下2019:除了采用了全新投稿模型的CCS 2019 London以外,2019年的AsiaCCS将去到大洋洲的新西兰第一大城市奥克兰!如果你已经去过Oakland,那么不妨考虑一下Auckland吧: )

AsiaCCS 2019 CFP

编辑于 2018-10-27

文章被以下专栏收录