Re: [I2nsf] AD review of draft-ietf-i2nsf-registration-interface-dm-21

"Mr. Jaehoon Paul Jeong" <jaehoon.paul@gmail.com> Thu, 01 December 2022 14:36 UTC

Return-Path: <jaehoon.paul@gmail.com>
X-Original-To: i2nsf@ietfa.amsl.com
Delivered-To: i2nsf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 71225C14F718 for <i2nsf@ietfa.amsl.com>; Thu, 1 Dec 2022 06:36:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.083
X-Spam-Level:
X-Spam-Status: No, score=-2.083 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_HK_NAME_FM_MR_MRS=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xg052q7izhci for <i2nsf@ietfa.amsl.com>; Thu, 1 Dec 2022 06:36:14 -0800 (PST)
Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9B3D9C14F6E7 for <i2nsf@ietf.org>; Thu, 1 Dec 2022 06:36:14 -0800 (PST)
Received: by mail-pj1-x1033.google.com with SMTP id x13-20020a17090a46cd00b00218f611b6e9so2255048pjg.1 for <i2nsf@ietf.org>; Thu, 01 Dec 2022 06:36:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=30s1x2zpKdQnpqEqe+MA9+DVJSL2H30F5J1/NYiw7+A=; b=BhV5WQMuzqgsLuy59J2qtOIndNyGKBMg796EG8dE6CsLF/N7c9ChbUXwUF1We20dSY 8tv1rH4mWnC/aqXDPqJlnBPX2Iky85pl20La1opic+24+INT5flPjTRXibyuAvPI1my8 rHRqWe5bj25ZQdrZHiV/mHRiI2ks+kP3HnWF/2EmVJJaVd0th42gW7Pg6Trh8/+7VOT5 VGeG5Lgwr6bSBcY/6XXSQlAwthUHzBjJPv5EVpxegD7zCtiQTuUtNG380+OlaYIFbgU9 3BUNkxaIeI5W19sfbtypuA/1LjA6sv28ykLhDI7rcwl9Ycc0Dre/gV9XTGSSLKwN8WKV 8B2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=30s1x2zpKdQnpqEqe+MA9+DVJSL2H30F5J1/NYiw7+A=; b=IOfS+Nve6vm8bg7CHdruM95gfXSlh3jPUP8Vfl6WhX9XMNcpGhRxZ23ICWCeAQcwPc cl76ZbDksZhG2DmgwNTqY/7t+mJ68w4v0CEiQJzzvpaDYjwBvJn1Gz+kZTW695mrdLHV v+UpPNNpOaaqQtbHux1HM8Troe39wRR1my6Q614JeWyRMlHcP/AyybNDNcLM+/YsqyFu abQBBNk3hK5vnvExkbDOiFLMpFnhYsTsu22Ghf9eyzAUd2vLH4Ss7gD8KXgZ8yQGcVwH BSzqjhsEtObwMoL/UKWXbOfmI5JFweKNDouhpMd2nthcuE/p+LQXenaFYyTJHA8TfO+P kqNg==
X-Gm-Message-State: ANoB5pnn9HDokgYw9L3SqzHyP2rKCTU/QNcIZ0a7bHm39P6dbQtmb8ld etN29ASpnCM4McoLP8FlsGnTCqK9y2a5VThflus=
X-Google-Smtp-Source: AA0mqf5llf4BvUCbaPYY38BVW1kfNtQTovd1iKKjPqqWhgRhOTUoPACkGL11BefYxymEWVHNSSGpXM2RjgWe3K/qf1E=
X-Received: by 2002:a17:902:e948:b0:189:26bb:870b with SMTP id b8-20020a170902e94800b0018926bb870bmr48971718pll.53.1669905374008; Thu, 01 Dec 2022 06:36:14 -0800 (PST)
MIME-Version: 1.0
References: <BN2P110MB11077D28DBFCD00E00B42CCCDC339@BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM> <CAPK2DexRz_N0vRgdJ87nB4jcsfWhqnQvT8XHiOyjZiF2fzbQ2w@mail.gmail.com>
In-Reply-To: <CAPK2DexRz_N0vRgdJ87nB4jcsfWhqnQvT8XHiOyjZiF2fzbQ2w@mail.gmail.com>
From: "Mr. Jaehoon Paul Jeong" <jaehoon.paul@gmail.com>
Date: Thu, 01 Dec 2022 23:35:36 +0900
Message-ID: <CAPK2DexuC2EyDeagRQ0dniEHtiHx64eVgOfVqL+fTWhfpe67Sw@mail.gmail.com>
To: Roman Danyliw <rdd@cert.org>
Cc: "i2nsf@ietf.org" <i2nsf@ietf.org>, skku-iotlab-members <skku-iotlab-members@googlegroups.com>, Patrick Lingga <patricklink888@gmail.com>, "Mr. Jaehoon Paul Jeong" <jaehoon.paul@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000a0592f05eec52478"
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2nsf/f-F6w_iGbIOaqgijPUtbm-BtjDE>
Subject: Re: [I2nsf] AD review of draft-ietf-i2nsf-registration-interface-dm-21
X-BeenThere: i2nsf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "*I2NSF: Interface to Network Security Functions mailing list*" <i2nsf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2nsf/>
List-Post: <mailto:i2nsf@ietf.org>
List-Help: <mailto:i2nsf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Dec 2022 14:36:18 -0000

