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

文/孙茗珅 香港中文大学

UniSan: Proactive Kernel Memory Initialization to Eliminate Data Leakages

Kangjie Lu, Chengyu Song, Taesoo Kim and Wenke Lee (Georgia Institute of Technology)

UniSan 是一个检测 Linux kernel 的 memory initialization 问题的。 Memory initialization 会有什么问题?我们看下面这个例子:

%e5%9b%be%e7%89%8712

unisan-2

上图的 kernel structure 中包括一个 unsigned int 和一个 unsigned char,为了 memory alignment,编译器会在后面加入 3-byte padding。问题就在于,这 3 bytes 并没有 initialize,可能还保留了上次的数据,当把这段内存返回给用户空间的时候,因而造成了 kernel memory 的 data leakage.

C11 的 spec 上却是也说明了应该是 unspecified values,所以也不是编译器的错了。%e5%9b%be%e7%89%8713

unisan-3

作者把发现的问题报给 Kernel community 得到的反馈非常有意思,有怀疑的,有确认的,还有怨 GCC 的。

%e5%9b%be%e7%89%8715

unisan-4

在这篇文章,作者为了找到这类的 initialization 引起的 data leakage,提出了用 program analysis 的方法检查程序是否初始化内存对象。具体是基于 LLVM 检查 (没有选择 GCC 的原因是 LLVM 提供了更多的 API)是否存在程序路径,使得一个内存对象离开内核空间时候没有被初始化。

  • 论文简介(发表在 InForSec):https://www.inforsec.org/wp/?p=1416

iLock: Immediate and Automatic Locking of Mobile Devices against Data Theft

Tao Li, Yimin Chen, Jinchao Sun, Xiaocong Jin, Yanchao Zhang (Arizona State University)

%e5%9b%be%e7%89%8716

on-code-execution-tracking-0

iLock 利用声音检测手机是否丢失,如果丢失了就锁定手机保护手机内的信息。具体的方法是使用了 FMCW 的方法,传输的信号频率回随着时间变大,通过计算接收到的信号的时间差,就能判断反射物体的距离。下面这个就是 FMCW 的示意图:

%e5%9b%be%e7%89%8717

ilock-1

On Code Execution Tracking via Power Side-Channel

Yannan Liu, Lingxiao Wei, Zhe Zhou, Kehuan Zhang (The Chinese University of Hong Kong), Wenyuan Xu (Zhejiang University) and Qiang Xu (The Chinese University of Hong Kong)

这篇文章是用 MCU 的 power side-channel 来判断 control-flow integrity。具体的方法是通过 power trace 把 CFG 构建为一个 hidden Markov model。作者对原始的 HMM 进行了修改。使在 CFG 里的一个 block 表示 HMM 的一个 node。

%e5%9b%be%e7%89%8718

on-code-execution-tracking-1

Singnal extraction 是这篇文章的另一贡献,如何把 power signal 抽象为 observation symbol?如何修改 Viterbi algorithm 使它能够判断 execution sequence 是否是 HMM 的一部分(也就是判断 CFG 是否被修改了)。详细内容可以阅读论文。

%e5%9b%be%e7%89%8719

on-code-execution-tracking-2

Drammer: Deterministic Rowhammer Attacks on Mobile Platforms

Victor van der Veen (Vrije Universiteit Amsterdam), Yanick Fratantonio, Martina Lindorfer (UC Santa Barbara), Daniel Gruss, Clementine Maurice (TU Graz), Giovanni Vigna (UC Santa Barbara), Herbert Bos, Kaveh Razavi and Cristiano Giuffrida (Vrije Universiteit Amsterdam)

%e5%9b%be%e7%89%8720

drammer-1

这篇文章恐怕是本届 CCS 最为期待的了吧,一个很小的屋子里挤满了人,位置不够,很多人就站在后面听。作者利用 Rowhammer 攻击巧妙的拿到 root 权限。因为是 memory 的特性引入的攻击,系统也没有什么办法防御。

简单来说利用了 “DRAM hardware glitch casing disturbance errors”,结果是会造成 DRAM 中的 bit 在某些情况下翻转(0 -> 1 或 1 -> 0)。并且这种 bits flipping 在同样情况下是可以重现的。

%e5%9b%be%e7%89%8720

drammer-2

作者利用这种“特性”,攻击 page table entries,可以让某个 memory page mapping 指向上一个 page,从而可以在 page table entry 写入任意值。

1

drammer-3

之后,写入 kernel memory 的 page table entry 就可以访问到 kernel memory 了,找到 struct cred 修改 uid 和 gid 就能拿到 root 权限。

2

drammer-4

因为要不断扫描 DRAM 找到会发生反转的 bit,作者 evaluate 不同机器所需的时间:

3

drammer-5

Q&A 的时候讨论了防御的方法(暂时没有好的解决方案),在 iPhone 上攻击的可能性(完全有可能),以及其他细节,建议大家浏览一下视频,非常有趣。

Panel Discussion: Impact of Academic Security Research: Frogs in Wells, Storms in Teacups, or Raw Diamonds?

Chair: Ahmad-Reza Sadeghi, TU Darmstadt, CYSEC, Germany

Panelists: Ross Anderson, University of Cambridge, UK Davide Balzarotti, EURECOM, France Robert Broberg, Cisco Systems Inc Bart Preneel, KU Leuven, Belgium Anand Rajan, Intel Labs Greg Shannon, White House Office of Science & Technology Policy, USA

今年的 panel discussion 也是非常有趣,请了两位安全届前辈 Ross, Bart,两位工业界的 Anand (Intel), Robert (Cisco),一位政府的 Greg (白宫科技政策办公室?) 和一位年轻教授 Davide(就是统计了四大安全会议十年来的收录情况的哪个教授)。

讨论了几个非常有争议的话题:安全学术研究的价值,attack v.s. defense 哪个更重要,四大安全会议收录 paper 的现状,应用密码学和传统密码学的冲突,未来安全研究的发展方向(例如:usable security)。我把现场几个有意思的图片发出来,感兴趣了大家去看视频 吧:

4

5

6

7

8

9

10

11

视频地址:https://www.youtube.com/watch?v=yT2pTElBY4Q&index=3&list=PLDJxfCuZwWGA0s641b-G3LX6CAyAcVepx

System Security Circus v2.0: http://s3.eurecom.fr/~balzarot/notes/top4/index.html

这个 System Security Circus 总结了四大安全会议从 2000 年以来的所有文章作者,接受率,提交数量,作者地理分布,作者所在单位等等。里面包含的图表非常有趣,也一部分代表了这十几年来 security community 的发展变化。

12

system-security-circus

Traditional Viennese Dinner @ Heuriger

在维也纳郊区的一个酒庄,葡萄酒很好喝 🙂

13

Screen Shot 2016-11-12 at 2.16.53 PM

14

Screen Shot 2016-11-12 at 2.17.01 PM

Bookmark the permalink.

Comments are closed.