First, there is no unbreakable software. Second, software is written by average people vs above-the-average people who are hacking it. Mission impossible.
First, there is no unbreakable software. Second, software is written by average people vs above-the-average people who are hacking it. Mission impossible.
(1) How do you improve the state of the art, so that, if a company is serious about security, they can succeed?
(2) How do you fix the way companies are run so that they actually even try to take security seriously?
Both are big contributors to the overall problem.
I do think there is room for improvement in #1, so it's something we should be looking at. But we could get a lot of mileage out of #2 even if there were no way to move the needle on #1.
With regards to skill sets, I have repeatedly found that people who engage in hacking range from skill sets of "knowing how to use a hacking kit" to "uber developer with security knowledge". There is a wide range of skills and knowledge.
However, it is practically an entry requirement for someone in the security space to view software differently than most programmers. That is defined as non-average.
In turn, I guess a security professional is more scarce than an average developer. The question is if all security professionals are hired to strenghten systems, or some of them to break it.
More to the point, hackers can be very motivated to break things in a way that the average developer is not motivated to secure them.
The real issue is that software has many bugs as the sum of all contributes to it, and all it takes is finding one.
What I mean is that it takes just one sloppy developer to introduce a bug, and that's all you need.
Making unbreakable software is a much harder task than breaking it.
It's not about who's smarter, it's about what's easier.
Like, what? “Thank god, I only hire developers with a skill level of 78 so it will take a developer of skill level 79 or above to even have a chance at finding a bug here, and we all know skill level 79 developers are rare so I’m secure!”
This isn’t an RPG, life is full of unquantifiable things and differing conflicting incentives. If anything, the domains in which exceptionally skilled developers often work and the tools they use make bugs more common.
It doesn’t take a Linus Trovalds to find bugs in Linus Trovalds’s code.
By the way the worst clusterfuck I ever saw was caused by a very talented programmer that implemented a very complex object store on disk... the thing was brittle at best, and it failed in very spectacular ways.
Very entertaining to debug
I wrote code with no pressure, tested it used it for months, and with some input that I didn't think about it broke spectacularly... I might be below average programmer (although I would say no, from what I have seen so far), but as I said, the chain is just as strong as its weakest link.
dedicated above-average internal* cybersec staff < (SEC fines + outcry when breach goes public)
* external seems like a different can of worms. perhaps someone in cybersec can refute/expand