Internet DRAFT - draft-andreasen-dots-info-data-model

draft-andreasen-dots-info-data-model



DOTS                                                       F. Andreasen
Internet Draft                                                 T. Reddy
Intended status: Standards Track                                  Cisco
Expires: April 30, 2017                                October 31, 2016



        Distributed Denial-of-Service Open Threat Signaling (DOTS)
                        Information and Data Model
                draft-andreasen-dots-info-data-model-01.txt


Abstract

   This document defines an information model and a data model for
   Distributed Denial-of-Service Open Threat Signaling (DOTS).  The
   document specifies the Message and Information Elements that are
   transported between DOTS agents and their interconnected
   relationships.  The primary purpose of the DOTS Information and Data
   Model is to address the DOTS requirements and DOTS use cases.

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 30, 2017.

Copyright Notice

   Copyright (c) 2016 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



Andreasen               Expires April 31, 2017                 [Page 1]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   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...................................................3
   2. Notational Conventions and Terminology.........................4
   3. Information Model..............................................4
      3.1. General...................................................4
      3.2. Signal Channel Messages...................................6
         3.2.1. Open Signal Channel..................................6
         3.2.2. Close Signal Channel.................................8
         3.2.3. Redirect Signal Channel..............................8
         3.2.4. Request Status Update................................9
         3.2.5. Status Update.......................................10
         3.2.6. Request Mitigation..................................10
         3.2.7. Stop Mitigation.....................................11
      3.3. Data Channel Messages....................................11
         3.3.1. Open Data Channel...................................11
         3.3.2. Close Data Channel..................................12
         3.3.3. Redirect Data Channel...............................12
         3.3.4. SendData............................................12
      3.4. Information Elements.....................................13
         3.4.1. Protocol version....................................13
         3.4.2. Attack Target.......................................13
         3.4.3. Agent Id............................................13
         3.4.4. Blacklist...........................................13
         3.4.5. Whitelist...........................................13
         3.4.6. Attack telemetry....................................13
         3.4.7. Mitigator feedback..................................14
         3.4.8. Mitigation efficacy.................................14
         3.4.9. Mitigation failure..................................14
         3.4.10. Mitigation Scope...................................14
         3.4.11. Mitigation Scope Conflict..........................15
         3.4.12. Resource Group Alias...............................15
         3.4.13. Mitigation duration................................15
         3.4.14. Peer health........................................15
         3.4.15. Filters............................................15
         3.4.16. Filter-actions.....................................15
         3.4.17. Acceptable signal lossiness........................15
         3.4.18. Heartbeat interval.................................16
         3.4.19. Data Channel Address...............................16
         3.4.20. Extensions.........................................16


Andreasen               Expires April 31, 2017                 [Page 2]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   4. Data Model....................................................16
   5. IANA Considerations...........................................16
   6. Security Considerations.......................................16
   7. Acknowledgements..............................................16
   8. References....................................................17
      8.1. Normative References.....................................17
      8.2. Informative References...................................17

1. Introduction

   A distributed denial-of-service (DDoS) attack is an attempt to make
   machines or network resources unavailable to their intended users.
   In most cases, sufficient scale can be achieved by compromising
   enough end-hosts and using those infected hosts to perpetrate and
   amplify the attack.  The victim in this attack can be an application
   server, a client, a router, a firewall, or an entire network.

   In order to mitigate a DDoS attack while still providing service to
   legitimate entities, it is necessary to identify and separate the
   majority of attack traffic from legitimate traffic and only forward
   the latter to the entity under attack, which is also known as
   "scrubbing".  Depending on the type of attack, the scrubbing process
   may be more or less complicated, and in some cases, e.g. a bandwidth
   saturation, it must be done upstream of the DDoS attack target.

   DDoS Open Threat Signaling (DOTS) defines an architecture to help
   solve these issues (see [I-D.ietf-dots-architecture]).  In the DOTS
   architecture, a DDoS attack target is associated with a DOTS client
   which can signal a DOTS server for help in mitigating an attack.
   The DOTS client and DOTS server (collectively referred to as DOTS
   agents) can interact with each other over two different channels: a
   signal and a data channel, as illustrated in Figure 1.



    +---------------+                                 +---------------+
    |               | <------- Signal Channel ------> |               |
    |  DOTS Client  |                                 |  DOTS Server  |
    |               | <=======  Data Channel  ======> |               |
    +---------------+                                 +---------------+

                          : DOTS signal and data channels



   The DOTS signal channel is primarily used to convey information
   related to a possible DDoS attack so appropriate mitigation actions


