Open source isn't the security problem – misusing it is
- Reference: 1641976204
- News link: https://www.theregister.co.uk/2022/01/12/open_source_isnt_the_problem/
- Source link:
When [1]security vulnerabilities were found in the extremely popular open-source Apache Log4j logging library , we knew we were in trouble. What we didn't know was just how much trouble we were in. We know now. Just ask the [2]Belgian defence ministry . In this ongoing security disaster, many people blame open source for all our troubles.
In the Financial Times (FT), Richard Waters, the newspaper's west coast editor, wrung his hands, saying it's a "little alarming to discover that, more than two decades into the open-source era, [3]glaring security holes sometimes surprise even the experts ."
[4]
Surprising? I think not. It's software. It always has bugs. Sometimes they're really bad bugs. As security maven Bruce Schneier said over 20 years ago: " [5]Security is a process, not a product ." There's no surprise here.
[6]
[7]
Waters went on: "If an orphan software project like this could be sitting in the heart of the world's internet infrastructure, how many other potential time-bombs are out there?"
Orphan? A major Java library such as Log4j? I think not.
[8]
Now, there are vital open-source projects that are orphans. We all know the [9]xkcd cartoon about the tiny but all-important program thanklessly maintained by a person in Nebraska since 2003. The serious part of the joke is that it's not far wrong. Remember [10]OpenSSL's Heartbleed fiasco ?
Today, there are fewer such programs. That's because shortly after Heartbleed bled out, the Linux Foundation and mates started the Core Infrastructure Initiative (CII). Its job, and its successor's, the Open Source Security Foundation (OpenSSF), is to find those little under-supported projects and make sure they get the help they need to keep the lights on and the code safe.
But, repeat after me, "security is a process, not a product." Linus's law, as Eric S Raymond phrased it in his seminal work on open source [11]The Cathedral and the Bazaar , "given enough eyeballs, all bugs are shallow" does work. If, and it's a big if, those eyeballs are there and looking. If the code just sits there getting copied over and over again without a moment's thought, no bugs will be found. Simple, isn't it?
[12]You better have patched those Log4j holes or we'll see what a judge has to say – FTC
[13]Alibaba Cloud slapped by Chinese ministry for mishandling Log4j
[14]Belgian defence ministry admits attackers accessed its computer network by exploiting Log4j vulnerability
[15]Log4j and Omicron: Brothers in harm, mothers of invention
Now some people say that the problem is not enough money. As the programmer Xe argues, " [16]'Open Source' is broken " because even now no one is paying the developers. Xe's not wrong. Ralph Goers, the Log4j maintainer who made the initial fix, confessed [17]he works on Log4j in his spare time and has "always dreamed of working on open source full time." As Xe also remarked, "GitHub stars famously cannot be used to pay rent."
So far, so right. But would Goers get paid to go over old Java code with a fine-tooth comb looking for security vulnerabilities even if Oracle were to hire him just to work on Java? I doubt it. Coders are paid to make new code, not fix old code. That's just how things work whether your programs are proprietary or open source.
[18]
And if anyone ever tells you proprietary code is safer, ask them about Patch Tuesday. [19]Microsoft Exchange still blew up on New Year's Day because of a Y2K-style problem with a 32-bit integer variable that couldn't handle the new year.
Until the day comes when companies pay developers to fix and clean their old code while looking for security bugs, we will always have this kind of problem pop up. I expect that to be the same day when companies finally make and check their backups reliably and Jane and Joe stop using "password" for their password.
That said, the real reason why Log4j has proven to be such a pain in the ass isn't the code. I mean, we've now had four, count 'em, [20]four Log4j patches . As I write this, if you want to be safe you should be using [21]Log4j 2.17.1 . But the real trick, my friend, is making sure you've replaced all those instances of Log4j 2, which aren't so safe. There's the rub.
You see, Java hides its source code and binaries in numerous [22]Java Archive (JAR) variations. There is honestly no telling where a vulnerable Log4j library might be hiding. The only thing you can do is use a [23]variety of tools to help you win this game of high-tech security hide-and-seek. Oh, one problem. None of these security-scanning programs, not one, can find every possible case. Is it a great time to be working in IT or what?
The answer to this are [24]Software Bills of Material (SBOM). Well done, an SBOM does just what it says. It tells you exactly what software libraries, routines, and other code are used in your program.
As David A Wheeler, the Linux Foundation's director of Open Source Supply Chain Security, has explained, with SBOMs and [25]verified reproducible builds , you can make sure you know what's what in your programs. That way, when – not if – a security hole is found in a component, you can simply patch it rather than search like a madman for the problem code before being able to fix it.
SBOMs, however, are still a work in progress. If we manage to have reliable SBOMs by the end of the 2020s, I'll be a happy man. That will be a pleasant surprise. Oh, and if we can actually pay people to search for trouble in code before things go wildly askew that would be great too. But I'm not holding my breath on that one. ®
Get our [26]Tech Resources
[1] https://www.theregister.com/2021/12/13/log4j_rce_latest/
[2] https://www.theregister.com/2021/12/21/belgium_defence_ministry_log4j_exploited/
[3] https://www.ft.com/content/73df7fde-5800-4676-bfb4-9832157758be
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yd60y58gXwfAlrmN4nFUUwAAABI&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[5] https://www.schneier.com/essays/archives/2000/04/the_process_of_secur.html
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yd60y58gXwfAlrmN4nFUUwAAABI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yd60y58gXwfAlrmN4nFUUwAAABI&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yd60y58gXwfAlrmN4nFUUwAAABI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[9] https://xkcd.com/2347/
[10] https://www.theregister.com/2014/04/09/heartbleed_explained/
[11] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
[12] https://www.theregister.com/2022/01/05/ftc_log4j_fix/
[13] https://www.theregister.com/2021/12/23/alibaba_cloud_in_trouble_with/
[14] https://www.theregister.com/2021/12/21/belgium_defence_ministry_log4j_exploited/
[15] https://www.theregister.com/2021/12/20/log4j_and_omicron_opinion_column/
[16] https://christine.website/blog/open-source-broken-2021-12-11
[17] https://twitter.com/FiloSottile/status/1469441487175880711
[18] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yd60y58gXwfAlrmN4nFUUwAAABI&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[19] https://www.bleepingcomputer.com/news/microsoft/microsoft-releases-emergency-fix-for-exchange-year-2022-bug/
[20] https://thenewstack.io/one-more-log4j-security-hole-before-the-new-year/
[21] https://logging.apache.org/log4j/2.x/changes-report.html
[22] https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jarGuide.html
[23] https://thenewstack.io/how-to-find-dangerous-log4j-libraries/
[24] https://www.ntia.gov/SBOM
[25] https://reproducible-builds.org/
[26] https://whitepapers.theregister.com/
Re: "Is it a great time to be working in IT or what?"
Don't you hate it when people answer rhetorical questions?
Re: "Don't you hate it when people answer rhetorical questions?"
Oh God, yes! So annoying.
log4j
To my knowledge log4j worked exactly as specified.
log4j works as specified
To my konwledge, log4j works exactely as specified. It's just people who did not bother to check what it is and what it does and how it does it.
Re: log4j works as specified
Exactly. None of the proposals mentioned in this article would have had any impact on it - they're not bad ideas, they just don't apply.
The problem was scope-creep, which is not generally thought of as a security issue. It should be.
As the programmer Xe argues, "'Open Source' is broken" because even now no one is paying the developers.
Why did they ever think that anyone would pay?
Until we reach the point where people understand the real cost of software, this will keep on happening.
Open Source deals with the initial cost of developing the software, and gives it away for the price of massaging the ego of the developers.
We don't have as big an idea to keep the software working for free, until the very last person using it, no longer needs support.
So who is happy to do that thankless task with the same vigor?
And that great big silence is the problem that really needs addressing!
People understand the real cost
There has rarely been an industry in which the "real cost" has been understood - or, at least, paid for by the industry concerned. We have a legacy of spoil heaps, polluted watercourses, contaminated land, collapsing ecosystems, death, disease and - of most concern - a rapidly heating planet to prove it.
Software maintenance is just another "externality" - a cost for which someone else is expected to pick up the tab.
Open Source is an Opportunity
Open Source is an opportunity to read and modify the code, or pay someone to do it for you. That's more than most paid-for software packages do for you.
If you don't take that opportunity, that's your fault.
six million flies
> the real problem isn't that it was open-source software
No. The problem is that it takes virtually no skill to download a package and follow what every other user does with it.
Having the knowledge and experience (and time: paid for by a person's employer) to perform a security audit, or even a risk analysis, on that software is a rarity.
Much of the popularity of FOSS packages is the knowledge that lots of other people and companies use the same stuff. So it's gotta be OK, hasn't it?
Whether security is a product or a process is not really relevant. The problem is that nobody takes responsibility for FOSS. Nobody has to fix problems when they arise, get written into new releases or are discovered. That lack of enforcability and the associated freedom from obligations, is the major factor behind such software being free (as in beer).
"Is it a great time to be working in IT or what?"
No.