{"id":1859,"date":"2016-04-19T11:31:34","date_gmt":"2016-04-19T10:31:34","guid":{"rendered":"https:\/\/www.ofcourseimright.com\/?p=1859"},"modified":"2016-04-19T11:31:34","modified_gmt":"2016-04-19T10:31:34","slug":"heres-mud-in-your-eye-a-way-to-protect-things-on-the-internet","status":"publish","type":"post","link":"https:\/\/ofcourseimright.com\/?p=1859","title":{"rendered":"Here&#8217;s MUD in your eye!  A way to protect Things on the Internet"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/d\/d6\/Defense.gov_News_Photo_110417-A-5937M-004_-_U.S._Army_Pvt._Charles_Shidler_crawls_through_mud_searching_for_the_next_covered_fighting_position_during_training_for_individual_movement.jpg\" alt=\"U.S. Army Pvt. Charles Shidler crawls through mud\" width=\"219\" height=\"146\" \/>Since 2011 <a href=\"http:\/\/www.cisco.com\">Cisco Systems<\/a> has been forecasting that there will be at Since least <strong>50 billion<\/strong> devices connected to the Internet by the year 2020.\u00a0 Those are a lot of Things. but that&#8217;s not the number I&#8217;m worried about.\u00a0 Consider this: <a href=\"http:\/\/www.apple.com\">Apple<\/a> manages somewhere in the neighborhood of <a href=\"http:\/\/www.apple.com\/pr\/library\/2016\/01\/26Apple-Reports-Record-First-Quarter-Results.html\">1 billion active iOS devices on their own<\/a>, and there are about <a href=\"http:\/\/www.androidcentral.com\/google-says-there-are-now-14-billion-active-android-devices-worldwide\">1.4 billion Android devices<\/a> that are also managed, though less well.\u00a0 Rather, it&#8217;s the number of <strong>types of things<\/strong> that people should be concerned about.\u00a0 To begin with,not everyone is going to do such a great job at managing their products out in the field as Apple and Google do.\u00a0 Moreover, even Apple and Google end support for different versions of their products after some period of time.<\/p>\n<p>I call this the <strong><span style=\"text-decoration: underline;\">Internet of Threats<\/span><\/strong>.\u00a0 Each and every one of those devices, including the device you are reading this note on right now, probably has a vulnerability that some hacker will exploit.<\/p>\n<p>A good number of the manufacturers of those things will <strong>never<\/strong> provide fixes to their customers, and even those that do have very little expectation that the device will ever be updated.\u00a0 Let&#8217;s put it this way: when was the last time you installed new software on your printer?\u00a0 Probably never.<\/p>\n<p>The <strong>convenient <\/strong>thing is that many Things probably only have a small set of uses.\u00a0 A printer prints and maybe scans, thermostat like a Nest controls the temperature in your house, and a baby monitor monitors babies.\u00a0 This is the exact opposite of the general purpose computing operating model that your laptop computer has, and we can take advantage of that fact.<\/p>\n<p>If a Thing only has a small number of uses, then it <img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-1861\" src=\"https:\/\/www.ofcourseimright.com\/blog\/wp-content\/uploads\/2016\/02\/aspirin-1-180x300.png\" alt=\"aspirin\" width=\"140\" height=\"234\" srcset=\"https:\/\/ofcourseimright.com\/blog\/wp-content\/uploads\/2016\/02\/aspirin-1-180x300.png 180w, https:\/\/ofcourseimright.com\/blog\/wp-content\/uploads\/2016\/02\/aspirin-1.png 435w\" sizes=\"auto, (max-width: 140px) 85vw, 140px\" \/>probably only communicates on the network in a small number of ways.\u00a0 The people who know about those small number of ways are most likely the manufacturers of the devices themselves.\u00a0 If this is the case, then what we need is a way for manufacturers to tell firewalls and other systems what those ways are, and what ways are particularly unsafe for a device.\u00a0 This isn&#8217;t much different from a usage label that you get with medicine.<\/p>\n<p>So what is needed to make all of this work?\u00a0 Again, conveniently most of the components are already in your network. The first thing we need is a way for devices to tell the network where to get the manufacturer usage description file (or MUD file).\u00a0 There&#8217;s an excellent example of that in your browser right now, called a Universal Resource Locator (URL), like https:\/\/www.ofcourseimright.com.\u00a0 In our case, we need something a bit mroe structured, like https:\/\/www.example.com\/.well-known\/mud\/v1\/someproduct\/version.\u00a0 How you get that file, however, is exactly the same as how you got to this web page.<\/p>\n<p>Next, we need a way for the Thing to give the URI to the network.\u00a0 Once again, the technology is pretty much done.\u00a0 Your device got an IP address today using Dynamic Host Configuration Protocol (<a href=\"https:\/\/www.ietf.org\/rfc\/rfc2131.txt\">DHCP<\/a>), which provides an introduction between the device and the network.\u00a0 All we need to do is add one new parameter or option so that the client can simply pass along this MUD URI.\u00a0 There are even more secure ways of doing that using public key infrastructure (PKI) approaches such as IEEE&#8217;s 802.1AR format and 802.1X protocol.\u00a0 The nice thing about using a manufacturer certificate in 802.1AR is that it is then the manufacturer and not the device itself that is asserting what the device communication patterns are.<\/p>\n<p>Now, thanks to DHCP or IEEE 802.1X, the network can go get the MUD file.\u00a0 What does that look like?\u00a0 At the moment, &lt;it&gt; &lt;looks&gt; &lt;like&gt; &lt;a&gt; &lt;bunch&gt; of &lt;XML&gt;.\u00a0 {&#8220;it&#8221; , [&#8220;may&#8221;, &#8220;look&#8221;, &#8220;more&#8221;], &#8220;like, {&#8220;json&#8221;}} in the future.\u00a0 The good news here is that once again, we&#8217;re building on a bunch of work that is already complete.\u00a0 The XML itself is structured using a data model called <a href=\"https:\/\/tools.ietf.org\/html\/rfc6020\">YANG<\/a>.\u00a0 So long as it conveys to the network what sort of protections a device needs, it could be anything, but YANG will do for now.<\/p>\n<p>Finally, the basic enforcement building block is the access control function in a router or access point.\u00a0 That function says what each device can communicate with, and they&#8217;ve been around since the earliest days of the Internet.<\/p>\n<p>And that&#8217;s it.\u00a0 So now if I have printer from HP and they make a MUD file available, they might tell my network that they only want to receive printer communications, and that the printer should only ever try to send certain types of unsolicited messages.\u00a0 If anyone tries to contact the printer for another use, forget it.\u00a0 If the printer tries to contact CNN \u2013 or more importantly random devices on my network, it&#8217;s probably been hacked and it will be blocked.\u00a0 Google can do the same with a Nest.<\/p>\n<p>We&#8217;re talking about this at the IETF and elsewhere.\u00a0 What do you think?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How can the network protect so many types of things?  We need for manufacturers to step up and tell us.<\/p>\n","protected":false},"author":172,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87,9],"tags":[511,519,518,496],"class_list":["post-1859","post","type-post","status-publish","format-standard","hentry","category-internet","category-security","tag-iot","tag-manufacturers","tag-mud","tag-security"],"_links":{"self":[{"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/posts\/1859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/users\/172"}],"replies":[{"embeddable":true,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1859"}],"version-history":[{"count":4,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/posts\/1859\/revisions"}],"predecessor-version":[{"id":1941,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=\/wp\/v2\/posts\/1859\/revisions\/1941"}],"wp:attachment":[{"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ofcourseimright.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}