通过分段编译与加载实现软件瘦身
密码学与安全
2018-07-25 v3
摘要
程序是臃肿的。我们的研究表明,在 Ubuntu 桌面环境(2016 个程序)中平均仅使用 5% 的 libc;使用最多的用户 vlc 媒体播放器也仅需要 18%。本文中:(1) 我们提出一个构建于编译器工具链上的瘦身框架,可成功对程序(共享/静态库和可执行文件)进行瘦身。我们的方案能成功编译并加载 Ubuntu Desktop 16.04 上的大多数库。(2) 我们展示从 coreutils 中消除超过 79% 的代码以及从 SPEC CPU 2006 基准程序中消除 86% 的代码而不影响功能。我们展示即便如 Firefox 和 curl 这样的复杂程序也可在无需重新编译的情况下被瘦身。(3) 我们通过从 coreutils 套件中消除超过 71% 的可复用代码小工具来展示瘦身的安全影响,并表明含有真实世界漏洞的未使用代码也能被成功消除且对程序无不良影响。(4) 我们带来了较低加载时间开销。
引用
@article{arxiv.1802.00759,
title = {Debloating Software through Piece-Wise Compilation and Loading},
author = {Anh Quach and Aravind Prakash and Lok Kwong Yan},
journal= {arXiv preprint arXiv:1802.00759},
year = {2018}
}
备注
Usenix Security 2018