Paul Wouters has entered the following ballot position for
draft-ietf-opsawg-mud-iot-dns-considerations-12: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to 
https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-opsawg-mud-iot-dns-considerations/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

I unfortunately find this document very hard to understand. Overall, I think it
would do better to split out the use cases. It seems to conflate or mix three
distinct use cases: 1) A CPE with firewall+MUD-controller and an IoT MUD
client, 2) A CPE with firewall with separate MUD controller and IoT MUD client,
3) An IoT device and a centralized enterprise MUD controller and centralized
enterprise firewalling. This then gets more complicated due to different
assumptions of where the DNS resolver lives: On the CPE, on the LAN, in the
Enterprise, on the public Internet, and what DNS protocols to use: port 53 or
DoH/DoT/DoQ. After reading the document I do not find clear guidance on the
MUD+DNS issue. On the contrary, I feel like this is impossible to deploy.

If the MUD controller and DNS resolver are not within the same CPE, it is
unclear how communication should work to synchronize the required DNS lookups,
results and firewall synchronisation between MUD controller, IoT device and
firewall/router device. It seems a protocol needs to be specified but hasn't.
Lots of talk about synchronizing the DNS servers to use and do independent DNS
lookups seems very problematic.

I feel that MUD still needs to evolve first to be further specified as a
technology, before a document about (remainig) DNS considerations can be
published.

I've put my specific item feedback in the comments section below.


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

In the Introduction the numbered sections are wrong (eg "second section", 
"third section")

An issue is raised about delays as a result of a cold cache. I'm not sure why
that matters. It is a few seconds delay that should only happen once every
couple of weeks ?

Section 3.1.1 does not take prefetching into account ?

        By doing the DNS lookups when the traffic occurs, then a passive
        attacker can see when the device is active

Isn't this always the case? No application splits the DNS lookup from using
the obtained IP by a large amount of time to counter traffic analyses ?
Although the app might cache the result and re-use long past the TTL time,
which is a problem if the MUD controller and firewall base any ACL addition
and removal on DNS TTLs.

       This does not require access to all on-path data, just to the
        DNS requests to the bottom level of the DNS tree.

I don't fully understand this? If query-minimalization is used, does this
still apply? I don't think so and if you care about DNS privacy, then surely
you use query-minimalization and perhaps a DoT/DoH to an external party on top?

       Aside from the list of records being incomplete, the list may
        have changed between the time that the MUD controller did the
        lookup and the time that the IoT device did the lookup

Isn't the IoT device forced to use the firewall/MUD DNS Server? If not, there
is already a DNS extraction channel and MUD has lost already.

       In order to compensate for this, the MUD controller SHOULD
        regularly perform DNS lookups in order to never have stale data.

This will cause a lot of unused lookups to be forever refreshed. This seems bad
and with ephemeral redirections (eg 32217321835.pool.hue.philips.com) seem to
use up a lot of memory on the router for DNS and firewall rules.

        it may be necessary to avoid local recursive resolvers.

Why? Shouldn't the IoT device be FORCED to use the local firewall/MUD
associated DNS server? (see earlier point)

        The MUD controller SHOULD incorporate its own recursive caching DNS 
server.

What if the network firewalls all DNS except the allowed one? After all,
we want to protect the network by doing DNS filtering? If you think you
need the MUD controller to limit DNS queries it sends to the DNS recursive,
then perhaps the MUD application should honour TTL and not do repeated lookups?
If they would be outside of the TTL, then you have to do a real lookup against
the real DNS server anyway? But even so, a DNS caching server should be able to
easilly serve many queries that are coming from DNS cache.


        These lookups must be rate limited to avoid excessive load on
        the DNS servers, and it may be necessary to avoid local recursive
        resolvers. The MUD controller SHOULD incorporate its own recursive
        caching DNS server.

Wouldn't the local network now have those DNS entries constantly refreshed
in both the MUD controller and the local DNS cache (because every home
router has a DNS resolver with cache). It is often not possible to bypass
the DHCP obtained DNS servers because the router will block those to be
able to do content filtering and mailware protection based on DNS.

if the IoT device does a DNS lookup, it goes via the router's advertised
DNS. If this is not relayed to the MUD controller, it will never know
and it wont work so now there is another protocol needed to relay that
DNS from router to mud controller?

        A MUD controller that is aware of which recursive DNS server
        the IoT device will use can instead query that server on a
        periodic basis.

That's a race condition waiting to happen though. It _could_ do a cache
snoop query (eg without RD=1) and it wouldn't trigger an upstream query.

        Any geographic load balancing will base the decision on the
        geolocation of the recursive DNS server, and the recursive name
        server will provide the same answer to the MUD controller as to
        the IoT device.

