Titelaufnahme
Titelaufnahme
- TitelReliable Bytecode-centric Detection of Vulnerable Open-Source Software Dependencies / Stefan Schott ; Advisors Prof. Dr. Eric Bodden, Dr. Serena Elisa Ponta
- Autor
- Gutachter
- Erschienen
- Umfang1 Online-Ressource (xiii, 131 Seiten) : Diagramme
- HochschulschriftUniversität Paderborn, Dissertation, 2026
- AnmerkungTag der Verteidigung: 18.03.2026
- Verteidigung2026-03-18
- SpracheEnglisch
- DokumenttypDissertation
- Schlagwörter (GND)
- URN
- DOI
Links
- Social MediaShare
- Nachweis
- IIIF
Dateien
Klassifikation
Zusammenfassung
Die Einbindung von Open-Source-Software (OSS) in moderne Softwareprojekte ist allgegenwärtig geworden. Im Durchschnitt stammen 71% des Codes in typischen Java-Projekten aus OSS-Abhängigkeiten, was sie zum dominanten Bestandteil moderner Softwarecodebasen macht. Dieser hohe Grad an OSS-Abhängigkeit birgt ein erhebliches Sicherheitsrisiko, da dadurch bekannte Sicherheitslücken in eine Codebasis eingebracht werden können. Um dieses Risiko zu verringern, haben Forschende und Unternehmen verschiedene Dependency Scanner entwickelt, die versuchen, die Einbindung bekanntermaßen verwundbarer OSS-Abhängigkeiten zu identifizieren. Aufgrund ihrer Abhängigkeit von Metadaten oder Quellcode bestehen jedoch weiterhin Herausforderungen, die moderne Dependency Scanner nicht überwinden-insbesondere im Hinblick auf Modifikationen von Abhängigkeiten wie Rekompilationen, Neubündelungen oder Umbenennungen, die im Java-Ökosystem weit verbreitet sind.Um diese Herausforderungen zu bewältigen, präsentieren wir Jaralyzer, einen bytecode-zentrierten Dependency Scanner für Java.Jaralyzer ist weder auf Metadaten noch auf den Quellcode der eingebundenen OSS-Abhängigkeiten angewiesen, sondern analysiert direkt den Bytecode einer Abhängigkeit. Dies erreicht Jaralyzer durch die in dieser Arbeit vorgestellten neuartigen Techniken. Zunächst nutzt es unseren Ansatz der gezielten Kompilation Jess, der Slicing- und Stubbing-Techniken einsetzt, um nur gezielt ausgewählte Teile einer Java-Codebasis zu isolieren und zu kompilieren. Dies erhöht die Kompilationserfolgsrate erheblich, ein ansonsten notorisch komplexes Problem, und ermöglicht die Kompilation von Fix-Commits in Isolation, die die Grundlage der Dependency-Scans von Jaralyzer bilden. Anschließend werden mit unserer neuartigen Bytecode-Normalisierung jNorm aus Kompilierung resultierende Unterschiede entfernt, um eine von der jeweiligen Kompilierungsumgebung unabhängige Code-Repräsentation zu erzeugen. Dies ermöglicht einen anschließenden Vergleich zwischen eingebundenen Abhängigkeiten und sicherheitsrelevanten Codeänderungen, den Jaralyzer mittels einer auf Code Property Graphs basierenden Technik durchführt. Dieser Ansatz erlaubt eine fein granulare Erkennung von Sicherheitsfixes, selbst wenn sich der Code im Laufe der Zeit weiterentwickelt hat. Durch die Kombination dieser Techniken kann Jaralyzer bekanntermaßen verwundbare Abhängigkeiten in Java-Projekten zuverlässig erkennen-selbst dann, wenn diese Abhängigkeiten modifiziert wurden.Unsere Evaluation von Jess auf 347 OSS-Java-Projekten zeigt, dass Jess in der Lage ist 72% aller Methoden und Konstruktoren isoliert zu kompilieren, wovon bei 89% Bytecode erzeugt wird, der mit dem ursprünglichen vollständig übereinstimmt. Darüber hinaus ermöglicht die Nutzung von Jess auf der Fix-Commit-Datenbank Project KB, die als Grundlage für Jaralyzer dient, die Kompilation von 90% der Einträge, im Vergleich zu weniger als 11% bei Verwendung der mitgelieferten Build-Skripte. Unsere Evaluation von jNorm auf 322 OSS-Java-Projekten zeigt zudem, dass allein das Verändern der Compiler-Version zu Unterschieden in 46% aller resultierenden Bytecode-Dateien führen kann, selbst bei identischem Quellcode. Durch die Anwendung der Bytecode-Normalisierung lassen sich 99% dieser von Kompilation bedingten Unterschiede entfernen, was jNorm zu einem entscheidenden Faktor für bytecode-zentriertes Dependency Scanning macht.Schließlich zeigt unsere Evaluation von Jaralyzer an 56 populären OSS-Komponenten, dass es andere gängige Dependency Scanner bei der Erkennung von Schwachstellen in modifizierten Abhängigkeiten übertrifft. Es ist der einzige Scanner, der bekanntermaßen verwundbare Abhängigkeiten auch dann zuverlässig identifizieren kann, wenn sie modifiziert wurden. Doch selbst bei der Anwendung auf unmodifizierte Abhängigkeiten übertrifft Jaralyzer den aktuellen Stand der Technik des code-zentrierten Scanners Eclipse Steady, indem es 28 zusätzliche Schwachstellen erkennt und gleichzeitig 29 falsche Warnungen weniger erzeugt.
Abstract
The inclusion of Open-Source Software (OSS) into modern software projects has become ubiquitous. On average, 71% of the code in typical Java projects comes from OSS dependencies, making them the dominant component of modern software code bases. This high degree of OSS reliance comes with a considerable security risk of adding known security vulnerabilities to a code base. To remedy this risk, researchers and companies have developed various dependency scanners, which try to identify inclusions of known-to-be-vulnerable OSS dependencies. However, due to a reliance on metadata or source code, there are still challenges that modern dependency scanners do not overcome, especially when it comes to dependency modifications, such as re-compilations, re-bundlings or re-packagings, which are common in the Java ecosystem.To overcome these challenges, we present Jaralyzer, a bytecode-centric dependency scanner for Java. Jaralyzer does not rely on the metadata or the source code of the included OSS dependencies being available but directly analyzes a dependency's bytecode. Jaralyzer achieves this by incorporating the novel techniques presented in this thesis.First, it leverages our targeted compilation approach Jess, which uses slicing and stubbing techniques to isolate and compile only targeted parts of a Java project's code base. Because compilation of large, real-world Java projects is notoriously challenging, this targeted strategy significantly improves compilation success rates and enables fix commits to be compiled in isolation. These isolated and compiled fix commits serve as the basis for Jaralyzer’s dependency analysis. Afterwards, to remove compilation-induced differences, it applies our novel bytecode normalization technique jNorm to create a code representation independent of the compilation environment. This enables a subsequent comparison between included dependencies and vulnerability-fixing code, which Jaralyzer conducts using a code property graph–based technique. This approach allows for fine-grained detection of vulnerability fixes, even when the code has evolved over time. By combining these techniques, Jaralyzer is able to reliably detect known-to-be-vulnerable dependencies in Java projects, even when those dependencies have been modified.Our evaluation of Jess on 347 OSS Java projects shows that it can successfully compile 72% of methods and constructors in isolation, of which 89% have bytecode equal to the original one. Furthermore, by applying Jess on the fix-commit database Project KB, which serves as the basis of Jaralyzer, it is possible to successfully compile 90% of the entries in contrast to less than 11% when relying on provided build scripts. Moreover, our evaluation of jNorm on 322 OSS Java projects shows that solely the act of incrementing a compiler version may cause differences in 46% of all resulting bytecode files, even when the source code is identical. By applying bytecode normalization, one can remove 99% of compilation-induced differences, thus acting as a crucial enabler for bytecode-centric dependency scanning. Finally, our evaluation of Jaralyzer across 56 popular OSS components demonstrates that it outperforms other state-of-the-art dependency scanners in detecting vulnerabilities within modified dependencies. It is the only scanner capable of reliably identifying known-to-be-vulnerable dependencies, even when modified. But even when applied to unmodified dependencies, Jaralyzer outperforms the current state-of-the-art code-centric scanner Eclipse Steady by detecting 28 more true vulnerabilities and yielding 29 fewer false warnings.
Inhalt
Statistik
- Das PDF-Dokument wurde 26 mal heruntergeladen.
Lizenz-/Rechtehinweis