Hi Roman,
If you are satisfied with this revision, could you put this Registration
Interface draft into the IESG telechat agenda?

Thanks.

Best Regards,
Paul

On Tue, Nov 8, 2022 at 5:47 PM Mr. Jaehoon Paul Jeong <
jaehoon.paul@gmail.com> wrote:

> Hi Roman,
> Here is the revision of Registration Interface YANG Data Model:
>
> https://datatracker.ietf.org/doc/html/draft-ietf-i2nsf-registration-interface-dm-22
>
> Patrick and I have addressed all your comments.
> I attach the revision letter.
>
> Thanks.
>
> Best Regards,
> Paul
>
> On Thu, Oct 27, 2022 at 4:34 AM Roman Danyliw <rdd@cert.org> wrote:
>
>> Hi!
>>
>> I performed an AD review of
>> draft-ietf-i2nsf-registration-interface-dm-21.  More feedback is split into
>> a two section: general comments on the document followed by specific
>> section by section comments.
>>
>> ==[ General Comments
>> I appreciate that this document is intended to specify the registration
>> interface of the I2NSF architecture.  Typically, when the primary intent of
>> a document is to specify a YANG module most operational and architectural
>> considerations can be covered elsewhere.  In my assessment, I2NSF is a
>> special case.  This is a niche YANG module for a specific architecture. To
>> ensure that it can be implemented in a secure and interoperable way,
>> additional details need to be specified beyond what is in RFC8329.
>> Practically, there are no other documents in which to convey this
>> information.  Additionally, what makes this document different than the
>> other four YANG module documents is that it appears to be specifying
>> interactions across administrative domains.  This suggests that even
>> greater care needs to be taken with the Security, Operational, and Privacy
>> Considerations.  To that end, few high-level comments:
>>
>> ** Architectural considerations.
>>
>> -- Who initiates the registration and update process?  Is this Security
>> Controller or DMS initiated, or is it expected to be possible for either to
>> do it?  My confusion originates from Section 3 saying the DMS “uses [the]
>> Registration Interface to provide NSFs developed by the NSF vendor to
>> Security Controller”, but Section 4 saying that “DMS registers NSFs and
>> their capabilities with Security Controller via the registration interface”
>> and Section 4.1 repeats “This submodel is used by DMS to register an NSF
>> with Security Controller.”  Please be consistent and explicit.
>>
>> -- In NETCONF/RESTCONF parlance, who is expected to be the client and
>> server?
>>
>> -- I don’t see it in the YANG module definition, but the text phrases
>> things as if the DMS is serving the NSF to the Security Controller.  For
>> example:
>>
>> (a) Section 3. “Developer's Management System (DMS) in I2NSF framework is
>> typically run by an NSF vendor, and uses Registration Interface to provide
>> NSFs developed by the NSF vendor to Security Controller.”
>>
>> (b) Section 3. “the I2NSF Registration Interface can be used as a
>> standard interface for the DMSs to provide NSFs capability information to
>> the Security Controller.”
>>
>> (c) Section 3. “Security Controller needs to request DMS for additional
>> NSF(s) that can provide the required security capabilities via Registration
>> Interface.”
>>
>> The text in (b) is clear in saying that the registration interface
>> provide NSF capability information to the Security Controller.  (a) and (c)
>> seem to suggest that the NSF itself is being shared through the interface.
>>
>> -- I was under the impression that the DMS was providing “NSF capability
>> information” so I was surprised to see instances of what appeared to be
>> local provisioning information.  For example:
>>
>> (a) Section 4.1.1.1 “The registration interface can control the usages
>> and limitations of the created instance and make the appropriate request
>> according to the status.)”
>>
>> (b) Section 4.1.2.  The “NSF Access Information” (or grouping
>> nsf-access-info per the YANG module) appears to specify the IP address of
>> an NSF
>>
>> (c) YANG.  rpc nsf-capability-query has the DMS returning nsf-access-info
>> which is an IP address of an nsf.
>>
>> Why would the DMS be privy to what appears to be local configuration
>> information.  Does the DMS have a role in provisioning the NSF?  Is there
>> any information about the Security Controller’s configuration stored on the
>> DMS (beyond authorization or authentication information)?
>>
>> ** Operational considerations
>>
>> -- What guides the cadence and workflow associated with the Security
>> Controller getting updates on the NSFs?
>>
>> -- How does the Security Controller discover the DMS?
>>
>> ** Security Considerations
>>
>> -- Thanks for the YANG object level analysis.  Please also provide
>> high-level analysis about the supply-chain risk presented by this
>> architecture which has the Security Controller relying on a DMS.  What
>> would be the impact to I2NSF if the DMS was not available?  If the DMS was
>> compromised?  What does the DMS learn about the Security Controller’s
>> configuration (and by proxy about the security architecture of the domain
>> in which it is fielded) through this interface?
>>
>> -- I recognize the boiler plate YANG security template on language on
>> citing that TLS/SSH and that NETCONF/RESTCONF can restrict access, but this
>> is generic.  Given the described architecture (which entails exchanging
>> information that could affect security configurations across administrative
>> domains) there needs to be more specific guidance on the trust and
>> authentication/authorization models between the Security Controller and DMS.
>>
>> ** What does the YANG module for an “update” operation look like?
>> Registration is covered in Section 5.1.2.1 and Querying is in Section
>> 5.1.2.2.
>>
>> ==[ Section-by-section feedback
>>
>> The following are more detailed section specific feedback.
>>
>> ** Abstract.  Typo. s/for Registration Interface/for the Registration
>> Interface/
>>
>> ** Section 1.  s/security controller/Security Controller/.  Additionally,
>> as noted for the draft-ietf-i2nsf-consumer-facing-interface-dm, since
>> RFC8329 doesn’t mentioned Security Controller and uses Network Management
>> Operator System instead.  Please note their relationship.
>>
>> ** Section 3.
>>
>>    In this case, DMS
>>       uses Registration Interface to update the capability of the NSF,
>>       and this update SHOULD be reflected in the catalog of NSFs.
>>
>> If an update is going to occur, shouldn’t it be mandatory that the
>> catalog is modified?
>>
>> ** Section 3.  Typo. s/from an I2NSF user, Security Controller/from an
>> I2NSF user, the Security Controller/
>>
>> ** Section 4.  The operations summarized in bullets (1) and (2), appear
>> to repeat the objectives 1 and 2 in Section 3?  Is there a reason to do
>> that twice?
>>
>> ** Section 4.1.
>>  The NSF Name contains a unique name of this NSF with the
>>    specified set of capabilities.
>>
>> -- Unique within the scope of all NSF’s published by the DMS?
>> -- I note that draft-ietf-i2nsf-capability-data-model provides no
>> guidance beyond "The name of Network Security Function (NSF)", and on a
>> registration operation is uses that definition.  As an side, on the rpc
>> query response, there is normative language in the YANG module.
>>
>> ** Section 4.1.1.1. Should this “NSF Specification” include other
>> dimensions like memory or disk?  These are exposed alarms in the
>> monitoring-data-model.
>>
>> ** Section 4.1.1.1.
>>
>>    This information represents the processing capability of an NSF.
>>
>> This sentence summarized the “NSF Specification” as “processing
>> capability”.  However the descriptive text notes that this sub-model
>> element covers both “processing” and “bandwidth”.
>>
>> ** Section 4.1.1.1.
>>    Assuming that the current workload status of each NSF is being
>>    collected through NSF monitoring
>>    [I-D.ietf-i2nsf-nsf-monitoring-data-model], this capability
>>    information of the NSF can be used to determine whether the NSF is in
>>    congestion by comparing it with the current workload of the NSF.
>>
>> Is this guidance only intended to cover “bandwidth”?  I ask because I
>> don’t see a way to align the “% CPU load” metrics in the
>> monitoring-data-model with the processing-average and processing-peak
>> fields whose units are GHz.
>>
>> ** Section 4.1.1.1.
>>
>> These two information can be
>>    used for the NSF's instance request.
>>
>> -- What is an instance request?
>> -- Editorial.  "These two information" doesn't parse.
>>
>> ** Section 4.1.2.  NSF Access Information.  See earlier comments on not
>> understanding why this information is in the model.  Setting that aside,
>> and just thinking of this container as what is necessary to connect to an
>> NSF over NETCONF/RESTCONF.
>>
>> -- Isn’t there also the possibility of various credentials being needed
>> to make a connection?  Are they not represented for a reason?
>>
>> -- Why are domain names not supported?
>>
>> ** YANG.  container processing
>>
>> I believe this is intended to express the processing capability of the
>> NSF.
>>
>> -- Could the difference between “processing-average” and
>> “processing-peak” be explained.  Is the latter expressing a concept like
>> “Intel Turbo Boost”?
>>
>> -- Could the kind of decision support this is driving be better
>> explained.  I ask because I’m not sure that GHz is the right unit.
>> Comparing clock speed absent a lot of other factors doesn’t seem
>> meaningful.  Off the top of my head (and I’m not proposing this), something
>> like BogoMips or a benchmark seems more applicable.
>>
>> -- How would some of these figures be relevant in a virtualized
>> environment?
>>
>> ** YANG.  container bandwidth. Outbound/inbound-average and -peak field.
>>
>> “The network bandwidth available to the NSF”
>>
>> -- Is this measuring the capacity of the NICs, throughput to
>> inspect/groom/filter a particular network load or the bandwidth of the
>> links provisioned to the NSF?
>>
>> -- If this is the provisioned bandwidth, please see my comments inquiring
>> about the role of the DMS with provisioning information.
>> -- If this is measuring capacity, then “bandwidth” doesn’t seem like the
>> right metric (maybe throughput)?  What would “peak” throughput mean?
>>
>> ** Section 7.  Please do not specifying normative behavior for the
>> attacker (i.e., “The attacker MAY …”, say “The attacker may”).
>>
>> ** Section 7.
>>
>> nsf-registration: The attacker MAY try to gather some sensitive
>>       information of a registered NSF by sniffing this.
>>
>> Sniffing implies on-path inspection.  Is the intent different here?
>> Shouldn’t the use of TLS or SSH preclude that?  The subtext here is a
>> controlling read-access to the DMS server (I think). Can the threat please
>> be clarified?
>>
>> ** Section 7.  For the “readable node analysis”, the following assessment
>> is used for the nsf-specification and nsf-capability-info:
>>
>> The attacker MAY gather the {specification / capability information}
>>       information of any target NSF and misuse the information for
>>       subsequent attacks.
>>
>> I would expect that knowing that a particular NSF is fielded by a
>> controller is of interest to the attacker as described.  Is this
>> architecture, is the information tied to the specific and capability
>> information generic across all instances of that NSF for that vendor’s
>> deployment base?
>>
>> ** Section 7.
>>
>>    *  nsf-capability-query: The attacker MAY exploit this RPC operation
>>       to deteriorate the availability of the DMS and/or gather the
>>       information of some interested NSFs from the DMS.
>>
>> If the DMS is a vendor, wouldn’t the product capabilities be public in
>> some cases?  Would that be worth clarifying?
>>
>> ** Appendix A.  Step 5.
>>
>>    5.  The NSF can have processing power and bandwidth.
>>
>> Could this please be made more descriptive.
>>
>> Regards,
>> Roman
>> _______________________________________________
>> I2nsf mailing list
>> I2nsf@ietf.org
>> https://www.ietf.org/mailman/listinfo/i2nsf
>>
>