Hypercollecting Semantics and its Application to Static Analysis of Information Flow
This work addresses secure information flow analysis for software security, offering a systematic framework that is incremental in building on existing abstract interpretation methods.
The authors tackled the problem of static analysis for secure information flow by expressing and proving it within abstract interpretation, introducing hypercollecting semantics to derive analyses for hyperproperties, including a novel cardinality analysis for quantitative information flow.
We show how static analysis for secure information flow can be expressed and proved correct entirely within the framework of abstract interpretation. The key idea is to define a Galois connection that directly approximates the hyperproperty of interest. To enable use of such Galois connections, we introduce a fixpoint characterisation of hypercollecting semantics, i.e. a "set of set" transformer. This makes it possible to systematically derive static analyses for hyperproperties entirely within the calculational framework of abstract interpretation. We evaluate this technique by deriving example static analyses. For qualitative information flow, we derive a dependence analysis similar to the logic of Amtoft and Banerjee (SAS'04) and the type system of Hunt and Sands (POPL'06). For quantitative information flow, we derive a novel cardinality analysis that bounds the leakage conveyed by a program instead of simply deciding whether it exists. This encompasses problems that are hypersafety but not k-safety. We put the framework to use and introduce variations that achieve precision rivalling the most recent and precise static analyses for information flow.