Re: [Dots] AD review of draft-ietf-dots-telemetry-16 (Sections 8-10)

mohamed.boucadair@orange.com Thu, 25 November 2021 10:37 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: dots@ietfa.amsl.com
Delivered-To: dots@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7FC623A05E2; Thu, 25 Nov 2021 02:37:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.344
X-Spam-Level:
X-Spam-Status: No, score=-1.344 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, GB_FAKE_RF_SHORT=0.755, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=orange.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h0g0fB1_LrOU; Thu, 25 Nov 2021 02:37:06 -0800 (PST)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.70.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7F5FD3A0541; Thu, 25 Nov 2021 02:37:06 -0800 (PST)
Received: from opfednr05.francetelecom.fr (unknown [xx.xx.xx.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by opfednr22.francetelecom.fr (ESMTP service) with ESMTPS id 4J0Dp84HSHz107y; Thu, 25 Nov 2021 11:37:04 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1637836624; bh=1ttUiuYhnbRr4cJX14m4ag8YAMYVlrWVJUj7LmqHUnM=; h=From:To:Subject:Date:Message-ID:Content-Type: Content-Transfer-Encoding:MIME-Version; b=Jot1EW+Os33CI7DgfZgEJN6Ama8AI6d3HLSJHjvWBp4lJws9eK6fVPU7FS+jRoKF9 sKhx+2XvJsE5Qbj1/agPw9+A6IFPAGs24EgNahN+94fkMBzV6sRCiOk80w4aOju1Yr sYxQscMqEGp0NLVTf6s5JoBHWE1PwsVjkJkMJE/Y9UxFYxRxcInp6j+Vz/kmCuOPo0 YVfL5fTBeJQzQaPVK5ZC1q7vFa4Q42FXOa5aIBAWU3dIko6qxs5HNYIk4x5bknEqy8 zRa9ivAcO5Rrv4sQNNDWG2t8Jfve9jPV98skcOnHsDzhhYSspYzmTt9kDqFATbfdjo 2k+RlBDKK9XZA==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by opfednr05.francetelecom.fr (ESMTP service) with ESMTPS id 4J0Dp83P3rzyQK; Thu, 25 Nov 2021 11:37:04 +0100 (CET)
From: mohamed.boucadair@orange.com
To: Benjamin Kaduk <kaduk@mit.edu>, "draft-ietf-dots-telemetry.all@ietf.org" <draft-ietf-dots-telemetry.all@ietf.org>
CC: "dots@ietf.org" <dots@ietf.org>
Thread-Topic: [Dots] AD review of draft-ietf-dots-telemetry-16 (Sections 8-10)
Thread-Index: Adfh6GHLKLV4C2wkTzeMxERo4COTew==
Content-Class:
Date: Thu, 25 Nov 2021 10:37:03 +0000
Message-ID: <12675_1637836624_619F6750_12675_177_6_787AE7BB302AE849A7480A190F8B933035458E4B@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_Enabled=true; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_SetDate=2021-11-25T08:28:02Z; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_Method=Privileged; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_Name=unrestricted_parent.2; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_SiteId=90c7a20a-f34b-40bf-bc48-b9253b6f5d20; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_ActionId=0f7b89d2-f93c-4e19-804c-891123ab496c; MSIP_Label_07222825-62ea-40f3-96b5-5375c07996e2_ContentBits=0
x-originating-ip: [10.114.13.245]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/O8mZ8G-FmQvQyCpjfmuewxAfgRs>
Subject: Re: [Dots] AD review of draft-ietf-dots-telemetry-16 (Sections 8-10)
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "List for discussion of DDoS Open Threat Signaling \(DOTS\) technology and directions." <dots.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dots>, <mailto:dots-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dots/>
List-Post: <mailto:dots@ietf.org>
List-Help: <mailto:dots-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dots>, <mailto:dots-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Nov 2021 10:37:14 -0000

Re-,

You can track the changes at: https://tinyurl.com/dots-telemetry-latest.

Please see inline for more context for Sections 8 to 10. 

Cheers,
Med

> -----Message d'origine-----
> De : Dots <dots-bounces@ietf.org> De la part de Benjamin Kaduk
> Envoyé : mercredi 24 novembre 2021 23:42
> À : draft-ietf-dots-telemetry.all@ietf.org
> Cc : dots@ietf.org
> Objet : [Dots] AD review of draft-ietf-dots-telemetry-16
> 
> Hi all,
...
> 
> Section 8.2
> 
>    As defined in [RFC8612], the actual mitigation activities can include
>    several countermeasure mechanisms.  The DOTS server signals the
>    current operational status of relevant countermeasures.  A list of
>    attacks detected by each countermeasure MAY also be included.  The
> 
> I see how in stock DOTS signal channel, the server signals whether an
> attack is fully/partially/not mitigated, but I don't see how the server
> indicates the specific relevant countermeasures that were used.  Am I just
> missing something there?

[Med] The text does not say that we signal the measures themselves. I think you were confused by "... each countermeasure ..."

  (Similarly, the list of attacks we returned may
> or may not be at the granularity of "detected by each countermeasure",
> depending on the ansewr to the previous part.)

[Med] s/each countermeasure/these countermeasures

> 
> Also (editorial), I think we should be more clear about when we switch
> from describing RFC 9132 behavior to to describing the new functionality
> provided by this document.
> 
>    Figure 46 shows an example of an asynchronous notification of attack
>    mitigation status from the DOTS server.  This notification signals
> 
> Is the "new stuff" in Figure 46 just the subtree under :(server-to-client-
> only)? 

[Med] What is new is what is indicated right after the text you quoted: 

" This notification signals
   both the mid-percentile value of processed attack traffic and the
   peak count of unique sources involved in the attack. "


this can be identified in the figure by looking at items that are prefixes with "ietf-dots-telemetry:".


 The 'total-attack-traffic' leaf seems to be the same content as in
> Figure 45, and maybe could be omitted?

[Med] Please note this is not for the same mid. Putting that aside, the one in Figure 45 is what is seen by the client, while figure 46 as about the server's view. Changed the total attack traffic value to avoid inducing readers to assume a correlation between the two.  

> 
>            "mitigation-start": "1507818434",
> 
> (This date is from 2017; as above, we could use a more current one if we
> want.)

[Med] This was on purpose so easily identify the telemetry addition vs base spec as depicted in Figure 14 of RFC9134. 

> 
>                "source-count": {
>                  "peak-g": "10000"
> 
> (Suspiciously round numbers like this are indications of fabricated data
> ... which is totally reasonable for an example like this!  But if we
> wanted to be "more realistic" we could use a less-round number.)

[Med] Agree. Updated. 

> 
>    DOTS clients can filter out the asynchronous notifications from the
>    DOTS server by indicating one or more Uri-Query options in its GET
>    request.  A Uri-Query option can include the following parameters:
>    'target-prefix', 'target-port', 'target-protocol', 'target-fqdn',
>    'target-uri', 'alias-name', and 'c' (content) (Section 4.2.4).  The
> 
> Up in §7.3 the analogous list also included 'mid'.  Is 'mid' appropriate
> here (or is it implicitly already included by the base signal channel
> mechanisms)?

[Med] Unlike 7.3, the filtering is happing within a request that includes mid as an uri path.

  Hmm, but maybe 'c' is also already allowed by the base
> signal channel mechanism, so that theory is not great...
> 
>    If the target query does not match the target of the enclosed 'mid'
>    as maintained by the DOTS server, the latter MUST respond with a 4.04
>    (Not Found) error Response Code.  The DOTS server MUST NOT add a new
>    observe entry if this query overlaps with an existing one. 
> 
> How should the server respond if this query overlaps with an existing one?
> 

[Med] We don't mention this as this is already handled by the base spec:

   4.09 (Conflict)  is returned by the DOTS server if the DOTS server
      detects that a request conflicts with a previous request.  
 

Updated the text to make this explicit: 

"In such a case, the DOTS server replies with 4.09 (Conflict)."


> Section 10.1
> 
>    This module uses types defined in [RFC6991] and [RFC8345].
> 
> Should we mention the data structure extension from RFC 8791 here, as
> well?

[Med] It is not cited here because we don't use any type from 8791. We do have a statement in the document that we rely on 8791.  

> 
>   typedef attack-severity {
>     type enumeration {
>       enum none {
>         value 1;
>         description
>           "No effect on the DOTS client domain.";
> 
> It seems like the closest analogue to our attack-serverity typedef in RFC
> 7970 is in §3.12.2, "BusinessImpact Class".

[Med] Yes. We do have the following: 

   attack-severity:  Attack severity level.  This attribute takes one of
      the values defined in Section 3.12.2 of [RFC7970].

 But the phrasing used in RFC
> 7970 is slightly different than the descriptions we have here.

[Med] It was adjusted for the DOTS context, but I think they are aligned. 

> Do we want to tweak our phrasings and/or clarify in the typedef
> description that we use a slightly modified formulation?

[Med] I don't think this is needed. 

  (Indeed, we do
> not have an extension point, either, though 7970 does have an extension
> mechanism.)  Also, a section reference within RFC 7970 might be helpful.
> 

[Med] Added Section 3.12.2  

>       enum kilopacket-ps {
>         value 4;
>         description
>           "Kilo packets per second (kpps).";
> 
> We may get someone who asks if we are using 1000 or 1024 ("kibi"), but I'm
> inclined to leave it alone for now.
> 
>       leaf unit-status {
>         type boolean;
>         default true;
>         description
>           "Enable/disable the use of the measurement unit class.";
> 
> Does the "default true" imply that even unit classes not present in "list
> unit-config" are assumed to be supported by default?

[Med] This is a bug. This should be "mandatory true". 

> 
>   grouping connection {
>     description
>       "A set of data nodes which represent the attack
>        characteristics.";
>     [...]
>     leaf embryonic {
>       type yang:gauge64;
>       description
>         "The number of simultaneous embryonic connections to
>          the target server.";
> 
> It's a little interesting that this is the only leaf in the grouping that
> we can't attach the word "attack" to the description of, but as far as I
> can tell we shouldn't make any change here.
> (I originally wrote a comment that we shouldn't use "attack" for any of
> them, since we have analogous nodes in the total-connection-capacity
> config entries, but those seem to not use this grouping.)
> 
>     list talker {
>       key "source-prefix";
>       description
>         "IPv4 or IPv6 prefix identifying the attacker(s).";
> 
> My read of the YANG is that this is the description for "list talker", but
> the content matches the description given for the "source-prefix" leaf
> within the list.  Should the list itself have a different description?

[Med] Yes. This was a copy/past issue.

> 
>   grouping top-talker-aggregate {
>   [...]
>   grouping top-talker {
> 
> The diff between these two is pretty small -- just the top-level
> description and connection-all vs connection-protocol-all.  Is there any
> value in introducing another grouping to hold the common elements?
> 

[Med] This allows to shorten the doc by 1/2 page. Made the change.

>             container max-config-values {
>               description
>                 "Maximum acceptable configuration values.";
>               uses telemetry-parameters;
> 
> I guess the convenience of having the reusable grouping probably outweighs
> the value of having YANG-level constraints that the 'max'
> values are >= the 'min' values (which we can set for the "telemetry-
> notify-interval" that is not part of "telemetry-parameters", but can't set
> here because we use the grouping).

[Med] I confirm. Please note that we have that guard in the core document. 

> 
>               leaf telemetry-notify-interval {
>                 type uint32 {
>                   range "1 .. 3600";
> 
> (Pedantically, this range would fit in a uint16, though maybe there is
> some other reason to prefer the 32-bit type.)

[Med] I lost the context why we had it like this. From a yang perspective, the current one is still correct, but it is better to adjust. Will change this but will check my archives as well. 

> 
>             case baseline {
>               [...]
>               list baseline {
>                 [...]
>                 leaf id {
>                   type uint32;
>                   must '. >= 1';
>                   description
>                     "An identifier that uniquely identifies a baseline
>                      entry communicated by a DOTS client.";
> 
> I a little bit wonder if we should have a little bit of prose up in §6.3
> discussing the need for "id" and how it is used.

[Med] Added this NEW text to 6.3:

   A DOTS client can share one or multiple normal traffic baselines
   (e.g., aggregate or per-prefix baselines), each are uniquely within
   the DOTS client domain with an identifier 'id'.  This identifier can
   be used to update a baseline entry, delete a specific entry, etc.

> 
>               leaf tmid {
>                 type uint32;
>                 description
>                   "An identifier to uniquely demux telemetry data sent
>                    using the same message.";
> 
> The description for "tsid" in the analogous setup was just "an identifier
> for the DOTS telemetry setup data".  As far as I can tell, the usage of
> the two is analogous, so shouldn't the descriptions be analogous as well?

[Med] Fair. Adjusted the text accordingly. 

> In particular, I am not sure that "uniquely demux" is the only usage of
> this leaf, since in server-initiated telemetry messages, this leaf might
> be needed to indicate which telemetry entry is being described (right?).

[Med] Yes. 

> 
>             leaf-list mid-list {
>               type uint32;
>               description
>                 "Reference a list of associated mitigation requests.";
> 
> Should we reference RFC 9132 somehow to indicate that the base signal
> channel is how these "mid" values are assigned (and assigned meaning)?
> 

[Med] Good suggestion. Added: 

              reference
                "RFC 9132: Distributed Denial-of-Service Open Threat 
                           Signaling (DOTS) Signal Channel 
                           Specification, Section 4.4.1";

> Section 10.2
> 
>          description
>            "Vendor ID is a security vendor's Enterprise Number.";
> 
> Should we say something about "IANA-assigned" and/or link to the
> corresponding registry?

[Med] Added a reference statement to the IANA registry.  

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.