You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Beyond Declared Dependencies: The Limits of Hermetic Build Tools
131
+
Contact: Aman Sharma
132
+
133
+
Tools like [Hermeto][herm1] promise hermetic container builds by prefetching all declared dependencies before network isolation kicks in. In theory, the build runs against a closed, auditable set of inputs. In practice, the hermetic guarantee is layered and partial: Hermeto addresses the *declared dependency layer* — what appears in lockfiles like `package-lock.json`, `Cargo.lock`, or `requirements.txt` — but leaves the *toolchain and native dependency layer* to the user. Nix offers a theoretically stronger model: content-addressed derivations, sandboxed builds, and a store that captures the full dependency closure including compilers and system libraries. An ecosystem of automated translation tools — `dream2nix`, `poetry2nix`, `cargo2nix`[2] — attempts to generate these derivations from standard lockfiles, but the two models rest on different assumptions about what a hermetic boundary even means.
134
+
135
+
This thesis investigates the *hermetic gap*: the delta between what a tool declares as its dependency set and what a build actually consumes. The central question is whether Nix's stronger closure model translates into a meaningfully tighter boundary in practice, and what classes of dependencies — undeclared system libraries, toolchain leakage, native extension bindings, implicit platform assumptions — fall outside the boundary regardless of which model is used.
136
+
137
+
Related Work:
138
+
139
+
[1][Hermeto — prefetch CLI for hermetic container builds](https://github.com/hermetoproject/hermeto)
140
+
141
+
[2][dream2nix — automated Nix derivation generation from package manager metadata](https://github.com/nix-community/dream2nix)
142
+
143
+
[3][Zheng, Adams, Hassan — On Build Hermeticity in Bazel-Based Build Systems, IEEE Software 2025](https://mcislab.github.io/publications/2025/ieeesw-shenyu.pdf)
144
+
145
+
[4][Lamb & Zacchiroli — Reproducible Builds: Increasing the Integrity of Software Supply Chains, IEEE Software 2021](https://arxiv.org/pdf/2104.06020)
146
+
147
+
[5][SLSA — Supply-chain Levels for Software Artifacts framework](https://slsa.dev/)
148
+
149
+
[6][The Design Space of Lockfiles Across Package Managers, Empirical Software Engineering 2025](https://arxiv.org/abs/2505.04834)
### Dependency Fingerprinting: Reconstructing Full Dependency Trees from Partial Observations
155
+
Contact: Aman Sharma, Eric Cornelissen
156
+
157
+
Package registries expose rich dependency metadata, but in some settings (e.g., private registries, zero-knowledge SBOMs, or obfuscated build manifests) only a subset of a package's dependencies is known.
158
+
This thesis investigates how much of a package's full dependency tree can be inferred from a partial observation of its dependencies.
159
+
Given a set of seed dependencies — a few known direct or transitive packages — the goal is to reconstruct the remaining dependency graph using statistical co-occurrence patterns mined from public registries.
160
+
The study will evaluate inference accuracy as a function of the number and "uniqueness" of seed packages, and compare reconstruction fidelity across ecosystems (Maven, NPM, Go, Rust).
161
+
The results have direct implications for the privacy guarantees of partial SBOM disclosures and zero-knowledge proofs over dependency sets.
@@ -243,41 +277,6 @@ The stages of package installation
243
277
</ol>
244
278
245
279
246
-
### Beyond Declared Dependencies: The Limits of Hermetic Build Tools
247
-
Contact: Aman Sharma
248
-
249
-
Tools like [Hermeto][herm1] promise hermetic container builds by prefetching all declared dependencies before network isolation kicks in. In theory, the build runs against a closed, auditable set of inputs. In practice, the hermetic guarantee is layered and partial: Hermeto addresses the *declared dependency layer* — what appears in lockfiles like `package-lock.json`, `Cargo.lock`, or `requirements.txt` — but leaves the *toolchain and native dependency layer* to the user. Nix offers a theoretically stronger model: content-addressed derivations, sandboxed builds, and a store that captures the full dependency closure including compilers and system libraries. An ecosystem of automated translation tools — `dream2nix`, `poetry2nix`, `cargo2nix`[2] — attempts to generate these derivations from standard lockfiles, but the two models rest on different assumptions about what a hermetic boundary even means.
250
-
251
-
This thesis investigates the *hermetic gap*: the delta between what a tool declares as its dependency set and what a build actually consumes. The central question is whether Nix's stronger closure model translates into a meaningfully tighter boundary in practice, and what classes of dependencies — undeclared system libraries, toolchain leakage, native extension bindings, implicit platform assumptions — fall outside the boundary regardless of which model is used.
252
-
253
-
Related Work:
254
-
255
-
[1][Hermeto — prefetch CLI for hermetic container builds](https://github.com/hermetoproject/hermeto)
256
-
257
-
[2][dream2nix — automated Nix derivation generation from package manager metadata](https://github.com/nix-community/dream2nix)
258
-
259
-
[3][Zheng, Adams, Hassan — On Build Hermeticity in Bazel-Based Build Systems, IEEE Software 2025](https://mcislab.github.io/publications/2025/ieeesw-shenyu.pdf)
260
-
261
-
[4][Lamb & Zacchiroli — Reproducible Builds: Increasing the Integrity of Software Supply Chains, IEEE Software 2021](https://arxiv.org/pdf/2104.06020)
262
-
263
-
[5][SLSA — Supply-chain Levels for Software Artifacts framework](https://slsa.dev/)
264
-
265
-
[6][The Design Space of Lockfiles Across Package Managers, Empirical Software Engineering 2025](https://arxiv.org/abs/2505.04834)
### Dependency Fingerprinting: Reconstructing Full Dependency Trees from Partial Observations
271
-
Contact: Aman Sharma, Eric Cornelissen
272
-
273
-
Package registries expose rich dependency metadata, but in some settings (e.g., private registries, zero-knowledge SBOMs, or obfuscated build manifests) only a subset of a package's dependencies is known.
274
-
This thesis investigates how much of a package's full dependency tree can be inferred from a partial observation of its dependencies.
275
-
Given a set of seed dependencies — a few known direct or transitive packages — the goal is to reconstruct the remaining dependency graph using statistical co-occurrence patterns mined from public registries.
276
-
The study will evaluate inference accuracy as a function of the number and "uniqueness" of seed packages, and compare reconstruction fidelity across ecosystems (Maven, NPM, Go, Rust).
277
-
The results have direct implications for the privacy guarantees of partial SBOM disclosures and zero-knowledge proofs over dependency sets.
0 commit comments