Affiliation:
1. Northeastern University, Boston, USA
2. Worcester Polytechnic Institute, Worcester, USA
Abstract
IoT firmware oftentimes incorporates third-party components, such as network-oriented middleware and media encoders/decoders. These components consist of large and mature codebases, shipping with a variety of non-critical features. Feature bloat increases code size, complicates auditing/debugging, and reduces stability. This is problematic for IoT devices, which are severely resource-constrained and must remain operational in the field for years.
Unfortunately, identification and complete removal of code related to unwanted features requires familiarity with codebases of interest, cumbersome manual effort, and may introduce bugs. We address these difficulties by introducing PRAT, a system that takes as input the codebase of software of interest, identifies and maps features to code, presents this information to a human analyst, and removes all code belonging to unwanted features. PRAT solves the challenge of identifying feature-related code through a novel form of differential dynamic analysis and visualizes results as user-friendly
feature graphs
.
Evaluation on diverse codebases shows superior code removal compared to both manual feature deactivation and state-of-art debloating tools, and generality across programming languages. Furthermore, a user study comparing PRAT to manual code analysis shows that it can significantly simplify the feature identification workflow.
Publisher
Association for Computing Machinery (ACM)
Reference52 articles.
1. 2018. Eclipse Mosquitto. Retrieved from https://mosquitto.org/.
2. 2019. AMQP library for C. Retrieved from https//github.com/Azure/azure-uamqp-c. original-date: 2015-11-20T06:13:31Z.
3. 2019. ccache - compiler cache. Retrieved from https//ccache.dev/.
4. 2019. darconeous/libnyoci: A flexible CoAP stack for embedded devices and computers. RFC7252 compatible. Retrieved from https//github.com/darconeous/libnyoci.
5. 2019. Doxygen: main page. Retrieved from http//www.doxygen.nl/.
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Probabilistic Delta Debugging Approach for Abstract Syntax Trees;2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE);2023-10-09
2. Type Batched Program Reduction;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12
3. Facilitating Reuse of Functions in Embedded Software;IEEE Access;2022