Skip to main content

2017 | OriginalPaper | Buchkapitel

Enforcing Programming Guidelines with Region Types and Effects

verfasst von : Serdar Erbatur, Martin Hofmann, Eugen Zălinescu

Erschienen in: Programming Languages and Systems

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

We present in this paper a new type and effect system for Java which can be used to ensure adherence to guidelines for secure web programming. The system is based on the region and effect system by Beringer, Grabowski, and Hofmann. It improves upon it by being parametrized over an arbitrary guideline supplied in the form of a finite monoid or automaton and a type annotation or mockup code for external methods. Furthermore, we add a powerful type inference based on precise interprocedural analysis and provide an implementation in the Soot framework which has been tested on a number of benchmarks including large parts of the Stanford SecuriBench.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Alternatively, the monoid can be generated automatically from the policy automaton (or its complement).
 
2
In Java, the \(\mathtt {NullType}\) is the type of the expression \(\mathtt {null}\), see https://​docs.​oracle.​com/​javase/​specs/​jls/​se7/​html/​jls-4.​html#jls-4.​1.
 
3
Note that such a class always exists, as \(C\preceq \mathtt {Object}\), for any \(C\in {\textit{Cls}}\).
 
4
The implementation is available for download from one of the authors’ homepage.
 
7
As usual, the formal description of our analysis is in terms of an idealized language, FJEUCS. The implementation takes genuine Java programs. However, it does not support certain features such as concurrency and reflection, which we discuss below.
 
Literatur
6.
Zurück zum Zitat Beringer, L., Grabowski, R., Hofmann, M.: Verifying pointer and string analyses with region type systems. Comput. Lang. Syst. Struct. 39(2), 49–65 (2013)MATH Beringer, L., Grabowski, R., Hofmann, M.: Verifying pointer and string analyses with region type systems. Comput. Lang. Syst. Struct. 39(2), 49–65 (2013)MATH
7.
Zurück zum Zitat Chess, B., West, J.: Secure Programming with Static Analysis, 1st edn. Addison-Wesley Professional, Erewhon (2007) Chess, B., West, J.: Secure Programming with Static Analysis, 1st edn. Addison-Wesley Professional, Erewhon (2007)
9.
Zurück zum Zitat Crégut, P., Alvarado, C.: Improving the security of downloadable Java applications with static analysis. ENTCS 141(1), 129–144 (2005) Crégut, P., Alvarado, C.: Improving the security of downloadable Java applications with static analysis. ENTCS 141(1), 129–144 (2005)
10.
Zurück zum Zitat Degen, M.: JAVA(X) a type-based program analysis framework. Ph.D. thesis, Universität Freiburg, June 2011 Degen, M.: JAVA(X) a type-based program analysis framework. Ph.D. thesis, Universität Freiburg, June 2011
14.
Zurück zum Zitat Hofmann, M., Chen, W.: Abstract interpretation from Büchi automata. In: CSL-LICS, pp. 51:1–51:10 (2014) Hofmann, M., Chen, W.: Abstract interpretation from Büchi automata. In: CSL-LICS, pp. 51:1–51:10 (2014)
16.
Zurück zum Zitat Hofmann, M., Ledent, J.: A cartesian-closed category for higher-order model checking. In: LICS, pp. 1–12 (2017) Hofmann, M., Ledent, J.: A cartesian-closed category for higher-order model checking. In: LICS, pp. 1–12 (2017)
17.
Zurück zum Zitat Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)CrossRef Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)CrossRef
19.
Zurück zum Zitat Kobayashi, N., Ong, C.L.: A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In: LICS, pp. 179–188. IEEE Computer Society (2009) Kobayashi, N., Ong, C.L.: A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In: LICS, pp. 179–188. IEEE Computer Society (2009)
20.
Zurück zum Zitat Lam, P., Bodden, E., Lhoták, O., Hendren, L.: The Soot framework for Java program analysis: a retrospective. In: CETUS (2011) Lam, P., Bodden, E., Lhoták, O., Hendren, L.: The Soot framework for Java program analysis: a retrospective. In: CETUS (2011)
21.
Zurück zum Zitat Lenherr, T.: Taxonomy and applications of alias analysis. Master’s thesis, ETH Zürich (2008) Lenherr, T.: Taxonomy and applications of alias analysis. Master’s thesis, ETH Zürich (2008)
22.
Zurück zum Zitat Lhoták, O.: Program analysis using binary decision diagrams. Ph.D. thesis, McGill University, January 2006 Lhoták, O.: Program analysis using binary decision diagrams. Ph.D. thesis, McGill University, January 2006
23.
Zurück zum Zitat Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)CrossRefMATH Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)CrossRefMATH
24.
Zurück zum Zitat Reps, T.W., Horwitz, S., Sagiv, S.: Precise interprocedural dataflow analysis via graph reachability. In: POPL, pp. 49–61. ACM Press (1995) Reps, T.W., Horwitz, S., Sagiv, S.: Precise interprocedural dataflow analysis via graph reachability. In: POPL, pp. 49–61. ACM Press (1995)
25.
Zurück zum Zitat Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis - Theory and Applications, pp. 189–233. Prentice-Hall, Englewood Cliffs (1981) Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis - Theory and Applications, pp. 189–233. Prentice-Hall, Englewood Cliffs (1981)
26.
Zurück zum Zitat Skalka, C.: Types and trace effects for object orientation. High.-Order Symbolic Comput. 21(3), 239–282 (2008)CrossRefMATH Skalka, C.: Types and trace effects for object orientation. High.-Order Symbolic Comput. 21(3), 239–282 (2008)CrossRefMATH
27.
Zurück zum Zitat Skalka, C., Smith, S.F., Horn, D.V.: A type and effect system for flexible abstract interpretation of Java. ENTCS 131, 111–124 (2005) Skalka, C., Smith, S.F., Horn, D.V.: A type and effect system for flexible abstract interpretation of Java. ENTCS 131, 111–124 (2005)
28.
Zurück zum Zitat Skalka, C., Smith, S.F., Horn, D.V.: Types and trace effects of higher order programs. J. Funct. Program. 18(2), 179–249 (2008)MathSciNetCrossRefMATH Skalka, C., Smith, S.F., Horn, D.V.: Types and trace effects of higher order programs. J. Funct. Program. 18(2), 179–249 (2008)MathSciNetCrossRefMATH
29.
Zurück zum Zitat Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: POPL, pp. 17–30 (2011) Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: POPL, pp. 17–30 (2011)
30.
Zurück zum Zitat Vallée-Rai, R., Co, P., Gagnon, E., Hendren, L.J., Lam, P., Sundaresan, V.: Soot - a Java bytecode optimization framework. In: CASCON, IBM (1999) Vallée-Rai, R., Co, P., Gagnon, E., Hendren, L.J., Lam, P., Sundaresan, V.: Soot - a Java bytecode optimization framework. In: CASCON, IBM (1999)
Metadaten
Titel
Enforcing Programming Guidelines with Region Types and Effects
verfasst von
Serdar Erbatur
Martin Hofmann
Eugen Zălinescu
Copyright-Jahr
2017
DOI
https://doi.org/10.1007/978-3-319-71237-6_5

Premium Partner