CliSeAu: Securing Distributed Java Programs by Cooperative
Download
Report
Transcript CliSeAu: Securing Distributed Java Programs by Cooperative
Richard Gay – ICISS, December 20, 2014
10th International Conference on Information Systems Security, Hyderabad, India
CliSeAu: Securing Distributed Java Programs
by Cooperative Dynamic Enforcement
Richard Gay, Jinwei Hu, Heiko Mantel
Modeling and Analysis of Information Systems (MAIS),
TU Darmstadt, Germany
funded by CASED, by the DFG under project FM-SecEng, and by TU Darmstadt
Richard Gay – ICISS, December 20, 2014
2
Dynamic Security Enforcement
Enforcement as encapsulation
“encapsulation”
program
(needs to be trusted)
program
(trustworthy)
enforcement mechanism
Duties of an encapsulation
intercept events
PEP in
XACML
decide
PIP+PDP
in XACML
impose
countermeasure
PEP in
XACML
Richard Gay – ICISS, December 20, 2014
3
Security in Distributed Programs
Related work (selected)
SASI [Erlingsson, Schneider ‘99]
Service Automata [Gay et al. ‘11]
Security Automata [Schneider ’00]
MFOTL enforcement [Basin et al. ‘10, ‘12]
Edit Automata [Ligatti et al. ’02, ‘05, ‘09]
Information-flow enforcement [e.g.,
Polymer [Bauer et al. ’05, ‘09]
JavaMOP [Rosu et al. ’07, ’12, ‘12]
Guernic ’07,…,Chudnov et al. ’14]
Usage control [e.g.,
Pretschner et al. ‘13, ‘14]
Our goals
dynamic enforcement for distributed Java programs
system-wide security requirements
decentralized to avoid bottlenecks and single points of failure
effective
efficient
Richard Gay – ICISS, December 20, 2014
4
Security in Distributed Programs
File server 1
File server 2
checks
for local
enforcement
checks
for local
enforcement
download
file of Bank A
download
file of Bank B
financial auditor
Richard Gay – ICISS, December 20, 2014
5
Service Automata Concept
Concept [Gay et al., FAST‘11]
encapsulate each component of distributed target program
encapsulations can coordinate the enforcement with each other
formalized in CSP
Modular architecture
interceptor
coordinator
enforcer
local policy
target
Remaining challenges
a cooperative enforcement mechanism for Java programs
a combination technique for the mechanism with a Java program
Richard Gay – ICISS, December 20, 2014
6
Overview of Contributions
CliSeAu
a novel tool for dynamic enforcement of security
in distributed Java programs
concept
cooperative
enforcement
prototype
modular
architecture
combination
technique
1
2
(available for
download)
evaluation
case
study
performance
evaluation
3
4
Richard Gay – ICISS, December 20, 2014
7
Architecture of Encapsulations
Basis: Service Automata concept [Gay et al., FAST‘11]
inherits local policy and coordinator
event factory
inherits modular architecture
interceptor
coordinator
enforcer
local policy
target
enforcer factory
Novel augmentation of CliSeAu
event factory: abstracts security-irrelevant details of actions
enforcer factory: refines decisions to concrete countermeasures
design patterns (strategy, factory): integrate parametric components
IPC: connects “left part” and “right part”
benefits:
local policy less dependent on technical peculiarities of target
decision-making can be placed into separate process than target
Richard Gay – ICISS, December 20, 2014
8
Combining Capsules with Targets
Concept
SASI,
JavaMop…
in-lining interception and imposition of countermeasures (left)
placing decision-making into environment of program (right)
Java
code
of the
program
Java
code
of the
capsule
environment
of the
program
Porscha,
CoPilot…
decider
Key technologies used
AspectJ for instrumentation of target programs’ bytecode
TCP/IP sockets for communication within & between ECs
key-value configuration files for selection of target and policy
JavaMOP
Clara
Richard Gay – ICISS, December 20, 2014
9
CliSeAu
Goal
automated encapsulation of a given distributed Java program
flexibility in the choice of the program and the security policy
CliSeAu’s approach
configuration determines target program and security policy
each distributed component is encapsulated
config
CliSeAu
distributed Java program policy
Richard Gay – ICISS, December 20, 2014
Related Approaches
Enforcement for non-distributed Java programs
JavaMOP [Rosu et al.]
based on AspectJ
focus on efficiency; no abstraction
Polymer
abstraction concept, for policy composition
Enforcement in distributed programs
LGI/Moses [Minsky et al.]
program’s network interaction
DiAna [Agha et al.]
piggy-backing, possibly delayed
[KelbertPretschner ‘13+’14]
focus on usage control
formal model for decentralized enforcement
10
Richard Gay – ICISS, December 20, 2014
11
Case Study: Enforcing Chinese Wall
Goals
evidence whether CliSeAu can be applied
to third-party programs
evidence for possibility to re-use CliSeAu config parts
basis for performance evaluation
Application scenario
distributed file storage system
Chinese Wall security policy
3 different Java file servers as target programs
sound, decentralized enforcement
(even in case of simultaneous downloads)
Richard Gay – ICISS, December 20, 2014
12
Case Study: Enforcing Chinese Wall
Instantiation of CliSeAu
intercepted events:
method calls underlying file downloads
program-level, not API-level
deciding, cooperative & decentralized
assigning actions to responsible ECs
via hash code of (user, COI)
delegating the decision-making to the responsible EC
imposed countermeasures:
suppress policy-violating downloads (2 of 3 targets)
replace return value of method (1 of 3 target)
intercept events
decide
impose
countermeasure
Richard Gay – ICISS, December 20, 2014
Performance Evaluation
Goals
determine basic runtime overhead of CliSeAu
determine effect of cooperation on runtime overhead
Experimental setup
3 different Java file servers
for each: 10 file servers on a Linux machine
downloading files of size 10KB
overhead measured in FTP client,
averaged over 2500 experiments
enforcement of Chinese Wall security policy
13
Richard Gay – ICISS, December 20, 2014
14
Performance Evaluation: Results
Performance overhead on a single file download
AnomicFTPD
DRS
SimpleFTPD
local deciding
2.72ms (1.3%) 2.80ms (3.8%)
1.67ms (4.2%)
coordinated deciding
(2 hops)
5.23ms (2.6%) 5.62ms (6.8%)
4.68ms (11.7%)
Performance overhead for multiple hops
in number of hops
increase per hop: ≈1.35ms
overhead (ms)
roughly linear increase
18
15
12
9
6
3
0
AnomicFTPD
Simple-ftpd
DRS
0
2
3
4 5 6 7
number of hops
8
9
10
Richard Gay – ICISS, December 20, 2014
15
CliSeAu: Securing Distributed Java Programs by
Cooperative Dynamic Enforcement
Our goals
enforcement for distributed Java programs
decentralized
system-wide security requirements
effective
efficient
http://www.mais.informatik.tu-darmstadt.de/CliSeAu
Not in scope so far
fault tolerance of CliSeAu
network attacks on CliSeAu
Richard Gay – ICISS, December 20, 2014
Appendix
16
Richard Gay – ICISS, December 20, 2014
17
Cooperative Decentralized Enforcement
Dynamic enforcement in distributed systems
feasible:
intercepting individually at each agent of the distributed system
imposing countermeasures individually at the agents
not feasible in general
deciding at the agent that tried to perform an action ( soundness)
deciding about all at a single agent ( performance)
Richard Gay – ICISS, December 20, 2014
Cooperative Enforcement
Goals for the enforcement capsules (ECs)
capability of local deciding
deciding about events of the program it encapsulates
to reduce communication overhead
capability of cooperative deciding
requesting support by other ECs
supporting other ECs in decision-making
to enable sound decisions even when a single EC
does not have sufficient information
Challenges
enabling cooperative deciding when needed
and local deciding when possible
enabling sound decision-making for system-wide policies
without excessive synchronization
18
Richard Gay – ICISS, December 20, 2014
Cooperative Deciding
CliSeAu’s approach
ECs cooperate by delegation
every EC can specify when to delegate and when to decide locally
delegation is non-blocking:
19
Richard Gay – ICISS, December 20, 2014
Architecture of Encapsulations
Goals for the enforcement capsules (ECs)
support for cooperative decentralized deciding
abstraction from security-irrelevant actions
(in the example: browsing server directories)
abstraction from security-irrelevant details of actions
(in the example: download size)
modular architecture
Challenge
enabling flexibility in the supported programs and the security policies
while providing much fixed structure to simplify instantiation
20