Skip to main content

2015 | OriginalPaper | Buchkapitel

A Secure Compiler for ML Modules

verfasst von : Adriaan Larmuseau, Marco Patrignani, Dave Clarke

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

Many functional programming languages compile to low-level languages such as C or assembly. Numerous security properties of those compilers, however, apply only when the compiler compiles whole programs. This paper presents a compilation scheme that securely compiles a standalone module of \({\text {ModuleML}}\), a light-weight version of an ML with modules, into untyped assembly. The compilation scheme is secure in that it reflects the abstractions of a \({\text {ModuleML}}\) module, for every possible piece of assembly code that it interacts with. This is achieved by isolating the compiled module through a low-level memory isolation mechanism and by dynamically type checking its interactions. We evaluate an implementation of the compiler on relevant test scenarios.

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!

Literatur
1.
Zurück zum Zitat Abadi, M.: Protection in programming-language translations. In: Vitek, J., Jensen, C.D. (eds.) Secure Internet Programming. LNCS, vol. 1603, pp. 19–34. Springer, Heidelberg (1999) CrossRef Abadi, M.: Protection in programming-language translations. In: Vitek, J., Jensen, C.D. (eds.) Secure Internet Programming. LNCS, vol. 1603, pp. 19–34. Springer, Heidelberg (1999) CrossRef
2.
Zurück zum Zitat Chlipala, A.: A certified type-preserving compiler from lambda calculus to assembly language. In: PLDI 2007, pp. 54–65. ACM, New York, NY, USA (2007) Chlipala, A.: A certified type-preserving compiler from lambda calculus to assembly language. In: PLDI 2007, pp. 54–65. ACM, New York, NY, USA (2007)
3.
Zurück zum Zitat Codognet, P., Diaz, D.: WAMCC: Compiling Prolog to C. In: ICLP, pp. 317–331. MIT PRess (1995) Codognet, P., Diaz, D.: WAMCC: Compiling Prolog to C. In: ICLP, pp. 317–331. MIT PRess (1995)
4.
Zurück zum Zitat Dreyer, D.: Understanding and evolving the ML module system. PhD thesis, Carnegie Mellon, May 2005 Dreyer, D.: Understanding and evolving the ML module system. PhD thesis, Carnegie Mellon, May 2005
5.
Zurück zum Zitat Fournet, C., Swamy, N., Chen, J., Dagand, P.-E., Strub, P.-Y., Livshits, B.: Fully abstract compilation to javascript. In: POPL, pp. 371–38 (2013) Fournet, C., Swamy, N., Chen, J., Dagand, P.-E., Strub, P.-Y., Livshits, B.: Fully abstract compilation to javascript. In: POPL, pp. 371–38 (2013)
6.
Zurück zum Zitat Hur, C.-K., Dreyer, D.: A Kripke logical relation between ML and assembly. In: POPL 2011, pp. 133–146. ACM (2011) Hur, C.-K., Dreyer, D.: A Kripke logical relation between ML and assembly. In: POPL 2011, pp. 133–146. ACM (2011)
7.
Zurück zum Zitat Jagadeesan, R., Pitcher, C., Rathke, J., Riely, J.: Local memory via layout randomization. In: CSF 2011, pp. 161–174. IEEE (2011) Jagadeesan, R., Pitcher, C., Rathke, J., Riely, J.: Local memory via layout randomization. In: CSF 2011, pp. 161–174. IEEE (2011)
8.
Zurück zum Zitat Jeffrey, A., Rathke, J.: A fully abstract may testing semantics for concurrent objects. Theor. Comput. Sci. 338(1–3), 17–63 (2005)CrossRefMathSciNetMATH Jeffrey, A., Rathke, J.: A fully abstract may testing semantics for concurrent objects. Theor. Comput. Sci. 338(1–3), 17–63 (2005)CrossRefMathSciNetMATH
9.
Zurück zum Zitat Larmuseau, A., Clarke, D.: Formalizing a secure foreign function interface. In: Calinescu, R., Rumpe, B. (eds.) SEFM 2015. LNCS, vol. 9276, pp. 215–230. Springer, Heidelberg (2015) CrossRef Larmuseau, A., Clarke, D.: Formalizing a secure foreign function interface. In: Calinescu, R., Rumpe, B. (eds.) SEFM 2015. LNCS, vol. 9276, pp. 215–230. Springer, Heidelberg (2015) CrossRef
10.
Zurück zum Zitat Larmuseau, A., Patrignani, M., Clarke, D.: A secure compiler for ml modules - extended version. Technical Report 2015–028, Uppsala University, September 2015 Larmuseau, A., Patrignani, M., Clarke, D.: A secure compiler for ml modules - extended version. Technical Report 2015–028, Uppsala University, September 2015
11.
Zurück zum Zitat Leroy, X.: Manifest types, modules, and separate compilation. In: POPL 1994, pp. 109–122. ACM, New York, NY, USA (1994) Leroy, X.: Manifest types, modules, and separate compilation. In: POPL 1994, pp. 109–122. ACM, New York, NY, USA (1994)
12.
Zurück zum Zitat Leroy, X.: Formal verification of a realistic compiler. CACM 52(7), 107–115 (2009)CrossRef Leroy, X.: Formal verification of a realistic compiler. CACM 52(7), 107–115 (2009)CrossRef
13.
Zurück zum Zitat Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vôuillon, J.: The Objective Caml system, release 4.02. Technical report, INRIA, August 2014 Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vôuillon, J.: The Objective Caml system, release 4.02. Technical report, INRIA, August 2014
14.
Zurück zum Zitat Matthews, J., Ahmed, A.: Parametric polymorphism through run-time sealing or, theorems for low, low prices!. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 16–31. Springer, Heidelberg (2008) CrossRef Matthews, J., Ahmed, A.: Parametric polymorphism through run-time sealing or, theorems for low, low prices!. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 16–31. Springer, Heidelberg (2008) CrossRef
15.
Zurück zum Zitat McKeen, F., Alexandrovich, I., Berenzon, A., Rozas, C.V., Shafi, H., Shanbhogue, V., Savagaonkar, U.R.: Innovative instructions and software model for isolated execution. In: HASP 2013, ACM (2013) McKeen, F., Alexandrovich, I., Berenzon, A., Rozas, C.V., Shafi, H., Shanbhogue, V., Savagaonkar, U.R.: Innovative instructions and software model for isolated execution. In: HASP 2013, ACM (2013)
16.
Zurück zum Zitat Patrignani, M., Agten, P., Strackx, R., Jacobs, B., Clarke, D., Piessens, F.: Secure compilation to protected module architectures. TOPLAS 37(2), 6:1–6:50 (2015)CrossRef Patrignani, M., Agten, P., Strackx, R., Jacobs, B., Clarke, D., Piessens, F.: Secure compilation to protected module architectures. TOPLAS 37(2), 6:1–6:50 (2015)CrossRef
17.
Zurück zum Zitat Patrignani, M., Clarke, D.: Fully abstract trace semantics of low-level isolation mechanisms. In: SAC 2014, pp. 1562–1569. ACM (2014) Patrignani, M., Clarke, D.: Fully abstract trace semantics of low-level isolation mechanisms. In: SAC 2014, pp. 1562–1569. ACM (2014)
18.
Zurück zum Zitat Queinnec, C.: Lisp in Small Pieces. Cambridge University Press, Cambridge (2003) Queinnec, C.: Lisp in Small Pieces. Cambridge University Press, Cambridge (2003)
19.
Zurück zum Zitat Strackx, R., Piessens, F.: Fides: selectively hardening software application components against kernel-level or process-level malware. In: CCS, pp. 2–13 (2012) Strackx, R., Piessens, F.: Fides: selectively hardening software application components against kernel-level or process-level malware. In: CCS, pp. 2–13 (2012)
Metadaten
Titel
A Secure Compiler for ML Modules
verfasst von
Adriaan Larmuseau
Marco Patrignani
Dave Clarke
Copyright-Jahr
2015
DOI
https://doi.org/10.1007/978-3-319-26529-2_3