Andreasen               Expires April 31, 2017                 [Page 3]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   can be undertaken on the suspect traffic.  The DOTS data channel is
   used for infrequent bulk data exchange between DOTS agents in the
   aim to significantly augment attack response coordination.

   In this document, we define the overall information model and data
   model for the DOTS signal channel and data channel.  The information
   and data models are designed to adhere to the overall DOTS
   architecture [I-D.ietf-dots-architecture] , the DOTS use case
   scenarios, and the DOTS requirements [I-D.ietf-dots-requirements].

2. Notational Conventions and Terminology

   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 [RFC2119].

   The reader should be familiar with the terms defined in [I-D.ietf-
   dots-architecture].

3. Information Model

   The information model is broken into the following areas:

   o  General, which provides a general high-level overview of the
      overall information model and its structure

   o  Signal Channel specific, which provides an API-style interface
      description for the signal channel

   o  Data Channel specific, which provides an API-style interface
      description for the data channel

   o  Information Element specific, which describes the various
      information elements used by the above

3.1. General

   DOTS supports request/response style interactions as well as
   asynchronous messages as illustrated below:

      DOTS-Request(parameters) => DOTS-Response(parameters)

      DOTS-Notification(parameters)

   DOTS requests, responses and notifications are collectively referred
   to as DOTS messages, and associated with each DOTS message is one or



Andreasen               Expires April 31, 2017                 [Page 4]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   more parameters. DOTS messages include one or more parameters, each
   of which belong to one of the following categories

   o  Mandatory, which are base DOTS protocol parameters that MUST
      always be included with the message in question.

   o  Optional, which are base DOTS protocol parameters that MAY be
      included with the message in question.

   o  Extensions, which are extended DOTS protocol parameters that MAY
      be included with the message in question.

   Mandatory and optional DOTS protocol parameters MUST be supported by
   all DOTS agents. Extension DOTS protocol parameters define extended
   functionality above and beyond the base DOTS protocol that MAY be
   supported by a particular DOTS agent. The DOTS protocol includes an
   extension framework that enables each DOTS agent to determine which
   extension a peer DOTS agent supports. The extension framework also
   enables a DOTS agent to specify how to handle any unsupported
   extensions.

   DOTS supports versioning in the form of a DOTS protocol version,
   which is included in every DOTS message. If a DOTS agent receives a
   DOTS request with an unsupported protocol version, it will reply
   with a failure and an indication of the protocol version(s)
   supported. This enables a future version of the DOTS protocol to be
   defined in a backwards compatible manner. If a DOTS Notification
   with an unsupported protocol version is received, it will simply be
   discarded.

   All DOTS messages include a message-id and an agent-id. The agent-id
   identifies the originator of the message, whereas the message-id
   provides an identifier for DOTS Request/Response correlation and
   DOTS Notification identification.

   o  [Editor's note: There are different views on whether an agent-id
      is needed at the DOTS level or whether the underlying security
      mechanisms (incl. authenticated identity via (D)TLS) suffices.
      For now, the draft includes an explicit agent-id at the DOTS
      level].

   o  [Editor's note: Need to look more closely at how we ensure
      message-id uniqueness. One option is to include the agent-id from
      the request or notification as part of it. Also, not clear (yet)
      if this is really information/data model or protocol]




Andreasen               Expires April 31, 2017                 [Page 5]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   DOTS messages are exchanged over the DOTS Signal channel and the
   DOTS Data Channel. In either case, there is a channel establishment
   procedure taking place initially whereby:

   1. The DOTS client determines the address of a DOTS server to
      establish the DOTS channel with. The base DOTS protocol assumes
      the DOTS client has already obtained either this address, or a
      domain name [RFC1034] or DNS SRV name [RFC2782] that can lead to
      it. One way of achieving that is by provisioning.

   2. The DOTS agents mutually authenticate each other. The Information
      and Data model assumes that the DOTS protocol will run on top of
      a secure transport (e.g. TLS [RFC5246] or DTLS [RFC6347]) that
      also provides mutual authentication. The DOTS agent-id will need
      to be tied-to or covered by this transport-level mutual
      authentication. If not, explicit mutual authentication of the
      DOTS agent-id at the DOTS protocol level will be needed

       o [Editor's note: The mutual authentication aspect of the DOTS
          agent-id is a bit sketchy; needs more consideration]


   Note that the mutual authentication of the DOTS agents are needed to
   verify the service relationship between the DOTS client and server
   as well as govern relevant authorization policies with respect
   further DOTS operation (e.g. scrubbing of traffic for the client in
   question).



   o  [Editor's note: The below is work in progress - main focus is on
      overall approach and messages right now. The actual parameters
      are expected to evolve in future versions]



