Skip to content

Commit 4180407

Browse files
authored
Update master-thesis.md
1 parent a07d9bc commit 4180407

File tree

1 file changed

+41
-30
lines changed

1 file changed

+41
-30
lines changed

master-thesis.md

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ title: Open Master Thesis Topics in Project Chains
77
Project Chains hosts master's students for their theses, here are available topics. See [main page](/) for completed theses.
88

99
### Empirical study of vulnerability tracking processes in vulnerability reports
10-
1110
Contact: Yekatierina Churakova
12-
1311
Vulnerability scanning tools play a crucial role in the identification and collection of vulnerabilities across different systems and platforms. Having reliable and accurate report, which lists all associated vulnerabilities for the dependencies list, is crucial for supply-chain security. [SBOM](https://cyclonedx.org/capabilities/sbom/) and [VEX](https://cyclonedx.org/capabilities/vex/) productions tools (e.g. [Trivy](https://trivy.dev/), [Grype](https://github.com/anchore/grype), [DepScan](https://github.com/owasp-dep-scan/dep-scan) etc.) are used for this purpose. Every tool has a number of vulnerability database integrations to provide the most distinct report. However, vulnerability databases often use diverse naming conventions, IDs, and tracking systems, making it difficult to reveal information about a specific vulnerability. The inconsistency and fragmentation in vulnerability reporting is hapening, where different references to different vulnerability databases may use different identifiers for the same vulnerability, making it difficult to trace and assess risks consistently.
14-
1512
In this project we will explore the area of vulnerability tracking and aims to address the vulnerability naming problems. The thesis will be focused on studying the approach for mapping various vulnerability identifiers across different databases to their corresponding Common Vulnerabilities and Exposures (CVE) IDs. The aim is to improve vulnerability tracking, propose a way to solve the naming problem, and enhance the accuracy of vulnerability reports.
1613

1714
Related works:
@@ -21,10 +18,8 @@ Related works:
2118
4. [Understanding the Quality of Container Security Vulnerability Detection Tools](https://arxiv.org/pdf/2101.03844)
2219

2320

24-
<h3 id="uid42">Empirical Study of Compilation Reproducibility in Solidity</h3>
25-
21+
<h3 >Empirical Study of Compilation Reproducibility in Solidity</h3>
2622
Contact: Aman Sharma
27-
2823
<p>Description:
2924
The reproducibility of software builds is a critical aspect of secure software development This concept has been pushed forward in the context of Solidity, the programming language
3025
used for writing smart contracts on the Ethereum blockchain, with the notion of "verified contracts".
@@ -33,31 +28,31 @@ consistency of the results. The datasets for this study will be sourced from Eth
3328
This research will contribute to the understanding of software integrity in the growing field of technology and could potentially inform best practices for
3429
Solidity development.</p>
3530
<ol>
36-
<li id="uid43"><p><a href="http://arxiv.org/pdf/2104.06020">Reproducible Builds: Increasing the Integrity of Software Supply Chains</a></p>
31+
<li ><p><a href="http://arxiv.org/pdf/2104.06020">Reproducible Builds: Increasing the Integrity of Software Supply Chains</a></p>
3732
</li>
38-
<li id="uid44"><p><a href="https://etherscan.io/">Etherscan</a></p>
33+
<li ><p><a href="https://etherscan.io/">Etherscan</a></p>
3934
</li>
40-
<li id="uid45"><p><a href="https://sourcify.dev/">Sourcify</a></p>
35+
<li ><p><a href="https://sourcify.dev/">Sourcify</a></p>
4136
</li></ol>
4237

43-
<h3 id="uid46">Zero-knowledge software bills of materials</h3>
38+
<h3 >Zero-knowledge software bills of materials</h3>
4439

4540
Contact: Javier Ron
4641

4742
<p>Description: Software bills of materials (SBOMs) are complete lists of software components [1], these can be helpful in tracing vulnerabilities, license compliance, etc. However, revealing an SBOM publicly also means revealing said vulnerabilities to malicious actors. Furthermore, some proprietary software developers advocate for access control for SBOM distribution [2].
4843
Zero-knowledge proofs allows a party to convey that a statement is true without disclosing any additional information. [3]
4944
You will design, develop, and evaluate a zero-knowledge SBOM system, which allows developers to disclose limited, but verifiable SBOM information to authorized users.</p>
5045
<ol>
51-
<li id="uid47"><p>The Minimum Elements For a Software Bill of Materials https://www.ntia.doc.gov/files/ntia/publications/sbomminimumelementsreport.pdf</p>
46+
<li ><p>The Minimum Elements For a Software Bill of Materials https://www.ntia.doc.gov/files/ntia/publications/sbomminimumelementsreport.pdf</p>
5247
</li>
53-
<li id="uid48"><p>An Empirical Study on Software Bill of Materials: Where We Stand and the Road Ahead http://arxiv.org/abs/2301.05362</p>
48+
<li ><p>An Empirical Study on Software Bill of Materials: Where We Stand and the Road Ahead http://arxiv.org/abs/2301.05362</p>
5449
</li>
55-
<li id="uid49"><p>Zero-knowledge proof https://en.wikipedia.org/wiki/Zero-knowledgeproof</p>
50+
<li ><p>Zero-knowledge proof https://en.wikipedia.org/wiki/Zero-knowledgeproof</p>
5651
</li>
57-
<li id="uid50"><p><a href="https://arxiv.org/abs/2307.02088">Trust in Software Supply Chains: Blockchain-Enabled SBOM and the AIBOM Future 2024</a></p>
52+
<li ><p><a href="https://arxiv.org/abs/2307.02088">Trust in Software Supply Chains: Blockchain-Enabled SBOM and the AIBOM Future 2024</a></p>
5853
</li></ol>
5954

60-
<h3 id="uid51">Study of non-reproducible builds in the Java ecosystem</h3>
55+
<h3 >Study of non-reproducible builds in the Java ecosystem</h3>
6156
<p>Description: Build Reproducibility means that a software build
6257
always results in a bit-by-bit identical output provided the source code
6358
and build environment is also the exact same [1]. This property is a
@@ -73,50 +68,66 @@ maven package is said to be reproducible, else the package is
7368
non-reproducible. In this thesis, you will create a taxonomy of reasons
7469
for non-reproducible builds of Maven packages.</p>
7570
<ol>
76-
<li id="uid52"><p><a href="https://reproducible-builds.org/">https://reproducible-builds.org/</a></p>
71+
<li ><p><a href="https://reproducible-builds.org/">https://reproducible-builds.org/</a></p>
7772
</li>
78-
<li id="uid53"><p><a href="https://dl.acm.org/doi/10.1145/3643764">AROMA:
73+
<li ><p><a href="https://dl.acm.org/doi/10.1145/3643764">AROMA:
7974
Automatic Reproduction of Maven Artifacts</a></p>
8075
</li></ol>
8176

82-
<h3 id="uid62">Dynamic Integrity Verification &amp; Repair for Java Applications</h3>
83-
77+
<h3 >Dynamic Integrity Verification &amp; Repair for Java Applications</h3>
8478
Contact: Martin Monperrus
85-
8679
<p>Description:
8780
Attackers constantly try to tamper with the code of software applications in production.
8881
Chang and Attalah have proposed a technique to not only detect modifications and also repairing the code after attacks by a network of small security
8982
units called guards. These guards can be programmed to perform tasks such as checksumming the program code, and they work in concert to create mutual protection.
9083
In this thesis, you will devise, implement and evaluate such as an approach in the context of modern Java software with dependencies. An open question is how to set up guard inside or around dependency code.</p>
9184
<ol>
92-
<li id="uid63"><p><a href="https://link.springer.com/chapter/10.1007/3-540-47870-1_10">Protecting Software Code by Guards</a></p>
85+
<li ><p><a href="https://link.springer.com/chapter/10.1007/3-540-47870-1_10">Protecting Software Code by Guards</a></p>
9386
</li>
94-
<li id="uid64"><p><a href="https://dl.acm.org/doi/abs/10.1145/353323.353383">Reflection as a mechanism for software integrity verification</a></p>
87+
<li ><p><a href="https://dl.acm.org/doi/abs/10.1145/353323.353383">Reflection as a mechanism for software integrity verification</a></p>
9588
</li>
96-
<li id="uid65"><p><a href="https://dl.acm.org/doi/abs/10.1145/3274694.3274732">Practical integrity protection with oblivious hashing</a></p>
89+
<li ><p><a href="https://dl.acm.org/doi/abs/10.1145/3274694.3274732">Practical integrity protection with oblivious hashing</a></p>
9790
</li></ol>
9891

99-
<h3 id="uid66">Dynamic Introspection of Dependencies in Java Applications</h3>
92+
<h3 >Dynamic Introspection of Dependencies in Java Applications</h3>
93+
<p>Contact: Aman Sharma</p>
10094
<p>Description: We aim to design and develop a prototype for dynamic introspection of dependencies in Java applications. This would enable real-time tracking and decision based on the dependency execution context. By leveraging Java's instrumentation capabilities, the proposed system will monitor and identify the active dependencies at any given
10195
point during program execution. The focus will be on minimizing performance
10296
overhead to ensure that the introspection process does not significantly impact the application's responsiveness or efficiency, while integrating seamlessly with any existing Java application.
10397
Rigorous evaluation against various benchmarks will be one to assess its accuracy,
10498
performance, and usability.</p>
10599

106-
<h3 id="uid67">Automatic Backporting of Java Libraries to Older Bytecode Versions</h3>
107-
100+
<h3 >Automatic Backporting of Java Libraries to Older Bytecode Versions</h3>
108101
Contact: Aman Sharma
109-
110102
<p>Description:
111103
With the rapid evolution of Java, libraries often get updated to new bytecode versions. This causes compatibility issues and breakages for
112104
applications that are still running on older versions of Java. To address this, a possible solution is to automatically backport Java libraries to older bytecode
113105
versions. This thesis will focus on designing and implementing an automated tool for backporting Java libraries. The tool should be capable of translating new bytecode
114106
instructions to their older equivalents, maintaining the functional behavior of the library while ensuring compatibility with older Java versions. An open question is
115107
how to handle new language features and APIs that do not have direct equivalents in older versions.</p>
116108
<ol>
117-
<li id="uid68"><p><a href="https://ieeexplore.ieee.org/abstract/document/9540328/">Back to the past–analysing backporting practices in package dependency networks</a></p>
109+
<li ><p><a href="https://ieeexplore.ieee.org/abstract/document/9540328/">Back to the past–analysing backporting practices in package dependency networks</a></p>
118110
</li>
119-
<li id="uid69"><p><a href="https://inria.hal.science/hal-01355859/file/icsme_hal.pdf">Recommending code changes for automatic backporting of Linux device drivers</a></p>
111+
<li ><p><a href="https://inria.hal.science/hal-01355859/file/icsme_hal.pdf">Recommending code changes for automatic backporting of Linux device drivers</a></p>
120112
</li>
121-
<li id="uid70"><p><a href="https://arxiv.org/abs/2405.07204">Transforming C++11 Code to C++03 to Support Legacy Compilation Environments</a></p>
113+
<li ><p><a href="https://arxiv.org/abs/2405.07204">Transforming C++11 Code to C++03 to Support Legacy Compilation Environments</a></p>
122114
</li></ol>
115+
116+
<h3 > Reproducible Just-in-Time (JIT) Compilation</h3>
117+
<p>Contact: Martin Monperrus</p>
118+
<p>This thesis will explore the concept of reproducible JIT compilation, focusing on the challenges and solutions for ensuring consistent and repeatable execution of
119+
program compilation across different runs. By analyzing the factors that contribute to variability in JIT compilation, such as optimization heuristics, runtime conditions,
120+
and system configurations, you will propose methodologies to achieve reproducibility. The study will involve the design and implementation of a framework that
121+
captures and standardizes the JIT compilation process, enabling developers to reproduce the same JIT compilation results reliably. Through empirical evaluation, the thesis will
122+
assess the impact of reproducible JIT compilation on software reliability, debugging, and performance, ultimately contributing to the development of more robust and
123+
trustworthy software systems.</p>
124+
<ol>
125+
<li > [Recompilation for debugging support in a JIT-compiler](https://doi.org/10.1145/634636.586100) </li>
126+
<li > [https://github.com/rschwietzke/jmh-C2-compile](https://github.com/rschwietzke/jmh-C2-compile) </li>
127+
<ol>
128+
129+
130+
131+
132+
133+

0 commit comments

Comments
 (0)