Bonum Certa Men Certa

Linux Backdoors Revisited (New Revelations and Old Revelations)

Claude Elwood Shannon, the man who introduced entropy

Claude Elwood Shannon



Summary: An anonymous backdooring attempt against Linux goes a decade back, but a randomisation problem in today's Linux also seems possible (subverting encryption)

Jonathan Allen wrote this article about an incident mentioned also by Freedom to Tinker. Slashdot's summary goes like this, documenting news from one decade ago:



"Ed Felton writes about an incident, in 2003, in which someone tried to backdoor the Linux kernel. Back in 2003 Linux used BitKeeper to store the master copy of the Linux source code. If a developer wanted to propose a modification to the Linux code, they would submit their proposed change, and it would go through an organized approval process to decide whether the change would be accepted into the master code. But some people didn't like BitKeeper, so a second copy of the source code was kept in CVS. On November 5, 2003, Larry McAvoy noticed that there was a code change in the CVS copy that did not have a pointer to a record of approval. Investigation showed that the change had never been approved and, stranger yet, that this change did not appear in the primary BitKeeper repository at all. Further investigation determined that someone had apparently broken in electronically to the CVS server and inserted a small change to wait4: 'if ((options == (__WCLONE|__WALL)) && (current->uid = 0)) ...' A casual reading makes it look like innocuous error-checking code, but a careful reader would notice that, near the end of the first line, it said '= 0' rather than '== 0' so the effect of this code is to give root privileges to any piece of software that called wait4 in a particular way that is supposed to be invalid. In other words it's a classic backdoor. We don't know who it was that made the attempt—and we probably never will. But the attempt didn't work, because the Linux team was careful enough to notice that that this code was in the CVS repository without having gone through the normal approval process. 'Could this have been an NSA attack? Maybe. But there were many others who had the skill and motivation to carry out this attack,' writes Felton. 'Unless somebody confesses, or a smoking-gun document turns up, we'll never know.'"


Backdoors in Linux are a subject for jokes in Torvalds' mind, but given the above we should take this subject very seriously. In any system, for example, having no mechanism for randomness (like in some embedded devices) typically means that strong encryption (with high entropy) is not possible. Given new alleged "insecurities in the Linux /dev/random," as Bruce Schneier put it, Linux backdoors seem possible again. David Benfell said:

I'm guessing Schneier knows what the fuck he's talking about. If it is the same vulnerability, then Torvalds' defense is that the vulnerable source of entropy is only one of many. But if I read Schneier correctly, the result was still too predictable.


"On the other hand," says Benfell, "here's Theodore T'so from the comments:"

So I'm the maintainer for Linux's /dev/random driver. I've only had a chance to look at the paper very quickly, and I will at it more closely when I have more time, but what the authors of this paper seem to be worried about is not even close to the top of my list in terms of things I'm worried about.

First of all, the paper is incorrect in some minor details; the most significant error is its (untrue) claim that we stop gathering entropy when the entropy estimate for a given entropy pool is "full". Before July 2012, we went into a trickle mode where we only took in 1 in 096 values. Since then, the main way that we gather entropy, which is via add_interrupt_randomness(), has no such limit. This means that we will continue to collect entropy even if the input pool is apparently "full".

This is critical, because *secondly* their hypothetical attacks presume certain input distributions which have an incorrect entropy estimate ---| that is, either zero actual entropy but a high entropy estimate, or a high entropy, but a low entropy estimate. There has been no attempt by the paper's authors to determine whether the entropy gathered by Linux meets either of their hypothetical models, and in fact in the "Linux Pseudorandom Number Generator Revisited"[1], the analysis showed that our entropy estimator was actually pretty good, given the real-life inputs that we are able to obtain from an actual running Linux system.

[1]http://eprint.iacr.org/2012/251.pdf

