Most of the devices I think of as actual IoT devices have no direct UI/shell.  
Your only interaction with them after initial “install/configure” is through 
their cloud web service interface.  Having said that I think your model is fine.

I would suggest detecting device reboot would be one signal to clear quarantine 
state.  Since MUD “misbehavior” is mostly instantaneously detectable (1 
packet), I am not that concerned that the device might reboot for others 
reasons and still be infected.

One might keep a counter and a time stamp of quarantine clears and if you a 
device had N MUD violations after quarantine clears in X time, lock it down in 
quarantine or completely take it off line.

dougm

--
DougM at NIST


From: "IETF-MUD LIST:" <[email protected]> on behalf of Mudumbai Ranganathan 
<[email protected]>
Date: Tuesday, July 9, 2019 at 4:13 PM
To: Michael Richardson <[email protected]>
Cc: "[email protected]" <[email protected]>, "[email protected]" <[email protected]>, Eliot 
Lear <[email protected]>, "[email protected]" <[email protected]>
Subject: Re: [Mud] [OPSAWG] putting quarantined IoT devices behind a captive 
portal

The current draft 
https://datatracker.ietf.org/doc/draft-ietf-capport-api/<https://datatracker.ietf..org/doc/draft-ietf-capport-api/>
Assumes that the "quarantined device" can access a subset of the ACE's allowed 
to the "unquarantined" device.
However, I can think of a scenario where this does not have to be the case. I'd 
propose to generalize this.

i.e. There are two sets of ACL's - one for normal operation and one for 
quarantined access. (i.e. quarantine access is not necessarily a subset of 
regular access).

Use case:

Under normal circumstances, the device does not need SSH access (port 22 is not 
open). However, if the device is misbehaving some external agent (or human 
maybe) logs in and investigates the issue.  The fix could involve copying new 
firmware.

Does this make sense?

Another thing that is missing currently is how to "clear" the quarantine state 
at the enforcement point. This would need an API defintion of we want to make 
that portable.

Regards,

Ranga


On Tue, Jul 9, 2019 at 2:39 PM Michael Richardson 
<[email protected]<mailto:mcr%[email protected]>> wrote:

Eliot Lear <[email protected]<mailto:[email protected]>> wrote:
    > I’m not quite certain how it would work.  Can you show a flow that will
    > work for an IoT device (e.g., headless and no display)?

Device gets quarantined, and the MUD-controller moves it into an isolated
"VLAN".  I put air/scare quotes around VLAN, because it's a "MAC-address
VLAN", not an 802.1Q thing.  It's really just a layer-2 ACL.

{We have no way to force the mishaving device into tagging it's packets, nor
can we force it onto some other ESSID. We can't do a "port-based" VLAN,
because wifi has no ports, and we don't really know how many unmanaged
switches might be on the port anyway.
One might map this onto a IEEE 802.1Q VLAN across a backbone}

Instead of just dropping all traffic for a device in this category,
all traffic (other than excepted traffic if you implement
https://datatracker.ietf.org/doc/draft-richardson-shg-mud-quarantined-access/<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-richardson-shg-mud-quarantined-access%2F&data=02%7C01%7Cdougm%40nist.gov%7Ca08eabd297e242cbe7fb08d704a9f772%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636983000363419649&sdata=t5GQKZst%2BCezofO4a7vGekkILbIkf%2FSWmG5vfcX9Ao4%3D&reserved=0>)
would go into a captive portal system.

Such a system would, according to
https://datatracker.ietf.org/doc/draft-ietf-capport-architecture/<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-capport-architecture%2F&data=02%7C01%7Cdougm%40nist.gov%7Ca08eabd297e242cbe7fb08d704a9f772%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636983000363429646&sdata=%2FYsk7daSV5qv%2B%2B5gS7YDyH%2BhlwDZhkdbrYij9RQn8GA%3D&reserved=0>
receive a message when it initiates connections which are not allowed.
(While the capport WG contemplated an ICMP unreachable message with a
URI in it at one point, that is not the current design)

Actually, I have no idea from reviewing the documentation what the
appropriate "you might be captive" ICMP is now.. THERE IS ONE RIGHT?

Once the IoT device gets such a message, it can use the API
described at: 
https://datatracker.ietf.org/doc/draft-ietf-capport-api/<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-capport-api%2F&data=02%7C01%7Cdougm%40nist.gov%7Ca08eabd297e242cbe7fb08d704a9f772%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636983000363429646&sdata=Na%2FWWVybCuYWxOYILb%2BOlL99q1bZNz0qopbhVWggqI4%3D&reserved=0>
to retrieve a JSON object telling it that it is captive. At which point, it
can flash a LED, or attempt a firmware upgrade, or maybe just reboot if a
timer goes off.  (%)

This requires that the IoT device get the captive portal API end point, which
https://datatracker.ietf.org/doc/draft-ietf-capport-rfc7710bis/<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-capport-rfc7710bis%2F&data=02%7C01%7Cdougm%40nist.gov%7Ca08eabd297e242cbe7fb08d704a9f772%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636983000363439631&sdata=Nafuv7GJEwFuQeA5GxByWPU8aJGd5Dxunv%2FbOyqsFjA%3D&reserved=0>
 can deliver
via DHCPv4/v6 or RA.


    >> On 9 Jul 2019, at 16:41, Michael Richardson 
<[email protected]<mailto:mcr%[email protected]>>
    >> wrote:
    >>
    >> Signed PGP part
    >>
    >> Between editing drafts yesterday, I got to thinking about CAPPORT.  I
    >> have been working on what to do when an IoT device violates it's MUD
    >> profile.  There are a bunch of issues around this.
    >>
    >> Yesterday, it occured to me that when such a device is quarantined (I
    >> really think it should be "quaranteed", but that's not a word) that
    >> the capport controls and APIs should be available to the device to
    >> learn what went on.
    >>
    >> This is not new, I think that this as been the approach of most
    >> enterprise NEA systems upon encountering "infection".  This has, I
    >> assume, involved forced HTTP proxies to inform human..  But, if we have
    >> APIs, we can inform device as well.
    >>
    >> Is this on anyone's radar?
    >>
    >> --
    >> Michael Richardson 
<[email protected]<mailto:mcr%[email protected]>>, Sandelman Software 
Works
    >> -= IPv6 IoT consulting =-
    >>
    >>
    >>
    >>
    >>


--
Michael Richardson <[email protected]<mailto:mcr%[email protected]>>, 
Sandelman Software Works
 -= IPv6 IoT consulting =-



--
Mud mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/mud<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fmud&data=02%7C01%7Cdougm%40nist.gov%7Ca08eabd297e242cbe7fb08d704a9f772%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636983000363439631&sdata=jfX9DMHG9ccfEW92JCQWhPO1FAXKFGf2o4L1M3lTlJY%3D&reserved=0>


--
M. Ranganathan
_______________________________________________
OPSAWG mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsawg

Reply via email to