Service Function Chaining                                        E. Wang
Internet-Draft                                                  K. Leung
Intended status: Informational                                  J. Felix
Expires: March 27, 2016                                          J. Iyer
                                                      Cisco Systems Inc.
                                                      September 24, 2015


        Service Function Chaining Use Cases for Network Security
                     draft-wang-sfc-ns-use-cases-00

Abstract

   Enterprise networks deploy a variety of security devices to protect
   the network, hosts and endpoints.  Network security devices, both
   hardware and virtual, operate at all OSI layers with scanning and
   analysis capabilities for application content.  Multiple specific
   devices are often deployed together for breadth and depth of defense.
   This document describes use cases of Service Function Chaining (SFC)
   when deploying network security devices in the manner described above
   and also puts forth requirements for their effective operation.

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).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on March 27, 2016.

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



Wang, et al.             Expires March 27, 2016                 [Page 1]


Internet-Draft       SFC Network Security Use Cases       September 2015


   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 Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  Definition Of Terms . . . . . . . . . . . . . . . . . . . . .   3
   3.  Characteristics of Security Service Functions . . . . . . . .   4
   4.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Service Classification Use Cases  . . . . . . . . . . . .   5
       4.1.1.  Service classification for bi-directional traffic . .   5
       4.1.2.  Service Classifier to distinguish initiator and
               responder . . . . . . . . . . . . . . . . . . . . . .   6
       4.1.3.  Service Classification based on network and
               application criteria  . . . . . . . . . . . . . . . .   7
       4.1.4.  Switching Service Function Paths based on inspection
               and scanning results  . . . . . . . . . . . . . . . .   8
     4.2.  Service Function Use Cases  . . . . . . . . . . . . . . .  10
       4.2.1.  Service Classifier-capable Service Function . . . . .  10
       4.2.2.  Service Functions operating on L5 or L7 data  . . . .  10
       4.2.3.  Service Function mid-stream pick-up . . . . . . . . .  10
       4.2.4.  Bypassing for a particular Service Function . . . . .  11
       4.2.5.  Tap mode Service Functions  . . . . . . . . . . . . .  13
     4.3.  Service Data Handling Use Cases . . . . . . . . . . . . .  14
       4.3.1.  Dropping packets and closing flows  . . . . . . . . .  14
       4.3.2.  Service Function injected new packet  . . . . . . . .  15
       4.3.3.  Service Function initiated connections  . . . . . . .  16
       4.3.4.  Security classification results . . . . . . . . . . .  16
   5.  General Requirements  . . . . . . . . . . . . . . . . . . . .  19
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  20
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  20
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  20
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  20
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  20
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  21
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  21

1.  Introduction

   Network security service nodes participate in Service Function
   Chaining (SFC) to provide comprehensive solutions for securing campus
   and data center enterprise networks.  Often, network operators deploy
   various types and instances of security service nodes.  These nodes




Wang, et al.             Expires March 27, 2016                 [Page 2]


Internet-Draft       SFC Network Security Use Cases       September 2015


   are complementary to one another for the purpose of coverage, depth
   of defense, scalability and availability.

   In addition to packet forwarding, network security devices can
   buffer, inject or block certain packets, as well as proxy entire
   connections.  Most of the network security devices maintain state at
   the connection, session or transaction levels.  When used in a SFC
   environment these security Service Function actions and properties
   require careful design and extension including the Service Classifier
   and Service Function itself.  This document attempts to describe the
   detailed use cases that lead to the requirements to support network
   security functions in SFC.

1.1.  Requirements Language

   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.  Definition Of Terms

   This document uses the terms as defined in RFC 7498 [RFC7498],
   [I-D.ietf-sfc-architecture] and [I-D.ietf-sfc-nsh].

   In addition the following terms are defined.

   Security Service Function (Security SF):  A Security Service Function
       is a Service Function that carries out specific security tasks.
       We limit the scope of security functions to network security in
       this document (as opposed to functions such as endpoint
       security).  In addition to the general forwarding action, a
       Security Service Function can buffer, proxy, inject or block
       certain packets based on its policy.  A Security Service Function
       can maintain state at the connection, session or transaction
       levels.  Sample Security Service Functions are: Firewall,
       Intrusion Prevention/Detection System (IPS/IDS), Deep Packet
       Inspection (DPI), Application Visibility and Control (AVC),
       network virus and malware scanning, sandbox, Data Loss Prevention
       (DLP), Distributed Denial of Service (DDoS) mitigation and TLS
       proxy.

   Flow:  A flow is a uni-directional traffic stream identified by
       network layer attributes, specifically IP addresses and TCP/UDP
       ports for TCP/UDP traffic.

   Connection:  A connection is a bi-directional traffic stream composed
       of two flows sharing the same network layer attributes.