The main thing which I am much more worried about is that on various embedded systems, which do not have a fine-grained clock, and which is reading from flash which has a much more deterministic timing for their operations, is that when userspace tries to generate long-term public keys immediately after the machine is taken out of the box and plugged in, that there isn't a sufficient amount of entropy, and since most userspace applications use /dev/urandom since they don't want to block, that they end up with keys that aren't very random. We had some really serious problems with this, which was written up in the "Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices" [2]paper, and the changes made in July 2012 were specifically designed to address these worries.

[2]https://www.factorable.net/paper.html

However, it may be that on certain systems, in particular ARM and MIPS based systems, where a long-term public key is generated very shortly after the first power-on, that there's enough randomness that the techniques used in [2]would not find any problems, but that might be not enough randomness to prevent our friends in Fort Meade from being able to brute force guess the possible public-private key pairs.

Speaking more generally, I'm a bit dubious about academic analysis which are primarily worried about recovering from the exposure of the state of the random pool. In practice, if the bad guy can grab the state of random pool, they probably have enough privileged access that they can do many more entertaining things, such as grabbing the user's passphrase or their long-term private key. Trying to preserve the amount of entropy in the pool, and making sure that we can extract as much uncertainty from the system as possible, are much higher priority things to worry about.

That's not to say that I might not make changes to /dev/random in reaction to academic analysis; I've made changes in reaction to [2], and I have changes queued for the next major kernel release up to make some changes to address concerns raised in [1]. However, protection against artificially constructed attacks is not the only thing which I am worried about. Things like making sure we have adequate entropy collection on all platforms, especially embedded ones, and adding some conservatism just in case SHA isn't a perfect random function are some of the other things which I am trying to balance as we make changes to /dev/random.


T'so, who is the former CTO of the Linux Foundation, at least acknowledges the possibility that there is a real issue here.

Recent Techrights' Posts

Something to Celebrate in Gemini Protocol
More capsules and users join in
 
