Losing the magic
Losing the magic
Posted Dec 6, 2022 15:24 UTC (Tue) by khim (subscriber, #9252)In reply to: Losing the magic by pizza
Parent article: Losing the magic
> Bare-metal embedded (not to mention the actual hardware) requires a _lot_ more discipline than most other software categories.
It requires entirely different discipline, that's the issue.
> On average, you'll find embedded and hw folks a lot more vigorous when it comes to testing/validation, as fixing bugs after things have shipped can be prohibitively expensive.Yes, but more often than not they do bazillion tests and conclude that it's enough to be confident that thing actually works as it should.
Often they are even right: hardware is hardware, it often limits input to your program severely (which makes things like buffer overflow impossible simply because laws of physics protect you). And hardware is rarely behaves 100% like specs say it would behave thus without testing math models wouldn't save you.
Software is thoroughly different: adversary may control inputs so well and do things which are so far beyond anything you may even imagine that all these defenses built by folks with hardware experience and their tests are sidesteped without much trouble.
You need math, logic and rigorous rules to make things work. It's really interesting how attitude of linux kernel developers have slowly shifted from hardware mindset to software mindset when fuzzing guys found more and more crazy ways to break what they have thought was well-designed and tested piece of code.
Now they are even trying to use Rust as a mitigation tool. It would be interesting to see whether it would actually work or not: linux kernel sits between hardware and software worlds which means that pure math, logic and rigorous rules are not enough to make it robust.