Wang, et al.             Expires March 27, 2016                 [Page 3]


Internet-Draft       SFC Network Security Use Cases       September 2015


3.  Characteristics of Security Service Functions

   Most Security Service Functions are stateful.  They maintain state at
   the connection, session or transaction levels, depending on the OSI
   layers that they act on.  Many Security Functions require seeing both
   directions of the client-server traffic in order to maintain state
   properly.  Asymmetric traffic must be normalized before packets reach
   the Security Functions.

   Security Service Functions operate on network layer data with
   specific behaviors.  For example:

   1.  A Firewall tracks TCP state between the TCP client and server.
       TCP packets that do not correspond to the Firewall's maintained
       state are likely to be dropped.

   2.  A Firewall can modify the L3/L4 headers for NAT translation.  The
       flow attributes in the packet header may be changed after the
       packet egresses the Firewall.

   3.  A Firewall can proxy a TCP connection by sending a TCP ACK on
       behalf of the endpoint.  From the SFC perspective, this results
       in Service Function generated packets being injected into the
       service path in the reverse direction.

   4.  A Firewall or DDoS mitigator can inject TCP layer challenges to
       the originating client before the intended server receives a
       packet from the client.

   Security Functions also handle packets and examine data at higher OSI
   layers.  For example:

   1.  A Firewall can inspect the HTTP header and body data.  Based on
       the inspection results, the firewall can decide to drop the
       packet and/or block the connection completely.

   2.  A Web proxy can inject an HTTP challenge page into an HTTP
       transaction for the purposes of authentication and identity
       collection.

   3.  At the enterprise edge, a TLS proxy, when authorized, operates as
       a trusted Man-in-the-Middle to proxy the TLS handshake and
       decrypt the packet data.  The TCP payload may be completely
       different between ingress and egress of TLS Proxy.

   4.  A stream scanning service examines a certain set of application
       data.  File scanning engines examine file streams of specific
       types.



Wang, et al.             Expires March 27, 2016                 [Page 4]


Internet-Draft       SFC Network Security Use Cases       September 2015


4.  Use Cases

4.1.  Service Classification Use Cases

4.1.1.  Service classification for bi-directional traffic

   Many Security Service Functions require receiving bi-directional
   traffic of a connection.  For example, a DDoS mitigator requires to
   see the return traffic to maintain proper state.

   Return traffic (i.e. server to client response) should be classified
   based on the forward traffic (i.e. the client to server request).
   This allows server's return traffic to be associated with the clients
   forward traffic.  The forward and return traffic forms a single bi-
   directional connection and shares Service Function Paths with similar
   set of Service Functions.

   In the figure below, the Service Classifier handling traffic from
   Host B must be able to identify return traffic (flow 2) and select
   the Service Function Path with "DDoS".  Flow 1 and 2 form a
   connection and traverse DDoS in both directions.






























Wang, et al.             Expires March 27, 2016                 [Page 5]


Internet-Draft       SFC Network Security Use Cases       September 2015


                     ,--------------.
                    /                \
                   /      .--.        \
                  /      /    \        \
                 /      ( DDoS )        \
    ------------'      / \    / \        `--(1) Forward Flow (A=>B)-->
                      /   `--'   \
                     /            \
   +---+        .--./              `-------.                      +---+
   |   |       /    \             /         \                     |   |
   | A +------(  SC  )-----------(  Firewall )--------------------+ B |
   |   |       \    /             \         /                     |   |
   +---+        `--'               `-------'                      +---+

                         (a) Flows from Host A

                      ,------------.
                     /              \
                    /     .--.       \
                   /     /    \       \
                  /     ( DDoS )       \
    <------------'     / \    / \       `---(2) Return Flow (A<=B)----
                      /   `--'   \
                     /            \
   +---+            /              `-------.          .--.        +---+
   |   |           /              /         \        /    \       |   |
   | A +----------+--------------(  Firewall )------(  SC  )------+ B |
   |   |                          \         /        \    /       |   |
   +---+                           `-------'          `--'        +---+

    <-------------(3) Forward Flow (A<=B)----------------------------

                         (b) Flows from Host B

           Figure 1: Forward and return flows between two hosts

