ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 1
Tutorial: Security patterns and secure systems design using UML
Eduardo B. Fernandez and Maria M. Larrondo Petrie
- Dept. of Computer Science and Eng.
Tutorial: Security patterns and secure systems design using UML - - PowerPoint PPT Presentation
Tutorial: Security patterns and secure systems design using UML Eduardo B. Fernandez and Maria M. Larrondo Petrie Dept. of Computer Science and Eng. Florida Atlantic University www.cse.fau.edu/~security {ed, maria}@cse.fau.edu ICWMC/ICCGI
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 2
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 3
(Latin American and Caribbean Consortium of Engineering Institutions)
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 4
basic models that can be used for new designs. Security patterns join the extensive knowledge accumulated about security with the structure provided by patterns to provide guidelines for secure system design and evaluation. We show a variety of security patterns and their use in the construction of secure
Access Control, Firewalls, Web Services Security, and others. We apply these patterns through a secure system development method based on a hierarchical architecture whose layers define the scope of each security mechanism. First, the possible attacks and the rights of the users are defined from the use cases using a Role-Based Access Control (RBAC) model. The attacks are used to find the necessary policies, while the rights are reflected in the conceptual class model. We then define additional security constraints that apply to distribution, interfaces, and components. The patterns are shown using UML models and some examples are taken from our book Security Patterns: Integrating security and systems engineering (Wiley 2006).
software architecture
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 5
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 6
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 7
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 8
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 9
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 10
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 11
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 12
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 13
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 14
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 15
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 16
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 17
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 18
Al abrir los ojos, vi el Aleph. El lugar donde estan, sin confundirse, todos los lugares del orbe, vistos desde todos los angulos. J.L. Borges, “Narraciones”, Salvat, 1982.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 19
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 20
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 21
Web browser’s HTML Web servers
HTTP Data
users
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 22
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 23
text text
General Company Information Corporate DBMS Clipboard files Product information
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 24
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 25
Web browsers Web servers Internal Users Web Application Server Web browsers
External Users Internet Intranet Engineering Customers Production
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 26
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 27
Web Services Repository Publicize Use Discover 1 2 3 Web Services Provider Web Services Client
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 28
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 29
WS1 WS2 Registry
PAYLOAD HEADER. . .
. . .
Transports HTTP
Web Services Business Workflow Catalog and Description Communications
DBMS SSL OS TCP/IP
file system memory processes Web services layers Supporting structures
Document Storage
. . .
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 30
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 31
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 32
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 33
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 34
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 35
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 36
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 37
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 38
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 39
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 40
Open Account Close Account Customer Perform trade Receive Trade Order Manager Check Trade Info Auditor Broker
UC1 UC2 UC3 UC4 UC5
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 41
Check Credit Provide Personal Info Customer Manager Create Account Create Authorization Initial deposit :Card1 :Customer Account1: Create Authorization
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 42
Provide Personal Info Check Credit Create Account Initial Deposit Create Authorization Issue Card Disseminate Info Illegally Issue Spurious Card Transfer Money Account1: :Customer Account2: Account3: Card1: Card2: Create Spurious Account Imposter Imposter False info Customer Manager External Attacker Provide Personal Info Check Credit Create Account Initial Deposit Create Authorization Issue Card Disseminate Info Illegally Issue Spurious Card Transfer Money Account1: :Customer Account2: Account3: Card1: Card2: Create Spurious Account Imposter Imposter False info Customer Manager External Attacker
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 43
another person
account
information
account
account
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 44
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 45
Trabajo desde hace an~os en la Unesco y otros
conservo algun sentido del humor y especialmente una notable capacidad de abstraccion, es decir que si no me gusta un tipo lo borro del mapa con solo decidirlo. De la misma manera si me gusta una chica puedo abstraerle la ropa apenas entra en mi campo visual,…
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 46
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 47
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 48
A
classes Metalayer
Application layer executing processes System layer (OS/DBMS) nodes Node1 Node2 processors network CPU1 CPU2 CPU3 Protocol Distribution layer Hardware Configuration
a:A
B
C b:B c:C
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 49
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 50
Security verification and testing Requirements Analysis Design Implementation
Secure UCs Authorization rules in conceptual model Rule enforcement through architecture Language enforcement
Security test cases
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 51
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 52
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 53
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 54
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 55
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 56
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 57
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 58
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 59
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 60
course he is teaching.
course he is teaching
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 61
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 62
is authenticated.
manager can create accounts but should have no rights to withdraw or deposit in the account.
the system to increase its availability.
be able to move money from any account.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 63
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 64
method j method j+1 method j+m Authorized actions for actor_i in UseCase_q actor_i
. . .
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 65
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 66
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 67
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 68
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 69
WS1 WS2 Registry
P AYLOAD H EADE R
. . . . . .
Transports HTTP D ocu ment Storage
Web Services Business Workflow C atalog and Description C omm unicatio ns
D BM S SS L OS TCP/IP
file system memory processes BPEL4WS WSCI UDDI ebXML WSDL SOA P XML X ML
Standards Security Standards/ Specificatio ns
ebXML sec WSPL WS-Security
XML Signature XKMS Encr yption SAM L X ACML WS-P olicy WS-Authorization UD DI security WS-Trust WS-Federation WS-SecureC onversation
S OAP XML
Web services lay ers Supporting structures
SAML WS-Privacy
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 70
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 71
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 72
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 73
Subject ProtectionObject Right id name id name accessType checkRights * * isAuthorizedFor
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 74
Subject id ProtectionObject id * * Authorization_rule Right access_type predicate copy_flag checkRights
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 75
r / w f = T r f = F r / w f = T
subjects protection
U1 F1 Ui Fi
mi Uj
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 76
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 77
Subject Reference Monitor Set_of_ Authorization_ Rules prot_Object access_type Request Concrete Reference Monitor Authorization
* * * * *
makesRequestTo exists
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 78
:CurrentProcess <<actor>> :RefMonitor :Set_of_AuthorizationRules :Authorization :Prot_Object request (acc_type prot_object) exists?(rule) exists exists request
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 79
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 80
User id name ProtectionObject id name * * Authorization_rule
Right
access_type predicate copy_flag checkRights Role id name * * MemberOf
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 81
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 82
User ProtectionObject * * AuthorizationRule Right Role * * Session AdminRole AdminRight MemberOf Group * * * 1 * * *
Composite Role Simple Role
Subset WorksOn Activated From
MemberOf
*
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 83
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 84
Subject Descriptor Object Descriptor Attribute Property Attribute Qualifier
value Property Qualifier
value Object Subject * 1 1 * * * Right accessType isAuthorized For AttributeValue value * * * * 1 PropertyValue value * * 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 85
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 86
Subject Data Category Clearance Level Category Classification Level TrustedProcess * * * * 1 CanAccess SS_property *_property AssignLevel AssignLevel * * * * 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 87 Session-based RBAC Basic Authorization
authorizer
Session-based ABAC Delegatable Authorization Basic RBAC Content-based Authorization Explicitly Granted Authorization ABAC
á =Role á or É =attribute values
session condition session CopyFlag
Access Session
uses uses
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 88
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 89
is authenticated.
manager can create accounts but should have no rights to withdraw or deposit money in the account.
the system to increase its availability. Intrusion detection and filtering policies should also be useful
be able to move money from any account.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 90
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 91
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 92
resources in a loosely-coupled distributed system
The user authentication and authorization information necessary to support an employee in the US is stored in the US servers and the information to support that of a Brazilian Employee is stored in Brazil servers. Now assume that an employee from the US is traveling to Brazil and has the need to access some data from the Brazilian database servers. There are two possible ways to achieve this Replicate the user information of the employee in the Brazilian Server and give her the proper authorizations to access the data. Borrow the username of an employee in Brazil who has similar rights and use that username to access the required information. Both of these solutions have their disadvantages. The system administrators will be faced with creating and managing user accounts within each of the multiple systems to be accessed in a coordinated manner in order to maintain the consistency of the security policy enforcement. If the username of another employee is borrowed, accountability is compromised
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 93
that consist of a variety of computational nodes, and where some nodes need to share resources. For example, a company with several divisions in different countries.
distributed environment without the need for redundant user login information? In the past few years, telecommuting, the Internet, and electronic commerce have developed from an alternative means of doing business to become increasingly mainstream consumer
tremendously and the need for single user sign on to multiple domains and multiple services is becoming more of a necessity than a luxury. A system with a centralized sign-on can provide easy management, more accountability and secure authentication.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 94
at multiple locations makes them redundant, difficult to administer, and prone to inconsistencies.
anywhere, this location should be transparent to the users.
roles should be standard across a variety of domains, at least within a company or institution.
impossible to make the user accountable, we need a way to keep the user id when he is accessing resources anywhere.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 95
correct server where his user login and access information can be validated.
used for embedded network devices such as routers, modem servers, switches, etc. The authentication servers are responsible for receiving user connection requests, authenticating the user, and then returning all configuration information necessary for the client to deliver service to the user. The Client makes a request for a service through a Proxy Server that represents the actual server that contains the user login
validates it, based on the Role of the Subject of the request and the Rights of this role with respect to the Protection Object.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 96
+request() AuthenticationServer +request() ProxyServer +request() RemoteServer +request() Client
* * * 1
represents +validate() Subject
1 *
Validate Request +createRole() +getRole() Role
1 *
has ProtectionObject request Right
* *
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 97
:Client :ProxyServer
Access Challenge() Challenge Access Request: () Accept Accept: ()
:RemoteServer
Access Request() Access Request() Calculate Response() Access Challenge() Accept Accept() Challenge Access Request()
:Role :ProtectionObject
Request Protected Object() Request Protected Object() check role() role has access rights() Access Protection Object() Protection Object() Protection Object() Protection Object() check local user()
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 98
This pattern has the following advantages:
in to either entity's network for service.
easy to maintain.
accessed from an SQL Database.
There are also some liabilities:
requests.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 99
forwarding server and a remote server, serving as a forwarding server for some realms and a remote server for other realms. One forwarding server can act as a forwarder for any number of remote servers. A remote server can have any number of servers forwarding to it and can provide authentication for any number of realms. One forwarding server can forward to another forwarding server to create a chain of
a Remote Authenticator/Authorizer which reroutes her requests to the US server that stores her login information.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 100
Known Uses Rem
DIUS) is a widely deployed IETF protocol enabling centralized authentication, authorization, and accounting for netw
access [Has02, Rig00]. Originally developed for dial-up rem
supported by virtual private netw
) servers, wireless access points, authenticating Ethernet switches, Digital Subscriber Line (DSL) access, and other network access types [Hil]. Figure 3 shows the typical authentication sequence of a client in a RA DIUS server using a challenge response approach.. W ith proxy RA DIUS, one RA DIUS server receives an authentication (or accounting) request from a RADIUS client (such as a NAS), forwards the request to a rem
RADIUS server, receives the reply from the rem
m
ing perm its tw
adm inistrative entities to allow each other's users to dial in to either entity's network for service.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 101
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 102
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 103
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 104
PE M , S-M IM E M ail Service S-H TT P
A pplication Protection
A pplication L ayer T ransport L ayer IP L ayer
I P C p r
e c t i
SSL PC T Process A Process B N ode 1 N ode 2 Packet protection IPSEC
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 105
Proxy-Based Firewall Packet Filter Firewall Stateful Firewall Address Filtering Address Filtering Keep State Keep State Proxy Filtering
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 106
Internal Server External Client
OK
Request Request P port Firewall Packet Filter Private Network
Internet
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 107
address address Firewall RuleBase ExplicitRule DefaultRule ExternalHost LocalHost Rule in/out {ordered} * 1 1 1 * * requestService requestService
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 108 «actor» :Network :Firewall :RuleBase :Rule :Service requestService( ) requestService( ) accept accept checkRule requestService( )
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 109
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 110
Internal Server External Server
P P2 P1 Request Request
Firewall Internet Private Network
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 111
ExternalHost address Proxy-Based Firewall LocalHost address Proxy RuleBase name port Service * requestService represents * * * * 1 1 1 filters
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 112
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 113
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 114
normal user and system behavior. Events that deviate from this behavior are considered
logs.
sequences of events (attack signatures), that correspond to known types of attack.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 115
Client id credentials Host address service() SignatureSet addSignature() removeSignature() updateSignature() Signature id pattern AttackDetector matchSignature() IDS requestService() detectIntrusion() issueAlert id Countermeasure execute() requestService sendRequest 1 * recover * * * * 1 1 1 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 116
«actor» :Client :IDS :Detector :SignatureSet requestService() :Application matchSignature() intrusionDetected() issueAlert matchSignature() signatMatched match()
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 117
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 118
XML XML Firewall XML VPN Application Application Firewall __ Layer 7 Layer 3 Proxy-Based Firewall SSL VPN IP VPN Packet-Filter Firewall
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 119
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 120
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 121
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 122
avoid bypassing of high-level mechanisms
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 123
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 124 Layered Operating System Architecture M
System Architecture M icrokernel Operating System Architecture Virtual M achine Operating System Architecture Layered Modular Operating System Architecture Layered Microkernel Operating System Architecture
Can run Can run Can run
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 125
LayerN-1 Layer2 Layer1 LayerN
. . .
Client
1 1 1
<<uses>>
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 126
<<actor>> aUser:
:OSInterface :FileManager :DiskDriver
readDisk(…)
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 127
M icrokernel
executeM echanism initCommunication findReceiver createHandle sendM essage callInternal Server
Internal Server
executeService receiveRequest
Internal Server
executeService receiveRequest
External Server
receiveRequest dispatchRequest executeService
External Server
receiveRequest dispatchRequest executeService
Adapter
callService createRequest
Adapter
callService createRequest
Client
doTask
Client
doTask activates
1
*
initialize communication
1
calls service
1 1
sends request
1
calls
1
* *
1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 128
:C lie n t
c a ll se rv ice
:A d a p ter :M icro ke rn e l :E xte rn a lS e rv e r
cre a te re q u e s t fin d re c e iv e r re c e iv e re q u e s t in it c o m m u n ic a tio n d is p a tc h re q u e s t e xe c u te se rv ice
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 129
VMOS VirtualMachineMonitor VM LocalOS
Supports * * 1 * * * Can run <<controls>>
Hardware
1
LocalProcess
*
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 130
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 131
Secure Process Controlled Process Creator Controlled Virtual Address Space Secure Thread Authorization RBAC
(Role Based Access Control)
Administration Hierarchy
executes in defines access faster context switch authorized by specializes define rights created by
Reference Monitor
enforced by
Virtual Address Space Structure
uses
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 132
Subject id
*
1
Resource Right VirtualAddressSpace boundaries
1
ProgramCode ProcessRight ProcessDescriptor id program_counter (pc) data
registers stack child_processes pending_events accounting_info security_info state create delete store resume
* * * *
1
ReferenceMonitor pattern Authorization pattern
executes from {subset}
checkAccess
enforces
Controlled Virtual Address Space pattern
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 133
Process Creation_Request Controlled_Process_ Creator createProcess id create delete run_as_parent AccessRight accessType
* * * * * 1 1 createRights «creates» parent child
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 134
:Process_A :Controlled_Process _Creator :Process_B :Access_Right create create createProcess rights Access_Right
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 135
* * * * * * 1 Resource {A} name address amount Domain ID create( ) close( ) delete( ) ProtectionObject ID create ( ) close( ) delete( ) Executes In ConcreteResource Authorization right * Activates 1 Subject ID Process ID Composite Domain Simple Domain
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 136
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 137
and groups
workstations
workstation, but the same home directory can be shared among several workstation or among several subjects
subjects
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 138
1 * * Has_home_directory Include AuthorizedFor * * AuthorizedOn * * Subject id Workstation id Access permission accessmode Authorization priority privileges start session File Component Directory name File name size createfile() save()
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 139
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 140
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 141
SAMLAssertion Capability ACL Reference Monitor
enforces enforces uses
Attribute-based Access Control Abstract Solutions Concrete Solutions
isATypeOf uses
Access Matrix
implementedAs implementedAs implements
LibertyAlliance PAOS Identity Service LibertyAlliance IdentityFederation
wireless systems
Credentials Authenticator
uses enforces Published in other papers Under development Presented in this paper
Identity Federation
uses implements isA implements uses
Circle Of Trust Identity Provider
uses uses uses
Reputation System
uses
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 142
WS1 WS2 Registry
P AYLOAD H EADE R
. . . . . .
Transports HTTP D ocu ment Storage
Web Services Business Workflow C atalog and Description C omm unicatio ns
D BM S SS L OS TCP/IP
file system memory processes BPEL4WS WSCI UDDI ebXML WSDL SOA P XML X ML
Standards Security Standards/ Specificatio ns
ebXML sec WSPL WS-Security
XML Signature XKMS Encr yption SAM L X ACML WS-P olicy WS-Authorization UD DI security WS-Trust WS-Federation WS-SecureC onversation
S OAP XML
Web services lay ers Supporting structures
SAML WS-Privacy
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 143
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 144
P E P C H P IP P A P P D P a cce ss re q u e ste r
ccess req uest
uest
A C M L req uest
trieve policies
licie s 6 . add itio nal attrib utes qu ery
s 9 . attributes10 . X A C M L re sp
1
se 1
se
nal attribu tes qu ery
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 145
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 146
+policyCombiningAlgorithm() PolicySet +ruleCombiningAlgorithm() Policy
Rule 1 Target
Resource
Subject Action
Environment * * * * +addRule() +deleteRule() +updateRule() +createPolicy() +deletePolicy() +createPolicySet() +deletePolicySet() PolicyAdministrationPoint 1 *
PolicyComponent 1..* * * 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 147
PolicyAdministrationPoint +retrieveApplicablePolicy() +evaluateApplicablePolicy()
PolicyDecisionPoint PolicyEnforcementPoint evaluates PolicyComponent ApplicablePolicySet ContextHandler 1 * correspondsTo +getAttributeValue() PolicyInformationPoint
Subject
Resource 1 * 1 1 *
XACMLAccessResponse * * 1 1 correspondsTo * * <<creates>> requestsAccess
XACMLAccessRequest * * isAuthorizedFor correspondsTo
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 148
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 149
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 150
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 151
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 152
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 153
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 154
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 155
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 156 StockRoom add_StockRoom Inventory transferStock checkDiscrepancy adjDiscrepancy Stock addItem Procurement
<<role>>
Right addItem 1 1 StockKeeper
<<role>>
1 1 Item * * * * Auditor
<<role>>
Right checkDiscrepancy Right adjDiscrepancy Right Add_StockRoom Right transferStock StockManager
<<role>>
InventoryManager
<<role>>
* * * * 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 157
name mainLocation
name location number size
specialty name address name address patientNumber
Patient
create(patient info ) update( patient info)
TreatmentInstance
date financialNumber initialComplaint create ( ) update ( ) close ( )
* MedicalHistory
insurance dateRange
create ( ) update ( ) close ( ) 1 name idNumber address
Employee MedicalGroup * Hospital
Right
hospitalAudit admitPatient assignAssets closeTreatmentInstance
<<role>. AdministrativeClerk
Right Right
treatPatient readTreatmentInstance updateTreatmentInstance dischargePatient specialty
Right
treatPatient readTreatmentInstance updateTreatmentInstance
<<role>> Nurse
Building * Location * * *
<<role>> Doctor <<role>> HospitalAuditor
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 158
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 159
Patient
plaint
ber
ation
edicalH istory
ient
M edicalH istory
1
Treatm entInstance
um ber
plaint * Inpatient
e
ber Patient O utpatient + create(info) + update(info) + open ( ) + create( ) + update ( ) + close ( ) + create ( ) + update ( ) + close ( ) M
O bserver A dm itPatientV iew A dm itPatientController + handleEvent( ) +adm itPatient(info)
<<role>.
Adm inistrativeClerk
1
adm itPatient assignA ssets closeTreatm entInstance Right
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 160
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 161
<<role>> Doctor <<role>> Patient read authorizeUse MedicalRecord read modify Custodian InChargeOf MedicalRelation informPatient * * * 1..* 1 1 Right for own Record
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 162
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 163
read authorizeUse MedicalRecord read modify custodian InChargeOf MedicalRelationship forAll(p: PatientID-> notify(self.Log.accessor) * * * 1..* Right Patient.patientID = MedicalRecord.patientID patientID: Integer dateOfBirth: Date name: String address: String age: Integer sex:{male, female} Patient Inpatient Outpatient Inpatient Outpatient TreatmentHistory medications:String procedures:string * 1 read modify Right Doctor.LoginrID = MedicalRecord.doctorID doctorID: Integer dateOfBirth: Date name: String address: String age: Integer sex:{male, female} Doctor custodian 0..* 1 accessor: String period: String date: Date accesType Log <<role>> Patient 1 LoginID: Integer <<role>> Doctor 1 LoginID: Integer
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 164
Right accessType deposit, withdraw, trade AcctUserRole OwnerRole creditInfo Account balance
close trade Transaction deposit withdraw trade Right accessType Customer id 1 * * * * *
close
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 165
Authenticate Branch Office Account Adapter AcctUser Right Broker Encrypt Comm. Authenticate Central Office Account Proxy AcctUser Right Account «View» Transaction View
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 166
Secure Layers Secure Facade Secure Reflection Application Conceptual Model Policy Administration Point Policy Information Point Policy Decision Point Policy Enforcement Point Model View Controller Secure Adapter Secure Broker Secure Enterprise Component Framework Secure Web Services Secure Proxy Authentication Secure Channel Secure Client Dispatcher Server Secure Relational Database Mapping Secure Operating System defineRules enforceRules decide interact transformInterface distribute
consume/provideServices implement business model mapObjects accessRemote
support Software secure Communication establish Connection authenticate use use
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 167
dynamically attach and detach components or processes.
to an application or framework. These services are automatically invoked when certain events occur.
component.
components from their use by defining an interface for creating instances of components.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 168
time when modules are exposed to attacks. Also, modules with different degrees of security could be used in the presence of attacks or for critical applications.
e.g. a CORBA-based system, if the original implementation did not have it.
let a user or role access only some parts of the information in specific ways, according to their authorizations.
to control the creation of objects in components as it has been done in operating systems.
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 169
Component Configurator Interceptor Component Reference Monitor Extension Interface Home Authorization configurate addService implement hideComponent extend findComponent controlCreation enforce constrainInterface controlAccess
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 170
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 171
Secure Channel Broker Digital Signature Client Dispatcher Server Authentication AccessMatrix Reference Monitor RBAC confidentiality authentication authorization authorization enforces non- repudiation implementAs
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 172
Client Authorization Authentication Broker Client-side Proxy Servant Authorization Cryptography ServerSide Proxy Adapter 1 * * * * * * 1 1 1 1 1 1 1 1 1
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 173
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 174
W e b / ap p lic . s erv e r B ro w se r B ro w se r m e ssa g e en c r y p tio n I n t e rn e t cert ificat e fir ew al l cer tified a p pl ic/ O S /h a rd w are lo g g in g /p a p e r co p ies P rec in c t l o ca l v o t in g m a ch in e a u th o rize v o t es d at ab as e V P N au th e n tica te V P N V P N
R em o te V o tin g M ac h i n e to ce n tr al a u th o rit y m s g . p ro tec tio n to o t h e r P re c in c t s (L A N )
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 175
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 176
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 177
Em ployee M fg.Em p
. . . . .
Cut
rights B O M applet I/O driver File rights O R D ER S file Encryption O R D ER S
STO RA G E A PPLICA TIO N
O R D ER S
D A TA BA SE
B O M A pplet
Rem ote site
A uth rules
U ser Cases O P. SY S. Executing program s
O rder M fg. Em p. C om ponent rights R oles
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 178
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 179
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 180
WS-SecureConversation WS-Federation WS-Authorization WS-Trust WS-Privacy WS-Policy
WS-PolicyAttachments Policy Assertions
WS-PolicyFramework WS-Security SOAP Foundation
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 181
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 182
<<role>>
Broker
<<role>>
Investor
read authorizeUse
FinancialRecord
read invest Custodian InChargeOf
Relation
* * * 1..* 1 1
Right
name address ID number
Investor
for own Record contact Investor read invest
Right
for own Investor name address ID number
FinancialInstitution
1..* 1 * exchangeInfo notify Investor captureInfo
FinancialAccount
account number
*
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 183
This tutorial has been presented at:
2003.
January 2005 and 2006
Miami, May 24-25, 2005
Brazil, August 16-19, 2005
March 2006.
November 08-10, 2006. http://www.ssi.org.br/english/
(ICWM 2007) and Second International Multi-Conference on Computing in the Global Information Technology, Guadaloupe, French Carbbean, March 4-9, 2007 http://www.iaria.org
North Carolina, http://acmse2007.wfu.edu
ICWMC/ICCGI 2007 Guadaloupe, French Caribbean, IARIA, 4-9 March 2007 184
Florida Atlantic University 777 Glades Rd Boca Raton , FL 33431
Fax (561) 297-2800 ed@cse.fau.edu, petrie@fau.edu http://www.cse.fau.edu/~security