Internet DRAFT - draft-xia-i2nsf-service-interface-dm
draft-xia-i2nsf-service-interface-dm
I2NSF Liang Xia
Internet Draft John Strassner
Intended status: Standard Track Huawei
Dean Bogdanovic
Juniper Networks
Expires: August 2015 February 10, 2015
Data Model of Interface to Network Security Functions Service
Interface
draft-xia-i2nsf-service-interface-dm-00.txt
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on August 10,2015.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Xia, et al. Expires August 10, 2015 [Page 1]
Internet-Draft I2NSF Security Policy DM February 2015
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Abstract
This draft proposes a generic and intent-driven data model for NSF
security policy configuration used by I2NSF clients to negotiate
their security requirements with various kinds of entities that each
provide one or more NSFs. The Role Based Access Control (RBAC)
reference model [INCITS359 RBAC] is used to represent which
operations can be performed on what set of secured objects.
Table of Contents
1. Introduction ................................................ 2
2. Conventions used in this document ........................... 4
2.1. Terminology ............................................ 4
3. RBAC Overview ............................................... 5
4. I2NSF Security Policy Data .................................. 7
4.1. Overview ............................................... 7
4.2. Policy Rule ............................................ 8
4.2.1. ECAPolicyRule ..................................... 9
4.2.1.1. Events ....................................... 9
4.2.1.2. Conditions ................................... 9
4.2.1.3. Actions ..................................... 10
4.3. Using Policy Rules With RBAC .......................... 10
5. Interaction between Resources, Services, and RBAC .......... 12
6. System Control Using RBAC .................................. 12
7. I2NSF Security Policy Yang Structure ....................... 12
8. Use Examples of I2NSF Security Policy ...................... 12
9. Security Considerations .................................... 12
10. IANA Considerations ....................................... 12
11. References ................................................ 12
11.1. Normative References ................................. 12
11.2. Informative References ............................... 13
12. Acknowledgments ........................................... 13
1. Introduction
Due to the rapid development and deployment of cloud computing
services, the demand of cloud-based security services is also
rapidly growing. Cloud-based security customers can be enterprises
[I-D.zarny-i2nsf-data-center-use-cases], User Equipment (UE) of
mobile networks and Internet of Things (IoT) [I-D.qi-i2nsf-access-
network-usecase], residential access users [I-D.pastor-i2nsf-access-
usecases], and so on.
Xia, et al. Expires August 10, 2015 [Page 2]
Internet-Draft I2NSF Security Policy DM February 2015
Derived from [I-D.dunbar-i2nsf-problem-statement], it should have
two types of I2NSF interface to consider:
o Interface between I2NSF user/client with network controller: It's
a service-oriented interface, the main objective is to unify the
communication channel and the security service request
information model between various high-level applications (e.g.,
openstack, various BSS/OSS, etc) with various network controllers.
This interface is decoupled from various kinds of security device
and their device-level security functions. Currently, various
high-level applications have their own proprietary interfaces to
network controller. This will greatly hinder network controllers
interoperating (specifically, exchanging and reusing information)
in a cloud-based model. In addition, it will make their
management interoperability more difficult. A unified and
standard interface is needed;
o North-bound interface (NBI) provided by the network security
functions (NSFs) (e.g., FW, AAA, IPS, Anti-DOS, Anti-Virus, etc),
no matter whether the NSFs are contained within Virtual Machines
(VM) on servers or physical appliances. [I-D.xia-i2nsf-
capability-interface-IM] describes the information model used by
this type of interface. Any network entities (e.g., I2NSF clients,
network controller, etc) can use this interface to configure the
required security functions of NSFs. But, the current situation
is different NSF vendors have different proprietary interfaces,
supported by different information models to configure their
security functions.
For the I2NSF service interface, a more generic and intent-driven
approach for security policy configuration is required in order to
decouple security from the details of the infrastructure
configuration. This also makes it easier to administer and manage
security policies independent of device, vendor, and technology.
This draft proposes a generic and intent-driven data model for NSF
security policy configuration used by I2NSF clients to negotiate
their security requirements with network controllers. The Role Based
Access Control (RBAC) reference model [INCITS359 RBAC] is used to
represent which operations can be performed on what set of secured
objects. Section 3 briefly describes the RBAC approach. Section 4
defines the data model for configuration. Section 5 describes the
interaction between resources, services and RBAC. Section 6
clarifies the system control by using RBAC. Section 7 gives its
grammar. Section 8 includes some using examples to clarify how to
use the data model.
Xia, et al. Expires August 10, 2015 [Page 3]
Internet-Draft I2NSF Security Policy DM February 2015
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
2.1. Terminology
AAA - Authentication, Authorization, Accounting
ACL - Access Control List
AD - Active Directory
ANSI - American National Standards Institute
DDoS - Distributed Denial of Services
FW - Firewall
I2NSF - Interface to Network Security Functions
INCITS - International Committee for Information Technology
Standards
IoT - Internet of Things
IPS - Intrusion Prevention System
LDAP - Lightweight Directory Access Protocol
NAT - Network Address Translation
NIST - National Institute of Standard Technology
NSF - Network Security Function
RBAC - Role Based Access Control
UE - User Equipment
URL - Uniform/Universal Resource Locator
VM - Virtual Machine
Xia, et al. Expires August 10, 2015 [Page 4]
Internet-Draft I2NSF Security Policy DM February 2015
3. RBAC Overview
Security administration can be costly and prone to error, due to the
high number of users, resources, and services that must be protected.
Trying to assign access control lists (ACLs) for each user on the
system individually cannot scale. With RBAC, security is managed at
a level that corresponds closely to the organization's structure.
Each user is assigned one or more roles, and each role is assigned
one or more privileges that define which operations can be performed
by that role. Conceptually, security administration with RBAC
consists of determining the operations that must be executed by
persons in particular jobs, defining which operations for which
objects can be abstracted into a set of permissions, assigning roles
to permissions, and assigning employees to the proper roles.
RBAC offers a number of benefits. While users, and the jobs that
they perform, change frequently, roles do not. RBAC thus lowers
maintenance costs and increases efficiency. It can be used to
address specific concerns, such as Separation of Duty, and provides
the ability to audit which role performed what operation on which
object at what time. It simplifies tracking user activity, and
enables stronger adherence to regulatory requirements through
ensuring the privacy and confidentiality of user activities.
The NIST model for RBAC was adopted as an American National Standard
by the American National Standards Institute, International
Committee for Information Technology Standards (ANSI/INCITS) on
February 11, 2004.
There are four levels of RBAC. Level 1, Core RBAC, defines a minimum
collection of RBAC elements, element sets, and relations in order to
achieve a Role-Based Access Control system. Figure 1 shows the
reference model of core RBAC. In addition, there are other advanced
levels of RBAC by extending the core RBAC.
Xia, et al. Expires August 10, 2015 [Page 5]
Internet-Draft I2NSF Security Policy DM February 2015
+------------------------------+
| |
| |
+-------+ +-------+ | +-------+ +-------+ |
| | UA | | PA | | | | | |
|USERS <------>ROLES <---------> | OPS <------> OBS | |
| | | | | | | | | |
+--\----+ +----A--+ | +-------+ +-------+ |
\ / | |
user_sessions / | PRMS |
\ / +------------------------------+
\ session_roles
\ /
\ /
+--V--V---+
| |
|SESSIONS |
| |
+---------+
Figure 1. Core RBAC Reference Model
The core RBAC includes the following data elements and mapping
relationships:
User - A user is defined as a human being. In this document, the
concept of a user can be extended to include machines, networks, or
intelligent autonomous agents.
Role - A role is a job function within the context of an
organization with some associated semantics regarding the authority
and responsibility conferred on the user assigned to the role.
Operations (OPS) - Each Object has a set of operations that are
governed by a permission assignment (e.g., read, write, delete, open
a file, execute).
Objects (OBS) - an object can be any system resource subject to
access control, such as a file, printer, terminal, database record,
computer, network, storage, etc.
Permissions (PRMS) - Permission is an approval to perform an
operation on one or more RBAC protected objects. Typically, if not
specified, then an object has no permissions.
Sessions - each session is a mapping between a user and an activated
subset of roles that are assigned to the user.
Xia, et al. Expires August 10, 2015 [Page 6]
Internet-Draft I2NSF Security Policy DM February 2015
User Assignment (UA) - a many-to-many relationship between users and
roles.
Permission Assignment (PA) - a many-to-many relationship between
roles and permissions.
Fundamentally, the RBAC model abstracts entities performing
operations on a set of protected objects as roles. This decouples
users from the operations that can be performed on a given object.
As such, a role is a means for naming many-to-many relationships
among individual or groups of users and permissions. In addition,
the core RBAC model defines a set of sessions, where each session is
a mapping between a user and an activated subset of roles that are
assigned to that user.
4. I2NSF Security Policy Data
4.1. Overview
RBAC is a mature and comprehensive reference model for implementing
access control. As such, it serves as a good foundation to design a
generic security policy data model. The security policy data model
should be expressed in an intent-driven style for making it user
friendly to decrease its complexity. In addition, the data model
should be kept simple by including only the essential logic elements.
RBAC provides inherent scalability, which the data model uses to
express I2NSF security policies. A high-level data model for I2NSF
security policy is shown in Figure 2.
Xia, et al. Expires August 10, 2015 [Page 7]
Internet-Draft I2NSF Security Policy DM February 2015
0..n+-----------+0..n
+-----+-----------+-------+PolicyRule +----------+----------------+----+
| | | +-----------+ | | |
| | |UAPolicy |PAPolicy | |
| | |0..n |0..n | |
| | +-----V--+ +-----V--+ | |
| | |UADetail| |PADetail| | |
| | +----*---+ +--*-----+ OPPolicy| |
| | * * | |
| |USPolicy * * | |
| | * * | |
| | +----+0..n * 0..n+----+0..n * 0..n+----------+ | |
| | |User+-------*------+Role+------*-------+Permission| | |
| | +--+-+UserAssignment+-+--+PermAssignment+--+------++ | |
| |0..n | | 0..n| 0..n| |0..n|
|+----V---+ |1 |0..n PermObject | | +----V---+|
||USDetail*** | +-------------+ ***OPDetail||
|+--------+ | | * PermOperation| +--------+|
| |0..n | 0..n*| 0..n| |
| +---+----+0..n | +-*-+--+ExecuteOn+-------+-+ |
| |Session +--*----------+ |Object+----*----+Operation| |
| +--------+ * SessionRole *------+0..n*0..n+---------+ |
|SRPolicy * * * |
| * +----*---+ +---*----+0..n EOPolicy |
| 0..n+-*------+ |PODetail| |EODetail<-------------------+
+------------->SRDetail| +----A---+ +--------+
+--------+ |
POPolicy |
--------------------------------+
Figure 2. High-Level Data Model for I2NSF Service Interface
4.2. Policy Rule
Policy Rules can be used to control how the fundamental operations
of RBAC (i.e., user-assignment and permission-assignment) are
performed. This uses the inherent scalability of the RBAC approach,
along with the consistency and scalability of policy management, to
provide a robust solution.
Note that Policy Rules could also be defined to govern the
population of key objects. For example, a policy rule could define
whether a particular Role is active for a particular session, or
Xia, et al. Expires August 10, 2015 [Page 8]
Internet-Draft I2NSF Security Policy DM February 2015
even whether a particular Role should be enabled, disabled, created,
or edited. This will be shown in future revisions of this draft.
For the purposes of this document, a policy rule is an intelligent
container. A policy rule can take several different forms (e.g.,
event-condition-action or goal). A future revision of this draft
will specify several options for structuring policy rules.
Regardless of what form the policy rule takes, it can operate on an
administrative domain. Within that domain, it can represent security
requirements, which can take several forms. For example, a security
requirement could represent a condition to check for, or actions to
take, given an event. An important advantage of this approach is to
decouple the structure of a security policy rule from how it is
implemented.
Security policies can be created and assigned to any NSFs depending
on specific requirements and scenarios. Any NSF can have zero or
more security policies. For example, a security policy can be
responsible for an enterprise branch, or can be used for the access
control to one set of services.
4.2.1. ECAPolicyRule
One type of policy rule is an Event-Condition-Action, or ECA, policy
rule. This type of rule has the following semantics:
WHEN an Event-Clause occurs:
IF the Condition-Clause evaluates to TRUE
THEN execute the Action-Clause
This type of policy rule contains three mandatory objects, plus
optional metadata.
4.2.1.1. Events
An Event is an atomic object that is aggregated by an ECAPolicyRule,
and is used to trigger the evaluation of its condition clause. This
enables an external application, such as a Policy Server, to
dynamically adjust the set of events that are being used to trigger
the evaluation of an ECAPolicyRule. For the purposes of this
document, one or more Events may be aggregated into an Event Clause
using standard Boolean operators (i.e., AND, OR, and NOT).
4.2.1.2. Conditions
A PolicyCondition is an atomic object that is aggregated by an
ECAPolicyRule, and is used to define the necessary state and/or
Xia, et al. Expires August 10, 2015 [Page 9]
Internet-Draft I2NSF Security Policy DM February 2015
prerequisites to test whether the PolicyActions aggregated by that
same ECAPolicyRule should be executed. If the PolicyCondition is
TRUE, then the PolicyActions aggregated by the ECAPolicyRule should
be executed. For the purposes of this document, one or more Events
may be aggregated into an Event Clause using standard Boolean
operators (i.e., AND, OR, and NOT).
4.2.1.3. Actions
A PolicyAction is an atomic object that is aggregated by an
ECAPolicyRule. It represents the necessary operations that should be
performed if the PolicyCondition clause of this ECAPolicyRule
evaluates to TRUE. These actions are applied to a set of managed
objects, and have the effect of either maintaining an existing state,
or transitioning to a new state, of those managed objects. For the
purposes of this document, one or more Events may be aggregated into
an Event Clause using standard Boolean operators (i.e., AND, OR, and
NOT).
4.3. Using Policy Rules With RBAC
Figure 3 shows a generic software design pattern, called the "Policy
Pattern", which defines how a set of PolicyRules (of any type and
structure) can be used to realize a dependency (called an
association) between managed entities. Note that the dependency can
be restricted (e.g., to a whole-part dependency, called an
aggregation, or to a composition).
Xia, et al. Expires August 10, 2015 [Page 10]
Internet-Draft I2NSF Security Policy DM February 2015
+-----------+
| |0..n
|PolicyRule +---------------+
| | UAPolicy |
+-----------+ |
|0..n
+------V---+
| |
| UADetail |
| |
+----------+
*
*
*
+---------+ * +---------+
| |0..n * 0..n| |
| User +-------------------+ Role |
| | UserAssignment | |
+---------+ +---------+
Figure 3. Generic Policy Pattern
In this approach, any dependency between two managed objects can be
represented as an association class. (Conceptually, an association
class means that the relationship between the two managed entities
is not simply a set of pointers, but is a managed entity in its own
right, and can be modeled as a class.) A set of PolicyRules can then
be related to the association class; this enables the PolicyRules to
(for example) control the values of attributes of the association
class, which changes the nature of the relationship between the two
managed entities.
For example, in Figure 3, the UserAssignment association is realized
as an association class called UADetail (denoted by the dotted line).
The UADetail class is related to PolicyRule via the UAPolicy
aggregation. Hence, in the above example, the PolicyRule can
configure attributes of the UADetail association class, which in
turn defines how the UserAssignment is implemented for this set of
User and Role.
The advantage of a Software Pattern is both its applicability as
well as its simplicity. Note that all seven RBAC relationships shown
in Figure 2 may be realized using this Pattern.
Policy Rules are used to control behavior. For example, they can be
used to enable (or disable) one or more Roles, Users, and
Permissions in a given context (e.g., a Session).
Xia, et al. Expires August 10, 2015 [Page 11]
Internet-Draft I2NSF Security Policy IM February 2015
A Policy Rule (of any type or structure) can be applied multiple
times on different places (e.g., links, devices, networks, vpns).
The use of Policy Rules to guarantee that consistent intent is
defined and enforced in the whole network, reduces the chances for
manual error, and decreases the overall configuration workload.
5. Interaction between Resources, Services, and RBAC
To be finished. This section will describe how Resources (e.g., a
port on a router), Services (e.g., a VPN), Users, Roles, and groups
of all of these objects, interact.
6. System Control Using RBAC
To be finished. This section will describe how Policy Rules are used
to manage and control Resources, Services, Users, Roles, and groups
of all of these objects.
7. I2NSF Security Policy Yang Structure
To be finished or moved into a separate draft.
8. Use Examples of I2NSF Security Policy
To be finished.
9. Security Considerations
To be finished.
10. IANA Considerations
11. References
11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Xia, et al. Expires August 10, 2015 [Page 12]
Internet-Draft I2NSF Security Policy DM February 2015
[RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for
Syntax Specifications: ABNF", RFC 2234, Internet Mail
Consortium and Demon Internet Ltd., November 1997.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010.
11.2. Informative References
[INCITS359 RBAC] NIST/INCITS, "American National Standard for
Information Technology - Role Based Access Control",
INCITS 359, April, 2003
[I-D.zarny-i2nsf-data-center-use-cases] Zarny, M., et.al., "I2NSF
Data Center Use Cases", Work in Progress, October 2014.
[I-D.qi-i2nsf-access-network-usecase] Qi, M., et.al., "Integrated
Security with Access Network Use Case", Work in Progress,
October, 2014.
[I-D.pastor-i2nsf-access-usecases] Pastor, A., et.al., "Access Use
Cases for an Open OAM Interface to Virtualized Security
Services", Work in Progress, October, 2014.
[I-D.dunbar-i2nsf-problem-statement] Dunbar, L., et.al., "Interface
to Network Security Functions Problem Statement", Work in
Progress, September, 2014.
12. Acknowledgments
This document was prepared using 2-Word-v2.0.template.dot.
Authors' Addresses
Liang Xia
Huawei
Email: Frank.xialiang@huawei.com
John Strassner
Huawei Technologies
2330 Central Expressway
Xia, et al. Expires August 10, 2015 [Page 13]
Internet-Draft I2NSF Security Policy DM February 2015
Santa Clara, CA 95138
USA
email: john.sc.strassner@huawei.com
Dean Bogdanovic
Juniper Networks
Email: deanb@juniper.net
Xia, et al. Expires August 10, 2015 [Page 14]