Policies and Proofs for Code Auditing

  • Nathan Whitehead
  • Jordan Johnson
  • Martín Abadi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4762)

Abstract

Both proofs and trust relations play a role in security decisions, in particular in determining whether to execute a piece of code. We have developed a language, called BCIC, for policies that combine proofs and trusted assertions about code. In this paper, using BCIC, we suggest an approach to code auditing that bases auditing decisions on logical policies and tools.

Keywords

Type System Security Policy Audit Statement Trust Relation Proof Term 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Burrows, M., Lampson, B., Plotkin, G.: A calculus for access control in distributed systems. ACM Transactions on Programming Languages and Systems 15(4), 706–734 (1993)CrossRefGoogle Scholar
  2. 2.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Springer, Heidelberg (2004)MATHGoogle Scholar
  3. 3.
    Coquand, T., Huet, G.: The calculus of constructions. Information and Computation 76(2/3), 95–120 (1988)CrossRefMathSciNetGoogle Scholar
  4. 4.
    De Treville, J.: Binder, a logic-based security language. In: Proceedings of the 2002 IEEE Symposium on Security and Privacy, pp. 105–113 (2002)Google Scholar
  5. 5.
    ECMA. C# and common language infrastructure standards (2007), Online at http://msdn2.microsoft.com/en-us/netframework/aa569283.aspx
  6. 6.
    Perl Foundation. Perl 5.8.8 documentation: perlsec - Perl security, Online at http://perldoc.perl.org/perlsec.html
  7. 7.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the ACM 40(1), 143–184 (1993)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Lampson, B., Abadi, M., Burrows, M., Wobber, E.: Authentication in distributed systems: Theory and practice. ACM Transactions on Computer Systems 10(4), 265–310 (1992)CrossRefGoogle Scholar
  9. 9.
    Lindholm, T., Yellin, F.: The JavaTM Virtual Machine Specification. Addison-Wesley, Reading (1997)Google Scholar
  10. 10.
    Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 528–569 (1999)CrossRefGoogle Scholar
  11. 11.
    Necula, G.C.: Proof-carrying code. In: POPL 1997. Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, pp. 106–119. ACM Press, New York (1997)CrossRefGoogle Scholar
  12. 12.
    Microsoft Developer Network. About ActiveX controls,(2007), Online at http://msdn2.microsoft.com/en-us/library/Aa751971.aspx
  13. 13.
    Ørbæk, P., Palsberg, J.: Trust in the λ-calculus. Journal of Functional Programming 7(6), 557–591 (1997)CrossRefMathSciNetGoogle Scholar
  14. 14.
    Sabelfeld, A., Myers, A.C.: Language-based information-flow security. IEEE Journal on Selected Areas in Communications 21(1), 5–19 (2003)CrossRefGoogle Scholar
  15. 15.
    Sabelfeld, A., Sands, D.: Declassification: Dimensions and principles. In: CSFW 2005. Proceedings of the 18th IEEE Workshop on Computer Security Foundations, pp. 255–269 (2005)Google Scholar
  16. 16.
    The Coq Development Team. The Coq proof assistant, http://coq.inria.fr/
  17. 17.
    Whitehead, N.: Towards static analysis in a logic for code authorization. (Manuscript)Google Scholar
  18. 18.
    Whitehead, N.: A certified distributed security logic for authorizing code. In: Altenkirch, T., McBride, C. (eds.) TYPES 2006. LNCS, vol. 4502, pp. 253–268. Springer, Heidelberg (2007)Google Scholar
  19. 19.
    Whitehead, N., Abadi, M.: BCiC: A system for code authentication and verification. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS (LNAI), vol. 3452, pp. 110–124. Springer, Heidelberg (2005)Google Scholar
  20. 20.
    Whitehead, N., Abadi, M., Necula, G.: By reason and authority: A system for authorization of proof-carrying code. In: CSFW 2004. Proceedings of the 17th IEEE Computer Security Foundations Workshop, pp. 236–250 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Nathan Whitehead
    • 1
  • Jordan Johnson
    • 1
  • Martín Abadi
    • 1
    • 2
  1. 1.University of California, Santa Cruz 
  2. 2.Microsoft Research 

Personalised recommendations