Equifax blames open-source software for its massive security breach, Really?
zdnet.com
zdnet.com
Pointing out that patient zero in a breach was a server running Struts is, obviously, not the same thing as "blaming open source". ZDNet just wants it to be, so that they can get their share of clicks for a story they've done no real reporting on.
Nobody Fortune 500 company besides Google, Microsoft, Facebook and Apple really does this effectively (and even then, the track record isn't great). But that doesn't change anything about the analysis.
>According to an unsubstantiated report ... citing no evidence... The firm's source.....is believed to be Equifax.
Many companies successfully run very secure large scale operations on open source, specifically Google.
But let's be honest here, the only other large-scale "trusted" enterprise vendors are Microsoft and Oracle and their developers are getting to be way more expensive than a typical "open-source developer". And do we really want to trust those who already betrayed us way back when?
So what are the probable solutions here? Most niche (and sometimes widely-used) open-source libraries are notoriously buggy, lack documentation, and usually don't have more than a few real contributors. Hybrid model perhaps? But what does that really mean?
First layer -- if you are running on RedHat or CentOS, make sure to have SElinux in enforcing mode, and resolve any SElinux errors the correct way.
Second layer -- separation of concerns. The same way that many businesses accounting operations are set up, you need to have a security breach at several layers at the same time to have an issue.
This may mean that having the public facing web server talk to an app on an internal server, using a defined API, and that internal server only has firewall rules open for what is required.
That internal app server then may have access to a database server in another security zone, making requests utilizing specific API patterns. At each level, have auditing software to look if any of those patterns change unexpectedly. Also, rate-limit the amount of data that can be pulled from the DB server on a daily basis -- this would mitigate a massive data dump situation.
You could go even further, and have the web-facing side talk to an internal web server, after going through a layer that validates each request fits a given pattern. Of course this is a pain to keep updated as the app gets updated, but then again when the consequences of a security breach are high enough, this level of pain is worth it.