3.2. Signal Channel Messages

   In this section, we describe the signal channel messages.

   o   [Editor's note: Most (all ?) messages can be extended -
      currently not clearly shown in the following]

3.2.1. Open Signal Channel

   The OpenSignalChannel request establishes a signal channel from the
   LocalAgent to the RemoteAgent:


Andreasen               Expires April 31, 2017                 [Page 6]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


      OSCreply OpenSignalChannel(LocalAgentId, RemoteAgent
                                [, ExtensionsSupported])


   LocalAgentId is the local DOTS client id.

   RemoteAgent is one or more of IP-address(es), domain-name and DNS
   SRV name for the remote DOTS agent with which the signal channel is
   to be established. When more than one of these is present, the
   priority order for client use is DNS SRV, domain-name and IP-
   address(es). A lower priority MUST NOT be used unless a higher
   priority fails to produce a response.

   o  Note that the intent of this priority order is not to replace any
      DNS caching but rather to provide a "last resort" in case of DNS
      failure. If domain name use is not desired, then RemoteAgent MUST
      only include IP-address(es).

   ExtensionsSupported may optionally be included to indicate which
   extensions are supported by the DOTS client.



   A successful OSCreply contains the following information:

   o  Response code, which indicates the outcome of the request

   o  RemoteAgentId, which is the peer DOTS agent Id.

   o  SignalChannel, which is a handle for the new signal channel
      assuming the request succeeded

   o  [optional] ExtensionsSupported, which lists the extensions
      supported by the remote DOTS agent.



   A failure OSCreply contains the following information:

   o  Response code, which indicates the outcome of the request

   o  RemoteAgent, which indicates a different agent to establish the
      signal channel with (redirect)

   o  [optional] ExtensionsSupported, which lists the extensions
      supported by the remote DOTS agent.



Andreasen               Expires April 31, 2017                 [Page 7]

Internet-Draft      DOTS Information & Data Model     October 2016 2016






3.2.2. Close Signal Channel

   The CloseSignalChannel request closes a previously established
   signal channel:

      CSCreply CloseSignalChannel(SignalChannel)


   SignalChannel is the handle for the signal channel to be closed.



   The CSCreply contains the following information

   o  Response code, which indicates the outcome of the request





3.2.3. Redirect Signal Channel

   The RedirectSignalChannel request instructs the peer DOTS agent to
   change the signal channel to the alternative DOTS agent indicated.

   o  [Editor's note: At the IETF Berlin meeting, there was discussion
      around using anycast to possibly avoid redirection. Anycast
      however would not be mandatory, and even when supported, it may
      be desirable to "redirect" to a non-anycast address after initial
      discovery for stability]

   o  [Editor's note: Data channel is currently associated with the
      data channel. Either they both have to get redirected or we need
      a way of (re)associating the data channel with the new signal
      channel; maybe a MoveSignalChannel() ?]

   o  [Editor's note: When redirecting the channel, do we redirect the
      existing one or create a new one and close the old one ? The
      latter seems cleaner, albeit more explicit.]


      RSCreply RedirectSignalChannel(SignalChannel, NewAgent)



Andreasen               Expires April 31, 2017                 [Page 8]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   SignalChannel is the handle for the signal channel to be redirected.

   NewAgent is an IP-address, domain-name or DNS SRV name for the new
   remote DOTS agent with which the signal channel is to be redirected
   to.



   The CSCreply contains the following information

   o  Response code, which indicates the outcome of the request. Note
      that a success response merely indicates successful receipt and
      reply to the request; successful redirection of signal channel is
      not implied.



3.2.4. Request Status Update

   The RequestStatusUpdate message is a notification to the peer agent
   asking it to provide a status update as indicated

      RequestStatusUpdate(Target [, Heartbeat] [, Health] [, Attack]
                                    [, Mitigation] [, Efficacy])


   Target specifies the attack target for which status updates are
   requested

   o  [Editor's note: Need to come up with a more detailed model for
      how we identify and describe targets]

   Heartbeat requests a status update at the heartbeat interval
   specified.

   Health requests health information for the target.

   Attack requests attack information for the target.

   Mitigation requests mitigation status information for the target.

   Efficacy requests mitigation efficacy information for the target.