There is no guarantee this is true. As the document says earlier, many
services return load balanced answers or round robin answers.

        The resulting name to IP address mapping in the recursive name
        server will be cached, and will remain the same for the entire
        advertised Time-To-Live reported in the DNS query return. This
        also allows the MUD controller to avoid doing unnecessary queries.

An IoT device that does a DNS lookup and gets an answer with TTL=3600
isn't stopped from using its answer for weeks. It is not even against
any RFC if it can keep its TCP connection up for those weeks. The MUD
controller doing repeated DNS lookups isn't going to know which of
these answers is still in use or not.

Some text at the end of Section 3 finally describes two very different
use cases that the document should have started out with. The home network
and the Enterprise. It realizes these things only really work well when
inside a single CPE. But wont work for Enterprise deployments. But I find
the Enterprise case weak. Why would an Enterprise ever allow its IoT devices
to send packets to outside the Enterprise?

        The first is that the update service server must decide whether
        to provide an IPv4 or an IPv6 literal.

Why can's such a REST API not return a json struct with both?

        A third problem involves the use of HTTPS

But it was talking about downloading a signed firmware blob. You don't
need HTTPS for that. The signature can detect unauthorized modifications.
If you want privacy, you can still do HTTPS to an IP and just not validate
the X.509 certificate. With TLS ephemeral keys that gets you privacy for
passive monitors.

        A non-deterministic name or address that is returned within
        the update protocol, the MUD controller is unable to know
        what the name is. It is therefore unable to make sure that the
        communication to retrieve the new firmware is permitted by the
        MUD enforcement point.

Sure, but if the IoT device can tell the MUD controller which name it
needs for the firmware update, a compromised IoT device can tell it
the firmware is at evil.com and get to unauthorized places. The only
way to avoid this is for the IoT device to limit the domains allowed
statically from the signed mud profile, and not allow HTTP redirects or
random CDN redirects. If you allow that, you have again lost already.

Define what "geofenced names" are? Only existing locally? Within a LAN
or home or isp network?

        Use of public resolvers instead of the provided DNS resolver,
        whether Do53, DoQ, DoT or DoH is discouraged. Should the network
        provide such a resolver for use, then there is no reason not to
        use it, as the network operator has clearly thought about this.

This seems to contradict the earlier text. If the DHCP handed out 8.8.8.8,
then the IoT device and the MUD controller both using 8.8.8.8 could end up
on a different node of the ANYCAST cluster and thus get different replies
when there is round robin etc happening.

        It is recommended that use of non-local resolvers is only done
        when the locally provided resolvers provide no answers to any
        queries at all, and do so repeatedly. The use of the operator
        provided resolvers SHOULD be retried on a periodic basis, and
        once they answer, there SHOULD be no further attempts to contact
        public resolvers.

Assuming the recommendation is valid for MUD controller and IoT device,
there is again a race condition where they can end up using different
DNS servers and thus getting different answers and getting the wrong ACLs
installed. It really seems to me that more coordination is needed between
the MUD controller, the IoT device and the DNS server, and that this is
really only possible if the MUD controller is the firewall/router and
DNS server within a single CPE.

        Finally, the list of public resolvers that might be contacted
        MUST be listed in the MUD file as destinations that are to
        be permitted! This should include the port numbers (i.e., 53,
        853 for DoT, 443 for DoH) that will be used as well.

Doesn't this again open up a free channel for a compromised IoT device?
If it can reach 8.8.8.8 it can exfiltrate by sending arbitrary queries
to it. I would assume a MUD file would limit DNS queries to certain
domains but if the IoT device directly connects to 8.8.8.8 (and even worse,
over DoT or DoH), then all MUD protection has been bypassed.

        Use of Encrypted DNS connection to a local DNS recursive resolver
        is the preferred choice.

I would argue this is not always the preferred choice. Especially with
the ADD drafts allowing Delegated Credentials et all.

        IoT devices that reach out to the manufacturer at regular
        intervals to check for firmware updates are informing passive
        eavesdroppers of the existence of a specific manufacturer's
        device being present at the origin location.

While true, it is unavoidable and perhaps the responsibility of the
CPE to have a DoT/DoH upstream trusted server or to use a public
trusted one where being part of a client pool gives some limtied privacy
back. But regardless, I don't think it relates to MUD and is not a
consideration for MUD IoT.



_______________________________________________
OPSAWG mailing list
OPSAWG@ietf.org
https://www.ietf.org/mailman/listinfo/opsawg

Reply via email to