| The problem is that software engineering is hard. Immensely so. On a scale of engineering "hardness" (meaning, we can predict all side affects of action), software engineering is closer to medicine than to, say, civil engineering. We know stresses, materials, and how they interact. We can predict what will happen, and how to avoid edge cases. Software? Is there any commonly used secure software? Forget about Windows and Linux. What about OpenBSD? Did it ever have a security hole? And that's just the OS. What about software? There are just too many variables. So what will happen? There will become "best practices" enshrined by law. Most will be security theater. Most will remove our rights, and most will actually make things less safe. Right now, the number one problem of IoT security is fragmentation. Samsung puts out an S6, three years later stops updating it, a hole is found, too bad. Game over. The problem is that "locking firmware" is common "security theater", which, if there'll ever be a legal security requirement on IoT, it'll require locked bootloader and firmware. And you can't make a requirement to "keep code secure", because then the question will be for "how long"? Five years? 10 years? |
This level of hubris is pretty revolting. Software engineering is easy. Writing secure software is easy. The difference between civil engineering or medicine and software engineering is that practitioners of the former are held responsible for their work, and software engineers are not and never have been.
Nothing will improve until there are consequences for failure. It's that simple.