Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17,...
Transcript of Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17,...
![Page 1: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/1.jpg)
Model Driven Security:from UML Models to
Access Control InfrastructuresProf. David Basin
Jürgen DoserTorrsten Lodderstedt
Supervisor: Raphael Eidenbenz Jan-Filip Zagalak
1Wednesday, December 17, 2008
![Page 2: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/2.jpg)
outline:
• problem domain / problem solving
• approach
• example
• bottom line
2
2Wednesday, December 17, 2008
![Page 3: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/3.jpg)
requirements
design
implementation
verification
maintenance
common software engineering process
3
3Wednesday, December 17, 2008
![Page 4: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/4.jpg)
verification
requirements
design
implementation
maintenance
security requirements
4
4Wednesday, December 17, 2008
![Page 5: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/5.jpg)
verification
requirements
design
implementation
maintenance
design
implementation
security requirements
5
5Wednesday, December 17, 2008
![Page 6: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/6.jpg)
development of security requirements
• very late ad hoc integration of implemented security mechanisms
• hard to keep track of security requirements through development
➡ different representations of system / security
6
6Wednesday, December 17, 2008
![Page 7: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/7.jpg)
problem solving
• one representation for system and security
• manual implementation is ambiguous:remove ambiguity
7
7Wednesday, December 17, 2008
![Page 8: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/8.jpg)
outline:
• problem domain / problem solving
• approach
• example
• bottom line
8
8Wednesday, December 17, 2008
![Page 9: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/9.jpg)
system
MDA: Model Driven Architecture
• specify system in abstract model
• apply transformation functions
• result:system specified in target platforme.g. EJB, .NET ...( only architecture, no business logic )
9
9Wednesday, December 17, 2008
![Page 10: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/10.jpg)
simplified example:poseidon UML Class Diagram to Java Class
10
10Wednesday, December 17, 2008
![Page 11: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/11.jpg)
systemsecurity
MDS: Model Driven Security
• specify system and security together in an abstract model
• apply transformation functions
• result:security aware system specified in target platforme.g. EJB, .NET ...( only architecture, no business logic )
11
11Wednesday, December 17, 2008
![Page 12: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/12.jpg)
... but how to build a model?
• modeling language
abstract syntax
concrete syntax
semantics
transformation functions
12
12Wednesday, December 17, 2008
![Page 13: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/13.jpg)
... but how to build a modeling language for MDS?
13
13Wednesday, December 17, 2008
![Page 14: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/14.jpg)
.
.
modeling language combination schema
system design modeling language dialect security modeling
language
14
14Wednesday, December 17, 2008
![Page 15: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/15.jpg)
modeling language combination schema
system design modeling language dialect security modeling
language
15
15Wednesday, December 17, 2008
![Page 16: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/16.jpg)
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
...
...
modeling language combination schema
system design modeling language dialect security modeling
language
16
16Wednesday, December 17, 2008
![Page 17: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/17.jpg)
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
...
...
modeling language combination schema
system design modeling language dialect security modeling
language
17
17Wednesday, December 17, 2008
![Page 18: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/18.jpg)
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
...
...
modeling language combination schema
system design modeling language dialect security modeling
language
security design language
18
18Wednesday, December 17, 2008
![Page 19: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/19.jpg)
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
modeling language combination schema
system and securitymodeled with security design language
19
19Wednesday, December 17, 2008
![Page 20: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/20.jpg)
outline:
• problem domain / problem solving
• approach
• example
• bottom line
20
20Wednesday, December 17, 2008
![Page 21: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/21.jpg)
example
21
21Wednesday, December 17, 2008
![Page 22: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/22.jpg)
Briefing with “M”
• I need mi6 to get a new system
• I like my cars: protect them with RBAC
• I want everything deployed as EJBs
22
22Wednesday, December 17, 2008
![Page 23: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/23.jpg)
user_1
user_2
user_n
...
perm_1
perm_2
perm_3
perm_4
perm_n
...
users permissions
Role Based Access Control
23
23Wednesday, December 17, 2008
![Page 24: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/24.jpg)
role_A
role_B
user_1
user_2
user_n
...
perm_1
perm_2
perm_3
perm_4
perm_n
...
permissionsrolesusers
UA PA
Role Based Access Control
24
24Wednesday, December 17, 2008
![Page 25: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/25.jpg)
EJB: Enterprise Java Beans
• Enterprise JavaBeans™ (EJB) is a managed, server-side component architecture for modular construction of enterprise applications.
25
25Wednesday, December 17, 2008
![Page 26: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/26.jpg)
EJB: Security - role based access control
<method-permission> <role-name>employee</role-name> <method> <ejb-name>AardvarkPayroll</ejb-name> <method-name>findByPrimaryKey</method-name> </method>
<method> <ejb-name>AardvarkPayroll</ejb-name> <method-name>getEmployeeInfo</method-name> </method>
<method> <ejb-name>AardvarkPayroll</ejb-name> <method-name>updateEmployeeInfo</method-name> </method></method-permission>
26
26Wednesday, December 17, 2008
![Page 27: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/27.jpg)
!"#!$%&'()
)*&+"$,!$%&'()
)*&+"$,!+$-) +.!!.'!+$-)
)"!*,&!$%&'() )&-/"+&!$%&'()
mi6 - car access policy
27
27Wednesday, December 17, 2008
![Page 28: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/28.jpg)
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
...
...
modeling language combination schema
system design modeling language dialect security modeling
language
security design language
28
28Wednesday, December 17, 2008
![Page 29: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/29.jpg)
modeling language combination schema
system design modeling language dialect security modeling
language
security design language
mi6UML SecureUML
Securemi6UML
29
29Wednesday, December 17, 2008
![Page 30: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/30.jpg)
OperationOperation
AttributeAttribute
Car
OperationOperation
AttributeAttribute
<<Entity>>Car
AttributeAttribute
Class Name
AttributeAttribute
Class Name
AttributeAttribute
Class Name
system: protected resources
30
30Wednesday, December 17, 2008
![Page 31: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/31.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
a car modeled with Securemi6UML
31
31Wednesday, December 17, 2008
![Page 32: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/32.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
role and entity
32
32Wednesday, December 17, 2008
![Page 33: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/33.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
permissionspermission-name
<<Permission>>
permissions as association class
33
33Wednesday, December 17, 2008
![Page 34: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/34.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
<<Permission>>
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
role: serviceAgent - permission I
34
34Wednesday, December 17, 2008
![Page 35: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/35.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Permission>>
<<Permission>>
role: serviceAgent - permission II
35
35Wednesday, December 17, 2008
![Page 36: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/36.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>simpleAgent
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
AdmireCar
<<Permission>>
role: simpleAgent - permission I
36
36Wednesday, December 17, 2008
![Page 37: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/37.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Role>>simpleAgent
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
AdmireCar
<<Permission>>
<<Permission>>
<<Permission>>
model
37
37Wednesday, December 17, 2008
![Page 38: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/38.jpg)
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
CompositeAction:
read_specs
CompositeAction
38
38Wednesday, December 17, 2008
![Page 39: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/39.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
AdmireCar
<<Permission>>
<<Permission>>
<<Permission>>
model
39
39Wednesday, December 17, 2008
![Page 40: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/40.jpg)
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
CompositeAction:
read_all
CompositeAction
40
40Wednesday, December 17, 2008
![Page 41: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/41.jpg)
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
CompositeAction:
read_all
CompositeAction
41
41Wednesday, December 17, 2008
![Page 42: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/42.jpg)
<<ClassMethodAction>> Car_getOilLevel: execute
<<ClassMethodAction>> Car_getWheels: execute
CompositeAction:
read_all
<<ClassMethodAction>> Car_getManufacturerName: execute
<<ClassMethodAction>> Car_getModelName: execute
<<ClassMethodAction>> Car_getMPG: execute
CompositeAction:
read_specs
action hierarchy
42
42Wednesday, December 17, 2008
![Page 43: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/43.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
AdmireCar
<<Permission>>
<<Permission>>
<<Permission>>
model
43
43Wednesday, December 17, 2008
![Page 44: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/44.jpg)
!"#!$%&'()
)*&+"$,!$%&'()
)*&+"$,!+$-) +.!!.'!+$-)
)"!*,&!$%&'() )&-/"+&!$%&'()
mi6 - car access policy
44
44Wednesday, December 17, 2008
![Page 45: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/45.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
extend Car entity
45
45Wednesday, December 17, 2008
![Page 46: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/46.jpg)
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
<<Permission>>
<<Permission>>
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
<<Entity>>
Car
model
46
46Wednesday, December 17, 2008
![Page 47: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/47.jpg)
MDS: access control decisions
• declarative access control (static)⇒ Permissions
• programmatic access control (dynamic)⇒ AuthorizationConstraints
47
47Wednesday, December 17, 2008
![Page 48: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/48.jpg)
permissions
permission-name
authorization
constraint
<OCL expression>
programmatic access control
48
48Wednesday, December 17, 2008
![Page 49: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/49.jpg)
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
<<Entity>>
Car
extend Car Entity
49
49Wednesday, December 17, 2008
![Page 50: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/50.jpg)
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
<<Entity>>
Car
self.Car_class = common
simpleAgent: may only drive common cars
50
50Wednesday, December 17, 2008
![Page 51: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/51.jpg)
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Permission>>
<<Permission>>
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
self.Car_class = common
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
<<Entity>>
Car
model
51
51Wednesday, December 17, 2008
![Page 52: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/52.jpg)
!"#!$%&'()
)*&+"$,!$%&'()
)*&+"$,!+$-) +.!!.'!+$-)
)"!*,&!$%&'() )&-/"+&!$%&'()
mi6 - car access policy
52
52Wednesday, December 17, 2008
![Page 53: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/53.jpg)
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadgets()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
<<Entity>>
Car
specialAgent:
53
53Wednesday, December 17, 2008
![Page 54: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/54.jpg)
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
self.Car_class = special
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadgets()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
<<Entity>>
Car
specialAgent: “may” only drive super cars
54
54Wednesday, December 17, 2008
![Page 55: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/55.jpg)
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
self.Car_class = special
self.Car_owner = caller.name
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadgets()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
owner : String
<<Entity>>
Car
specialAgents: don’t do carsharing
55
55Wednesday, December 17, 2008
![Page 56: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/56.jpg)
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Permission>>
<<Permission>>
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
self.Car_class = common
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
self.Car_class = specialself.Car_owner = caller.name
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadgets()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
owner : String
<<Entity>>
Car
model
56
56Wednesday, December 17, 2008
![Page 57: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/57.jpg)
change request
• I must reduce the CO2 emissions of our car fleet
• no car below 20 mpg may be used from now on
57
57Wednesday, December 17, 2008
![Page 58: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/58.jpg)
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Permission>>
<<Permission>>
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
self.Car_class = common
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
self.Car_class = specialself.Car_owner = caller.name
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadgets()::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
owner : String
<<Entity>>
Car
self.Car_mpg > 20
model
58
58Wednesday, December 17, 2008
![Page 59: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/59.jpg)
!"#!$%&'()
)*&+"$,!$%&'()
)*&+"$,!+$-) +.!!.'!+$-)
)"!*,&!$%&'() )&-/"+&!$%&'()
specialAgents may drive any car
59
59Wednesday, December 17, 2008
![Page 60: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/60.jpg)
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSuperCar
<<Permission>>
self.Car_class = specialself.Car_owner = caller.name
change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadget( int )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
owner : String
<<Entity>>
car
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
self.Car_class = common
<<Permission>>
self.Car_mpg > 20
copy / paste simpleAgent permissions
60
60Wednesday, December 17, 2008
![Page 61: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/61.jpg)
<<Role>>serviceAgent
<<ClassAction>> Car: read_all
MaintainingAnalysis
<<ClassMethodAction>> Car_refillOil: execute
<<ClassMethodAction>> Car_changeWheel: execute
<<ClassMethodAction>> Car_open: execute
MaintainingWork
<<Permission>>
<<Permission>>
<<Role>>simpleAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
DriveCommonCar
<<Permission>>
self.Car_class = common
<<Role>>specialAgent
<<ClassAction>> Car: read_specs
<<ClassMethodAction>> Car_open: execute
<<ClassMethodAction>> Car_go_for_a_ride: execute
<<ClassMethodAction>> Car_act_secret_gadgets: execute
DriveSpecialCar
<<Permission>>
self.Car_class = specialself.Car_owner = caller.name change_wheel ( int )::void
refill_oil( int )::void
open( )::void
go_for_a_ride()::void
act_secret_gadget( int )::void
manufacturer_name : Stringmodel_name : Stringmpg : int
oil_level : int
wheels : wheel[ ]
class : [ common | special ]
owner : String
<<Entity>>
Car
self.Car_mpg > 20
use role hierarchy
61
61Wednesday, December 17, 2008
![Page 62: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/62.jpg)
systemsecurity
MDS: Model Driven Security
• mi6 as model
• cars as protected resources
• RBAC based security policies
• empty EJB stubs +code implementing security mechansims
62
62Wednesday, December 17, 2008
![Page 63: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/63.jpg)
summary:
• roles | permissions | entities
• composite actions
• action hierarchy
• authorization constraints
• role hierarchy
63
63Wednesday, December 17, 2008
![Page 64: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/64.jpg)
conventional approach vs. MDS
conventional approach MDS
low levelarbitrary level of
abstraction
policy format: XML model elements (UML)
copy - paste /wildcards
hierarchy / composite container
running code from day 1time intensive modeling,
business logic comes later
64
64Wednesday, December 17, 2008
![Page 65: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/65.jpg)
remember:
<<ClassMethodAction>>...........
<<Permission>>
permission_name
...
...
...
...
systemsecurity
65
65Wednesday, December 17, 2008
![Page 66: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/66.jpg)
bottom line:
• model driven security offers:
- common representation for system and security
- general language composition schema
- arbitrary levels of abstraction
- unambiguous target code generation
- semantics as basis for model checking
66
66Wednesday, December 17, 2008
![Page 67: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/67.jpg)
bottom line:
• model driven security drawbacks:
- modeling needs time and skills( reduce needed skills: tool development process, system development process)
- new composite actions / action hierarchies⇒ change the dialect
⇒ recomposition of language( can be solved with macros)
- modifying the model ⇒ apply transformation
functions again( can be solved with dedicated IDE or business logic stored outside of bean )
- ( “code generator” needed )
67
67Wednesday, December 17, 2008
![Page 68: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/68.jpg)
68Wednesday, December 17, 2008
![Page 69: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/69.jpg)
SecureUML
• modeling language
abstract syntax
concrete syntax
semantics
transformation functions
69
69Wednesday, December 17, 2008
![Page 70: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/70.jpg)
role based access control
role_1
...
u
user_n
...
perm
perm_n
permissionsrolesusers
UA PA
a_1
a_2
a_n
...
actions
AA
...
70
70Wednesday, December 17, 2008
![Page 71: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/71.jpg)
role based access control
role_1
...
u
user_n
...
perm
perm_n
permissionsrolesusers
UA PA
a_1
a_2
a_n
...
actions
AA
...
70
RBACsimple = {(u, a1) ! Users"Actions|#role1 ! Roles, perm ! Permissions .(u, role1) ! UA $(role1, perm) ! PA $(perm, a1) ! AA}
70Wednesday, December 17, 2008
![Page 72: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/72.jpg)
adding subjects
User
Subject
Group
CompositeContainer
71
71Wednesday, December 17, 2008
![Page 73: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/73.jpg)
RBACw.subjects = {(u, a1) ! Users"Actions|#sub ! Subjects, role1 ! Roles, perm ! Permissions, a1 ! Actions .(sub, role1) ! UA $sub %Subjects u $(role1, perm) ! PA $(perm, a1) ! AA}
role_1
...
u
user_n
...
perm
perm_n
permissionsrolessubjects
UA PA
a_1
a_2
a_n
...
actions
AA
...
sub
... u2
adding subjects
72
72Wednesday, December 17, 2008
![Page 74: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/74.jpg)
role_2
...
u
user_n
...
perm
perm_n
permissionsrolessubjects
UA PA
a_1
a_2
a_n
...
actions
AA
...
... u2
role_1
sub
adding role hierarchy
73
RBACw.roleH.={
(u, a1) ! Users"Actions|#sub ! Subjects, role1, role2 ! Roles, perm ! Permissions, a1 ! Actions .(sub, role1) ! UA $sub %Subjects u $role1 %Roles role2 $(role2, perm) ! PA $(perm, a1) ! AA}
73Wednesday, December 17, 2008
![Page 75: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/75.jpg)
adding composite actions
role_2
...
u
user_n
...
perm
perm_n
permissionsrolessubjects
UA PA
a_1...
a_n
...
actions
AA
...
... u2
role_1
suba_2
74
RBACw.compA. = {(u, a1) ! Users"Actions|#sub ! Subjects, role1, role2 ! Roles, perm ! Permissions, a2 ! Actions .(sub, role1) ! UA $sub %Subjects u $role1 %Roles role2 $a2 %Actions a1 $(role2, perm) ! PA $(perm, a2) ! AA}
74Wednesday, December 17, 2008
![Page 76: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/76.jpg)
SecureUML
• modeling language
abstract syntax
concrete syntax
semantics
transformation functions
75
75Wednesday, December 17, 2008
![Page 77: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/77.jpg)
Attribute
Attribute
Role
Attribute
Attribute
Permission
Attribute
Attribute
User
UA PA
abstract syntax
76
76Wednesday, December 17, 2008
![Page 78: Model Driven Security · 2020. 8. 31. · MDS: Model Driven Security ... Wednesday, December 17, 2008 12... but how to build a modeling language for MDS? 13 Wednesday, December 17,](https://reader033.fdocuments.net/reader033/viewer/2022052105/6040fca4d6da8a13155c9add/html5/thumbnails/78.jpg)
Role Permission
User
UA PASubject
Group
CompositeContainer
RoleHierarchy
Action
AuthorizationConstraint
ActionHierarchy
AtomicAction CompositeAction
CompositeContainer
Resource
ResourceHierarchy
AA RA
abstract syntax SecureUML
source: Security Engineering, Prof. D. Basin77
77Wednesday, December 17, 2008