IOT Developer Security Checklist
IoT security is a messy problem, quite frankly.  Most (is it safe to say all?) of us carry around IoT devices with us every day that are based on software with documented, in-the-wild, security issues -- and the Android ones of us are the most at risk depending on the age, manufacturer and carrier of the device.<p>I agree with the author&#x27;s original assessment -- don&#x27;t make your device internet connected (or even capable of connecting to the internet), if there&#x27;s not a spectacularly good reason to do so.  The downside is just too big, currently.  If you plan on it, you need to proceed extremely cautiously and understand that huge companies with top-tier engineers -- <i>Google</i>, for instance -- haven&#x27;t figured it out completely, yet.  While their devices are probably better secured[0] than the IoT white-label power outlet I purchased on the clearance rack at Aldi (US), they still have a long way to go.  Is that feature that allows your dish washer to send you push notifications when it&#x27;s completed worth the lifetime of security patching you&#x27;re going to have to do (or going to fail to do at your customer&#x27;s peril)?<p>The biggest problem with IoT as it&#x27;s done, today, is a simple one of attack surface.  Every device independently accesses the Internet with a poor gate-keeper -- often a consumer-grade firewall which we <i>hope</i> is configured to properly firewall inbound, but is probably also running an out-of-date kernel, or has some other security vulnerability[1].  For the simpler devices, I lean more toward using the &#x27;hub&#x2F;Z-Wave&#x2F;Zigbee&#x27; approach.  At least with a hub, I have <i>one</i> device that is directly on the internet, and several that can&#x27;t do much beyond talking to the hub.  The problem here, though, is that none of these hubs are aiming to be the &quot;leader in security in the IoT space&quot;, (which is why my hub is a custom-configured Linux box w&#x2F;Z-Wave&#x2F;ZigBee dongle[2] which I can harden myself).<p>The problem for most IoT devices is one that I don&#x27;t see an easy solution to -- a common configuration is one of a low-capability device with a general purpose operating system on it with custom software probably written by engineers in a company that is too small to afford the necessary security auditing required -- and, effectively, putting it in the worst war-zone you could put it in.  And consumers pretty-much don&#x27;t care (yet), they just want the feature[3].<p>There was also one feature I felt was missed by the author, a hard cut-off switch[4].  We put valves on water-heaters, appliances that connect to the gas line, and just about anything of circumstance that connects to electricity.  If all else fails, or if I just really wanted the Thing part of the device, I can take it off of the network in a way that leaves no ability for the software powering it to bypass.  In a critical situation -- one where something prevents the device from being patched and the device will be recalled, the company can send along instructions[5] along the lines of &#x27;you can still use it while we work out the logistics of the recall, but it&#x27;ll just be a Thing without any Internet).<p>[0] I&#x27;m thinking &#x27;home&#x27; rather than the general Android ecosystem since a lot of Android&#x27;s problems are related to the phone vendors and carriers (at least in the US).<p>[1] And with IPv6 rolling out from ISPs, how many of these devices will have public IPs that will be able to be discovered every time they reach out to pick up the current time.  Don&#x27;t think that can&#x27;t happen -- I was shocked to find that my dad&#x27;s PC had an IPv6 address and a quick check from the first hit on &#x27;IPv6 Firewall Test&#x27; yielded all red.  I&#x27;m not sure how many of these devices have IPv6 enabled by default, but I wouldn&#x27;t be surprised if some vendors enabled it (or didn&#x27;t realize it was enabled when it was).<p>[2] Which have their own problems -- but the worst they could do is turn my lights on and off ... at least my lightswitch won&#x27;t be participating in a bot net AFAIK.  I also don&#x27;t own any ZigBee door locks or the like (however, I can personally attest to the low quality of the physical lock I <i>do</i> have after spending a Saturday on YouTube making a &#x27;key&#x27; based on a video that showed how to break my specific, Schalage brand &#x27;high-security&#x27; lock).<p>[3] I&#x27;ve said more than a few times that I need to attach a smart plug to my washer and dryer because the buzzer is too quiet to hear and I always forget about my clothes during a cycle.  It&#x27;d be nice to get a text message.  It&#x27;s a <i>stupid</i> feature when measured against the risk (though, as mentioned, my smart plug isn&#x27;t directly internet connected).<p>[4] &#x27;Hard&#x27; as in a mechanical switch that actually disconnects the Wi-Fi&#x2F;network module from the hardware.<p>[5] And the honest ones will ship with the button in the &#x27;off&#x27; position with the &#x27;Connecting the Device to the Internet&#x27; part of the instructions explaining what it does, how to enable connectivity, and a little bit about the risks they&#x27;re entering into by choosing to connect it.