一句话:提出 Trimmer,利用配置数据与更强分析将应用特化到部署上下文,去除未用功能并减小代码体积与攻击面。
软件栈因硬件架构和需求增长而日益膨胀,但实际部署中往往仅使用部分功能,因此存在去膨胀机会。已有程序特化技术缺乏面向真实程序化简所需的分析。本文提出 Trimmer,一种应用特化工具:它利用用户提供的配置数据,并采用更强的分析技术,将应用特化到具体部署上下文,从而消除该上下文中未使用的功能。作者在 13 个不同领域的应用上评估,平均减小二进制体积 21%,最大 75%;同时减少代码复用攻击面,平均减少 20% 的 gadget,最大 87%。
With the proliferation of new hardware architectures and ever-evolving user requirements, the software stack is becoming increasingly bloated. In practice, only a limited subset of the supported functionality is utilized in a particular usage context, thereby presenting an opportunity to eliminate unused features. In the past, program specialization has been proposed as a mechanism for enabling automatic software debloating. In this work, we show how existing program specialization techniques lack the analyses required for providing code simplification for real-world programs. We present an approach that uses stronger analysis techniques to take advantage of constant configuration data, thereby enabling more effective debloating. We developed Trimmer, an application specialization tool that leverages user-provided configuration data to specialize an application to its deployment context. The specialization process attempts to eliminate the application functionality that is unused in the user-defined context. Our evaluation demonstrates Trimmer can effectively reduce code bloat. For 13 applications spanning various domains, we observe a mean binary size reduction of 21% and a maximum reduction of 75%. We also show specialization reduces the surface for code-reuse attacks by reducing the number of exploitable gadgets. For the evaluated programs, we observe a 20% mean reduction in the total gadget count and a maximum reduction of 87%.
DOI 原文 ·
@inproceedings{paperbot4748,
title = {TRIMMER: application specialization for code debloating},
author = {Hashim Sharif and Muhammad Abubakar and Ashish Gehani and Fareed Zaffar},
booktitle = {ASE},
year = {2018},
doi = {10.1145/3238147.3238160}
}