4.1.2.  Service Classifier to distinguish initiator and responder

   Even if a Security Service Function requires receiving bi-directional
   traffic of a connection, it should not necessarily receive traffic
   initiated from all network segments for performance, availability,
   and scalability reasons.  For instance, a DDoS mitigator is
   configured to receive bi-directional traffic initiated from the
   Internet, but skip traffic initiated from the internal network.

   Traffic initiated from a network segment should be classified
   independently.  In Figure 1(b), the Service Classifier for Host B
   must identify traffic initiated by Host B (flow 3) and classify it



Wang, et al.             Expires March 27, 2016                 [Page 6]


Internet-Draft       SFC Network Security Use Cases       September 2015


   independently.  Such traffic bypasses the DDoS Service Function in
   this example.

   The Service Classifier must distinguish between flow 2 and flow 3,
   both of which are from Host B to Host A.  In other words, it must be
   able to identify the initiator and responder of a connection.

   A Service Classifier that keeps certain state would be able to handle
   the above requirements with ease.  The state should be accessible by
   each Service Classifier if there are multiple instances handling
   traffic sources from various network segments.

4.1.3.  Service Classification based on network and application criteria

   The Service Classifier evaluates SFC Policies (i.e.  Service
   Policies) in order to determine the traffic and associated Service
   Function Paths.  In the case of Security Service Functions, the
   Service Policies can contain match criteria derived from all OSI
   layers of the packet.

   SFC classification is often based on network data, including but not
   limited to: Network interface port, VLAN, source and destination IP
   addresses, source and destination TCP and UDP ports, IP protocol,
   etc.  These properties can be derived from the packet headers and are
   consistent across every packet of a flow.

   There are match criteria that are desired by Security Service
   Functions that are either not present in the first packet, or are not
   present in every packet.

   Those criteria may comprise "application data" from above the network
   layer, referred to as "application criteria".  For example, a policy
   rule may state:

      for all TLS traffic, run the traffic through Service Function "TLS
      Proxy"

   Another example of an application layer policy rule is:

      for all HTTP traffic with content containing file types of
      interest, run the traffic through Service Function "File Stream
      Scanner"

   The Service Classifier for Security Service Functions needs to handle
   complex Service Policy.  In some cases, this can be achieved by
   embedding the Service Classifier function into a Security Service
   Function, such that it can evaluate the application data as it
   becomes available.



Wang, et al.             Expires March 27, 2016                 [Page 7]


Internet-Draft       SFC Network Security Use Cases       September 2015


4.1.4.  Switching Service Function Paths based on inspection and
        scanning results

   Network data is likely to be available on the first packet of the
   flow.  When only network data is used as Service Policy match
   criteria, a stateful Service Classifier will be able to determine the
   forward and reverse Service Function Paths from the first packet
   (initial classification).  The forward and reverse Service Function
   Paths remain unchanged for the entire life of the flow for these
   types of policies.

   When the Service Policy contains application criteria, the policy
   rule may not be fully evaluated until several packets have passed
   through the chain.  For example, TLS traffic can be identified only
   after the TLS Client Hello handshake message is observed.

   Multiple classifiers may be required to provide sufficient
   classification granularity and complete a full evaluation of the
   Service Policy.  In many cases, classification will be co-located
   with a Security Service Function that has the ability to inspect and
   scan the application data.

   A new Service Function Path may be selected by a non-initial
   classification, different from the one determined by the initial
   classification.

   The selection of a new Service Function Path can be reflected in the
   NSH Service Path Header as a new Service Path ID for the Service
   Function Forwarder to direct the packet accordingly.

   The decision of a new Service Function Path often needs to be stored
   in Service Function and/or Service Classifier to ensure that
   subsequent packets of the flow follow the new path.  This is because
   the data that triggers a new Service Function Path may be available
   from one particular packet only.  For example, the packet with the
   TLS Client Hello message is used to identify a TLS session.
   Subsequent packets may not contain information for identifying the
   TLS sessions.  All subsequent packets, without being classified
   again, must travel through the path with the "TLS Proxy" Service
   Function.











Wang, et al.             Expires March 27, 2016                 [Page 8]


