Studying and Understanding the Tradeoffs Between Generality and Reduction in Software Debloating

Studying and Understanding the Tradeoffs Between Generality and Reduction in Software Debloating
复制标题

DOI:
10.1145/3551349.3556970
复制
发表时间:
2022-10
期刊:
Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering
影响因子:
--
通讯作者:
Qi Xin;Qirun Zhang;A. Orso
Qi Xin;Qirun Zhang;A. Orso
中科院分区:
其他
文献类型:
--
作者:
Qi Xin;Qirun Zhang;A. Orso

文献摘要

被引文献

相似文献

用于程序解浮动的现有方法通常使用使用简档,通常作为一组输入来提供,用于标识要保留的程序的特征。具体来说,给定一个程序和一组输入,这些技术产生一个简化的程序,正确的行为,这些输入。然而,只关注减少,通常会导致程序过度拟合用于去浮动的输入。出于这个原因,在debloating的上下文中要考虑的另一个重要因素是通用性,它衡量了debloating程序对于不在初始使用配置文件中的输入的正确行为的程度。不幸的是,大多数现有的浮动方法的评价只考虑减少,从而提供部分信息,这些方法的有效性。为了解决这一限制,我们进行了经验评估的减少和一般性的4 debloating技术,3个国家的最先进的,和一个基线,一组25个程序和不同的输入这些程序。我们的研究结果表明,这些方法确实可以产生过拟合的输入,并具有较低的通用性的程序。基于这些结果,我们还提出了两种新的增强方法,并评估其有效性。这个额外的评估结果表明,这两种方法可以帮助提高程序的通用性,而不会显着影响大小减少。最后,由于不同的方法有不同的优点和缺点,我们还提供了指导方针,以帮助用户根据他们的具体需求和背景选择最合适的方法。
Existing approaches for program debloating often use a usage profile, typically provided as a set of inputs, for identifying the features of a program to be preserved. Specifically, given a program and a set of inputs, these techniques produce a reduced program that behaves correctly for these inputs. Focusing only on reduction, however, would typically result in programs that are overfitted to the inputs used for debloating. For this reason, another important factor to consider in the context of debloating is generality, which measures the extent to which a debloated program behaves correctly also for inputs that were not in the initial usage profile. Unfortunately, most evaluations of existing debloating approaches only consider reduction, thus providing partial information on the effectiveness of these approaches. To address this limitation, we perform an empirical evaluation of the reduction and generality of 4 debloating techniques, 3 state-of-the-art ones, and a baseline, on a set of 25 programs and different sets of inputs for these programs. Our results show that these approaches can indeed produce programs that are overfitted to the inputs used and have low generality. Based on these results, we also propose two new augmentation approaches and evaluate their effectiveness. The results of this additional evaluation show that these two approaches can help improve program generality without significantly affecting size reduction. Finally, because different approaches have different strengths and weaknesses, we also provide guidelines to help users choose the most suitable approach based on their specific needs and context.