Security monitor inlining and certification for multithreaded Java']Java

被引:1
|
作者
Dam, Mads [1 ]
Jacobs, Bart [2 ]
Lundblad, Andreas [1 ]
Piessens, Frank [2 ]
机构
[1] Royal Inst Technol KTH, SE-10044 Stockholm, Sweden
[2] Katholieke Univ Leuven, B-3001 Louvain, Belgium
关键词
ENFORCEMENT;
D O I
10.1017/S0960129512000916
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Security monitor inlining is a technique for security policy enforcement whereby monitor functionality is injected into application code in the style of aspect-oriented programming. The intention is that the injected code enforces compliance with the policy (security), and otherwise interferes with the application as little as possible (conservativity and transparency). Such inliners are said to be correct. For sequential Java-like languages, inlining is well understood, and several provably correct inliners have been proposed. For multithreaded Java one difficulty is the need to maintain a shared monitor state. We show that this problem introduces fundamental limitations in the type of security policies that can be correctly enforced by inlining. A class of race-free policies is identified that precisely characterizes the inlineable policies by showing that inlining of a policy outside this class is either not secure or not transparent, and by exhibiting a concrete inliner for policies inside the class which is secure, conservative and transparent. The inliner is implemented for Java and applied to a number of practical application security policies. Finally, we discuss how certification in the style of proof-carrying code could be supported for inlined programs by using annotations to reduce a potentially complex verification problem for multithreaded Java bytecode to sequential verification of just the inlined code snippets.
引用
收藏
页码:528 / 565
页数:38
相关论文
共 50 条
  • [41] The evolution of Java']Java security
    Koved, L
    Nadalin, AJ
    Neal, D
    Lawson, T
    [J]. IBM SYSTEMS JOURNAL, 1998, 37 (03) : 349 - 364
  • [42] A platform-independent distributed runtime for standard multithreaded java']java
    Factor, Michael
    Schuster, Assaf
    Shagin, Konstantin
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2006, 34 (02) : 113 - 142
  • [43] JRastro: A trace agent for debugging multithreaded and distributed Java']Java programs
    da Silva, GJ
    Schnorr, LM
    Stein, BD
    [J]. 15TH SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING, PROCEEDINGS, 2003, : 46 - 54
  • [44] Real-time garbage collection for a multithreaded Java']Java microcontroller
    Fuhrmann, S
    Pfeffer, M
    Kreuzinger, J
    Ungerer, T
    Brinkschulte, U
    [J]. FOURTH IEEE INTERNATIONAL SYMPOSIUM ON OBJECT-ORIENTED REAL-TIME DISTRIBUTED COMPUTING, PROCEEDINGS, 2001, : 69 - 76
  • [45] Object allocation and memory contention study of Java']Java multithreaded applications
    Huang, W
    Qian, Y
    Srisa-an, W
    Chang, JM
    [J]. CONFERENCE PROCEEDINGS OF THE 2004 IEEE INTERNATIONAL PERFORMANCE, COMPUTING, AND COMMUNICATIONS CONFERENCE, 2004, : 375 - 382
  • [46] Antipattern-based detection of deficiencies in Java']Java multithreaded software
    Hallal, HH
    Alikacem, E
    Tunney, WP
    Boroday, S
    Petrenko, A
    [J]. QSIC 2004: PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE, 2004, : 258 - 267
  • [47] Symbolic context-bounded analysis of multithreaded java']java programs
    Suwimonteerabuth, Dejvuth
    Esparza, Javier
    Schwoon, Stefan
    [J]. MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 270 - 287
  • [48] PERMISSION-BASED SEPARATION LOGIC FOR MULTITHREADED JAVA']JAVA PROGRAMS
    Amighi, Afshin
    Haack, Citristian
    Huisman, Marieke
    Hurlin, Clement
    [J]. LOGICAL METHODS IN COMPUTER SCIENCE, 2015, 11 (01)
  • [49] Real-time garbage collection for a multithreaded Java']Java microcontroller
    Pfeffer, M
    Ungerer, T
    Fuhrmann, S
    Kreuzinger, J
    Brinkschulte, U
    [J]. REAL-TIME SYSTEMS, 2004, 26 (01) : 89 - 106
  • [50] The Hyperion system:: Compiling multithreaded Java']Java bytecode for distributed execution
    Antoniu, G
    Bougé, L
    Hatcher, P
    MacBeth, M
    McGuigan, K
    Namyst, R
    [J]. PARALLEL COMPUTING, 2001, 27 (10) : 1279 - 1297