Internet-Draft       SFC Network Security Use Cases       September 2015


                       ,-----.
                      /       \
                     /  .---.  \
                    /  /     \  \
                   /  (  TLS  )  \
       -----------'   ( Proxy )   `-SFP-2. AVC:TLS Proxy:Firewall->
                      /\     / \
                     /  `---'   \                 .--.
      +---+      .-./           .`------.        (    )-.      +---+
      |   |     /   \          /         \     .'        )     |   |
      | A +----( AVC )--------(  Firewall )---(  Internet )----+ B |
      |   |     \   /          \         /     (        -'     |   |
      +---+      `-'            `-------'       '-(     )      +---+
                                                   '---'
       --------------SFP-1. AVC:Firewall ------------------------->

             Figure 2: Mid-stream service function path update

   Figure 2 illustrates a simple set of Security Functions deployed at
   the Internet edge.  The default Service Function Path is SFP-1, with
   Service Functions "AVC" and "Firewall".  When a TLS session is
   detected (e.g. by detecting the TLS Client Hello in the AVC Service
   Function), packets of the flow from that point on are switched to
   SFP-2, which contains "TLS Proxy" between "AVC" and "Firewall" to
   decrypt the TLS traffic for inspection.

       +--------------------+-------------------------------------+
       |     Packets        |       Service Function Path         |
       +--------------------+-------------------------------------+
       | TCP Handshake      |  SFP-1. AVC:Firewall                |
       +--------------------+-------------------------------------+
       | TLS Client Hello   |  SFP-1; Switched to SFP-2 after AVC |
       +--------------------+-------------------------------------+
       | Rest of TLS HS     |  SFP-2. AVC:TLS Proxy:Firewall      |
       +--------------------+-------------------------------------+
       | HTTPS Data         |  SFP-2. AVC:TLS Proxy:Firewall      |
       +--------------------+-------------------------------------+

         Table 1: SFP taken by each packet in an HTTPS connection

   Table 1 lists the Service Function Path for each packet in an HTTPS
   connection, from the TCP 3-way handshake to the HTTPS data packets.
   A new Service Function Path is selected in the middle of the
   connection after the TLS Client Hello is observed.







Wang, et al.             Expires March 27, 2016                 [Page 9]


Internet-Draft       SFC Network Security Use Cases       September 2015


4.2.  Service Function Use Cases

4.2.1.  Service Classifier-capable Service Function

   Service Functions that are capable of selecting a new Service
   Function Path must have the Service Classifier function integrated.
   Such Service Functions are often responsible for classification using
   their inspection and scanning results and updating Service Function
   Paths based on the Service Policy.

4.2.2.  Service Functions operating on L5 or L7 data

   Certain Security Service Functions operate on L5 to L7 data.  For
   example, a "TLS Proxy" consumes a TCP stream without retransmitted or
   overlapping TCP segments.  A "Web Proxy" operates on TCP stream of
   HTTP traffic.  The data consumed by such Service Functions may not be
   in the original packet frame format, and the data may not contain the
   original L2-L4 header information.  Such Service Functions can obtain
   the session or flow information from the SFC metadata carried in NSH.

4.2.3.  Service Function mid-stream pick-up

   When a new Service Function Path is selected as a result of Service
   Policy re-evaluation with application layer policy metadata, a new
   Service Function may need to start handling packet frames in the
   middle of a flow.  This is referred to as "mid-stream pick-up".
   Although this is mid-stream from a flow perspective, it is still a
   complete data stream from the Service Function perspective (e.g.,
   although "TLS Proxy" Service Function may not see the prior TCP
   handshake packets, it still sees the entire TLS stream).  Similarly,
   transaction based Service Functions only handle packets belonging to
   a particular transaction.  Such Service Function may use the flow ID
   metadata carried in NSH to link the session back to the flow.


















Wang, et al.             Expires March 27, 2016                [Page 10]


Internet-Draft       SFC Network Security Use Cases       September 2015


            +--------------------+-----+-----------+----------+
            |     Packet         | AVC | TLS Proxy | Firewall |
            +--------------------+-----+-----------+----------+
            | TCP SYN            |  X  |           |     X    |
            +--------------------+-----+-----------+----------+
            | TCP SYN/ACK        |  X  |           |     X    |
            +--------------------+-----+-----------+----------+
            | TCP ACK            |  X  |           |     X    |
            +--------------------+-----+-----------+----------+
            | TLS Client Hello   |  X  |     X     |     X    |
            +--------------------+-----+-----------+----------+
            | Rest of TLS HS     |  X  |     X     |     X    |
            +--------------------+-----+-----------+----------+
            | HTTPS Data         |  X  |     X     |     X    |
            +--------------------+-----+-----------+----------+

       Table 2: Service Functions visited by each packet in an HTTPS
                                connection

   Table 2 lists the Service Functions visited by each packet from an
   HTTPS connection.  The first packet that the Service Function "TLS
   Proxy" receives is the TLS Client Hello, as opposed to the TCP
   handshake packets prior to it.

4.2.4.  Bypassing for a particular Service Function

   Certain Security Service Functions can be compute-intensive while
   only serving a particular task.  It may be required to bypass such a
   Service Function in the middle of a flow.  For example:

   o  "Firewall" may request offloading of certain flows to fast
      forwarding engine with minimal inspection

   o  "HTTP Inspector" may decide to not inspect video streams from a
      site with a high reputation

   o  "TLS Proxy" may have to avoid decryption of banking traffic for
      compliance reasons

   The decision to bypass a Service Function is made by the Service
   Function with its static policy, the inspection results and/or mid-
   stream evaluation of Service Policy.

   Even if a flow is offloaded or bypassed, the Security Service
   Function may want to continue receiving critical packets for state
   tracking purposes.  For example, "Firewall" may want to receive TCP
   control packets, and "HTTP Inspector" may want to track each
   transaction in the same flow.



Wang, et al.             Expires March 27, 2016                [Page 11]


Internet-Draft       SFC Network Security Use Cases       September 2015


                          .-------.
                         /         \
                        (   HTTP    )
                        ( Inspector )
                    ,---------------------------.
                   /      `---+---'              \
                  /           |                   \
                  |           |                   |
                  |       .---+---.               |
                  |      /         \              |
                  |     (  Firewall )             |
                  |   ,---------------.           |
                  |  /    `---+---'    \          |
                  | /         |         \         |
                  | |         |         |         |
                  | |     .---+---.     |TCP      |HTTP
                  | |    /         \    |control  |Headers
                  | |   ( Offloading)   |packets  |
                  | |   (    Node   )   |         |
                  | |  ,-------------.  |         |
                  | | /   `-------'   \ |         |
                  | | |               | |         |
                  | | |Offloaded      | |         |
                  | | |packets        | |         |
                  | | |               | |         |
                  v v v               v v         v

                Figure 3: Service function bypass examples

   The offloading node can be either the Service Function Forwarder or a
   capable Service Function with a built-in stateful offloading path
   (Figure 6).  The offloading path tracks the flow state and identifies
   critical packets to be sent to the bypassed Service Function.


















Wang, et al.             Expires March 27, 2016                [Page 12]


Internet-Draft       SFC Network Security Use Cases       September 2015


                                         Offloading Node
                                        .--------------.
                                       /                \
                                      /        SFF       \
                                     (                    )
                                     (   ++++++++++++++   )
                                     (   + Offloading +   )
                                      \.'+    Path    +  /
                 ++++++++++++++      .'\ ++++++++++++++ /
                 + /-------\  +    .'   `--------------'
                 + | Flow  |  +  .'
                 + | State |  +.'
                 + \-------/  +
                 +            +.
                 + Offloading + `.       Offloading Node
                 +    Path    +   `.    .--------------.
                 ++++++++++++++     `. /                \
                                      /.       SF        \
                                     (  `.                )
                                     (   ++++++++++++++   )
                                     (   + Offloading +   )
                                      \  +    Path    +  /
                                       \ ++++++++++++++ /
                                        `--------------'

                Figure 4: Service function offloading node

   To steer traffic to the path that avoids the bypassed Service
   Function, a Service Function may update the SFC metadata in the
   packet if the Service Function has knowledge of the relevant Service
   Function Paths.  Alternatively, a Service Function may signal the
   Service Classifier to update the Service Function Path to exclude the
   Service Function.  Service Function Path updates may be accomplished
   by selecting a new path (i.e. a new Service Path ID) with the Service
   Function excluded.

   Service Function bypass may also follow the procedure described in
   "Service Function Simple Offloads" [I-D.kumar-sfc-offloads], where
   the Service Function signals the Service Function Forwarder to
   offload a flow.  The Service Function Forwarder caches the offload
   request and bypasses the Service Function in the service path for the
   remainder of the flow.

4.2.5.  Tap mode Service Functions

   Certain Service Functions such as an IDS may operate in "tap" mode,
   i.e. they consume a packet instead of passing the packet through.




Wang, et al.             Expires March 27, 2016                [Page 13]


Internet-Draft       SFC Network Security Use Cases       September 2015


   The Service Function Forwarder should send copies of packets to tap
   mode Service Functions.

                               .---.
                              /     \
                             ( [IDS] )
                              \     /
                               `-+-'
                         .---.  /|\      .-------.
                        /     \  |      /         \
                       (  DDoS ) |     (  Firewall )
                        \     /  |      \         /
                         `-+-'   |copy   `---+---'
                          /|\    |          /|\
                           |     |           |
              +---+       \|/    |          \|/         +---+
              |   |     ,--+-----+-----------+----.     |   |
              | C +----(             SFF           )----+ S |
              |   |     `-------------------------'     |   |
              +---+                                     +---+

              [ ] denotes a packet sink

                Figure 5: Tap mode service functions in SFC

   Figure 3 illustrates an example of tap mode Service Function and
   their insertion into a Service Function Chain.  The IDS Service
   Function receives copies of packets from the Service Function
   Forwarder.

4.3.  Service Data Handling Use Cases

4.3.1.  Dropping packets and closing flows

   A Security Service Function may decide to drop the current packet or
   close a particular flow based on its inspection and scanning results,
   and the associated security policy.

   A Service Function may drop packets without forwarding them out, or
   it may forward and mark such packets to be dropped by the Service
   Function Forwarder, referencing the flow by its flow ID in the SFC
   metadata.

   A flow-close action usually needs to be taken by multiple stateful
   Service Functions, as well as the Service Function Forwarder and the
   Service Classifier, in order to clear their state for such a flow.
   Any subsequent packets of the closed flow are denied.




Wang, et al.             Expires March 27, 2016                [Page 14]


Internet-Draft       SFC Network Security Use Cases       September 2015


                           .----.       .----.       .----.
                          /      \     /      \     /      \
                         (  SF-1  )   (  SF-2  )   (  SF-3  )
                          \      /     \      /     \      /
                           `+--+'       `+--+'       `----'
                           /|\ |        /|\ |
                            |  |         |  |Block
                            | (P)        |  |Flow(P)
                            |  |         |  |
                            |  |         |  |
                           (P) |        (P) |
                            |  |         |  |
                            | \|/        | \|/
                 .--.    ,--+--+---------+- : ------------.    .--.
                /    \  /                                  \  /    \
      --(P)--->(      )(               State Update         )(      )
               (  SC  )(                                    )(  SC  )
      --(Q)-X->(      )(     SFF                            )(      )
                \    /  \                                  /  \    /
                 `--'    `--------------------------------'    `--'

                    Figure 6: Flow close action example

   Figure 4 shows an example of closing a flow after SF-2 processes
   packet P.  The flow close indication can be included in the packet or
   message returned from SF-2 to the Service Function Forwarder.  The
   flow state update may be distributed to the Service Function
   Forwarder, Service Classifier and other Service Functions.  The
   distribution mechanism is outside the scope of this document.

4.3.2.  Service Function injected new packet

   Security Service Functions may inject new packets into an existing
   flow in either direction.  For example,

   o  "Web Proxy" inserts an HTTP page challenging the client to login,
      in order to obtain the client's identity.  This is in response to
      a packet (likely HTTP Request) but in the opposite direction of
      the flow.

   o  "Firewall" checks an idle TCP connection by sending TCP keepalives
      to the client and/or server (known as "TCP dead connection
      detection").  This is on existing flows but not responding to a
      prior packet.

   o  "Firewall" sends ICMP error message after dropping a packet.  This
      is in response to the prior packet but on a new flow.




Wang, et al.             Expires March 27, 2016                [Page 15]


Internet-Draft       SFC Network Security Use Cases       September 2015


   The Service Function or Service Classifier needs to conduct a lookup
   of the reverse Service Function Path and populate the NSH Service
   Path Header.  The approaches described in [I-D.penno-sfc-packet] may
   be adopted to support this use case.

4.3.3.  Service Function initiated connections

   A Service Function may need to create its own connections that are
   not associated with any client connection.  Use cases include probing
   of servers behind a web proxy.  In such cases, there will be no
   existing metadata for the Service Function to use to establish this
   connection.  Such connections should be classified just like any
   other connections traversing the Service Function Path, as there may
   be Service Functions that are required to perform operations such an
   NAT on such connections in order for it to reach its destination.

                  <------ SFC-1. Firewall:LB:IPS ------>

            +---+     .-------.       .--.       .-.     +---+
            |   |    /         \     /    \     /   \    |   |
            | C +---(  Firewall )---(  LB  )---( IPS )---+ S |
            |   |    \         /     \    /     \   /    |   |
            +---+     `-------'       `--'       `-'     +---+

                                   <-- SFC-2. LB:IPS -->

          Figure 7: SFC for service function initiated connection

   A Service Classifier-capable Service Function may conduct service
   classification to determine the Service Function Path for the Service
   Function initiated connection.  It can add an NSH with the proper
   Service Path Headers to the packets, and the Service Function would
   be the first SF on the chain.  Response traffic follows a reverse
   Service Function Path and terminates at the Service Function.  The
   number of Service Path Identifiers increases with more Service
   Functions bearing such capability.

   A Service Function may send native packets without NSH when it is not
   capable of service classification.  Such traffic is handled by the
   Service Classifier, which will populate the traffic with the
   appropriate NSH.

4.3.4.  Security classification results

   Security Service Functions may generate security classification
   results (e.g. policy actions and inspection results) while processing
   the packet data.  Certain actions such as packet drop and flow
   closure can be taken immediately.



Wang, et al.             Expires March 27, 2016                [Page 16]


Internet-Draft       SFC Network Security Use Cases       September 2015


   However, Service Functions can choose not to take any action
   immediately.  Instead, it may pass the classification results to the
   subsequent Service Functions or to a control point.

   Security classification results may be carried in NSH metadata as a
   score value.  The score can be relayed and refined by other Security
   Service Functions along the path.  Figure 8 below depicts an example
   of accumulating the client's score based on the Service Function's
   classfication result.  The client's reputation score is 6 as reported
   by the Service Function "Reputation", and the score is then passed to
   the next Service Function "Web Proxy" as the initial score for the
   connection.  "Web Proxy" reduces the score to 3 after detecting
   access to a low reputation website.  The Service Function "File
   Scanner" is involved due to the low score so far.  After the "File
   Scanner" conducts scanning on the downloaded file and identifies it
   to be a malware, it updates the score to be -5 which is below the
   threshold for the connection to be blocked.


































Wang, et al.             Expires March 27, 2016                [Page 17]


Internet-Draft       SFC Network Security Use Cases       September 2015


                                                 .------.
       +---+     .--------.      .--------.     /        \    +---+
       |   |    /          \    /          \   (   File   )   |   |
       | C +---( Reputation )--(  Web Proxy )--(  Scanner )---+ S |
       |   |    \          /    \          /    \        /    |   |
       +---+     `--------'      `--------'      `------'     +---+
                      |              |              |
                      V              V              V
      +----------------------+--------------+-------------+
      |        | Client      | Accessing    | Malware     |
      | Reason | Reputation  | website rep  | found in    |
      |        | score 6     | score 2      | download    |
      +--------+------+------+-------+------+-------+-----+
                      |              |              |
                  +---+---+          |              |
                  |   6   |          V              |
                  +---+---+          |              |
                      `------>-------+              V
                                     |              |
                                 +---+---+          |
                                 |   3   |          |
                                 +---+---+          |
                                     `------>-------+
                                                    |
                                                +---+---+
                                                |  -5   |
                                                +---+---+
                                                    |       /-------\
                                                    |       |       |
                                                    `------>| Block |
                                                            |       |
                                                            \-------/

     Figure 8: Security classification result with accumulated client
                                   score

   Alternatively, each participating Service Function may send its own
   classification result to a central Service Function or control point
   for aggregation.  Actions are then taken by a specific Service
   Function or control point based on the accumulated results.  Figure 9
   illustrates this option.










