Asplos 2018 论文选读

Posted by Maxul's Technical Notes on May 13, 2018

FirmUp: Precise Static Detection of Common Vulnerabilities in Firmware

  • 漏洞发现的巅峰之作!以色列Technion的好作品。针对stripped firmware images,找到其中匹配CVE的部分,精度好。考虑了不同架构、不同工具链甚至不同版本(用户定制化后的),同时考虑了过程间和二进制间的。本文分析超过 40 million 个过程,跨4个平台,共发现373个漏洞,147个在最新固件中仍存在的。本文工作不仅在精度和有效性上都很出色,甚至超越了state of the art(即PLDI ‘17的gitZ)45%。本文作者即是专门研究二进制相似度的Yaniv David。

Making Huge Pages Actually Useful

  • 虚实地址转换是现代计算的主要瓶颈之一。尽管硬件支持巨页配置,但在内存碎片较为严重的情况下OS对巨页却无法使用,这个问题持续了20多年了。本文详细分析了Linux下碎片对巨页的影响,问题主要在于内核内存页无法移动,在虚拟化中更为有害。本文提供了Illuminator改进了巨页的分配,compaction的开销减小了99%,性能提升2.3X,MySQL数据库吞吐提升30X。本文说明了简单方法对长期问题的有效性。

DATS - Data Containers for Web Applications

  • 借助访问控制,数据容器允许不可信程序对用户数据进行计算,但对功能性、可编程性和性能造成影响。本文引入hardware capability,允许使用模板语言创建MVC中的view,同时在不可信存储上引入认证存储,由此提高数据容器的可用性和高效性。使用8个不同的网页例子(包括gitlab、Slack-like chat)说明最差开销。CODOMs也是其相关工作之一。例子中的git允许不同人查看他人代码,chat允许不同窗口下和不同人交互,这些例子都很好地说明权限分离对现代安全的重要意义。

DLibOS: Performance and Protection with a Network-on-Chip

  • 用户态的高效IO会导致保护的下降(highly efficient IO processing at user-level would necessarily violate protection)。本文使用特定核来运行LibOS,同时达到对用户态程序保护和高效的效果。本文解决的不是上下文切换,而是利用network-on-chip硬件解决不同地址空间下的消息传输。在Tilera平台上,实现一个驱动和用户态协议栈,达到webserver有4.2million和Memcached有4.2million的吞吐量。最后和无保护条件下的用户态协议栈做比较,说明其保护引入很小的开销。

StrongBox: Confidentiality, Integrity, and Performance using Stream Ciphers for Full Drive Encryption

  • 全盘加密在移动端设备上趋于普遍,主要问题在于性能开销会慢上3-5X。本文提出的方案使用最新的固态存储设备,工作在FTL层,同时引入硬件支持的可信执行环境,替换了Linux自带的dm-crypt,在读上面取得了1.72倍的性能提升。

Sugar: Secure GPU Acceleration in Web Browsers

  • WebGL给网页应用提供了类似OpenGL的接口,但本身却存在不少安全问题和攻击向量。本文使用GPU虚拟化方案(vGPU)在加速的基础上解决问题。

vbench: Benchmarking Video Transcoding in the Cloud

  • 在video-as-a-service下,第一个针对云上视频服务的benchmark工作。不同于以往,本文是在商用视频库上做分析,对传输速度、视频质量和压缩上进行了很细致的metrics and baselines,说明了cache, branch, and SIMD等微架构支持对视频流的影响;GPU上的评测说明了上下文的影响为主导,最适合live流媒体;video-on-demand则依赖于存储和网络。本文同时发现现有视频在现有编码器下表现很好,无需改进。