Andreasen               Expires April 31, 2017                 [Page 9]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


3.2.5. Status Update

   The StatusUpdate message is a notification to the peer agent.
   StatusUpdate provides heartbeat functionality and updates around
   health, attack status, mitigation status and mitigation efficacy



      StatusUpdate(Target, [, HealthStatus] [, AttackStatus]
                     [, MitigationStatus] [, MitigationEfficacy])


   Target specifies the attack target for which status updates are
   provided.

   HealthStatus provides overall health for the target

   AttackStatus provides information about an ongoing attack for the
   target

   o  [Editor's note: Do we need to identify and refer to specific
      attacks for a given target or just the target itself. For now,
      assume just the target itself. Question applies to other
      parameters here as well.]

   MitigationStatus provides information about current mitigation(s) in
   place for the target. The status reflects information from the
   mitigator's point of view.

   MitigationEfficacy provides information about the efficacy of the
   mitigation. The efficacy reflects information from the attack
   target's point of view.





3.2.6. Request Mitigation

   The RequestMitigation message is a notification to the peer agent to
   invoke mitigation for the attack target specified. If the request is
   received and honored, mitigation will commence and a StatusUpdate
   message will be sent to reflect that. Note that either message is
   especially susceptible to loss during an active DDoS attack

      RequestMitigation(Target)



Andreasen               Expires April 31, 2017                [Page 10]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   Target specifies the attack target for mitigation is requested.



3.2.7. Stop Mitigation

   The StopMitigation message is a notification to the peer agent to
   stop further attack mitigation for the target indicated. The message
   is sent on behalf of the attack target towards the mitigator.

      StopMitigation(Target)

   Target specifies the attack target for which mitigation is to be
   stopped.


3.3. Data Channel Messages

   In this section, we describe the data channel messages.

   o  [Editor's note: Most (all ?) messages can be extended - currently
      not clearly shown in the following]



3.3.1. Open Data Channel

   The OpenDataChannel request opens a Data Channel to be used in
   conjunction with a previously established Signal Channel

      ODCreply OpenDataChannel(SignalChannel [, ExtensionsSupported])


   SignalChannel is the handle for the existing signal channel.

   ExtensionsSupported may optionally be included to indicate which
   extensions are supported by the DOTS client.



   A successful ODCreply contains the following information

   o  DataChannel, which is a handle for the new data channel

   o  [optional] ExtensionsSupported, which lists the extensions
      supported by the remote DOTS agent.



Andreasen               Expires April 31, 2017                [Page 11]

Internet-Draft      DOTS Information & Data Model     October 2016 2016




   A failure ODCreply contains the following information

   o  Response code, which indicates the outcome of the request

   o  RemoteAgent, which indicates a different agent to establish the
      data channel with (redirect)



3.3.2. Close Data Channel

   The CloseDataChannel request closes a previously established data
   channel:

      CDCreply CloseDataChannel(DataChannel)


   DataChannel is the handle for the data channel to be closed.



   The CDCreply contains the following information

   o  Response code, which indicates the outcome of the request



3.3.3. Redirect Data Channel

   o  [Editor's note: Resolve open questions in Redirect Signal Channel
      first]



3.3.4. SendData

   The SendData request sends data to the peer DOTS agent over the data
   channel.

      SDreply SendData(DataChannelData)


   DataChannelData may contain one or more of the following:

   o  Blacklists, whitelists, filters, aliases\names)


Andreasen               Expires April 31, 2017                [Page 12]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   [Editor's note: The above needs much more work and overall
   structure. Break up into individual pieces and make sure it's
   modular,  extensible and we have clarity on which data is mandatory
   versus optional to support]



3.4. Information Elements

   o  [Editor's note: The following should merely be considered as a
      bucket of possible IEs at this point; further work needed,
      including reconciling with message definitions in sections above]


3.4.1. Protocol version



