Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
On the power and limitation of strictness analysis based on abstract interpretation
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Global flow analysis as a practical compilation tool
Journal of Logic Programming
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
A logical model for relational abstract domains
ACM Transactions on Programming Languages and Systems (TOPLAS)
A sound type system for secure flow analysis
Journal of Computer Security
Certification of programs for secure information flow
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Logical optimality of groundness analysis
Theoretical Computer Science
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Per Model of Secure Information Flow in Sequential Programs
Higher-Order and Symbolic Computation
Abstract non-interference: parameterizing non-interference by abstract interpretation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
Making abstract domains condensing
ACM Transactions on Computational Logic (TOCL)
On flow-sensitive security types
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A logic for information flow in object-oriented programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Science of Computer Programming
Information flow analysis for java bytecode
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Information flow is linear refinement of constancy
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Information flow for Algol-like languages
Computer Languages, Systems and Structures
Language-based information-flow security
IEEE Journal on Selected Areas in Communications
Static analysis, abstract interpretation and verification in (constraint logic) programming
A 25-year perspective on logic programming
Hi-index | 5.23 |
Detecting information flows inside a program is useful to check non-interference or independence of program variables, an important aspect of software security. In this paper we present a new abstract domain C expressing constancy of program variables. We then apply Giacobazzi and Scozzari's linear refinement to build a domain C-C which contains all input/output dependences between the constancy of program variables. We show that C-C is optimal, in the sense that it cannot be further linearly refined, and condensing, in the sense that a compositional, input-independent static analysis over C-C has the same precision as a non-compositional, input-driven analysis. Moreover, we show that C-C has a natural representation in terms of Boolean formulas, which is important since it allows one to use the efficient binary decision diagrams in its implementation. We then prove that C-C coincides with Genaim, Giacobazzi and Mastroeni's IF domain for information flows and with Amtoft and Banerjee's Independ domain for independence. This lets us extend to IF and Independ the properties that we proved for C-C: optimality, condensing and representation in terms of Boolean formulas. As a secondary result, it lets us conclude that IF and Independ are actually the same abstract domain, although completely different static analyses have been based on them.