Banned evidence: Ars Technica forums censored email predicting DebConf23 death, Abraham Raji & Debian cover-up
Reprinted with permission from Daniel Pocock
Intimidation, Threats, and Bullying Not Tolerated by Techrights
When it comes to our reporting, safety always comes first
A World Without Rules
We're long insisted on better laws and actual enforcement of them (applicable to all, not selectively applied)
IBM's BS (Bait, Switch) Regarding Ways to Stay Onboard
PIPs, RTOs, and forced relocations are just an illusion of choice (or ability to recover)
statCounter Sees Microsoft Windows Falling to New, Unprecedented Lows in Palau
Taking Android into account, Windows is now down to an all-time low of 14%
Google News Lost the Fight to LLM Slop (While Google Itself Sells Slop, Nowadays Under the Name "Gemini")
Many people say that "Google is getting worse"; that's almost an understatement
Links 28/03/2025: AirAsia Trouble Again, UMich Culls All DEI Programs
Links for the day
Gemini Links 28/03/2025: Alexa is for Gullible People, Rant About Feature Overload
Links for the day
The SLAPPs From the Microsoft Strangler (and Sidekick) No Better Than Patent Trolling
one must never settle with trolls
Links 28/03/2025: Last Reminder "to Delete Your 23andMe Data", "UK's First Permanent Facial Recognition Cameras Installed"
Links for the day
Microsoft Canonical Continues Its FUD (Fear, Uncertainty, Doubt) Campaign, Reveals Google Too Sponsored It
They're paid-for lies from a Chinese company that takes GAFAM money to write puff pieces about them
Android Rises Above 76% in Mozambique, Leaving Windows in the Dust
Windows may soon be measured as smaller than Apple's iOS
IBM, Red Hat and Microsoft Probably Also Manipulate Metrics (It Helps Con the Shareholders)
Wall Street's credibility will depend on enforcement of "checks and balances"
Slopwatch: trendhunter.com and Other Pure Junk From "Google News"
The need to vet sources is hardly new; anyone can spew out anything, anywhere. There's a need for vetting.
Gemini Links 28/03/2025: Rewatching The X-Files, Slop Concerns, and NOSTR Censorship
Links for the day
Links 28/03/2025: Australia at Risk, EPO Grants Illegal Patents With Illegal Effect
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, March 27, 2025
IRC logs for Thursday, March 27, 2025
Links 27/03/2025: Obituary to a Shop, Russia Trying to Buy Time
Links for the day
Links 27/03/2025: Slop, Autosuggestions, and Nostr
Links for the day
Apparently Confirmed: IBM Layoffs in Canada Today, Hundreds Affected
Impacting "177 people", says one person, "in Ottawa"
When Windows Was Dominant (1990s) Browser Monopoly Meant MSIE, But Now Google Android is Dominant and the Web in a 'Webapps' Era Works With (or Is Designed for) Chrome-isms
We've been there before
Slopwatch: BetaNews, LinuxSecurity.com, and the Attack on Web Search Using Fake and Likely Plagiarised Pages
Changing a few words here and there won't change the fact that it's not properly authored
Links 27/03/2025: U.S. Honeybee Deaths Reach Record High, Legal Occupation Next in Line After War on Science
Links for the day
Using Courts for 'Revenge' is Always a Losing Strategy
Trying to cause someone you dislike to spend a lot of money
IBM CFO James Kavanaugh Refers to Firing of Almost 10,000 Americans as "Workforce Rebalancing" (Shifting IBM's Centre of Balance to Low-salary Contracts/Countries)
The scale of IBM layoffs is getting too large to evade WARN Notices
[Video] Dr. Richard Stallman's Keynote Speech in Kerala Finally Uploaded
In non-free format and proprietary YouTube, but perhaps that's better than nothing
Islands Are Leaving Microsoft Behind, According to statCounter
Android has had a very strong year
EPO Management Fails to Deny That the Office is Discriminating Against Women
Europe's second-largest institution isn't just exceedingly corrupt but also immoral
In Some Countries the Market Share of Vista 11 is Going Down, Not Up
despite being released in 2021
Rumour: Mass Layoffs in IBM Canada Today
Maybe later today some people from Canada will say something firmer and maybe some media will even talk about that
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, March 26, 2025
IRC logs for Wednesday, March 26, 2025
Gemini Links 27/03/2025: X-Files' "Kill Switch", Orlando, and ASN (Autonomous System Number) 'Hack'
Links for the day
Links 26/03/2025: Healthcare Cuts and Turkey's Own "2025 Project" (Culling Opposition)
Links for the day
LLM Slopfarm: A Site's Last Incarnation Before Throwing in the Towel, Going Offline Permanently
A lot of coverage that claims to be about Finland is chatbot-generated nonsense or poorly-plagiarised work
Microsoft Canonical Pays IDG to Spread FUD (Fear, Uncertainty, Doubt)
this seems a tad exploitative and reminds us of the time Novell kept telling companies that using anything other than SUSE was dangerous
Gemini Links 26/03/2025: GTD, Zenshuu, and Geminispace Community
Links for the day
Links 26/03/2025: Media's Failures, Arrests of Journalists, Limitations of End-to-End Encryption
Links for the day
LLM Slop (Lots of It Spewed Out by Microsoft) Versus Linux
Microsoft is a very, very evil company. It doesn't mind destroying the Web if there's a chance it'll make a buck in the process or mess up people's brains (in Microsoft's favour).
Slopfarms (Sites That Only Ever Publish LLM Slop) Are Killing Google News
pair of slopfarms still propped up by Google News
Microsoft's Serial Strangler's Law Firm Has a Long History of Fronting for People Who Do Bad and/or Illegal Things
Whose terrible idea was this?
Novell and Microsoft Apologist/Booster Bruce Byfield Writing About the FSF is a Recipe for Problems
Totally not shoehorning some agenda
Looking Forward to the Fall of UPC and Revocation of the Unified Patent Court (UPC) Agreement, Which Was Always Illegal and Unconstitutional
We'll try to keep abreast of any progress in this case
Slopwatch: Google News, LinuxSecurity.com, and the General Demise of the Web
many supposed or so-called "news" pages are just spewed out by some chatbots (or tools which help plagiarise original articles without getting caught; detection gets harder)
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, March 25, 2025
IRC logs for Tuesday, March 25, 2025