3.4.2. Attack Target

   o  [Editor's note: may be superfluous given Mitigation Scope below"]



3.4.3. Agent Id

   (identity for each DOTS client and server, contains a least a domain
   portion that can be authenticated)



3.4.4. Blacklist

   (define, retrieve, manage and refer to)



3.4.5. Whitelist

   (define, retrieve, manage and refer to)



3.4.6. Attack telemetry

   (collected behavioral characteristics defining the nature of a DDoS
   attack)


Andreasen               Expires April 31, 2017                [Page 13]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   o  [9/27: Probably extended functionality.]



3.4.7. Mitigator feedback

   (attack mitigation feedback from server to client, incl. mitigation
   status [start, stop, metrics, etc.], attack ended and information
   about mitigation failure)



3.4.8. Mitigation efficacy

   (attack mitigation efficacy feedback from client to server)



3.4.9. Mitigation failure

   (unsupported target type, mitigation capacity exceeded, excessive
   "clean traffic", out-of-service, etc.)



3.4.10. Mitigation Scope

   Classless Internet Domain Routing (CIDR) prefixes, BGP prefix, URI,
   DNS names, E.164, "resource group alias", port range, protocol, or
   service

   o  [Editor's note: comes from requirements - not clear how
      "protocol" and "service" are defined.  Also, consider which URI
      schemes]

   o  [Editor's note: It would probably be useful to structure
      mitigation scope and related information (like telemetry,
      blacklist, etc.) into different "types", since different types of
      targets will have different parameters and different DOTS servers
      may support different types of attack targets]

   Information about the attack (e.g. targeted port range, protocol or
   scope)

   o  [Editor's note: Not clear this is really different from
      "Mitigation Scope" below - taken from requirement OP-006]



Andreasen               Expires April 31, 2017                [Page 14]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


   o  [9/27: Roland doesn't think we need this as baseline
      information.]



3.4.11. Mitigation Scope Conflict

   Nature and scope of conflicting mitigation requests received from
   two or more clients



3.4.12. Resource Group Alias

   (define in data channel, refer to in signal/data channel; aliases
   for mitigation scope)



3.4.13. Mitigation duration

    (desired lifetime - renewable)



3.4.14. Peer health

    (? - measure of peer health)



3.4.15. Filters



3.4.16. Filter-actions

   (rate-limit, discard)



3.4.17. Acceptable signal lossiness

    (for unreliable delivery)





Andreasen               Expires April 31, 2017                [Page 15]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


3.4.18. Heartbeat interval



3.4.19. Data Channel Address

   o  Editor's note: For discussion (not entirely aligned with current
      architecture draft text); assumes establish signal channel first
      and learn data channel address through it (would be useful for
      redirection as well and makes it easier for signal and data
      channel to terminate on different entities)]



3.4.20. Extensions

   (standard, vendor-specific, supported)



4. Data Model

   TODO



5. IANA Considerations

   TODO



6. Security Considerations

   TODO



7. Acknowledgements

   TODO

   This document was prepared using 2-Word-v2.0.template.dot.






Andreasen               Expires April 31, 2017                [Page 16]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


8. References

8.1. Normative References

   [RFC1034] Mockapetris, P.V., "Domain Names - concept and
             facilities", RFC 1034, November 1987.

   [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
             specifying the location of services (DNS SRV)", RFC 2782,
             February 2000.

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [I-D.ietf-dots-architecture] Mortensen, A., Andreasen, F., Reddy,
             T., christopher_gray3@cable.comcast.com, c., Compton, R.,
             and N. Teague, "Distributed-Denial-of-Service Open Threat
             Signaling (DOTS) Architecture", draft-ietf-dots-
             architecture-00 (work in progress), July 2016.

   [I-D.ietf-dots-requirements] Mortensen, A., Moskowitz, R., and T.
             Reddy, "Distributed Denial of Service (DDoS) Open Threat
             Signaling Requirements", draft-ietf-dots-requirements-02
             (work in progress), July 2016.





8.2. Informative References

   [RFC5246] Dierks, T., and E. Rescorla, "The Transport Layer Security
   (TLS) Protocol Version 1.2", RFC 5246, August 2008

   [RFC6347] Rescorla, E., and N. Modadugu, "Datagram Transport Layer
   Security Version 1.2", RFC 6347, January 2012













Andreasen               Expires April 31, 2017                [Page 17]

Internet-Draft      DOTS Information & Data Model     October 2016 2016


Authors' Addresses

   Flemming Andreasen
   Cisco Systems, Inc.
   USA

   Email: fandreas@cisco.com


   Tirumaleswar Reddy
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marathalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   Email: tireddy@cisco.com
































Andreasen               Expires April 31, 2017                [Page 18]