Very Static Enforcement of Dynamic Policies
Security policies are naturally dynamic. Reflecting this, there has been a growing interest in studying information-flow properties which change during program execution, including concepts such as declassification, revocation, and role-change.
A static verification of a dynamic information flow policy, from a semantic perspective, should only need to concern itself with two things: 1) the dependencies between data in a program, and 2) whether those dependencies are consistent with the intended flow policies as they change over time. In this paper we provide a formal ground for this intuition. We present a straightforward extension to the principal flow-sensitive type system introduced by Hunt and Sands (POPL ’06, ESOP ’11) to infer both end-to-end dependencies and dependencies at intermediate points in a program. This allows typings to be applied to verification of both static and dynamic policies. Our extension preserves the principal type system’s distinguishing feature, that type inference is independent of the policy to be enforced: a single, generic dependency analysis (typing) can be used to verify many different dynamic policies of a given program, thus achieving a clean separation between (1) and (2).
We also make contributions to the foundations of dynamic information flow. Arguably, the most compelling semantic definitions for dynamic security conditions in the literature are phrased in the so-called knowledge-based style. We contribute a new definition of knowledge-based progress insensitive security for dynamic policies. We show that the new definition avoids anomalies of previous definitions and enjoys a simple and useful characterisation as a two-run style property.
KeywordsType System Security Policy Program Variable Program Point Initial Store
- [AC12]Askarov, A., Chong, C.: Learning is change in knowledge: Knowledge-based security for dynamic policies. In: Computer Security Foundations Symposium, pp. 308–322. IEEE (2012)Google Scholar
- [AS07]Askarov, A., Sabelfeld, A.: Gradual release: Unifying declassification, encryption and key release policies. In: Proc. IEEE Symp. on Security and Privacy, pp. 207–221 (May 2007)Google Scholar
- [BDLG11]Balliu, M., Dam, M., Le Guernic, G.: Epistemic temporal logic for information flow security. In: Programming Languages and Analysis for Security, PLAS 2011, pp. 6:1–6:12. ACM (2011)Google Scholar
- [BDLG12]Balliu, M., Dam, M., Le Guernic, G.: Encover: Symbolic exploration for information flow security. In: 2012 IEEE 25th Computer Security Foundations Symposium (CSF), pp. 30–44. IEEE (2012)Google Scholar
- [BNR08]Banerjee, A., Naumann, D., Rosenberg, S.: Expressive declassification policies and modular static enforcement. In: Proc. IEEE Symp. on Security and Privacy, pp. 339–353. IEEE Computer Society (2008)Google Scholar
- [BS09]Broberg, N., David, S.: Flow-Sensitive Semantics for Dynamic Information Flow Policies. In: Programming Languages and Analysis for Security (2009)Google Scholar
- [BS10]Broberg, N., Sands, D.: Paralocks – role-based information flow control and beyond. In: Symposium on Principles of Programming Languages. ACM (2010)Google Scholar
- [DHS15]van Delft, B., Hunt, S., Sands, D.: Very Static Enforcement of Dynamic Policies. Technical Report 1501.02633, arXiv (2015)Google Scholar
- [GM82]Goguen, J.A., Meseguer, J.: Security policies and security models. In: Proc. IEEE Symp. on Security and Privacy, April 1982, pp. 11–20 (April 1982)Google Scholar
- [GM84]Goguen, J.A., Meseguer, J.: Unwinding and inference control. In: Proc. IEEE Symp. on Security and Privacy, pp. 75–86 (April 1984)Google Scholar
- [HS06]Hunt, S., Sands, D.: On Flow-sensitive Security Types. In: Symposium on Principles of Programming Languages, pp. 79–90. ACM (2006)Google Scholar
- [HTHZ05]Hicks, M., Tse, S., Hicks, B., Zdancewic, S.: Dynamic updating of information-flow policies. In: Foundations of Computer Security Workshop, pp. 7–18 (2005)Google Scholar
- [Ind]Indus homepage, http://indus.projects.cis.ksu.edu/ (accessed: January 09, 2015)
- [JOA]JOANA homepage, http://pp.ipd.kit.edu/projects/joana/ (accessed: January 09, 2015)
- [SHTZ06]Swamy, N., Hicks, M., Tse, S., Zdancewic, S.: Managing Policy Updates in Security-Typed Languages. In: Proceedings of the 19th IEEE Workshop on Computer Security Foundations (2006)Google Scholar
- [SRMM11]Stefan, D., Russo, A., Mitchell, J.C., Mazières, D.: Flexible dynamic information flow control in Haskell. In: Proceedings of the 4th ACM Symposium on Haskell (2011)Google Scholar
- [VSI96]Volpano, D., Smith, G., Irvine, C.: A sound type system for secure flow analysis. J. Computer Security 4(3), 167–187 (1996)Google Scholar