SBOM.EXE: Countering Dynamic Code Injection based on Software Bill of Materials in Java
Aman Sharma, Martin Wittlinger, Benoit Baudry, and Martin Monperrus

TL;DR
SBOM.EXE is a proactive Java security system that constructs a supply chain-based allowlist of classes to prevent malicious dynamic class loading at runtime, effectively mitigating supply chain attacks like Log4Shell.
Contribution
Introduces SBOM.EXE, a novel runtime safeguard for Java applications that enforces a supply chain-based allowlist to prevent malicious class loading.
Findings
Successfully mitigated 3 critical CVEs.
Compatible with real-world applications with minimal performance overhead.
Effectively maintains runtime integrity against dynamic classloading attacks.
Abstract
Software supply chain attacks have become a significant threat as software development increasingly relies on contributions from multiple, often unverified sources. The code from unverified sources does not pose a threat until it is executed. Log4Shell is a recent example of a supply chain attack that processed a malicious input at runtime, leading to remote code execution. It exploited the dynamic class loading facilities of Java to compromise the runtime integrity of the application. Traditional safeguards can mitigate supply chain attacks at build time, but they have limitations in mitigating runtime threats posed by dynamically loaded malicious classes. This calls for a system that can detect these malicious classes and prevent their execution at runtime. This paper introduces SBOM.EXE, a proactive system designed to safeguard Java applications against such threats. SBOM.EXE…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Security and Verification in Computing · Software Engineering Research
