Filament: Denning-Style Information Flow Control for Rust
Jeffrey C. Ching, Quan Zhou, Danfeng Zhang

TL;DR
Filament is a Rust library that implements Denning-style information flow control without compiler modifications, enabling fine-grained and implicit flow checking with minimal overhead and a permissive programming model.
Contribution
It introduces a Denning-style static IFC library for Rust that requires no compiler modifications and supports fine-grained explicit and implicit flow control.
Findings
Filament incurs negligible compile-time overhead.
Requires only modest annotations for effective security.
Offers a more permissive programming model than Cocoon.
Abstract
Existing language-based information-flow control (IFC) tools face a fundamental tension: Denning-style systems that track explicit and implicit flows at the variable level typically require compiler modifications, while more coarse-grained approaches, including recent work Cocoon, avoid compiler changes but impose more restrictive programming models. We present Filament, a Denning-style static IFC library for Rust that requires no compiler modifications. Filament addresses three key challenges in building a practical IFC library for Rust. First, it enables fine-grained explicit-flow checking with minimal annotation overhead by leveraging Rust's type inference. Second, it introduces pc_block!, a lightweight construct for enforcing implicit flows via a compile-time program counter label, without requiring compiler support. Third, it provides fcall! and mcall! macros to support seamless…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
