Some patches should be able to be made "hot", but that takes extra ram which is often squeezed to a premium in a device.
I would recommend:
- We not put devices on the internet that do not have a core, hard requirement to be on the internet. This rules out toothbrushes, toilets, pillows etc.
- Devices do not open listening ports and only connect out. This eliminates a whole class of shodan visible attacks.
- Devices give users some option of when an update is required and when the user can apply it. If the device can be managed via a HomeKit or Phone UI - these options can be made pretty usable. Alternatively a yellow light on the front of the device if suitable to indicate an update is available.
Regardless, the current path of listening devices on the internet and not being patched is untenable.
Actually, I don't know of any project that does this - you may get fixes for a number of supported releases, but the expectation is that you upgrade at some point, or its eol for your product.
IoT needs a packaging ecosystem to protect the freedom of its users, instead of allowing IoT devices to independently connect upstream to the manufacturer to get updates. Of course, auto-updates should be the default, because most users won't pay attention, but the user's freedom should be protected and preserved.
Maybe a good legal solution would be to allow automatic updates, but only if user is informed about changes and she can downgrade/revert at any time. Also, the stuff that Microsoft does with Win 8/10 upgrading should be punishable.
I think Android things is built around this idea, with manufacturers having no control on security updates.
For simple, standalone features, this could work well. But when your features are dependent on interacting in some way with other people's connected products, this might not work.
I find this practice absolutely infuriating, and it's a big reason why I abhor the current IoT ecosystem. Sometimes I get busy and don't have time to read a changelog, and I don't want to have to do this on someone else's schedule.
There seems to be no technical way to allow manufacturers to provide transparent security updates without also allowing them to pull the rug out from under you when you least expect it. I think we need some sort of social contract for this, but unfortunately my view seems to be a minority one, given the amount of bullshit that the public seems to tolerate from self-updating devices and apps.