Slashdot Mirror


Linux Kernel Back-Door Hack Attempt Discovered

An anonymous reader writes "The BitKeeper to CVS gateway was apparently hacked in an attempt to add a root exploit back door to the Linux kernel, according to the linux-kernel archive. The change was in the file kernel/exit.c and changed the user ID of a process to root under the guise of checking the validity of some flags. The core Linux BitKeeper kernel repository was not at risk, and in fact it was the BitKeeper CVS export scripts that detected the unauthorized modifications to CVS. The changes were falsely attributed in CVS to long-time Linux developer davem (David Miller). Users of the BKCVS repository should resync their trees to remove the offending code if they had replicated it since yesterday."

103 of 687 comments (clear)

  1. Well well by toddhunter · · Score: 4, Insightful

    Good to see the system works. You would wonder what would happen if said hacker was working for a company on a similar closed source program. Would it have been detected?

    1. Re:Well well by chill · · Score: 5, Interesting

      Good to see the system works. You would wonder what would happen if said hacker was working for a company on a similar closed source program. Would it have been detected?

      You mean like Borland's Interbase? The compiled in backdoor wasn't discovered until after the database opensourced.

      My favorite quote from the advisory is:

      "This vulnerability was not introduced by unauthorized modifications to the original vendor's source. It was introduced by maintainers of the code within Borland. The back door account password cannot be changed using normal operational commands, nor can the account be deleted from existing vulnerable servers [see References]."

      How long was it in there? "These security holes affect all version of InterBase shipped since 1994, on all platforms."

      The advisory dates from 2001 -- you do the math.

      --
      Learning HOW to think is more important than learning WHAT to think.
    2. Re:Well well by blastedtokyo · · Score: 4, Insightful

      Hmmm..but would they have even found the security hole if it hadn't been open sourced?

    3. Re:Well well by Anonymous Coward · · Score: 4, Funny
      You would wonder what would happen if said hacker was working for a company on a similar closed source program. Would it have been detected?


      Well the 12 backdoors I put into the Windows XP kernel haven't been detected yet.

    4. Re:Well well by alannon · · Score: 3, Insightful

      Why is this relevant? The fact that anybody that HAD seen the source code to Interbase could exploit it was enough. This could include ex-employees and contractors. Would you be happy with Microsoft including a back-door to all their software as long as only they knew how to exploit it?

    5. Re:Well well by Narphorium · · Score: 5, Interesting
      Although I see where you're going with this, I think a lot of people might ask whether this shows vulnerability in OSS instead. Sure, you and I appreciate this as a validation of the system but is that really how the media is going to portray it?

      All I'm saying is that I certainly won't be surprised when closed source vendors start using this in their anti-OSS campaigns.

    6. Re:Well well by The+Munger · · Score: 4, Insightful

      Good to see the system works.

      And what if we just haven't discovered the code that got through yet...

      You've got to ask - assume nothing.

      +5, Tin-foil hat.

      --
      Refuse to make a statement in your sig!
    7. Re:Well well by Geek+of+Tech · · Score: 3, Insightful
      Well, I guess that means all the closed source developers have the same problem. And I guess they probably don't know either.

      --
      Stop the Slashdot effect! Don't read the articles!
    8. Re:Well well by blair1q · · Score: 4, Interesting

      It was only detected because software found a discrepancy.

      This would happen at any closed-source shop that had the same software.

      No human eyes discovered the problem, and if someone hadn't installed the checks, it might not have been discovered for months or years or ever.

    9. Re:Well well by temojen · · Score: 4, Informative
    10. Re:Well well by danheskett · · Score: 5, Insightful

      Not only that, but imagine this. The hackers (in the real sense, not the TV-movie sense) who write the real low-level stuff that makes various OS's work - for example in Linux people like Alan Cox, Linus, RMS, ESR, davem, and the other regular kernel contributors submit a lot of code. Well, those people dont necessarily but a lot of code is in the kernel.

      Can anyone tell me for 100% certain that between GCC, the kernel, and various compile chain tools there isn't a subtle backdoor that creates an overrun, or a weak key, or anything like that somewhere along the line? Maybe what looks like an innocent bug or flaw or even stylistic change in one source combines with a similiar item in another source to create an exploit or a weak scheme.

      These people - real hackers - are so clever (I mean serously, writing and maintain an OS for fun puts these programmers in the top 1% of all advanced systems programmers) that what is to say that they couldn't dupe everyone even with the source available to all?

      I can imagine a situation where a corrupted/corruptable individual works hard to gain legitimate comitt access to certian tools that are widespread. GCC, the kernel, a shell or two, OpenSSL. That person starts making small changes that when aggregated expose a large exploit but when examined piece-mail are completely benign, or even benficical.

      Does anyone doubt that its technically possible? How could any automated system or person ever discover this? I am a fairly competent programmer in some areas and there have been numerous times that I've had to dissect large pieces of code painstakingly over the course of days or weeks to trace back a nasty bug. Can anyone say that its not possible that this is *already* happening in the OSS world today?

    11. Re:Well well by Johnno74 · · Score: 2, Funny

      Maybe it was someone from SCO, inserting code from UnixWare to give them the 'evidence' they need...

      Has anyone tried sys_wait4(__WCLONE|__WALL) on Unixware? ;)

    12. Re:Well well by sartin · · Score: 5, Informative
      what is to say that they couldn't dupe everyone even with the source available to all?

      You mean like this?

    13. Re:Well well by temojen · · Score: 5, Informative

      All of the vulnerabilities I listed made it into official releases before being patched. The bug this story is about didn't make it one day in the source tree, let alone into an official release.

      Sorry about the Protegrity one, I must've linked the wrong one. I was looking for this one (the one exploited by the slammer worm).

    14. Re:Well well by TiggsPanther · · Score: 4, Insightful

      Yeah. There's no way they'd want to show an open-source project finding and warning about a problem within 48 hours in a positive light.

      They'd find their customers wanting timely patches and accountability.

      --
      Tiggs
      "120 chars should be enough for everyone..."
    15. Re:Well well by DunbarTheInept · · Score: 4, Interesting


      Kinda proves Steve Ballmer's comments about the lack of security in Open Source development, doesn't it?!

      No. I just proves you're a posturing idiot. The crack was detected as soon as it was attempted to be inserted, in the experimental development version of the code that hadn't even made it into any final distributions yet.

      And here's another example of your idiocy:

      If it happened in a software company, the hacker would be fired and probably charged with some kind of "espionage" charge and arrested.


      This wasn't an "inside" job. If this happened at a company, to fill the analogy, it would have been an external person, NOT someone they could fire.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    16. Re:Well well by rixstep · · Score: 2, Interesting

      You're never going to know anything w/o the code. So many examples, they're too numerous to mention. It's hushed because of the panic it can cause.

      MS once had a summer programmer who put 'The tree of evil bears bitter fruit - now crashing your system disk' into Word. It got in all the European editions.

      The NT team loved putting in the names of beers in a screen saver. They used 'I love NT' in about seven languages to kick it off. Gates supposedly heard about it and went through the roof. So they disguised it for the next release.

      Putting a back door in is not more difficult. And it's almost impossible to detect - if you don't have the code, and sometimes even if you do.

      IBM's mainframes have long had a humungoid string which bypasses all security.

      And so forth.

    17. Re:Well well by ajs318 · · Score: 5, Insightful

      Yeah, but anybody who feels the need to use stuff like this, probably updates often and checks stuff as a matter of course anyway, and possibly even sandboxes test kernels - so the damage is self-limiting. If you always want the sharpest blades, you have to understand you can cut yourself. Ordinary mortals mostly run stock kernels, from their distributor or kernel.org. Somehow, I can't see such an obvious exploit finding its way into a major distro.

      And really, it's just more evidence that the Open Source model works. There is really nothing wrong with making a mistake, as long as you learn something from it and share what you learned with other people so they don't have to make the same mistake. Pretending you never make mistakes is another matter entirely .....

      --
      Je fume. Tu fumes. Nous fûmes!
    18. Re:Well well by rodgerd · · Score: 4, Insightful

      As anoth poster has pointed, this is a well-known thought experiment, and what it boils down to is: at some point, you have to trust someone.

      Have you audited your motherboard BIOS? What about your network card - how do you know it doesn't have an IP stack on the ROM that dials home and dumps your network activity to someone? Hubs? Switches? Routers?

      Do you really know what lives in your hard drive controller?

    19. Re:Well well by Tet · · Score: 2
      The hackers [...] who write the real low-level stuff that makes various OS's work - for example in Linux people like Alan Cox, Linus, RMS, ESR, davem

      Ha ha ha. Yep, Cox, Linus and DaveM are without doubt low level hackers. But RMS and ESR? RMS is admittedly somewhere between high and low level, getting down to compilers and linkers, but not down to kernel level. But ESR is strictly a userland programmer.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    20. Re:Well well by Filik · · Score: 3, Insightful

      Actually, the mere fact that these people saw the need to insert a new backdoor is a good sign (though not proof) that there aren't any old ones (or that they weren't very talented).

    21. Re:Well well by Haeleth · · Score: 3, Insightful

      > And what if we just haven't discovered the code that got through yet...

      1. We know that SCO have been looking very closely at the Linux source code.

      2. We also know that none of the Linux boxes which serve major anti-SCO websites have been hacked into.

      3. We can deduce therefore that SCO have not found any backdoors in the Linux source code.

      While given their general level of (in)competence this doesn't amount to proof that there aren't any, it's probably a fairly safe bet.

    22. Re:Well well by Khazunga · · Score: 3, Funny
      RMS *must* be a low level hacker. He shows all the signs: long beard, long hair, smells, can't behave in front of people, yawns at conferences. Heck, he even farted at a conference at my Uni.

      If he isn't a lowest level hacker, my world foundations are crumbling...

      --
      If at first you don't succeed, skydiving is not for you
    23. Re:Well well by balloonhead · · Score: 4, Funny
      Leprechauns.

      Leprechauns live on my hard drive controller, and spin it with all their tiny might.

      They're like little green DJs when I use my RAID.

      --
      This idea was invented by Shampoo.
    24. Re:Well well by blowdart · · Score: 3, Insightful
      RMS *must* be a low level hacker

      No, he's a low level heckler ... "Shut up! It's GNU linux." "Shut up! It's GNU linux." (repeat ad nauseum)

    25. Re:Well well by Anonymous Coward · · Score: 3, Insightful

      Two Brazilian expressions, for your delight:

      1) "Boi de piranha":

      When you want to make a cattle herd cross a piranha-infested river, you probably will lose many cows (or oxen) -- the trick is get a first ox inside the river for sacrifice; while the piranhas devour it, the rest can pass unharmed.

      2) "Porteira que passa um boi, passa uma boiada":

      If a gate is wide enough for passing an ox, it's wide enough for an entire herd.

      -//-

      Have a nice day!

    26. Re:Well well by TrombaMarina · · Score: 2, Insightful

      My experience with proprietary software development is that in the beginning, there is a deadline. Then requirements get added to that deadline and code gets written until the deadline is reached. At which point the code is either shipped as is or the deadline is extended and the cycle begins again.

      Show me a company that has the money to pay for developers to sit around and double-check every commit to a source tree. Show me a code review at a company where anyone besides the author has read the code before the meeting. Then I'll believe that THAT company COULD detect a hack like this.

      Open source is not perfect, there's probably exploits in the kernel, intentional or otherwise, that have never been found and there always will be. But compared to deadline-driven "not-my-department" development, it's pretty darn impressive. Heck, I'm impressed that anyone ever discovered this.

      P.S. Pay attention to the fellow who suggested (in another post) that we check other software for a companion hack for this exploit. Someone clever enough for this back-door undoubtedly has another somewhere to set those flags remotely. Maybe in the next version of CVS or another tool he used to insert the hack that was found.

    27. Re:Well well by The+Evil+Muppet · · Score: 2, Funny

      If you do that, one of two things will happen:

      1. UnixWare will crash
      2. UnixWare will tell you that no such call exists

      Either way, you could completely and totally use it as an excuse to make whichever person you installed UnixWare look like a complete dick, and then shoot them in the groin with a nailgun.

    28. Re:Well well by Greedo · · Score: 2, Funny

      When you want to make a cattle herd cross a piranha-infested river, you probably will lose many cows (or oxen) -- the trick is get a first ox inside the river for sacrifice; while the piranhas devour it, the rest can pass unharmed.


      Well, in theory.

      Of course, you send in the first ox, and the pirannhas attack it. Then you try and get the other oxen to cross, and they are all like "Fuck this man, I ain't going in that freakin' river! Look at what's happenin' to Bob!!!"

      --
      Tuus crepidae innexilis sunt.
  2. Daaaammmmmnnnn.. by NegativeK · · Score: 4, Funny

    Someone has some damned big balls to do something like that...

    Let's hope they're cut off.

    --
    This statement is false.
    1. Re:Daaaammmmmnnnn.. by blair1q · · Score: 3, Insightful

      Why?

      What's the penalty under the law for putting a backdoor in an open-sourced software project?

      None.

      That's it. That's the list.

    2. Re:Daaaammmmmnnnn.. by Nucleon500 · · Score: 5, Insightful
      Our friend the DMCA, of course. Becomming root with wait4(3<<30) could clearly be used to copy files to which you don't have read access, thus circumventing an effective copy control mechanism. Heck, I'm a criminal for telling you that.

      Seriously, though - there are probably many laws by which it would be illegal. The cracker gained unauthorized access to a system and he vandalized data. And the obvious intent was to create a backdoor in many more systems. If they find this guy, he'll be in serious trouble. The guy he pretended to be could probably also sue him for something.

    3. Re:Daaaammmmmnnnn.. by shepd · · Score: 3, Informative

      >What's the penalty under the law for putting a backdoor in an open-sourced software project?

      Ohhh, I can think of some.

      Fraud and destruction/misuse of private property come to mind. And those are pretty much universal...

      --
      If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
    4. Re:Daaaammmmmnnnn.. by Empiric · · Score: 2, Informative
      --
      ~ Whence do you come, slayer of men, or where are you going, conqueror of space?
  3. Microsoft by mr100percent · · Score: 3, Funny

    Anybody point fingers at Microsoft yet? SCO?

    1. Re:Microsoft by Cobralisk · · Score: 5, Funny

      No, but I'd like to see them claim copyright infringement on back-door code.

      --
      Waiting for ad.doubleclick.net...
    2. Re:Microsoft by MrLint · · Score: 2, Interesting

      My guess is more likely DDoS and spam hackers. Looking for ways to get in and grab more things to attack with.

    3. Re:Microsoft by iabervon · · Score: 5, Insightful

      The actual lines of code and the method by which they got there were far too clever for either Microsoft or SCO. In particular, it looked like a check for an invalid combination of flags by root, but would actually set the process to root in the case of the invalid combination of flags (and the error return value would be overwritten).

      The intent was probably that a CVS user get the bad version, work on other stuff, and send the diff (including the bad lines) to a maintainer in an otherwise good patch. However, the BKCVS gateway got confused by someone other than it changing the CVS, and complained, and Larry McVoy pointed out the issue, someone asked what the lines were, and other people figured out what they'd do. Now, of course, if someone had gotten that bit accidentally and submitted it to a maintainer, they'd notice, so the attempt seems to have failed.

      Linus pointed out a benefit to using BK: even if the official BK repository were changed, he doesn't pull from it (because his local copy has all of his changes), and he would get an error the next time he pushed to it. The repository that would have to be attacked is actually his local disk, behind a firewall and not set up for anyone else to access at all.

      If RMS wants to rant about revision control systems, he'll need to say that CVS needs to be replaced with a more functional alternative (Subversion, perhaps), not BK.

    4. Re:Microsoft by Tailhook · · Score: 4, Informative

      The actual lines of code and the method by which they got there were far too clever for either Microsoft or SCO

      It was a subtle change but I think it would have been caught if it had been submitted to Linus. He does review code and often catches mistakes. In this case assignment was used in a condition. To good C programmers this is bad taste. I noticed that right off and I haven't written a line of C in about 6 years. Linus isn't just a good C programmer. After half a decade of watching him catch stuff like this in just his public LKML messages, I'm convinced he would have seen this if he were reading braille hardcopy of it from across the room while drunk.

      --
      Maw! Fire up the karma burner!
  4. Yet another reason to use open source software by Mipsalawishus · · Score: 3, Insightful

    This is the reason I trust open source software. The power of peer review (in one form or another) catches these kinds of things before they are sent into the wild.

    1. Re:Yet another reason to use open source software by mcroot · · Score: 3, Insightful

      Peer review did not catch this. This was detected because people injected code into a specific place where inconsistencies are complained about by the revision control software.

      Had this code come in through proper channels, I wouldn't be so sure that it would've been spotted. Most of the source code trojans people have found in the past were not well hidden, and were turned up relatively shortly. The cases I'm referring to are the trojaned configure scripts, that happened to, I believe, irssi and dsniff, or was it fragroute.. (it was definitely something by Dug Song)

      If you would like to tout peer review. Could you provide a valid example ? They probably are out there, but I can't recall any, and this is not what happened here.

    2. Re:Yet another reason to use open source software by merdark · · Score: 2, Informative

      I thought he started using bitkeeper because he *couldn't* look over all the patches coming in. Bitkeeper helps him let others have access to certain areas. I'm not so sure he'd notice.

    3. Re:Yet another reason to use open source software by Florian+Weimer · · Score: 2, Interesting

      Had this code come in through proper channels, I wouldn't be so sure that it would've been spotted.

      I doubt it, too. For example, in 1998, the CORE SDI put a backdoor into most SSH 1 implementations, which was included in their CRC32 attack decompensator. Of course, they didn't do it on purpose, but it happened nevertheless, and peer review didn't catch it.

    4. Re:Yet another reason to use open source software by Tim+C · · Score: 2, Informative

      in fact it was the BitKeeper CVS export scripts that detected the unauthorized modifications
      [emphasis added]

      So in fact, it was the power of BitKeeper, or at least BitKeeper's authors, that prevented this, not CVS itself. Looks like closed source saves the day once more... ;-)

    5. Re:Yet another reason to use open source software by salimma · · Score: 2, Informative
      it was the power of BitKeeper, or at least BitKeeper's authors, that prevented this, not CVS itself.

      No, not really. It's the scripts written neither by BitKeeper nor by the authors of CVS, but by some developers to allow those unwilling to use BitKeeper to get access to the latest modifications...
      --
      Michel
      Fedora Project Contribut
  5. !!! rag by VAXGeek · · Score: 3, Funny

    Imagine if this had sneaked into some Longhorn code right before shipping. Many eyes make few mistakes.

    --
    this sig limit is too small to put anything good h
    1. Re:!!! rag by LordLucless · · Score: 5, Funny

      No, you don't understand. This exploit was disguised as error checking code. It'd stick out in Longhorn like a sore thumb.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    2. Re:!!! rag by Ripplet · · Score: 3, Funny
      That's right, if it was just something like:
      /* need to be administrator here for temporary */
      /* hack, must remember to change it back again */
      /* later */
      set userLevel = administrator;
      Nobody from MS would have batted an eyelid.
      --

      Skiing? Check out The Independant Skiers Portal

  6. hmm by Anonymous Coward · · Score: 4, Funny

    Sounds like a plan to get the dirty GNU/hippies to upgrade to the real BitKeeper instead of using the communist CVS gateway.

    That McVoy is a smart one!

    Did you know his programmers need to feed their families and pay their mortgages? Very sad situation, I hope everybody buys 10-15 licenses ASAP.

  7. more reason to sign patches? by tomstdenis · · Score: 5, Insightful

    Why not just establish a web-o-trust and sign patches?

    That way people who hack in won't be able to send in signed patches to the system [e.g. even if they physicially update the tree others can trivially spot the unsigned patches].

    That would of course, require people to actually think about security in terms of "oh sure people won't hack it because it hasn't been done...much...before."

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:more reason to sign patches? by jrockway · · Score: 3, Insightful

      Yeah it's really easy to sign code when you don't have the key. All you have to do is try about 2^1024 different combinations of 1's and 0's. Simple, but not if you want it done before the Universe is gone.

      And if you have access to the key, remember that it's encrypted with a passphrase. Assuming it's 40 letters or longer (Something like "This is a passphrase that is long but easy to remember. I would just like to tell you, Mister Password Prompt, that nobody will guess this!"), you would have to try about 100^40 different passphrases. That's hard.

      So basically, it's really hard to forge a digital signature. Harder than breaking into the BK server, anyway.

      --
      My other car is first.
    2. Re:more reason to sign patches? by Tailhook · · Score: 2, Insightful

      Yeah it's really easy to sign code when you don't have the key.

      If a developers machine is compromised (as I imagined in my post) getting the passphrase is trivial. How many different ways can you imagine discovering the keyring passphrase on a machine you have the ability to discretely administer?

      Just off the top of my head (and no astronomical exponents required):
      Man-in-the-middle the keyring editor
      Scarf it from memory
      Monitor keystrokes

      Harder than breaking into the BK server, anyway.

      No one broke into a BK server. The BK content is routinely exported to a CVS server so that free software zealots have something to pull from that doesn't involve using BK. The backdoor was done directly on that CVS export (probably by compromising CVS pserver) in the hope that someone who actually uses the CVS server would pick it up and submit the altered file as a patch into the BK tree. Several more things would have had to occur for the backdoor to have "worked": some developer would have had to pick up the altered file, submit that file to Linus, have Linus (and ultimately everyone else) miss the backdoor and commit the change to BK (not easy because, as in the case of the backdoor, using the assignment operator in a condition: if (foo = 0) ... is a huge red flag to good C programmer,) and then go unnoticed for enough time that hosts in-the-wild ended up running it. A long shot, to say the least.

      --
      Maw! Fire up the karma burner!
    3. Re:more reason to sign patches? by Alsee · · Score: 2, Insightful

      And this is exactly why we need Palladium or trusted whateveritscalledthesedays.
      As much as people like to bash it, it would be useful in the case you described.


      NO.

      While you are right that Palladium-like-hardware or trusted-whatever-like-hardware could be used as you suggest, there is still absolutely NO justification to forbid the owner of the machine from knowing his own master key. And that is the central design feature of Palladium/NGSCB and TCPA and Trusted-Computing.

      There is NO POSSIBLE security benefit you can get by NOT KNOWING YOUR OWN KEY. The only possible purpose to forbid people to know their own key is for DRM and user lock-in.

      New hardware is fine. Forbiding the owner of the machine from knowing his own master key is purely malicious. Palladium/whatever forbid the owner to know his own master key therefore Palladium and the others are malicious.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    4. Re:more reason to sign patches? by swillden · · Score: 2, Insightful

      You're really grasping at straws here, but ok...

      Absolutely not. I design and build high-security systems for a living, and these sorts of issues are very, very real. When millions of dollars depend on a key's integrity, this stuff *matters*.

      For that matter, if there's a way to compromise keys in bulk, the individual keys don't even have to be very valuable to make the attack worthwhile.

      Say the paper-key comes sealed from the chip manufacturer.

      Now there are a dozen points during the manufacturing process where the key could have been compromised, not to mention many, many hands that could have opened the paper enroute, copied the key and generated a new "sealed" copy to pass along. The processes used to generate, print and mail credit card PIN numbers demonstrates just how hard it is to maintain security in a process like this, and those numbers aren't all that sensitive.

      Even if we stipulate that the manufacturer is able to produce sealed documents without any possibility of compromise, how will you, the end user, be able to distinguish between the real thing and a well-executed forgery?

      And if the paper-printed key was "stolen" back within the TCPA chip manufacturing plant then it could equally have been stolen within the chip manufacturing plant no matter what.

      Now we're getting to the meat of it. Here's the crux of the matter: In a well-designed security system, the crucial keys *never* exist in cleartext outside of secure hardware. In the case of TCPA this is really easy because the chip has the ability to generate its own keys. This means that they can't be stolen at the manufacturing plant without essentially destroying the chip (well, barring side-channel attacks, but it's fairly easy for the manufacturer to protect against those. If you're not familiar with the concept, look it up. If you like security stuff, it's fascinating).

      All high-security tokens utilize this same concept of keys that never leave the device, because it's really the only convenient way to maintain security of the keys. For the times when keys *must* leave the device, and cannot be encrypted (for example, during initial key exchange of symmetric keys), good systems still don't let them out in the clear. Instead, we use "secure key splitting" to break the key in to n parts, such that all n are required to reconstruct any information about the key, and those parts are then transferred separately, via separate routes to different people and kept apart until they can be entered into secure hardware, and reassembled there.

      At the end of the day, the real bottom line, however, is that it is not only potentially bad to know your key, it's completely unnecessary. Banks use 3DES symmetric keys (called Zone Master Keys) to transport messages worth billions of dollars every day, and I guarantee you that no human has *ever* seen a singe bit of any one of those keys.

      No, what you want, as the owner of a key, is to be sure that you can use it and no one else can. Having it stored in a secure device that will never reveal it, but will employ it on your behalf, at your request is the best way to do that.

      The problem at hand (that TCPA makes DRM possible), actually has nothing to do with whether or not the owner has a copy of the endorsement key. Your claim that you could use the endorsement key to decrypt DRM-protected data is incorrect, because the endorsement key will never be used to decrypt any data (to use it for decryption would be to destroy its security as an endorsement key. Think about why that is; it's interesting).

      Here's how a TCPA chip might be used to implement a DRM system:

      1. The content provider sends a challenge value to your computer.
      2. Your computer uses the TCPA TPM_Quote primitive to ask the TPM to generate a signed message that incorporates both the challenge, the current contents of the Platform Configuration Registers (PCR) and a Binding Key. The message is signed by some ke
      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  8. Curious abot the hack, was it remote? by nereid666 · · Score: 3, Interesting

    i want to know if the hack was a remote backdoor or "only" a local root compromise. In order to how bad was the hacker that try to do this.
    Thanks to the admins and developers that detect that!

    --
    Damia
    1. Re:Curious abot the hack, was it remote? by kasperd · · Score: 4, Insightful

      As noted on LKML, (current->uid = 0) was probably deliberately surrounded by brackets to avoid a gcc warning of an assignment within a test.

      I'm not so sure about that. Personally I would have put the brackets there even in case of a normal test. They might not be necesarry, but I trust brackets more than I would trust my own ability to remember the precedence of every operator in C.

      --

      Do you care about the security of your wireless mouse?
  9. Re:Bad News by child_of_mercy · · Score: 2, Informative

    the kernel developers should really come up and implement a plan to maintain kernel "safety".

    Well it got caught didn't it?

    It's the quiet ones you've got to watch...

    --
    'There is a Light that never goes out.'
  10. Alright.... by aws4y · · Score: 4, Funny

    I'll call ESR, he's got the guns.
    You guys get Linus and make sure he brings Tove, since she could probly kick all our asses.

    Once thats done we'll Larry McVoy, by this time hopefully he will have the IP of the slimeball.

    The Pose rides at Dawn, we can kill some Trolls along the way.

    --
    Did Glenn Beck rape and kill a girl in 1990? gb1990.com
  11. So how do we know that there is only one? by dreadlord76 · · Score: 3, Insightful

    Ok, so the scripts caught an attempt to install a back door. Everybody jumps up and down and sings the praise of the mighty Open Source Movement.

    What if a backdoor was installed last week, or last month, but was not caught?

    The fact that this was possible once, should really make people think about the possibility of it happened ALREADY, and determine if it is necessary to hunt through the code for a systematic review.

    Instead, all we get is Microsoft Bashing...
    Ugh

    1. Re:So how do we know that there is only one? by mad+flyer · · Score: 2, Insightful

      Let me try to understand you...

      Your saying that it's bad that some hack get caught before spreading in the wild, and Microsoft is better because at least it let backdoor getting out and nobody can audit for troubles ?

      Don't get it...

      You are the kind of people that make accidents happen.
      You don't point the fact that the system worked by preventing a hack. You just say that the fact that there was an attempt means the system is unsafe...

      It's kinda biased I think...

    2. Re:So how do we know that there is only one? by aws4y · · Score: 2, Informative

      The fact that this was possible once, should really make people think about the possibility of it happened ALREADY, and determine if it is necessary to hunt through the code for a systematic review.

      I don't know if your trying to spread FUD but I'll bite. Each of the patch on the kernel that goes into the main trunk is inspected by the maintainers, and Linus gets the last word. Even the other maintainers go over the code so No it hasn't happened already and this person was an idiot for thinking it would get anywhere near the main tree.

      --
      Did Glenn Beck rape and kill a girl in 1990? gb1990.com
    3. Re:So how do we know that there is only one? by HeghmoH · · Score: 2, Informative

      There are three kinds of backdoors. There are those which are found right away and thus do no damage. There are those which ship and may cause damage but are eventually found. And there are those which ship and are never found.

      We can only ever know about the first two kinds, of course.

      Open Source software has had a few of the first kind, and this is one of them. It has had a very, very, very few of the second kind (the classic compiler backdoor is the only one I know of).

      Closed source software has had some of the first kind, and quite a few of the second kind.

      So, which type of software development is more likely to have the third kind? We can't know for sure, but we can be pretty confident that if there aren't any long-term-but-eventually-found backdoors, there aren't any never-found backdoors either. Likewise, if there are many long-term-but-eventually-found backdoors, there are likely to be a few sitting around that are never found.

      --
      Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
  12. yet another reason for (CONSTANT == var) by Anonymous Coward · · Score: 5, Insightful

    In my code I always put the constant on the lhs so that the difference between the equality (==) and assignment (=) operator are caught by the compiler by accident.

    if ((options == (__WCLONE|__WALL)) && (current->uid = 0))

    In this case, it would make an attempted root hole more visible, as (0 = current->uid) would not compile.

    1. Re:yet another reason for (CONSTANT == var) by GridPoint · · Score: 2, Insightful
      The following code does the same, without using the "C considers NULL to be false"-hack. It is easier to read and maintain (less bug prone):
      if( (fp = fopen("file","w")) != NULL )
      {
      file opened correctly, so use the fp pointer.
      }
      else
      {
      error handling here
      }
    2. Re:yet another reason for (CONSTANT == var) by spitzak · · Score: 2, Insightful

      No that would not help one bit. The code is designed to look like you are testing to see if current->uid is equal to the root uid. I doubt putting the root id in a variable, or using a macro/enum/constant like ROOT_ID would make the slightest difference in the ability to catch this.

      Please tell me any plausable reason why the mistake is easier to see in the second case than the first:

      if (foo = 0) {...}

      if (foo = x) {...}

    3. Re:yet another reason for (CONSTANT == var) by millwood · · Score: 2, Informative

      I think you missed the point: 'if (0 = uid)' will NOT compile under any circumstance.

      --

      "Hello, World", 17 errors, 31 warnings
  13. Re:3 cheers for monolithic kernals by nathanh · · Score: 2, Informative
    This is why monolithic kernals, liek the OpenBSD kernel are bettar. Since Theo dee Raddt is the only one who can edit the code...

    You honestly have no idea what a "monolithic kernel" is, do you.

    Or HIBT.

  14. Re:Bad News by fanatic · · Score: 4, Insightful
    It's the quiet ones you've got to watch...

    Yes, everyone who's upset about exploits they haven't heard about, raise their hands...

    --
    "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
  15. The more eyes... by Sean+Clifford · · Score: 2, Interesting
    > Setting current->uid to zero when options __WCLONE and __WALL are set? The
    > retval is dead code because of the next line, but it looks like an attempt
    > to backdoor the kernel, does it not?

    It sure does. Note "current->uid = 0", not "current->uid == 0". Good eyes, I missed that. This function is sys_wait4() so by passing in __WCLONE|__WALL you are root. How nice.

    And this is exactly why folks should insist on open source code.

    Assuming it was noticed, and I have little reason to think that modification of a project's cvs tree would go unnoticed, a closed source product would have to go up and down the development chain of command. Then likely up and down the marketing chain of command while a decision was made whether to say anything about it (yeah, right) was made. Meetings would be held, blame would be assigned, and - oh yeah - a discussion about a fix would ensue.

    Perhaps I exaggerate, but only a little.

    I remember when a beta of a game [unnamed software publisher] was working on got ripped off our company ftp site and passed around. There was so much hype about our game that the leaked late beta was a serious disappointment and effectively killed the good buzz the marketing folks had whipped up. [It blew anyway, got shredded by the gaming rags, had a lot of potential but an inexperienced crew and very little financial support.]

    Of course, this situation is nothing like that.

    There's always going to be someone trying to backdoor the linux kernel, windows, osx, apps galore. Having the source on-hand to look at gives you that added level of confidence that "hey, worst case we can fix it - deal with it ourselves" rather than go through the denial, silence, lame excuse, patch cycle you go through with closed source products.

  16. Ebay-style attacks by blastedtokyo · · Score: 3, Interesting
    While this attempt was thwarted, it makes you wonder though if someone could do an Ebay style 'attack.'

    In other words: 1) Work on the code for a long time, developing good features and build up virtual reputation points so that people trust you. 2) One day decide to insert your backdoor amidst some big checkin. 3) Disappear.

    It doesn't seem hard for someone to pay some random third world programmer to do this so. For example, if Red Hat had a guy in russia doing this they could, after the latest kernel was widely distributed, use it to attack Novell/SUSE.

  17. Re:First of Many? by nathanh · · Score: 5, Insightful
    Will this be the first of more kernel backdoors, now that the idea is out there?

    Isn't the pertinent question... was this the first?

  18. Re:3 cheers for monolithic kernals by _Sprocket_ · · Score: 2, Funny

    When you troll like that, I think you're supposed to have some throw-away account so you can collect karma in some misguided intent to abuse the moderation system. I hear that's what all the kids are doing these days.

    (wait - am I supposed to say "here goes my karma" at this point?) :)

  19. Re:3 cheers for monolithic kernals by Geek+of+Tech · · Score: 4, Funny
    You honestly have no idea what a "monolithic kernel" is, do you.

    My God! It's full of stars!

    1 x 4 x 9

    That monolith... oh... kernel.... right...

    --
    Stop the Slashdot effect! Don't read the articles!
  20. Calm down, calm down... by nmoog · · Score: 5, Informative

    Keep reading the thread - you'll read a bid of Linus, and a comforting explaination of whats happenin' back there.

  21. Trusting Trust by ceswiedler · · Score: 5, Informative

    The Ultimate Backdoor, if anyone hasn't read about it:

    Reflections on Trusting Trust.

    You might want to doublecheck that gcc code you're compiling the kernel with...

    1. Re:Trusting Trust by cperciva · · Score: 2, Interesting

      In the end, some naferious super genious at Intel, or Western Digital could generate an evil piece of hardware specifically designed to subvert gcc and linux at the hardware level. Granted it be nearly impossible to pull off...

      Actually, it wouldn't be hard at all. Add logic into the L1 (data) cache which computes the MD5 sum of each cache line loaded; if it is equal to a predetermined value, the address of that line is loaded into the instruction pointer.

      Presto, immediate backdoor which can be exploited by anyone who can load arbitrary data into address space (anywhere) and access it. The most obvious approach would be to send an IP packet with the exploit code -- the exploit would run as soon as the packet reached the IP stack -- but you could access it via a compiler as well.

    2. Re:Trusting Trust by ocelotbob · · Score: 2, Insightful
      Such a backdoor is fairly trivial to ferret out nowadays. All one would have to do is to place Intel's C compiler, or some other compiler capable of building gcc somewhere in the mix. As it is much, much less likely that a) two compiler trees have backdoors in there and b) both compiler chains have the same exact exploit in them, and can detect that they are building each other, by doing so, the tinfoil hat types can be assurred that their copy of gcc is essentially mathematically ensured not to have a backdoor, unless of course there is some wide-reaching conspiracy in the computer world, in which case, we're all fucked anyways, so it doesn't really matter.

      Thompson's hack worked because he was the only provider of both Unix and C. Nowadays, that's simply not the case.

      --

      Marxism is the opiate of dumbasses

  22. Unfortunately this wasn't an accident. by Ungrounded+Lightning · · Score: 2, Interesting

    In my code I always put the constant on the lhs so that the difference between the equality (==) and assignment (=) operator are caught by the compiler by accident.

    Good style.

    But this was apparently not an accident, but a deliberate attempt to disguise a trapdoor. As such the author would, of course, just "forget" to use that piece of defensive programming. B-)

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  23. As noone else seems to have pointed out yet... by temojen · · Score: 4, Informative

    The "backdoor" that someone attempted to submit was a local privilege elevation bug, not a remote compromise.

  24. Re:My boss is gonna read this.. by kasperd · · Score: 2, Funny

    No more Linux for us

    Yeah, because he'd rather like a closed source product where such attempts suceed unnoticed.

    --

    Do you care about the security of your wireless mouse?
  25. Re:No one is mentioning this by mcroot · · Score: 5, Insightful

    Insightful my ass. Nowhere does it say CVS was exploited.

    The code was injected into a CVS tree, the box could have been compromised in another fashion, such as a wu-ftp hole or some such thing.

    So please, don't throw the word exploit around as if you have 1/2 a clue about security. It just makes you look silly to those of us who do.

  26. *sigh* by inode_buddha · · Score: 2, Interesting
    On a slightly related note, I'm reminded of Bob Toxen's anecdote from his grey-hat days when he hacked the US Navy, or some such. Did it by way of a backdoor in the compiler IIRC. Can't be bothered to dig out the book at the moment, but you might want to get a copy of the 1st edition and check out his site at realworldlinuxsecurity.com.

    I see a lesson in this: The oldest tricks are probably the best, or else they wouldn't live long enough to be "old".

    I'm a LKML subscriber, so yeah I'll say this: Larry McVoy's gonna be pissed, and $DEITY help whoever...

    If you think the flamewars and trolling is nasty here, you should see them over there, trust me on that.

    --
    C|N>K
  27. doubters are forgetting the foundations of OSS by RouterSlayer · · Score: 5, Informative

    I see some people posting some negative replies, or lamenting on OSS process, etc and saying how it didnt work, or how a psuedo-trusted patch would get in, if it went through proper channels, or some such crap.

    this couldn't be further from the truth, you are all forgetting many things, #1 - the checking scripts run daily now, and Larry has mentioned he's going to step that up, still fixed within 24hrs is a damn good response time! closed-source could never be this fast.

    #2 - all this talk of peer review, saying it didn't catch this or whatever nonsense, yes in a way it did, and whats more it's exactly what will keep semi-valid attempts or those through "proper channels" out of the code. You forget, millions of people around the world review this stuff, and someone, somewhere will find it relatively quickly, and not just because all the good developers (which is most of the millions) really LIKE linux and do their utmost to protect it, and ensure that no twits do things like this.

    on the oft-side billions to one chance someone does something stupid like people said hire someone to do good patches for a long time, get trusted, and submit a patch with this kind of code in it, well, first of all, this is just stupid, it would take years to get that trusted from "zero", second, even assuming all that, the code would still get caught very quickly.

    Like I said, someone, somewhere is gonna notice real quick, because the millions of us out in the world really happen to LIKE linux, and protect the kernel most of all, and I'm sure as the code worked its way into the tree, one of the people would catch it, and I'd be willing to bet several would see it at the same moment, including Linus, et all.

    You simply can't pull a fast one over the great coders we have, these aren't your average coders, and remember, not just them, but all of us, really, in a way, put our heart and soul into supporting Linux, its a confidence we dont share lightly, the kernel is the most protected of it all, yes, for obvious reasons, its the most critical code.

    But even outside the kernel, remember millions of people around the world are reviewing code 24hrs a day, every day, and posting notes about issues, patches, etc.

    It's simply much harder to get by all that. Like I said, and I'll say it again, someone's gonna notice, and probably LONG before it even gets into the main BK tree, because even those reviewers ain't slouches!

    Closed source has a smaller review team, and I know for a fact internal developers add back-doors to code all the time. I know many closed-source coders (not necessarily personally) that as a matter of habit throw in back-doors into every piece of code they write, because they hate their job, and the people they work for, and hate the product. Since very few people ever review the code, things can sit there indefinately and never get found.

    remember this is a work of pride, something the community really cares about, we really want to see it succeed, and not have the issues like this, or that others have, we want to protect it at all costs, in any way, to ensure a good future, and protect the users out there.

    remember, we're users too! If it means that much to you, wouldn't you be checking it too? damn straight! This is exactly why the OSS model is so damn important,

    and its exactly why Microcrap, SCO, etc will never "get" it. I'd even add Intel to this list, because I think AMD is really "getting" it.

    summary - we like it, we care about it, and aint no way we gonna let some dork attempt to ruin something we've worked so damn hard to build, not just for ourselves, but for everyone, its a matter of pride.

    and yes, anyone found out (and they will be!) doing this shit is gonna get their ass kicked into next week...

  28. In other news.. by RichardX · · Score: 4, Funny

    Microsoft insists the timing of their bounty (pay deal) on (for) virus writers (hackers) "entirely coincidental" (damned convenient)

    --
    Curiosity was framed. Ignorance killed the cat.
  29. Linus's opinion by jaf · · Score: 2, Informative

    Actually Linus has an opinion:

    On Wed, 5 Nov 2003, Andreas Dilger wrote:
    >
    > Granted that this was not a break in BK itself the event is still alarming.
    > It makes me wonder if there is some way we can start using GPG signatures
    > with BK itself so that you can get proof-positive that a CSET annotated
    > as from davem really is from the David Miller we know and trust.

    A few things do make the current system _fairly_ secure. One of them is
    that if somebody were to actually access the BK trees directly, that would
    be noticed immediately: when I push to the places I export from, the push
    itself would fail due to having an unexpected changeset in the target that
    I don't have on my local tree. So I'd notice that kind of stuff
    immediately.

    And that's likely to be true of all other BK users too: the public trees
    are just replicas of the trees people actually _work_ on, so if the public
    tree has something unexpected, trying to update them just won't work. You
    just can't push to a tree that isn't a subset of what you already have.

    So any BK corruption would have to come from the private trees, not the
    public ones. Which tend to be better secured, exactly because they are
    private (ie they don't have things like cvspserver etc public servers). I
    suspect most of us have firewalls that just don't accept any incoming
    connections - I know I do.

    I think it's telling that it was the CVS tree and not the BK tree that
    somebody tried to corrupt.

    Linus

    --
    -- jaf
  30. Why on God's earth... by tuxlove · · Score: 2, Insightful

    ...is the primary CVS repository reachable? Nobody should be able to touch it, even just to read it, except the chosen few. Or am I mising something?

    1. Re:Why on God's earth... by chrome · · Score: 4, Insightful

      You're missing something. They use bitkeeper, the CVS repository for people without CVS.

      Its separate so they can screen CVS commits carefully.

  31. You mean, "what's really gonna bake your noodle... by AvantLegion · · Score: 4, Funny
    ... is would the code be exploited if nobody had said anything?"

  32. Re:guide to getting rid of slashdot ads by dekashizl · · Score: 2, Insightful

    You're such a douchebag. A single banner ad that is a) an image, b) fixed size, and c) fixed placement on the top of the page is one of the most UNobtrusive ways of advertising possible. How'd you like popups, popunders, expanding "CLICK TO CLOSE" ads, ads with sounds, ads that try to install Gator on your PC, ads with JavaScript errors in them, etc...

    How do you think /. doesn't get /.ed? Because it runs lots of hardware and bandwidth that's supported (partly at least) by money from those ads. How'd you like to pay for access? No? Then shut up and be appreciative that the ads are tastefully executed on this site, rather than trying to subvert the system that's effectively in place to give you something you like for free.

  33. Re:3 cheers for monolithic kernals by TMacPhail · · Score: 2, Informative
    Monolithic, in this sense refers to the design of the kernel. It basicaly means that there is no set structure. Any procedure can call any other procedure in the kernel.

    It doesnt have to do with the development process.

    Besides, the linux kernel is considered to be a monolithic kernel as well.

  34. Must Read: Ken Thompsom's Turing Award Lecture by Eric+Smith · · Score: 2, Insightful

    Anyone that thinks security is easy (apparently some people still do) really needs to read Ken Thompson's 1984 Turing Award Lecture "Reflections on Trusting Trust": http://www.acm.org/classics/sep95/ As Bruce Schneier says, security is a process, not a product.

  35. I wonder why not a remote root hack by Krellan · · Score: 5, Informative

    The vandal who put this in the CVS code tree obviously had a lot of skill.

    It's a clever backdoor, and might have gone unnoticed, if not for those those good automated checks in the BitKeeper-to-CVS gateway. Notice that the particular coding style is a common C gotcha (using "=", assignment, instead of "==", comparison). At first glance it looks like the value of uid is being compared with 0, when in actuality it is being assigned the value of 0: root! The gcc compiler is good about warning for this, except that this too has been defeated: as mentioned on the mailing list, notice the unusual high number of parenthesis around this expression. That high number of parenthesis has the effect of suppressing the gcc compiler warning.

    So, whoever did this obviously knew what they were doing and tried to obfuscate it. As somebody else mentioned on the kernel mailing list, if somebody is going to put in a backdoor like this, why not make it a remote root hack?

    As it is now, the above hack is only locally exploitable. A process on the local system still has to call the wait system call with that particular combination of flags, in order to trigger the exploit and get root. To my knowledge, no known applications do this, because the combination of flags is supposed to be invalid.

    If a spammer or somebody else was trying to backdoor the Linux kernel in order to gain a large number of machines to infest, then one wonders why they didn't put in a remote root exploit. It seems strange to go to all the trouble. Since this backdoor attempt has been caught and blocked, security will now only become tighter, and they might not ever get another chance like this.

    Maybe it was intended to be used with another application, also backdoored in the same manner? It might be insightful to scan other open source applications and search for this particular usage of flags to the wait system call.

    In any case, I'm glad this hack was caught!

    1. Re:I wonder why not a remote root hack by technos · · Score: 2, Interesting

      Who says this wasn't one part of a larger plan?

      Slip in a priveledge escalation bug that's hard to catch. Wait a week or two for it to make its way into the main repository unnoticed, then go back and add a little bit of code to the networking stack or Apache, etc, that allows you to execute arbitrary code as the user running the service.

      what is creepy is that the latter may have preceeded the former, and some remote execution exploit has gone unnoticed somewhere.

      --
      .sig: Now legally binding!
    2. Re:I wonder why not a remote root hack by You're+All+Wrong · · Score: 3, Informative

      Nonsense, you're talkin out of your arse.

      The brackets are necessary to even get the thing to compile as the precedence of '=' is below that of the logical operators.

      bash-2.05a$ cat > test.c
      int foo() {
      extern int x,y,z;
      if(x>y && z=0) x=y;
      }
      bash-2.05a$ gcc test.c
      test.c: In function `foo':
      test.c:3: invalid lvalue in assignment

      YAW.

      --
      Your head of state is a corrupt weasel, I hope you're happy.
    3. Re:I wonder why not a remote root hack by Short+Circuit · · Score: 2, Insightful

      On the bright side, it shouldn't be hard to search for, as far as OSS projects go. Especially if those projects are accessible via a web-CVS portal; Google caches those, I think.

    4. Re:I wonder why not a remote root hack by Old+Wolf · · Score: 2, Insightful

      whoever owns sourceforge just has to grep all the applications for wait4 , and that may lead straight to the guy..

  36. Does that mean the trojan is GPL'd? by Danathar · · Score: 2, Funny

    So, if source code for a trojan is inserted into a GPL's project and assuming the author of the Trojan knows the trojaned program is a GPL project, does that mean that the Trojan is technically GPL'ed

  37. And this, dear reader by Rogerborg · · Score: 4, Insightful

    Should end the old argument about which is better, the habitual, easy to read, but easy to screw up or abuse:

    if(variable == CONSTANT) { }

    Or the safe version that's so much harder to screw up and which turns out to be just as easy to read with practice:

    if(CONSTANT == variable) { }

    Do we all understand the real world significance of this now?

    If you still want to advocate (variable == CONSTANT), then please feel free to prove that no accidental or abusive (variable = CONSTANT) exist in the kernel.

    --
    If you were blocking sigs, you wouldn't have to read this.
  38. The list is good reading by erenq · · Score: 2, Insightful

    I recommend reading the original mailing list postings, they're good reading, rather better than most of these slashdot comments. Just follow the first link in the article.

  39. Re:Well well [Thompson: Reflections on Trust] by muonzoo · · Score: 5, Interesting

    Of course, at some point, we do have to trust someone.
    Ken Thompson wrote an original speculative essay on this for CACM back in 1984 of all years.

    It is really well worth the read. The short form is that there exists a way to subvert the compiler such that it is no longer trustable and it will build a back door into the OS forevermore. This paper is a must read.

  40. Defensive coder's bullet-proofing technique by Anonymous Coward · · Score: 2, Insightful
    At first glance it looks like the value of uid is being compared with 0, when in actuality it is being assigned the value of 0: root!

    An old trick, from my days writing with C compilers under MS-DOS: to force the compiler to catch this problem, put the constant (the zero, in this case) on the left-hand side of the 'equals' sign. C doesn't allow assignments to constants, and even a crude compiler will catch this.

    In other words, when you meant

    (uid == 0)
    and used a single 'equals' sign, instead of

    (uid = 0)
    you'll get

    (0 = uid)
  41. Re:Well well [Thompson: Reflections on Trust] by revery · · Score: 2, Funny

    I wonder if there is not a way to defeat such a method?

    For those who didn't read the article by Ken Thompson ( read it here) a compiler is corrupted so that it inserts a bug into all compilers that it compiles, and the purpose of that bug is to insert a bug into another program (such as login) when it compiles it (such as accepting a certain password as the root password)

    Both bugs have to be a pattern based search method. They look for some string or some sequence of characters that the original hacker believes will be consistent in future code, and then make their modifications.

    Running the code through a obfuscating precompiler that both randomized variable names and added random white space would potentially remove any pattern that the trojan was looking for.

    Can anyone think of things that I missed (or ways to make the trojan continue to work in the face of obfuscation)

    the obfuscator would, of course, be written in an interpreted language... ( [raises pink to corner of mouth and channels Dr. Evil] whose interpreter has of course been corrupted so that it inserts naughty limericks into every application it "obfuscates".... MUWAHAHAHA... MUWAHAHAH....)

    --

    Was it the sheep climbing onto the altar, or the cattle lowing to be slain,
    or the Son of God hanging dead and bloodied on a cross that told me this was a world condemned, but loved and bought with blood.

  42. Re:3 cheers for monolithic kernals by Trepalium · · Score: 2, Informative
    Uhm.... i386+ chips all have two priority bits, for a total of four priority levels. I don't know of a single OS that uses more than ring0 and ring3, though. Even NT/2K/XP, which is supposed to be a microkernel, runs at either ring0 or ring3.

    One obvious advantage to a microkernel is that portions of the kernel can then be (carefully) swapped out to virtual memory on disk, whereas monolithic kernels generally cannot (just don't page out the pager, or disk I/O system!). This is good, because those microkernels tend to run significantly larger than a comparable monolithic kernel. Microkernels tend to be handle to handle real-time scheduling constraints better than a monolithic kernel can because of the nature of the thing.

    Now, aside from SCO UNIX products, I don't know of any OS that is completely monolithic these days. Linux has kernel threads and run-time installable modules which are rather un-monolithic from a purist stand point. And from the microkernel camp, we have NT and OSX, which runs their entire kernel in the highest priority level for performance reasons, and in NT's case, have a rather heavy microkernel. Hybrids, the whole lot of 'em.

    --
    I used up all my sick days, so I'm calling in dead.