Wang, et al.             Expires March 27, 2016                [Page 18]


Internet-Draft       SFC Network Security Use Cases       September 2015


                                              .------.
    +---+     .--------.      .--------.     /        \    +---+
    |   |    /          \    /          \   (   File   )   |   |
    | C +---( Reputation )--(  Web Proxy )--(  Scanner )---+ S |
    |   |    \          /    \          /    \        /    |   |
    +---+     `--------'      `--------'      `------'     +---+
                  |                |              |
                  V                V              V
    +--------+-------------+--------------+------------+
    |   SF   | Client      | Accessing    | Malware    |
    |Classify| reputation  | website rep  | found in   |
    | Results| score 6     | score 2      | download   |
    +--------+------+------+-------+------+-----+------+
                    |              |            |
                    |              |            |
                    |              |            |
                    |              |            |  +------+  /-------\
                    |              |            `->|      |  |       |
                    |              `-------------->| Eval +->+ Block |
                    `----------------------------->|      |  |       |
                                                   +------+  \-------/

         Figure 9: Aggregation of security classification results

5.  General Requirements

   The above use cases lead to the following requirements for applying
   SFC to security traffic.

   1.  SFC MUST support the use of stateful Service Classifiers and
       Service Functions if present.

   2.  Service Classifiers MUST have the ability to classify forward and
       the corresponding reverse Service Function Paths.

   3.  SFC MUST support the use of Service Policies with network and
       application layer match criteria if supported by Service
       Classifier.

   4.  SFC MUST support Service Function Path update or selection of a
       new path by a Service Classifier in the middle of a flow.

   5.  SFC SHOULD allow packet frames carrying only L5 and upper layer
       traffic data without L2-L4 headers.

   6.  SFC MUST allow tap mode Service Functions.

   7.  SFC policies MUST support tap mode Service Functions.



Wang, et al.             Expires March 27, 2016                [Page 19]


Internet-Draft       SFC Network Security Use Cases       September 2015


   8.  SFC MUST support packet injection to the opposite direction of a
       Service Function Path.

   9.  SFC SHOULD support bypass of a Service Function in the middle of
       a connection while allowing necessary control packets to reach
       the Service Function.

6.  Security Considerations

   This document describes use cases for Security Service Functions to
   participate in SFC.  There are cases such as picking up traffic from
   the middle of a packet stream or handling packets without L2-L4
   headers.  Security Service Functions must process those types of
   traffic properly and associate them with the appropriate internal
   state.

   While each Security Service Function applies its own implementation
   to secure the internal data, communications between Service Functions
   need to be secured as well.  Measures must be taken to ensure
   metadata such as security classifications carried in NSH is not
   tampered.

7.  Acknowledgments

   The authors would like to thank Paul Quinn, Reinaldo Penno and Jim
   Guichard for their detailed review, comments and contributions.

8.  IANA Considerations

   This document includes no request to IANA.

9.  References

9.1.  Normative References

   [I-D.ietf-sfc-architecture]
              Halpern, J. and C. Pignataro, "Service Function Chaining
              (SFC) Architecture", draft-ietf-sfc-architecture-08 (work
              in progress), May 2015.

   [I-D.ietf-sfc-nsh]
              Quinn, P. and U. Elzur, "Network Service Header", draft-
              ietf-sfc-nsh-00 (work in progress), March 2015.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.



Wang, et al.             Expires March 27, 2016                [Page 20]


Internet-Draft       SFC Network Security Use Cases       September 2015


   [RFC7498]  Quinn, P., Ed. and T. Nadeau, Ed., "Problem Statement for
              Service Function Chaining", RFC 7498,
              DOI 10.17487/RFC7498, April 2015,
              <http://www.rfc-editor.org/info/rfc7498>.

9.2.  Informative References

   [I-D.kumar-sfc-offloads]
              Surendra, S., Guichard, J., Quinn, P., and J. Halpern,
              "Service Function Simple Offloads", draft-kumar-sfc-
              offloads-01 (work in progress), September 2015.

   [I-D.penno-sfc-packet]
              Penno, R., Pignataro, C., Yen, C., Wang, E., and K. Leung,
              "Packet Generation in Service Function Chains", draft-
              penno-sfc-packet-00 (work in progress), September 2015.

Authors' Addresses

   Eric Wang
   Cisco Systems Inc.
   170 W Tasman Dr
   San Jose, CA  95134
   U.S.A.

   Email: ejwang@cisco.com


   Kent Leung
   Cisco Systems Inc.
   170 W Tasman Dr
   San Jose, CA  95134
   U.S.A.

   Email: kleung@cisco.com


   Jeremy Felix
   Cisco Systems Inc.
   170 W Tasman Dr
   San Jose, CA  95134
   U.S.A.

   Email: jefelix@cisco.com







Wang, et al.             Expires March 27, 2016                [Page 21]


Internet-Draft       SFC Network Security Use Cases       September 2015


   Jay Iyer
   Cisco Systems Inc.
   170 W Tasman Dr
   San Jose, CA  95134
   U.S.A.

   Email: jiyer@cisco.com












































Wang, et al.             Expires March 27, 2016                [Page 22]