Live data from Hacker News

The Linux backdoor attempt of 2003 (2013)

freedom-to-tinker.com

31–40 of 105 posts

Re: The Linux backdoor attempt of 2003 (2013)

#31

Earlier quoted context omitted.

I read that the other way. "If the guy who did it wants to come forward, that is his decision. But he [still talking about the guy who did it] did provide me the full story." That is, the perpetrator gave him the full story, but he won't name names, because it's the perpetrator's choice whether or not to reveal his identity.

OK, makes sense.. so the interviewed hacker mentioned that he got the code in by infiltrating the computer of "some developer"...

he was more specific, but I (a) don't remember the name off the top of my head, and (b) don't think it is beneficial to put them on blast. It isn't their fault they got hacked 20 years ago.

Re: The Linux backdoor attempt of 2003 (2013)

#32
post #9
post #8

Earlier quoted context omitted.

That confused me, too. They appear to know the person who accidentally discovered the issue, not the hacker.

How do they know it wasn't the NSA then?

The guy who did it was quite vocal about it in some circles. It was a "for the lulz" kind of hack...

Re: The Linux backdoor attempt of 2003 (2013)

#34
> it said "= 0" rather than "== 0"

Why do so many programming languages have different equals/assigns operators?

There are languages that combine them and apparently don't have any problems. Is it something to do with being strongly vs. weakly typed?

Re: The Linux backdoor attempt of 2003 (2013)

#35
post #6

We used to use this as a cautionary tale in the CS department security course at the Technion. First, to highlight trust relationships in the "supply chain" (as the notion is now known in contemporary usage). Second, to pose the question of whether open source is inherently more trustworthy.

I guess you could argue that more [evil] people would try to backdoor the linux kernel than there are [malicious] people inside private companies, but the level of trust inside a private company is probably much higher? Seems complex

Re: The Linux backdoor attempt of 2003 (2013)

#36

I'm pretty sure there are tons on unreleased and unpublished backdoor exploits for linux and windows likewise. The problem is you can't fix them yourself if the signature keeps unknown to anyone.

“Backdoor” means something deliberately and specifically added to enable the vulnerability. I.e., something can't really be both a backdoor and an exploit.

Re: The Linux backdoor attempt of 2003 (2013)

#37

> it said "= 0" rather than "== 0" Why do so many programming languages have different equals/assigns operators? There are languages that combine them and apparently don't have any problems. Is it something to do with being strongly vs. weakly typed?

It's just syntax. Pascal had := and =

Re: The Linux backdoor attempt of 2003 (2013)

#38
post #29

Another bit of cleverness not mentioned in the article is that assignment expressions always evaluate to the rvalue. So the expression `current->uid = 0` has the effect of making sure that entire conditional never actually runs (or at least, the return never runs), which means the overall behavior of wait4 doesn't change in an observable way. Very clever if you're trying to pass all of the existing tests

But that should be something the compiler could catch. The expression is always false and the condition would never be executed. You usually get a warning for that. And if the compiler doesn't, linters do. This is a common mistake, and I believe most linters have rules for that. And I don't think there is any situation where there is a good reason for code like this to exist. Either the expression is wrong, or it doe…

You didn't get a warning for that in 2003... or maybe with the pedantic flag. And even if it were the case, it would have been drowned by all the other unfixed warnings...

The only people using linters at that time was because it was forced by regulation (like automotive, aeronautics, ...)

Re: The Linux backdoor attempt of 2003 (2013)

#39

> it said "= 0" rather than "== 0" Why do so many programming languages have different equals/assigns operators? There are languages that combine them and apparently don't have any problems. Is it something to do with being strongly vs. weakly typed?

I don’t think strong/weak typing is the culprit here.

I think partly that being explicit is nice. Assignment and equality are two very different things, so it makes sense for there to be different syntax. You can easily prevent the code in the article from working—just disallow assignment inside of expressions. This is probably a good idea, and a lot of newer languages make that choice.

Even when you read papers about programming, you often see different notation for assignment and equality. Assignment may be

    a = x = y;
If that meant “set ‘a’ to true if ‘x’ is equal to ‘y’, and false otherwise.” I would, honestly, be a little pissed off.

I would only accept something like that if it meant (a==x)&&(x==y).

Re: The Linux backdoor attempt of 2003 (2013)

#40
post #28
post #14

Earlier quoted context omitted.

To be clear: you're telling us the full story of the discovery, not the full story of the exploit? You and your source don't know who the attacker was, right?

What is there to say about the hack? Like everything back then it was probably accomplished by exploiting trust relationships. I can ask him, but it is not at interesting 20 years later.

It is very interesting to prove whether or not it was a state actor! Surely you can see that that mystery is interesting to many people.
Post reply on HN