6

[2111.13662] Modular Information Flow Through Ownership

 2 years ago
source link: https://arxiv.org/abs/2111.13662
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

[Submitted on 26 Nov 2021]

Modular Information Flow Through Ownership

Download PDF

Statically analyzing information flow, or how data influences other data within a program, is a challenging task in imperative languages. Analyzing pointers and mutations requires access to a program's complete source. However, programs often use pre-compiled dependencies where only type signatures are available. We demonstrate that ownership types can be used to soundly and precisely analyze information flow through function calls given only their type signature. From this insight, we built Flowistry, a system for analyzing information flow in Rust, an ownership-based language. We prove the system's soundness as a form of noninterference using the Oxide formal model of Rust. Then we empirically evaluate the precision of Flowistry, showing that modular flows are identical to whole-program flows in 90% of cases drawn from large Rust codebases. We illustrate the applicability of Flowistry by implementing both a program slicer and an IFC checker on top of it.

Subjects: Programming Languages (cs.PL) Cite as: arXiv:2111.13662 [cs.PL]   (or arXiv:2111.13662v1 [cs.PL] for this version)

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK