Policy Based Network Management Events Monitor Events Manager Agent Managed Objects Control actions Decisions Policies New functionality Programmable Networks Page 1 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policies Security Specification E-commerce, healthcare – multiple organisations Complex security policies with many constraints and exceptions Common security policy specification which can map onto heterogeneous implementation mechanisms for OS, firewalls, databases ….. Need to specify security policy for groups and roles (organisational positions) Need to manage security – what actions to perform when a violation detected? Need for analysis tools Page 2 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Agents for Management Authorisation Policy Obligation Policy Monitoring Control Managed Object (Target) Manager (Subject) Page 3 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Example Policies Who is permitted to access a service, what operations they can they perform, and when. E.g. Research staff can set up video conferences between UK and USA only between 16:00 and 19:00, Monday to Wednesday. What resources a mobile user can access when visiting a remote location What information transformations and UI adaptations should take place when a user is mobile. What actions should be performed when a login violation is detected. What diagnostic tests should be performed when an error count is exceeded in a network component. Allocate 10% of available bandwidth to voice over IP Page 4 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Definition Rule governing choices in behaviour of the system Derived from enterprise goals and service level agreements Need to specify and modify policies without coding into automated agents Policies are persistent But can be dynamically modified Change system behaviour without modifying implementation – not new functionality Page 5 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Ponder Policy Framework Domains Primitive policies Authorisation Obligation Filters Delegation Composite Policies Object orientation Page 6 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Ponder Policy Based Solutions Large scale Multiple Organisations Domains/ directories Triggering migration delegation etc. Obligation Policies Authorisation Policies Security Page 7 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Domains Grouping A domain is a collection of objects which have been explicitly grouped together for management purposes e.g. to apply a common policy (LDAP) directory Hub People Page 8 /HP-Labs Bristol Mar. 2003 Hardware © E. Lupu, M. Sloman, 2003 Components Software Components Domains Hierarchy Sub-domains & overlapping domains A D B E A Page 9 /HP-Labs Bristol Mar. 2003 D C B © E. Lupu, M. Sloman, 2003 C E Domains and Policies Policy Policy Managers Manager Agents Managed Objects Impractical to specify policy for individual objects in large systems with many objects specify policy for domains Can change domain membership without changing policy Page 10 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Propagation Subjects Page 11 /HP-Labs Bristol Mar. 2003 Targets © E. Lupu, M. Sloman, 2003 Primitive Policies Ponder declarative notation for specifying policy Primitive policies Authorisation Obligation Filters Delegation Page 12 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Rule governing choices in behaviour of the system Need to specify and modify policies without coding into automated agents Policies are persistent But can be dynamically modified Many different types of policy extensible notation Page 13 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Notation Precise specification of subjects, targets, actions and constraints for authorisations and obligations Needed for both: Automated agents Human managers Page 14 /HP-Labs Bristol Mar. 2003 Clear specification of responsibility, rights and duties “job description” © E. Lupu, M. Sloman, 2003 Authorisation Policy Defines what a subject is permitted or not permitted (prohibited) to do to a target Permitted operations Protect target objects from unauthorised management actions Target based interpretation and enforcement Page 15 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Authorisation Policies All policies can be specified as a parameterised type from which instances can be created type auth+ video (subject s, string start, string end) { target videoChannel; action setup; when time.between (start, end); } inst kidsVideo = video (/family/kids, “1400”,“1900”); adultVideo = video (/family/adults, “2000”, “2400”); Page 16 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Filters Transformations on parameters of positive authorisation policies, where it is not practical to provide different operations to reflect permitted parameters inst auth+ employeeAccess { subject employees + managers ; target <DB> employeeDB ; action getEmp (empID) ; if (subject = employees) result = reject (result, salary, homeAddr); } Page 17 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Negative Authorisation Used for revocation of access rights inst auth- revoke { subject/users/JoeBloggs; target /resources/database ; action - ; // any action when time.date > 30:9:2002 } Reflect organisational policies and laws inst auth- nostrangle { subject projectmanagers; action strangle; target trainees; } Page 18 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Default Authorisation Default Negative Everything forbidden unless explicitly authorised inst auth- gateway { subject s=sysAdmin; target gateways; action load, enable, disable ; when (s.location ComputerRoom) ; } auth+ gateway { subject s=sysAdmin; target gateways ; action load, enable, disable ; when (s.location = ComputerRoom) ; } Default Positive Anything permitted unless explicitly forbidden Page 19 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Obligation Policy Defines what actions a subject must do Subject based subject interprets policy and performs actions on targets Event triggered obligation Actions can be remote invocations or local scripts Can specify sequencing or concurrency of actions Page 20 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Obligation Example On a TX circuit failure, replace the circuit with a backup, and, in parallel, reconfigure the transceiver with logging the failure type oblig on target do fail_reconfigure (subject s, set b) { failure (cir, trans, switch) ; <switchT> f = b ^ {switch} ; f.disable(trans, cir) -> {f.enable(trans, “backup”) || s.log (cir, trans, switch); } } inst p = fail_reconfigure (.../roles/netops/, …/network/switches) ; Page 21 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Refrain Policy inst refrain politeBehaviour { subject Agroup ; target AGroupNY + DGroupBoston ; action videoconf ; when (time.day=Friday); } Similar to negative authorisation but subject based interpretation Page 22 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Delegation Policy Specify which actions a subject can delegate to a grantee Must be a subset of subjects, actions and targets in an authorisation policy auth+ reset, enable, disable Page 23 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Delegation Example inst auth+ serviceMan { subject brManager; target brServices ; action resetSchedule, enable, disable; } inst deleg+ sDeleg (serviceMan) { subject; brManager; grantee brEngineer ; action resetSchedule ; } Note: deleg- forbids delegation Page 24 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Composite Policies Group Policies Manager position roles and component roles Role relationships Management structures Object orientation Page 25 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Group Policies Defines a syntactic scope for specifying a set of related policies to be instantiated at the same time + constraints on the policies type group serviceFail (set <manager> m, set <service> s) { constraint c = time.between(“0800”,”1800”); inst auth+ scheduleReset { subject m ; target s; action resetSchedule; when c;} oblig failReset { subject m; target s; on failure do resetSchedule; when c;} } Page 26 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 User Representation Domain Adapter URD auth+ Personal Resources Persistent representation of a registered user URD is subject of policies applying to a specific person At login adapter object created to represent and act on behalf of person in system command interpreter Page 27 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Roles Role groups the rights and duties related to a position in an organisation E.g., network operator, network manager, finance director, ward-nurse Specify policy in terms of roles rather than persons do not have to re-specify policies when person assigned to new role Page 28 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Manager Roles Target Managed Objects Adapter Agent auth+ connect User Representation Domain Role Policies Position Domain Role Role Page 29 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Role Example type role op (set t) { // restarts failed equipment in target domain t inst oblig restart { target f = t ^ {id}; on failure (id); do f.restart () -> f.run_self_test() ;} // other authorisation and obligation policies … } Page 30 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Role Instances Multiple operator role instances Different persons assigned to roles Different target components Similar policies Role Type Reuse of role specification Page 31 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 London Site Site policies Paris Site Site policies Role Specialisation Derive new composite policy specifications from existing ones Specialise roles by adding policies Inheritance type role routerOp (…) extends op(…), { … } Operator Router Operator Policy Page 32 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 type role netAdminT(…) extends op(…), { … } Network Administrator Example Specialised Role type role routerOp (set <routers_type> r) extends op (r) { // On link failure the link must be reset. inst oblig reset { target t = r ^ {router} ; on link_failure (x, router) do t.reset (x) ; } // other policies } inst LondonOp = routerOP (londonNetwork); ParisOp = routerOp (parisNetwork); Page 33 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Component Roles Group policies related to a particular type of network component e.g. edge or core router Use same hardware for both types of routers Role defines policies applying to (i.e. loaded) onto router hardware which is assigned to a role Page 34 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Role Relationships Relationships Rights and duties of roles towards each other Usage of shared resources Interaction protocols edge router site core network network type rel qSupervision ( routerOP netOp, qEdgeRtr qAgent) { queue config. role (qEdgeRtr) inst oblig report { subject qAgent ; on timer.at (1800); queue do report(q_info); target netOp; } supervision auth+ config { subject netOp ; router action setStrategy; target qAgent; } operator }Page 35 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Management Structures 1 Configurations of roles and relationships in organisational units site network edge router traffic queue config. role (qEdgeRtr) qos config traffic shaping Page 36 /HP-Labs Bristol Mar. 2003 admission control © E. Lupu, M. Sloman, 2003 queue supervision router operator Management Structures 2 type mstruct trafficT (domain site) { import /type/qEdgRtr, /type/routerOp; /type/qSupervision domain rtr = site/routers; inst role netOP = routerOp (rtr); qAgent = qEdgRtr (rtr); rel qs = qSupervision (netOP, qAgent); mstruct qos { inst role admControl {…}; trShaping {…}; rel selectTraffic{…}; } ; rel configAdmission { inst auth+ { subject netOp; target qos.admControl; action update ( ) } } Page 37 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Organisational Patterns edge router core network London network tr2 edge router tr1 Paris network inst mstruct london/tr1 = trafficT(london) paris/tr2 = trafficT(paris) Page 38 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Ponder Summary Object Meta Model Class Hierarchy Object BasicPolicy auth oblig auth+ auth- Page 39 /HP-Labs Bristol Mar. 2003 CompositePolicy MetaPol refrain group deleg deleg+ © E. Lupu, M. Sloman, 2003 deleg- role rel mstruct Conflicts Modality conflict detection and resolution Policy priority Semantic conflicts and meta-policies Policy analysis tools Page 40 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Multiple Policies May Apply An object can be a member of multiple domains (overlap) Multiple policies can apply to single domain Security Policy Performance Policy testB, query Need conflict detection and resolution Page 41 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Modality Conflicts Actions +ve -ve Potential conflict from overlap of subjects, targets and actions 3 types: auth+/auth-, oblig/auth-, oblig/refrain Note: auth+/refrain is not a conflict Detected by syntactic analysis Page 42 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Example Conflicts auth+ Smith reboot Students Project auth- Workstations inst auth- bootWS { subject students; target workstations; action reboot ; } Exception: inst auth+ projectWS { subject smith; target workstations/project; action reboot ; } Page 43 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Precedence Can resolve some conflicts automatically by specifying precedence. e.g.: Negative policies override Does not permit positive exceptions to negative policies. Specified Priorities Hard to define priority Several managers may specify inconsistent priority Evaluating a ‘distance’ between a policy and the object to which it refers Refinement level – more concrete overrides? Time of last update – more recent overrides? Page 44 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Domain Nesting Precedence auth+ Smith reboot Students Project auth- Workstations A particular type of distance based on domain nesting Priority given to the policy which is more specific for either subjects or targets Intuitive, flexible, allows incremental specifications and exceptions Not always valid Page 45 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Determined & Undetermined Cases P2 overrides P1 for the areas in which they overlap P1 No Precedence between P1 or P2 can be determined P1 P2 P2 P1 P1 P2 P2 P1 P1 P2 P2 Page 46 /HP-Labs Bristol Mar. 2003 and symmetric ... © E. Lupu, M. Sloman, 2003 Precedence between policies Page 47 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 The Conflict Detection Tool P1 P2 positive policies negative policies message distinguishes: O+/refrain, O+/A-, A+/APage 48 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Analysis, Refinement and Validation Policy Analysis – policy analysis is insufficient Consider constraints when detecting conflicts Identify which situations lead to conflict Reason with partial specifications Policy Refinement – derive policies from SLAs and business goals Not automatable but can apply refinement patterns Maintain consistency during refinement Ensure completeness – refined policies fully implement more abstract ones Policy Validation – Can a policy be implemented? Page 49 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Refinement Goal refinement Policy Refinement Relationship to Requirements Engineering Page 50 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Refinement Policies are derived from business and organisational goals or service level agreements (SLA) Goals are progressively refined into operational policy specifications refinement hierarchy Leaf policies mapped onto implementation mechanisms eg ACL or router interface Similar to refining requirements and going from specification to implementation Cannot be fully automated Use requirements engineering techniques for elicitation of non-functional requirements Page 51 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Refinement oblig videoconf { subject NetMan; target users/groupA; do /* setup videoconf facilities *;/ when time.between("14:00", "15:00") ; } oblig enable { on timer.at("13:55“); subject NetMan; do enable(); target pol/vid_reserve; } oblig disable { on timer.at("15:00“); subject NetMan; do disable(); target pol/vid_reserve; } auth+ polauth { subject NetMan; action enable, disable; target pol/vid_reserve } oblig lower_reserve { on request(bw, chanId); subject edgeRouter; do reduceReserved(bw); target chan/chanId; when bw < getReserved(chanId) ;} oblig increase_reserve { on request(bw, chanId) ; subject edgeRouter; do increaseReserve(min(bw,x)); target chan/chanId; Page 52 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 when bw > getReserved(chanId) ;} Challenges Refinement does not preserve policy modality e.g., an obligation may be refined to a set of obligation, refrain, authorisation and delegation policies Refinement may introduce inconsistencies The set of refined policies may not fully implement the goal they were refined from Preserve consistency Ensure Coverage Page 53 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Static Analysis Approach Need both system behavioural model and policies. Abduction applied to Event Calculus representation. A C B Conflict specification Behavioural model of managed objects Conflicts Ponder Policies Page 54 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Translation to Event Calculus Analysis & Refinement: Current Status Representation of policies in Event Calculus A. Bandara, E. Lupu, A.Russo. Using Event Calculus to Formalise Policy Specification and Analysis. Policy 2003, (see last slide). Currently 2 point timeline -> Generalisation. Stratification -> Decidable. Computable in polynomial time. Future Work Generalisation to infinite discrete timeline. Identify and express requirements patterns. Use goal regression to elaborate plans of actions and identify alternatives for refinement. Page 55 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Constraints Only potential modality conflicts are detected as constraints may limit the applicability of a policy e.g., to a particular time interval Typed Constraints: Inst auth+lineop { subject s = operators ; actions enable, disable, reset, off ; target Sregion ; when time.between(0800,1800) and s.state = ‘active’} inst auth- lineop {subject s= operators actions enable, disable, reset, off} target Sregion when time.between(1600,2400) and s.state = ‘standby’ } Page 56 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 time subject state Semantic Conflicts Types of conflict: separation of duty e.g., the same person is not allowed to authorise payments and initiate them self-management e.g., a manager cannot authorise it’s own expenses conflict for resources e.g., not more than 5 persons are authorised to change the DB Need to specify the conditions which result in conflict Constraints on a set of policies (Meta-Policies). Specified using Prolog, OCL Included in composite policies such as roles or mstructs Page 57 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Separation of Duties /policies/accounting->exists (P1, P2 | P1.subjects->intersection(P2.subjects)->notEmpty and P1.actions->exists(a | a.name = ‘authorise’) and P2.actions->exists(a | a.name = ‘initiate’) and P1.targets->intersection(P2.targets)->exists(t | t.isOclKindOf(payment))) Page 58 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Implementation Issues Policies as objects Implementation architecture Obligation policy agent Authorisation policy agent Policy deployment Ponder compiler output Page 59 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Protecting Policies Basic policy is implemented as LDAP object most primitive unit Source text = object attribute Can generate XML – store as another attribute Composite policy derived from domain object Policy objects can be protected by authorisation policies Security Administrator role auth+ Edit, enable, disable, remove Policy service Page 60 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Implementation Edit, enable disable ... Query subjects & targets Domain service Policy service Authorisation Policies Obligation & Refrain Policies Actions Target Objects Events Page 61 /HP-Labs Bristol Mar. 2003 Policy Management Agents (Subjects) Events Monitoring service © E. Lupu, M. Sloman, 2003 Query targets Policy ManagementAgent Generic Interface Distribute, Remove, Enable, Disable obligation & refrain policies Application Specific Interface Policies Operations on target objects Agent specific functions Programming Load, Unload code Events Execution Environment Page 62 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Authorisation Agent Policies Load, Remove, Enable, Disable, policies Map onto operating system or object-support access control mechanisms Authentication Page 63 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 The Life of a Policy Policy Spec. write Policy Class compile instantiate Dormant Page 64 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Object instantiate The Life of a Policy (load) Policy Object load Enforcement Objects load instantiate Dormant load Loaded Page 65 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Enforcement Agents The Life of a Policy (enable, disable, …) Policy Object enable Enforcement Agents enable Access Controllers (Authorisation Policies) instantiate Dormant Deleted unload load Loaded enable disable Enabled Page 66 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Management Agents (Obligation & Refrain Policies) Loading an Authorisation Policy Enforcement Objects Enforcement Agents Policy Object Enforcement Agents (EA) Target Set 1 EA for each Target Object Host 1 EO per EA per Host Page 67 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Loading an Obligation/Refrain Policy Each Subject Object is an Enforcement Agent! Policy Object Subject Set Page 68 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Enforcement Agents Enforcement (Obligation/Refrain) Policy Management Agent Event Service OEOs OPOs RPOs 1 2 load, enable,.. 3 6 checkRefrains register, ... enable,disable 5 eventEngine eventHandler obligMethod 4 8 7 2 REOs Access Controllers enable,disable ACs checkRefrain OPO (Obligation Policy Object) RPO (Refrain Policy Object) Page 69 /HP-Labs Bristol Mar. 2003 9 OEO (Obligation Enforcement Object) REO (Refrain Enforcement Object) © E. Lupu, M. Sloman, 2003 Policy Refinement Goal refinement Relationship to Requirements Engineering Analysis Refinement tools Page 70 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Refinement Policies are derived from business and organisational goals or service level agreements (SLA) Goals are progressively refined into operational policy specifications refinement hierarchy Leaf policies mapped onto implementation mechanisms eg ACL or router interface Similar to refining requirements and going from specification to implementation Cannot be fully automated Use requirements engineering techniques for elicitation of non-functional requirements Page 71 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy Refinement oblig videoconf { subject NetMan; target users/groupA; do /* setup videoconf facilities *;/ when time.between("14:00", "15:00") ; } oblig enable { on timer.at("13:55“); subject NetMan; do enable(); target pol/vid_reserve; } oblig disable { on timer.at("15:00“); subject NetMan; do disable(); target pol/vid_reserve; } auth+ polauth { subject NetMan; action enable, disable; target pol/vid_reserve } oblig lower_reserve { on request(bw, chanId); subject edgeRouter; do reduceReserved(bw); target chan/chanId; when bw < getReserved(chanId) ;} oblig increase_reserve { on request(bw, chanId) ; subject edgeRouter; do increaseReserve(min(bw,x)); target chan/chanId; Page 72 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 when bw > getReserved(chanId) ;} Challenges Refinement does not preserve policy modality e.g., an obligation may be refined to a set of obligation, refrain, authorisation and delegation policies Refinement may introduce inconsistencies The set of refined policies may not fully implement the goal they were refined from Preserve consistency Ensure Coverage Page 73 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Case Study Scenario overview Management Structures Roles Policies Page 74 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 GSM Networks Visitor Location Register Gateway MSC EIR VLR Equipment Identity Register SS7 HLR Home Location Register Management Servers Operations & Maintenance Centre (OMC) Operations Network OMC-Radio MSC BSC Base Station Controllers control Page 75 /HP-Labs Bristol Mar. 2003 BSC BTS BSC © E. Lupu, M. Sloman, 2003 Help Desk Network Element Administrator Base Transceiver Stations (BTS) Mobile Switching Centre connection Help Desk BTS Scenario Overview OA&M of GSM networks Problem characterised by: large scale large number of policies multiple instances of roles which often work in teams e.g., network administrators, switch administrators, help-desk staff Need to define: geographical repartition and organisational structure the roles and the rights and duties corresponding to the those roles Page 76 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 National Network Help Desk MSC Help Desk BTS BTS BTS MSC BTS BTS Network Element Administrator BTS Network Element Administrator BSC BSC Visitor Location Register VLR EIR BSC BSC SS7 Branches HLR Regions Page 77 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Organisational Roles Help-Desk staff (HD) provide the interface between customers and the company (not elaborated in this scenario). Telephone Service Engineers (TSE) investigate faults occurring between mobile stations and base transceiver stations, and determine whether a base network operator should be alerted to deal with the fault. Base Network Operators – Switches (BNoS) are responsible for managing the Mobile Switching service Centre (MSC) and Visitors Location Register (VLR) Base Network Operators – Radio (BNoR) are responsible for Base Transceiver Systems (BTS) Network Element Administrators (NEA) perform all onsite management tasks requested by BNoS and BNoR Page 78 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Management Structures – Branch Branch NEA1 HD2 HD1 NEA2 TSE BNoR Customer care Page 79 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 BNoS Net. Elt. Managment Branch Management Structure mstruct branch(domain d, domain nw) { import custcare; netelements; inst mstruct cc = custcare (d, nw); mstruct ne = netelements (d, nw); d – branch location nw – network elts. domain instantiate substructures type rel radiofail (role eng, role radio_op) { … } // procedures for radio failures investigation inst rel f = radiofail(cc.tse, ne.bnor); } create relationships (type if not imported) domain c = …/wales/branches/cardiff; create instance of structure inst cardiff = branch (c, c/nw); Page 80 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Netelements management structure type mstruct netelements (domain br, domain nw) { import administrator; switch_op; radio_op; switch_repair; radio_repair; switch_base; domain r = br/roles/; a = r/nea/; s = br/rel/; inst role a/nea1 = administrator ( ... ) ; a/nea2 = administrator ( ... ) ; r/bnos = switch_op (nw/bsc/, nw/msc) ; r/bnor = radio_op (nw/bsc/) ; inst rel s/bnos_nea1 = switch_repair (bnos, nea1); s/bnos_nea2 = switch_repair (bnos, nea2); NEA1 s/bnor_nea1 = radio_repair (bnor, nea1); NEA2 s/bnor_nea2 = radio_repair (bnor, nea2); s/bnos_bnor = switch_base (bnos, bnor); } BNoR BNoS Page 81 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Base and Switch Operators Base rights and duties for all operators type role base_op (set n) { inst oblig restart { target f = n^{id}; on failure(id); do restart()->runSelfTest(); } } specialisation role switch_op (set <bsc> bscd, msc m) extends base_op (bscd) { inst oblig reset { target f = bscd^{id}; on A_failure(cir, id); do block(cir); reset(cir); } auth+ circuit { action block,reset; target bscd;} } // switch_op Page 82 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Radio Operator radio operators responsible for base transceiver systems type role radio_op (set <bsc> bscd) extends base_op(bscd) { inst On cell overload, force a hand-over of connected mobiles oblig clearCell { target f = bscd^{id}; on cellOverload(BTSid, id); do forceHO(BTSid);} On 3 consecutive radio failures, increase BTS transmission oblig increaseTX { target f = bscd^{id}; on 3*radioLinkFail(BTSid,id); do setTxPower(+1);} … } Page 83 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Authorisation Policies type group gen_auth (set s1, set s2, hlr h, eir e, vlr v) { constraint workHours = time.between(“0800”, “1800”); Common constraint definition inst auth+ pt1 { subject s1; target h; when workHours action add, traceSubscriber, lockSubscriber; } auth- pt2 {subject s1; target e; action blackListEquipment; } auth+ pt3 { subject s2; target v; when workHours; action trace; checkHandover; checkRadio;} } Page 84 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Scenario Summary Scenario exemplifies: O-O style specifications are a real benefit. large number of managed objects large numbers of distributed manager (agents) reasonable number of policy and role types However, it requires regular and well planned domain structures. Ponder approach provides an easy means for: creating and using new policy types structuring policies and management teams instantiating and deploying large number of policies Page 85 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Future Directions Ponder future work Conclusions References Page 86 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Comparison With Vendor Products MS Management Security Ponder M S Tivoli M S Computer HP Cisco Orche- Assoc. Products Assure stream M M M S M S S S Active Allot M S Access Directory Packeteer M S M S 360 M S RSA SolSoft Systor M M S S Securities M S Service Level Agreement / Trust specification SLA/Trust to policy refinement Privacy management OSS or workflow integration Mobile and Ubiquitous systems WAP Inter domain policy negotiation ? Policy Analysis Automated deployment Adaptive management ? Roles Provisioning Single sign on Web/DB access Monitoring control Event Correlation Intrusion Detection ? Application Management Windows AC QoS Unix AC Element Management Firewall/ router AC Future Page 87 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Ponder Future Work Policy based programmable networks Policy aware applications Policy based network elements – routers and firewalls Direct implementation of policy in hardware (FPGAs) Inter-organisational policy negotiation Policy based response to network attacks Refinement and analysis tools Trust specification, analysis and refinement into security management policy Case studies and implementation Page 88 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Conclusions Security specification Authorisation, filter, Refrain,delegation, role Management Event-triggered Obligation, role Large scale Multiple Organisations Domains + Composite policies Analysis Declarative language Page 89 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust & Security Management What is Trust Trust Classification Trust Specification Use of Trust Page 90 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 What is Trust A quantified belief by a trustor with respect to the competence, honesty, security and dependability of a trustee within a specified context Trustor Context: Hotel Services Trustee Trust relationship Distrust useful for trust revocation or in default trusted environments Quantification implies various degrees of trust/distrust Page 91 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust Classification 1. Access to Trustor Resources eg MSN Messenger MyMachine trusts MSNMess to save files Trustor Trustor Trustee Tom trusts news.com Trustee 2. Provision of Service by Trustee eg enews deliveries, email, archive 3. Certification of trustee eg VeriSign or Brit. Medical Assoc. 4. Delegation of trust eg use certification authority for trust decisions Trustor Trustee May delegates all decisions concerning verification to her bank 5. Infrastructure trust eg, network, storage Page 92 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust Specification Trust Predicate trust (trustor, trustee, actions, level, ) constraint set trust (Helen, _hotel, print; processing, 50) hotelGroup ( _hotel, HolidayInn) Distrust when level < 0 Recommend Predicate recommend (recommendor, recomendee, actions, level) constraint set recommend (Morris, _attendee, verifyCredential, medium) ICstaffMember (_attendee) trust (Harry, GameCo, DownloadGames, medium) recommend (Tom, GameCo, DownloadGames, high) Page 93 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust, Experience and Risk Trust is not static but changes with time as a result of experience/reputation Reputation = evaluation of experience Need for 3rd party recommendations c.f. PGP Trust is related to risk and value High risk low trust But high risk, low value may be medium trust Trust framework must monitor experience, risk and constraints in order to dynamically update trust levels and relationships. Page 94 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust-based Authorisation Policy type auth+ Access ( domain sub-directory, string TrustValue){ subject Client; target sub-directory; action downloadMusic(); when trust+(FrontEnd, ClientApp, downloadMusic(ContentDatabase), TrustValue ) }; inst auth+ AccessHigh = Access(/BMW/ContentBase, HighTrust); inst auth+ AccessLow = Access(/BMW/ContentBase/Restricted, LowTrust); Page 95 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Trust Refinement & Adaptive Security Low Trust Medium Trust Monitoring and reacting to unusual behaviour Authorisations Delegation Page 96 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Communities of Devices Trust based relationships External services Page 97 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Policy-driven Architecture Trust Specification Context Adaptation policies Trust Evaluation events Adaptation Access Control change Authorisations Page 98 /HP-Labs Bristol Mar. 2003 © E. Lupu, M. Sloman, 2003 Filtering Selected information Privacy