Skip to main content
Log in

Transformational typing and unification for automatically correcting insecure programs

  • Special Issue Paper
  • Published:
International Journal of Information Security Aims and scope Submit manuscript

Abstract

Before starting a rigorous security analysis of a given software system, the most likely outcome is often already clear, namely that the system is not entirely secure. Modifying a program such that it passes the analysis is a difficult problem and usually left entirely to the programmer. In this article, we show that and how unification can be used to compute such program transformations. This opens a new perspective on the problem of correcting insecure programs. We also demonstrate that integrating our approach into an existing transforming type system can improve the precision of the analysis and the quality of the resulting programs.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Agat, J.: Transforming out timing leaks. In: Proceedings of the 27th ACM Symposium on Principles of Programming Languages, pp. 40–53 (2000)

  2. Barthe, G., Rezk, T., Warnier, M.: Preventing timing leaks through transactional branching instructions. In: Proceedings of 3rd Workshop on Quantitative Aspects of Programming Languages (QAPL’05). ENTCS, (2005)

  3. Baader, F., Snyder, W.: Unification theory. In: Robinson, A., Voronkov, A. (eds.), Handbook of Automated Reasoning, vol. I, chap. 8, pp. 445–532. Elsevier Science, Amsterdam (2001)

  4. Dam, M.: Decidability and proof systems for language-based noninterference relations. In: Proceedings of the 33rd ACM Symposium on Principles of Programming Languages, pp. 67–78 (2006)

  5. Denning D.E. (1982). Cryptography and Data Security. Addison-Wesley, New York

    MATH  Google Scholar 

  6. Hedin D. and Sands D. (2005). Timing aware information flow security for a javacard-like bytecode. Electr. Notes Theor. Comput. Sci. 141(1): 163–182

    Article  Google Scholar 

  7. Herold A. and Siekmann J. (1987). Unification in Abelian semigroups. J. Autom. Reason. 3: 247–283

    Article  MATH  MathSciNet  Google Scholar 

  8. Köpf, B., Mantel, H.: Eliminating implicit information leaks by transformational typing and unification. In: Proceedings of FAST’05: 3rd International Workshop on Formal Aspects in Security and Trust. LNCS, vol. 3866, pp. 47–62. Springer, Heidelberg (2006)

  9. Mantel, H., Sands, D.: Controlled declassification based on intransitive noninterference. In: Proceedings of the 2nd ASIAN Symposium on Programming Languages and Systems, APLAS 2004. LNCS, vol. 3303, pp. 129–145, Taipei, Taiwan, 4–6 November 2004. Springer, Heidelberg (2004)

  10. McLean, J.D.: A general theory of composition for trace sets closed under selective interleaving functions. In: Proceedings of the IEEE Symposium on Research in Security and Privacy, pp. 79–93, Oakland, CA, USA (1994)

  11. Sabelfeld, A.: The impact of synchronisation on secure information flow in concurrent programs. In: Proceedings of Andrei Ershov 4th International Conference on Perspectives of System Informatics. vol. 2244, pp. 225–239 (2001)

  12. Sabelfeld A. and Myers A.C. (2003). Language-based information-flow security. IEEE J. Selected Areas in Communication 21(1): 5–19

    Article  Google Scholar 

  13. Sabelfeld, A., Sands, D.: A per model of secure information flow in sequential programs. In: Proceedings of the 8th European Symposium on Programming, LNCS, pp. 50–59 (1999)

  14. Sabelfeld, A., Sands, D.: Probabilistic noninterference for multi-threaded programs. In: Proceedings of the 13th IEEE Computer Security Foundations Workshop, pp. 200–215, Cambridge, UK (2000)

  15. Schneider B.F. (2000). Enforceable security policies. ACM Trans. Inf. Syst. Secur. 3(1): 30–50

    Article  Google Scholar 

  16. Volpano, D., Smith, G.: Probabilistic noninterference in a concurrent language. In: Proceedings of the 11th IEEE Computer Security Foundations Workshop, pp. 34–43, Rockport, Massachusetts (1998)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Boris Köpf.

Additional information

This is an extended version of the article [8] that appeared in Third International Workshop, FAST 2005, Revised Selected Papers, LNCS 3866, Springer-Verlag, 2006.

The second author gratefully acknowledges support by the German Research Foundation (DFG).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Köpf, B., Mantel, H. Transformational typing and unification for automatically correcting insecure programs. Int. J. Inf. Secur. 6, 107–131 (2007). https://doi.org/10.1007/s10207-007-0016-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10207-007-0016-z

Keywords

Navigation