Slashdot Mirror


Attacking Multicore CPUs

Ant writes "The Register reports that the world of current multi-core central processing units (CPUs) just entered is facing a serious threat. A security researcher at Cambridge disclosed a new class of vulnerabilities that takes advantage of concurrency to bypass security protections such as anti-virus software The attack is based on the assumption that the software that interacts with the kernel can be used without interference. The researcher, Robert Watson, showed that a carefully written exploit can attack in the window when this happens, and literally change the "words" that they are exchanging. Even if some of these dark aspects of concurrency were already known, Watson proved that real attacks can be developed, and showed that developers have to fix their code. Fast..."

167 comments

  1. Fast? by JordanL · · Score: 5, Insightful

    and showed that developers have to fix their code. Fast...
    Ummm... no. In a world where the list of things that most developers need to fix is quite lengthy, some of which renders your average app unusable or even dangerous, fixing an exploit of a hardware configuration which has no proven virii in the wild is not at the top of the list.

    Yes, it's important to be proactive. No, such a difficult and obscure attack is not something that is priority one.
    1. Re:Fast? by Anonymous Coward · · Score: 5, Informative

      "No, such a difficult and obscure attack is not something that is priority one"

      Thread one sends a command to the OS and knowing that it will take time x to complete

      Thread two waits (x-d) before overwriting the buffer used to store the command (after the OS has checked it for validity, but before the OS has actually processed it)

      what's obscure about that?

    2. Re:Fast? by joke_dst · · Score: 0
      Just replying to null my accidental "redundant" mod...

      Although a "redundant"-mod on the first post would be kinda funny.

    3. Re:Fast? by Anonymous Coward · · Score: 5, Funny

      Perfect, another moron who thinks idiot is plural.

    4. Re:Fast? by JordanL · · Score: 0, Offtopic

      The creation of plural forms by tongue-in-cheek stretching of English plural 'rules' is popular among hackers, sometimes as a way of marking a term as community jargon. See boxen and mouses for the most visible examples. Other examples, whether widely used or not, are easily recognized and deciphered, and it is well understood that these irregular (or hyper-regular) plurals are not errors but examples of geek humor.
      http://www.reference.com/browse/wiki/Plural_of_virus
    5. Re:Fast? by Anonymous Coward · · Score: 0

      geek humor
      I laughed my butt off when I reached the word "virii" in your post. Not.
    6. Re:Fast? by Anonymous Coward · · Score: 0, Informative

      VIRUSES

    7. Re:Fast? by Anonymous Coward · · Score: 0

      Thank you for sharing that with us.

    8. Re:Fast? by Anonymous Coward · · Score: 0

      virii

      Viruses.

    9. Re:Fast? by g0dsp33d · · Score: 4, Insightful

      I agree. If you read the article, you'll notice that such attacks as "This was possible on both uniprocessor systems and multiprocessor systems." Also, it has been known since at least 1998. I'm guessing its not that big of a deal, because exploit code would be difficult, there are easier targets, and lastly because anti-virus software could probably still look for the code(not in real time, but only when its infected on disk or transit).

      --
      lol: You see no door there!
    10. Re:Fast? by Anonymous Coward · · Score: 2, Insightful

      Maybe because he said "think" instead of "thinks". Good job being a grammar nazi!

    11. Re:Fast? by ConceptJunkie · · Score: 2, Informative

      That would be true for "virii" only if the singular were "virius".

      --
      You are in a maze of twisty little passages, all alike.
    12. Re:Fast? by Anonymous Coward · · Score: 0

      think vs thinks is a simple typo. Virii instead of viruses is the sign of an idiot.
      DO YOU GET IT NOW?

    13. Re:Fast? by ScottKin · · Score: 0, Troll

      YAI (Yet Another Idiot) who can't understand the difference between a group of objects and an individual in that group.

      But of course, when you post as an AC you can always look just as incredibly ignorant as you actually are.

      --
      I don't give a rat's behind about "karma" here or anywhere else. Don't like what I have to say here? Deal with it!
    14. Re:Fast? by Eli+Gottlieb · · Score: 1

      Actually, "idiot" is, in fact, the plural form of the word "idiah".

    15. Re:Fast? by Anonymous Coward · · Score: 0

      "Think" should have been capitalized. DUMBASS.

    16. Re:Fast? by Sique · · Score: 3, Informative

      Main problem: the latin virus, meaning 'slime' or 'poison', is a singularitantum. So there is no historical plural for virus. That allows us to just make one up. And we should make it so, that it doesn't interfere with the plural of vir (man).

      --
      .sig: Sique *sigh*
    17. Re:Fast? by heinousjay · · Score: 0, Troll

      I'm going to need all of you grammar nazis to email me your telephone numbers. I'm throwing a party, and it would be cool if you guys could stop by about 15 minutes before it ends to chase everyone home. Just bring yourself!

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    18. Re:Fast? by Yaotzin · · Score: 0, Offtopic

      I like to eat PIE.

      --
      Error: No error occurred
    19. Re:Fast? by thePowerOfGrayskull · · Score: 1

      "another idiot" == "one idiot" which is not a group, but a singular individual. Case in point: if what you said was correct, shouldn't you have written "YMI (Yet more idiot)"?

    20. Re:Fast? by Foolhardy · · Score: 4, Interesting
      If that's all it is, Windows NT (and its later incarnations like XP and Vista) aren't vulnerable because kernel components facing user mode are always expected to make copies of user arguments before they're validated and used. Since the NT kernel is preemptable this would be a problem even on single CPU machines because the thread handling the syscall could be interrupted by the scheduler to execute another thread while the first was validating the arguments. Only data that is treated opaquely (e.g. a buffer to write to a file) can be accessed directly safely. This has been known and accounted for since NT was originally designed. Of course, that doesn't rule out the possibility of 3rd party developers not following the rules.

      From Common Driver Reliability Issues: User-Mode Addresses in Kernel-Mode Code

      Be prepared for changes to the contents of user-mode memory at any time; another user-mode thread in the same process might change it. Drivers must not use user-mode buffers as temporary storage, or expect the results of double fetches to yield the same results the second time.
    21. Re:Fast? by lluBdeR · · Score: 0, Troll

      How long have you been using computers? I've seen "virii" in common use as the plural of "virus" for at least 15 years.
      Let me guess, "phreaking" is spelled with an F, right?

    22. Re:Fast? by legirons · · Score: 2, Insightful

      "Windows NT (and its later incarnations like XP and Vista) aren't vulnerable because kernel components facing user mode are always expected to make copies of user arguments before they're validated and used"

      So Windows has a coding standard that says this shouldn't happen. I don't see how it necessarily follows that Windows isn't vulnerable. You're assuming that all the kernel-mode code in Windows is following the standard/reccomendation that you refer to. Let's say that even one occurance of code that doesn't meet the standard is potentially enough to do major damage (like break the most hardened-possible system). Have there been any other times when Windows code didn't follow recommended security rules? Did they make it past code-audits and onto customers' computers? What's the frequency? What's the chances of it occuring with this set of vulnerabilities?

      A phrase like "isn't vulnerable" seems awfully strong to use, when the only thing protecting against it is a warning in the developer documentation...

    23. Re:Fast? by Anonymous Coward · · Score: 0

      The specific issue here is for system call wrappers, which I think are used more often on *nix to do things like allow a particular program to only make certain system calls, and only pass certain arguments.

    24. Re:Fast? by Tim+C · · Score: 3, Informative

      Correct me if I'm wrong, but that sounds awfully similar to a race condition (it clearly isn't one, but it certainly *looks* like one), which would seem to me to mean that it would have all the same dependencies on the vagaries of system load. I'm not saying that this would be impossible to pull off, just difficult to do so consistently.

      Of course, depending on what you're actually trying to achieve, consistency may not be an issue.

    25. Re:Fast? by ThirdPrize · · Score: 0

      So if it was possible on single core machines from way back and an example still doesn't exis, is it actually any more of a threat now we are multi-core?

      --
      I have excellent Karma and I am not afraid to Troll it.
    26. Re:Fast? by Purdah · · Score: 1

      Yes, we all know that the plural of idiot is idioii!

    27. Re:Fast? by Foolhardy · · Score: 2, Insightful

      What I should have said is that the design of Windows NT isn't vulnerable. The article seems to be implying that this is a new sort of vulnerability, but it's not for NT because its preemptable nature has always required this to be done properly to be secure. No, I haven't personally verified the source code because I don't have access to it. Still, the core kernel team that writes such code has a good reputation for writing secure, correct code. Of all the security vulnerabilities I know of on Windows, only one is due to a syscall not validating its arguments correctly (see the NtCreateAtom bug), and only a few are in the kernel. I'm confident that guideline went into the infamous NT design book and the syscalls were audited for it, being such an obvious trust boundary. Being preemptable, race condition opportunities like this are common in NT, so I would think that the core devs would be aware of and doing this already.

      As for programs that intercept syscalls in order to filter them (e.g. on-access virus scanners) this behavior is inherently unsafe, and the kernel takes extra steps to disallow this in AMD64 versions. The chances of third party virus scanner ISVs getting this wrong is much higher than Microsoft's kernel devs.

    28. Re:Fast? by Wavicle · · Score: 2, Interesting

      Thread two waits (x-d) before overwriting the buffer used to store the command (after the OS has checked it for validity, but before the OS has actually processed it)

      Could someone explain this to me some more. In order for thread2 to write to buffer1, there must be a page table entry mapping buffer1's physical address into thread2's virtual address space.

      Are the operating systems allowing thread2 to arbitrarily change its PTEs? That sounds like the problem right there.

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    29. Re: Fast? by Dolda2000 · · Score: 1
      It's obscure because, as far as I know, all the standard syscall implementations on both *nix and NT copy the contents of user-space buffers into kernel space before doing anything at all with them, including validation. From what I can tell from the article, the problem is limited to syscall wrappers, and how often are they even used? Sure, there are several implementations (all whose names I've forgotten), but how many people actually use them outside of doing research on them?

      The blurb mentions Anti-Virus software, but since I've never used any AV software (I didn't back in the dark ages when I used Windows, and I certainly haven't since I stopped using Windows), I don't really know how they work. Maybe they, too, use some kind of syscall wrappers to catch viruses. In that case, maybe there's some valid concern that Windows users might be at risk. However, I'd dub that an implementation bug in AV software, and shouldn't be any harder to fix than it is to add detection for new viruses as happens normally anyway.

      Either way, should the problem be any harder to fix than just making the syscall wrappers block threads trying to write to the affected memory pages until the syscall has finished executing? In all but the most esoteric situations, I would think such a fix would lead to no problems.

    30. Re:Fast? by g0at · · Score: 0, Redundant

      "Virii"?

      -b

    31. Re:Fast? by Anonymous Coward · · Score: 0

      How nice for you. To answer your question, I've been using computers since 1975 (so much for your assumptions of my youthful ignorance). Just because you've seen it used does not make it correct.

    32. Re:Fast? by spootle · · Score: 1

      delicious.

    33. Re:Fast? by ThePengwin · · Score: 1

      English cannot even begin to be considered flawless, but then again what language can?!? :D

    34. Re:Fast? by JoelKatz · · Score: 3, Informative

      This has nothing to do with multi-core CPUs. This exact same attack would work on the run-of-the-mill SMP systems that have been around for decades. Multi-core CPUs just make SMP systems more common.

    35. Re:Fast? by adisakp · · Score: 2, Interesting

      Since the NT kernel is preemptable this would be a problem even on single CPU machines

      From the Article (emphasis mine):

      "I was able to successfully bypass security in many system call wrappers by creating unmanaged concurrency between the attacking processes and the wrapper/kernel. This was possible on both uniprocessor systems and multiprocessor systems."

    36. Re:Fast? by joss · · Score: 1

      D, [http://www.digitalmars.com/d/] hmm elegant perhaps but not flawless. There are reasons why the undeniably flawed C++ is more popular.

      --
      http://rareformnewmedia.com/
    37. Re:Fast? by vuffi_raa · · Score: 1

      idiot is very plural- there are a ton of idiots out there
      esp. when you read it as such:
      "Idiot" was originally created to refer to people who were overly concerned with their own self-interest and ignored the needs of the community. Declining to take part in public life, such as democratic government of the polis (city state)

    38. Re:Fast? by daem0n1x · · Score: 1

      One day all developers will have to put a leash in every single electron that runs inside the computer.

    39. Re:Fast? by petermgreen · · Score: 2, Insightful

      more common is a HUGE understatement, multicore CPUs have brought SMP from something servers and high end workstations sometimes had to something that all but the lowest end computers sold today have.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    40. Re:Fast? by Floritard · · Score: 1

      And we should make it so, that it doesn't interfere with the plural of vir (man).
      "There is another organism on this planet that follows the same pattern. Do you know what it is? A virus. Human beings are a disease, a cancer of this planet. You're a plague and we are the cure."
      - Agent Smith
    41. Re:Fast? by Foolhardy · · Score: 1

      Yes, I'm aware that the article says that. However, with the article title "Attacking Multicore CPUs" and a summary that makes no mention of UP systems, I wanted to mention the fact that this applied to preemptable kernels, even on UP machines, in the context of the kernel I was talking about. The article and summary seem to imply that this is a new issue: it's not.

    42. Re:Fast? by Jesus_666 · · Score: 1

      By the way, German doesn't have that problem as we tend to germanize leanwords - "Virus" (vee-rus) uses the normal German rules for pluralization, turning into "Viren" (vee-ren). Of course that doesn't work too well with English - "virs"? "vires"? Actually, I'm fine as long as someone doesn't come up with "virora" while on a glue bender.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    43. Re:Fast? by ivan256 · · Score: 1

      "Almost" SMP.

      Two cores, one cache.

      Or sometimes, two cores, two L1 caches, two L2 caches, one L3 cache.... Either way, the only thing symmetrical about them are the execution units, and not the whole processor.

    44. Re:Fast? by petermgreen · · Score: 1

      To me SMP means two processors which operate in the same way and have equal access to main memory. Whether they are on the same die and what cache is or isn't shared seems mostly irrelevent as long as there is a cache coherency system in place for any non shared caches.

      Do you have a different definition and if so what is it?

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    45. Re:Fast? by ivan256 · · Score: 1

      I think we have largely the same definition. What you're saying is that NUMA is the opposite of SMP. I think that is a perfectly good definition.

      I was being a little more specific though, probably to a fault. To me, SMP implies that you can schedule workloads on the CPUs as equals. If you have two shared-cache multi-core packages in one system, however, the system has some NUMA-like scheduling behaviors.

  2. err, system call wrapper runs with kernel privs? by Anonymous Coward · · Score: 2, Interesting

    Does the system call wrapper run at kernel privileges (or some elevated level giving protection from the caller), or at the privileges of the calling process? If the latter, it is of course worthless. If the former, I'm not sure how you can modify values stored in privileged space before they're sent off to the original code.

  3. Multicore? by Anonymous Coward · · Score: 1, Insightful

    How much does the hardware platform affect the attack?
    Multiprocessor systems are marginally easier to exploit since they do not require forcing kernel context switches via paging or other techniques. However, I was able to successfully bypass the same wrappers on uniprocessor systems. I did my experimental work on Intel hardware, but they should work across a range of hardware architectures and configurations.
  4. Again? by DeHackEd · · Score: 5, Informative

    Looks like a variation (or maybe a dup) of this.

    1. Re:Again? by ByTor-2112 · · Score: 1

      Yes! I knew I'd seen this before somewhere. Now I can stop trying to track it down!

    2. Re:Again? by fluor2 · · Score: 1

      Same here. Cambridge, this is a dupe.

  5. Damn it by Frogbert · · Score: 5, Funny

    You see, Its these kind of computing professionals that make me feel like a fraud when people call me a computer genius.

    Stop raising the bar you tool!

    1. Re:Damn it by CastrTroy · · Score: 1

      Well, as a software developer, most laypersons would probably refer to me a computer genius, but compared to this guy, I am probably anything but. However, I can see how this happens. I'm not big on cars, but the mechanics who fix them seem to work wonders, and be car geniuses. Some of them anyway. There appears to be a lot of mechanics who all they can do is read the print out from the computer and then do a bad job at fixing it. Just like a lot of bad programmers. Anyway, that's another discussion. Then there's automotive engineers, who can tell you how each part of the car works, and could probably design it in a better way.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Damn it by Joebert · · Score: 2, Funny

      I'm not really a Nerd, but I did stay in a Holiday Inn Express last nite.

      --
      Wanna fight ? Bend over, stick your head up your ass, and fight for air.
    3. Re:Damn it by Anonymous Coward · · Score: 0

      To you and your parent, I wouldn't generate yourselves inferiority complexes. All he's observing is that system call wrappers which work with copies of input data in unprivileged memory rather than copying them immediately to privileged memory are useless, because the copies in unprivileged memory can be edited by another thread after any validation is performed.

      This is, to put it bluntly, well-known and obvious. Which is why, as the researcher admits, the problem has been well-documented in the last 10 years. He hasn't produced any groundbreaking research - he's merely examining particular instances of the problem, and probably trying to wake up people who write wrappers to Do It Properly, i.e. by making sure you're working exclusively with a copy you've put in privileged memory.

      Such attacks haven't received much coverage because race conditions are often hard to exploit outside of specific software/hardware setups. Cracking today is about profit, not street cred, and that means finding holes that are exploitable on a wide number of machines.

    4. Re:Damn it by eihab · · Score: 1

      Ah! but you see, those automotive engineers are probably focused on a specific field of automotive engineering and may not even have the basic skill set that is required to troubleshoot a Volvo, BMW and a Mercedes all in an afternoon (by the way, I know nothing about Cars).

      The computing world is so big and diverse that it's impossible for someone to be "top dog" everywhere.

      You may be a superb software developer, but you may know nothing about Web programming or Systems Administration. That doesn't make you less of a genius in your field nor does it make the people who are focused on other fields inferior or superior to you.

      We all have "geekness" in our blood. Some may prefer debugging kernels and device drivers, others enjoy debugging linked lists in C++, some love the client/server nature of web programming and others enjoy systems administration and building a bewolf cluster of something.

      It's all important work and we needed geniuses in all of these fields.

      Just my 2 cents, now back to work...

      --
      If you can't mod them join them.
    5. Re:Damn it by CastrTroy · · Score: 1

      That kind of hits on my philosophy that all people are geeks. All people are geeks about something. Be it sports geeks (aka jocks), car geeks, hair geeks, computer geeks, math geeks, wilderness geeks, or knitting geeks. Its just that for some reason, anybody who does anything intellectual as a hobby seems to be viewed as a special kind of geek, and looked at as strange or unusual.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  6. So what? by Anonymous Coward · · Score: 0

    Anti-virus is gray-area software anyway because its whole purpose is to let you run exe from dubious sources. I won't cry a river if it stops working.

    1. Re:So what? by ByTor-2112 · · Score: 2, Insightful

      That's you, though. Most people believe that because they have anti-virus software they CAN safely run anything. I still find it an amusing shame that people are so willing to accept the huge performance penalties of anti-virus and now anti-spyware/adware for their utterly broken OS. Intel and AMD have to love this arms race.

    2. Re:So what? by headkase · · Score: 2, Insightful

      You're ignoring the installed base of the OS. When Linux is as popular as Windows then the people writing malicious software will target it as well. They're doing it to make-money/steal-information off of you, Windows is the target now because it offers the highest return on investment. Once the Linux platform is widely popular then security tools will become relatively more necessary for it too.

      --
      Shh.
    3. Re:So what? by Warbothong · · Score: 5, Insightful
      I remember watching an episode of the BBC's (very Microsoft dominated (as in, something major happens with Linux or Ubuntu or whatever, nothing. Some low-down Microsoft employee makes a comment about something he thinks might possibly someday become slightly relevant to some tiny niche and they spend 10 minutes on it)) Click program ( http://www.bbcworld.com/click ) and they had some "experts" (read: marketing guys) saying what the benefits of dual-core CPUs could be. All they could come up with was "You can use one core to do all of your normal activities, and use the other core to run antivirus and antispyware and firewall software constantly".

      I almost cried.

    4. Re:So what? by ByTor-2112 · · Score: 1

      I saw the same thing, and I had the same reaction. I still think of it every now and then and having another little laugh to myself.

    5. Re:So what? by drsmithy · · Score: 1

      I still find it an amusing shame that people are so willing to accept the huge performance penalties of anti-virus and now anti-spyware/adware for their utterly broken OS.

      AV software isn't protectng your from problems in the OS, it's protecting you from problems in the user.

      No amount of OS security can stop the user from deliberately doing something stupid - nor should it.

    6. Re:So what? by TheRaven64 · · Score: 3, Insightful

      When Linux is as popular as Windows then the people writing malicious software will target it as well. And that's why the sensible people will also use Macs, BSD, Haiku, ReactOS, etc. A monoculture is easier to attack than a heterogeneous computing environment.
      --
      I am TheRaven on Soylent News
    7. Re:So what? by Anonymous Coward · · Score: 0

      I still think of it every now and then and having another little laugh to myself.

      That is kind of sad, my friend.

    8. Re:So what? by prator · · Score: 3, Funny

      Congratulations! This is the first time I've ever seen someone use nested parentheses in non-code. You win a set of extra parentheses keys (because (as I've noticed) you seem to use them a lot).

    9. Re:So what? by mrchaotica · · Score: 2, Funny

      This is the first time I've ever seen someone use nested parentheses in non-code.

      You must be new here, 'cause I see it all the time.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    10. Re:So what? by Alsee · · Score: 1

      This is the first time I've ever seen someone use nested parentheses in non-code.

      This from a Slashdot reader with a 5 digit UID?
      Either you're lying just so you could make the joke, or Alzheimer's is setting in.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    11. Re:So what? by MadMidnightBomber · · Score: 2, Funny

      Fuck no. I could deploy a thousand Linux machines and never have to use the same distro/kernel/config twice. Linux rulez man!

      --
      "It doesn't cost enough, and it makes too much sense."
    12. Re:So what? by Anonymous Coward · · Score: 1, Informative

      Which is also why bananas almost became extinct. There just wasn't enough diversity in the gene pool. One virus could infect bananas from like all over the world.

      Now they're all genetically modified.

    13. Re:So what? by Anonymous Coward · · Score: 0

      Your post should be modded down "- Not Enough Parens Nested"

    14. Re:So what? by prator · · Score: 1

      I do read a lot more digg than I use to. That is probably the same as having a debilitating neurological disease.

    15. Re:So what? by corsec67 · · Score: 1

      Yeah, apparently people speak with a lisp a lot....
      (Anyone who has used lisp would get the joke I was trying for)

      --
      If I have nothing to hide, don't search me
    16. Re:So what? by Anonymous Coward · · Score: 0

      Yeah... no.

      Sorry, no sensible people will be using ReactOS..

    17. Re:So what? by phantomfive · · Score: 1

      Dude, it's all about delivery.

      --
      Qxe4
    18. Re:So what? by DrSkwid · · Score: 1

      Yeah, just wait until people run non-Windows machine as web servers and the like, it's gonna be chaos !

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    19. Re:So what? by Anonymous Coward · · Score: 0

      (Englush major nazi alert[me not you]) Use square brackets inside other brackets, they're super! Also my enlish professors have been suggesting the use of hyphens -- apparently, they're trendy for interjections -- in formal writting.

      English professors are less than enthusiastic about #include bibliographies.

  7. Dupe by Florian+Weimer · · Score: 0, Redundant

    Original post was here: http://it.slashdot.org/article.pl?sid=07/08/09/138224 (unless it's another dupe)

    1. Re:Dupe by gwk · · Score: 1

      Your correct sir, its a dupe.

      The amusing thing is that both times the summary and resulting discussion has been completely silly (people read the papers right? :) rather then discussing whats a very interesting class of security problems.

      The first submission lead people to believe that it was some kind of vulnerability in OpenBSD when its really a whole class of security problem affecting any kind of process that attempts to trap the system calls of another for the purposes policy verification.

      The second summary completely munged the technical details. perhaps the third one will be charmed?

    2. Re:Dupe by Florian+Weimer · · Score: 1

      The first submission lead people to believe that it was some kind of vulnerability in OpenBSD when its really a whole class of security problem affecting any kind of process that attempts to trap the system calls of another for the purposes policy verification.

      It's not a new class, CVE-2006-0457 is in the same category, for instance.

    3. Re:Dupe by gwk · · Score: 1

      Yes this is why I did not say for instance "a whole new class" ;)

  8. a dozen anti-virus companies just squealed in glee by Anonymous Coward · · Score: 2, Insightful

    (Insert Brand Name) Anti-Virus 2008: Multi-Core version (+$25 extra per core)

  9. Neither submitter nor editor RTFA...? by perrin · · Score: 4, Informative

    It seems that neither the submitter nor the slashdot editor read the article in question. The attack is not specific to multi-core systems, and it works only against programs that wrap system calls to add additional system protection. So it does not pierce through standard OS security, and you already need to have execution privileges. The writeup is just hype and FUD, IMHO.

    1. Re:Neither submitter nor editor RTFA...? by keithius · · Score: 0, Offtopic

      Yeah, I was just thinking - in order to execute this attack, you would already have to have the necessary privileges to do just about anything to a system - so what's the point?

      To put it more plainly, why worry about attacks that require you to be at Admin/root level - if you've somehow gotten to Admin/root level, you've already won!

      So, yeah, I think this is a bit of hype - a bit more than is usual around here, anyway. (No, wait...)

      --
      "Programming is the fine art of making a machine that has absolutely no intelligence act as though it does."
    2. Re:Neither submitter nor editor RTFA...? by Joebert · · Score: 1

      It seems that none of the submitter, the slashdot editor, or three quarters of the people who comment, read the article in question.


      I fixed that for you.
      --
      Wanna fight ? Bend over, stick your head up your ass, and fight for air.
    3. Re:Neither submitter nor editor RTFA...? by Richard+W.M.+Jones · · Score: 3, Informative

      It's also old news.

      The SELinux guys debunked it over a month ago.

      Rich.

    4. Re:Neither submitter nor editor RTFA...? by Anonymous Coward · · Score: 3, Informative

      He didn't debunk it; he agreed that system call wrappers have all kind of problems and described Watson's work as a "good paper". He then pointed out that SELinux doesn't use system call wrappers, so it doesn't have these problems. That doesn't mean the problems aren't real elsewhere.

      But I agree it's old news. It was old news ten years ago. Security has to be in the kernel. Period.

    5. Re:Neither submitter nor editor RTFA...? by The+Living+Fractal · · Score: 1

      Wait, there was an article?

      --
      I do not respond to cowards. Especially anonymous ones.
    6. Re:Neither submitter nor editor RTFA...? by Fweeky · · Score: 2, Interesting

      Erm, no, you don't need to be root to exploit these attacks, you just need to be in a situation where some security is provided by syscall wrappers. Such wrappers are sometimes used to provide an additional layer of security for applications and services; providing additional limits to what files can be read and modified, what executables can be ran, where sockets can be bound and so forth, and importantly, logging when attempts to breach these policies are attempted. You're exactly one buffer overflow away from such an exploit being a problem, since it makes that layer useless against a clueful attacker.

      That so many people are finding this attack surprising is probably a sign that there isn't enough appreciation for the security implications of concurrent systems (even if they've been known by security conscious people for many years), and that we might be finding more attacks based on them in future as more people become aware of them.

    7. Re:Neither submitter nor editor RTFA...? by cryptoluddite · · Score: 1

      and it works only against programs that wrap system calls to add additional system protection. So it does not pierce through standard OS security, and you already need to have execution privileges. Or one could look at it as standard OS security not being flexible or modifiable enough for the real world. The reason why these syscall intercepts in-process or in another process are used is because the system security doesn't do what is needed and can't be modified dynamically. The reason these things exist is because it is far easier to do these checks in user-space. I would certainly say it is a technical weakness that one has to be a skilled kernel developer and create a patch for the kernel and recompile the kernel in order to reasonably change the security policy -- because the security policy is defined by the administrator who is as a rule not a kernel developer.

      Compare this to for instance Java where if you want to run code with a different policy you define an object with a set of methods that gets called with the parameters anytime a secure operation is attempted. This works and is secure even in a multicore/multithreaded system because the parameters are immutable and Java is a typesafe language. Something like this could be done with an unsafe kernel / unsafe userspace system like linux, for instance by copying all the parameters into a separate memory segment and making that segment read-only to the process until the syscall completes. But it's slow and complicated to do this.
    8. Re:Neither submitter nor editor RTFA...? by GooberToo · · Score: 1

      In other words, it's a problem if you use anti-virus software. Use of anti-virus software which hooks system calls is actually creating an attack vector.

    9. Re:Neither submitter nor editor RTFA...? by Anonymous Coward · · Score: 0

      It doesn't create an additional attack vector. The attack merely bypasses the anti-virus protection.

    10. Re:Neither submitter nor editor RTFA...? by antdude · · Score: 0

      Ahhh. Yeah, I missed and don't recall the old story because I didn't read them due to "Breaks OpenBSD Systrace" title (don't read BSD stories).

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    11. Re:Neither submitter nor editor RTFA...? by DrSkwid · · Score: 1

      There was a summary ?

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    12. Re:Neither submitter nor editor RTFA...? by Anonymous Coward · · Score: 0

      ...what kind of crazy analogy is that? Granted, it falls in line with the rest of your craziness, but still...

      At least you're consistent.

  10. The example they give is wrong by A+beautiful+mind · · Score: 4, Insightful

    to bypass security protections such as anti-virus software
    Anti-virus software isn't by any means "security protection", especially the type that works on a heuristical basis. They are simply long lists of known to be disadvantageous programs and a daemon that tries to match the list to data on the system.

    Sure, they might offer some kind of bandaid for systems operated by people who do not have the necessary knowledge to operate a computer, but it is first and foremost a security theater and it does more harm than good by providing a false sense of security.

    There are two solutions to the problem by the way. The former is educate the users and the latter is to switch to linux. No, seriously. The important part isn't linux, but switching away from a monoculture preferably to a desktop environment that is ruled by at least 3-4 systems that are different from each other and they are interoperating in well defined ways with each other. That way, you can get the platform (the systems it can possibly infect) down for a virus to a threshold where the percentage is simply too low for it to be able to spread.
    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
    1. Re:The example they give is wrong by Anonymous Coward · · Score: 0

      You think most people out there would be far better without antivirus? Believe it or not, many of them don't feel it's worth the time and effort (and are probably quite right given their usage patterns) to have a much more in-depth idea of what they're doing. Given that by far most threats out there would fall those known by anti-virus programs (who really cares enough to write something specificially to exploit grandma and not anyone else? These plain old viruses and worms still seem pretty damn effective), it seems less like a bandaid and more like a really smart idea.

    2. Re:The example they give is wrong by Anonymous Coward · · Score: 0

      excuse me, but did i just read: "AV software give false sense of security unlike switching away from the mainstream OS" ?

    3. Re:The example they give is wrong by A+beautiful+mind · · Score: 2, Interesting

      Yes. Not having a mainstream OS to replace Windows with, but instead fragmenting the operating system landscape would eliminate a lot of problems. Pretty basic disease control principle: breed and use multiple types of plants and animals, so that any single disease can't kill off everything.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    4. Re:The example they give is wrong by tgd · · Score: 4, Insightful

      There's a billion PCs in the world -- if you think four OS's sharing 25% of that market makes it too small to be of interest to criminals, you're nuts.

      Monoculture is not the problem, although its a convenient flag to fly when "free as in beer" and "windows sux0rs" runs out.

    5. Re:The example they give is wrong by GreatBunzinni · · Score: 1, Insightful

      You seem to be a bit confused as you missed the point entirely. The point is that if there is a monoculture then a single virus can infect and disrupt the entire market. On the other hand, if there isn't a monoculture, even if a virus spreads violently and wreaks havoc through one OS it will only affect that one OS's market share, leaving all the others unaffected. That would mean, in the 4 OS scenario, that a violent outbreak of some malware would only affect 25% of the entire computing universe.

      The point is not that 25% is not a big enough number. The point is that having 25% of something being affected is a whole lot better than 100%.

      But hey, don't let your anti-linux blind hatred stop you. Go ahead and rant as much as you wish.

      --
      Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
    6. Re:The example they give is wrong by Mr.+Shiny+And+New · · Score: 1

      Having a more variable ecosystem for operating systems would make viruses spread more slowly but it wouldn't eliminate the problem and would increase all other costs: costs of software development, costs of administration, costs of training, costs of inventory management, etc.

      In the end abstraction layers would form where viruses could still spread. If everyone had a unique OS, but ran a web browser that supported Javascript, then people would develop Javascript viruses.

    7. Re:The example they give is wrong by legirons · · Score: 1

      If you really think that such diversity is useful for security (you'd need to have several million type of operating system all incompatible with each others' code and scripting languages for it to be a useful block to worm transfer (and 50 different versions of redhat with the name changed doesn't count)) - then suddenly each OS has only a few users, so nobody to help you with problems on it, and nobody to write software for it.

      (you thought it was hard getting games to run on linux - try getting games to run on AIX on a SPARC if you want an idea of what a true OS biodiversity would be like to use)

      Better to get more people on to the same platform, something like linux which is (a) got lots of people working on security for it, (b) got lots of companies doing support for it, (c) loads of places to host/write/maintain the auto updates.

      Being Free Software is a prerequisite for security (as the recent windows-update has shown) -- if people can't trust the supplier, they'll start turning off updates.

      None of this has any relation to the multithreaded OS attack being discussed of course...

    8. Re:The example they give is wrong by A+beautiful+mind · · Score: 3, Insightful

      Currently in this monopoly culture, the platform (systems a virus can infect) is around 35-40% at best. There are patched systems, way too old operating systems and incompatibilities between different versions of windows, so that even if Microsoft has an OS monopoly on the desktop PCs, it still does not translate into totally monolithic platforms a virus can spread from. (Paradoxically if everyone would run a subscription based OS with updates aka windows live it would make the security situation in IT much much worse. Possibly a doomsday kind of scenario for IT.)

      If an OS has 25% marketshare, it would translate to less than 10% of effective platform because of the incompatibilites between old and new versions, sane default settings and because at least some people patch their systems. As far as I know you only need to go below 10% or so to make it infeasible for a virus to spread. The virus would have to be very good at propagating in order to be able to spread at all. Think of the 10% as the number of pcs you could infect in theory, but of course if we for example talk about propagation by worm style or by spam, the real percentage is much lower since there are additional boundaries to pass, like spamfilters, even simple NAT home routers, etc. There are simply too many systems inbetween that the virus would waste time on trying to infect, so finding vulnerable systems is hard.

      Thinking about 25% in this sense suddently makes more sense doesn't it?

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    9. Re:The example they give is wrong by tgd · · Score: 2, Insightful

      Nice try, but just FYI I ran Linux as my primary OS for over ten years until I switched to OSX, and still have a half dozen server boxes and three desktops with it here. There's one and only one Windows box in my house and thats my girlfriends' Dell which she has because a Mac was too expensive.

      Finding blind fan-boi-ism and ignorant arguments annoying doesn't make someone a Linux hater.

    10. Re:The example they give is wrong by Frozen+Void · · Score: 1

      Would you say this if the monoculture was OpenBSD?

    11. Re:The example they give is wrong by trifish · · Score: 1

      especially the type that works on a heuristical basis. They are simply long lists of known to be disadvantageous programs and a daemon that tries to match the list to data on the system.

      I wonder why that incorrect post is modded +5.

      Heuristic scanning is the opposite of "long lists of known to be disadvantageous programs".

      It is a form of pro-active security analyzing the behavior and features of an unknown program WITHOUT any lists of known viruses. For example, does the program hook the keyboard and adds itself to the startup sequence? What other suspicious things does it try to do? Etc.

      Heuristic scanners use decompilers, virtual micro-machines, simulations and other very sophisticated stuff.

      I mod your post as Overrated.

    12. Re:The example they give is wrong by A+beautiful+mind · · Score: 1

      Heuristic scanning is the opposite of "long lists of known to be disadvantageous programs".
      I'm aware, the phrasing was maybe a bit confusing. I should have written something to the effect of "even the traditional list based method is quite inefficient and broken, but heuristic scanning even more so". The reason is because while in the case of lists it's trying to identify programs that cause harm, in the heuristic case it is trying to judge _intent_ of the programs.

      A virus is just simply a user mode application and in order to judge intent you need AI, because the virus just uses a sequence of totally ordinary system calls to operate. That is why I ment to have said heuristical scanning is especially broken.
      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
  11. Re:i wouldnt worry too much by TomV · · Score: 3, Interesting

    would only work on windows boxes anyway

    Now, I know nobody likes to be caught Reading The Fine Article, but it's maybe worth pointing out that according to The Fine Article, the exploit was demoed on Linux, FreeBSD, NetBSD, and OpenBSD. No mention of any other specific OS, though Watson did say "They should apply equally well on other operating systems".

  12. Re:err, system call wrapper runs with kernel privs by HalifaxRage · · Score: 0

    I don't know what you said, but you used some mighty fancy words there. Better mod it up, just to look smart. (and this is how the story got through in the first place...)

    --
    bomb the us up set someone
  13. Not sure that this applies to Windows... by tjstork · · Score: 2, Interesting

    The article talks about wrapping OS calls to any process, and I don't think that's something Windows can really do. Yes, there is a limited hooking facility, but I don't believe there is anything that allows a user app with admin priviledges to effectively create a subsystem on top of a subsystem, which is what this application does. There are root kits that do this sort of thing on a single call, but arranging that is rather laborious. Really, the Windows kernel just isn't accessed with a single syscall...

    --
    This is my sig.
    1. Re:Not sure that this applies to Windows... by Anonymous Coward · · Score: 0

      "The article talks about wrapping OS calls to any process"

      No it doesn't. The "wrapper" in the article could be for example a file system driver in Windows (which is how antivirus SW works), and the exploit runs as a normal application that doesn't need to hook anything.

      I have no idea if the actual exploit works in Windows though, and it should also be noted that it cannot bypass any security enforced inside the kernel.

  14. Re:i wouldnt worry too much by Anonymous Coward · · Score: 0

    A-ha, so your saying there's a chance it won't work on windows ! :D

  15. For those of you who don't know Robert Watson... by EdSchouten · · Score: 0

    http://en.wikipedia.org/wiki/Robert_Watson_(computer_scientist) Robert Watson is a FreeBSD developer who spends a lot of time on the network stack and many other stuff. :-)

  16. Er, that's an OLD attack by davecb · · Score: 5, Informative

    It works on any multiprocessor, including an
    IBM 360/168 mainframe, where I first encountered it.

    --dave

    --
    davecb@spamcop.net
    1. Re:Er, that's an OLD attack by gtwilliams · · Score: 1

      I think you meant 370/168.

      --
      Garry Williams
    2. Re:Er, that's an OLD attack by davecb · · Score: 1

      Right!
      The room was dominated by the 360 (/75,
      I think) so I misassociated the little
      168 with it (;-))

      --dave

      --
      davecb@spamcop.net
  17. Sidebar re Virii by davecb · · Score: 1, Informative

    Of course it's a word, it's a portmanteau word. A colleague and I made it up years ago, to see how many folks would thnk it was the proper latin tag for the little monsters.

    The proper latin plural for virus is, if memory serves, virus.

    --dave

    --
    davecb@spamcop.net
    1. Re:Sidebar re Virii by Anonymous Coward · · Score: 0

      Virii is a portmanteau of ______ and virus?

    2. Re:Sidebar re Virii by Nazlfrag · · Score: 3, Funny
      quote>The proper latin plural for virus is, if memory serves, virus.

      I'm a viroligist, you insensitive clod, and besides the obvious plural for virii is viruseses. Duh.

    3. Re:Sidebar re Virii by davecb · · Score: 2, Informative

      Of virus and the latin plural of a different
      declension (the plural of masculine and feminine
      words ending in -ius)

      --dave

      --
      davecb@spamcop.net
    4. Re:Sidebar re Virii by Andrew+Tanenbaum · · Score: 2, Interesting

      I'm not convinced that "virii" counts as a portmanteau, which generally requires that the sound and meaning of two words are preserved.

    5. Re:Sidebar re Virii by Protoslo · · Score: 3, Insightful

      Although it is a good guess, sadly your assumption that virus is in the fourth declension is also totally wrong. Perversely enough, it is neuter in the second even with the '-us' suffix, so the plural is actually 'vira.'

      As for 'virii,' well, my mind drew a blank, but William Whittaker's Words claims that virii is the genetive singular of 'virium,' (verdancy), the noun form of 'vireo.' As for whether that form was ever actually used, though...the perseus project server appears to be melting down, or I would check.

    6. Re:Sidebar re Virii by davecb · · Score: 1

      Good point...
      What's a proper term for mock latinate, I wonder (;-))

      --dave

      --
      davecb@spamcop.net
    7. Re:Sidebar re Virii by Anonymous Coward · · Score: 0

      moronese

  18. Re:i wouldnt worry too much by 0racle · · Score: 3, Insightful

    It's called a race condition and can/has affect every OS that has SMP capability.

    --
    "I use a Mac because I'm just better than you are."
  19. Re:i wouldnt worry too much by 0racle · · Score: 1

    BTW, here's that missing 'ed' from the previous post.

    --
    "I use a Mac because I'm just better than you are."
  20. Robert Watson is a god. by Anonymous Coward · · Score: 0

    Don't feel bad that your skills don't compare to those of Robert Watson. The man is a god, especially when it comes to computer security. Look through the FreeBSD mailing lists to see the numerous contributions he's made to that project. His TrustedBSD work is really exemplary, as well. And he's already well-known for the security research he's doing at Cambridge.

    Along with Dr. Jon Harrop and Slava Pestov, I think we'll eventually recognize them as the leading triumvirate of the multicore/multiprocessor revolution. In thirty years, we'll look back on their work and discoveries in awe, just as we look back on the works of Dijkstra, Hoare and Knuth.

    1. Re:Robert Watson is a god. by Anonymous Coward · · Score: 1, Insightful

      Slava Pestov

      That guy is a joke... I'm sorry dude but this guy is nowhere near the level of Watson. The numerous logical fallacies he consisently makes in his various IRC and forums posts are quite saddening. I'm sorry but some guy that says that "Latex [wrong spelling by him] and Docbook [other wrong spelling] are equivalent" is nothing but a clueless fool. That Slave is a joke... He's some FP zealot clueless when it comes to OOP/OOD/OOA (go to comp.object Slava and post there for a good laugh about your IQ level). JEdit has no place in my world where I use IntelliJ IDEA (commercial) and... Emacs (eat that Slava FP zealot ;)

      So, yup, he happens to know Java programming and FP... But he's a complete idiot out of his field and I've proved him wrong on countless occasion on various IRC forums. He's actually so pathetic that he'll leave the chatroom once you prove him by logical reasonning that he's a big-mouthed fool.

      But we live in a world of mediocrity where mediocre people admire mediocre people and mediocre programs made by these mediocre people.

      Slava is a fake, just as Joel.

      Reading your silly post I actually think the real name of the silly anonymous coward is actually "Slava Pestov".

      Oh and btw the leaders of "multicore/multiprocessor revolution" [sic] are actually hardware engineers... Slava's random fartings are nothing compared to this.

    2. Re:Robert Watson is a god. by PopeRatzo · · Score: 1

      we look back on the works of Dijkstra, Hoare and Knuth.
      Weren't they the infield for the 1932 Yankees?
      --
      You are welcome on my lawn.
    3. Re:Robert Watson is a god. by Jesus_666 · · Score: 1

      No way, man. Edward Dijkstra built the first navigation system, Tommy Hoare invented the algorithm and Ronald Knuth wrote the Morris-Pratt worm, which later evolved into ILOVEYOU and Sobig.

      Ha! And the professor had me fail the Computer History class! I still know everything!

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  21. Multicore == multiprocessor with the x86-64! by Anonymous Coward · · Score: 0

    From the perspective of software, including an OS kernel, there is no difference between a dual-core uniprocessor x86-64 system, and a single-core dual-processor x86-64 system. The physical difference has merely an organizational effect; it in no way interferes with the architectural view of the hardware.

    As far as the kernel and any software is concerned, there are two separate uniprocessors available, regardless of whether they're both on one die, or on two separate die.

    1. Re:Multicore == multiprocessor with the x86-64! by Anonymous Coward · · Score: 0

      ...and so when the author says "uniprocessor systems" he is talking about a single processor with a single core, and that means "Attacking Multicore CPUs" isn't the best title.

  22. News flash! by achurch · · Score: 4, Insightful

    In a multitasking system, you can read and write the same memory space at the same time! . . . Oh, I guess it's not news after all.

    Seriously, this is just Yet Another Race Condition. As long as you follow the rules of multithreaded programming (which for syscall wrappers means copying your arguments, since you can't negotiate mutexes with the caller), this is a non-issue.

    Neeext!

    1. Re:News flash! by phasm42 · · Score: 1

      Mod parent up.

      This is only a problem if your syscall wrapper didn't take this into consideration. If you're writing a syscall wrapper for security reasons, you don't pass parameters that the original caller still has write access to.

      --
      "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
  23. Re:i wouldnt worry too much by Anonymous Coward · · Score: 0

    OpenBSD's been saying for a while that these multi-core Intel Processors are extremely buggy, including AMD's too! Why is this new news for Linux folk when it's actually old news...?

  24. Re:err, system call wrapper runs with kernel privs by Anonymous Coward · · Score: 0

    Why is it useless, because you can just PTRACE_ATTACH to it? ptrace is a system call, numb nuts.

  25. Parallelism by Peaker · · Score: 2, Informative

    This should probably even work in a single-processor setup, with ordinary threads, because the user-space system call wrapper is most probably pre-emptable (How would it prevent preemption?) and thus a thread-switch can occur during the syscall wrapper code. It may be less probable, but careful timing and multiple attempts can probably achieve this same exploit on an ordinary single-processor setup.

    1. Re:Parallelism by Anonymous Coward · · Score: 0

      1. the system call wrappers are by nature in kernel space, however, they are still preemptible (in.. most kernels anyway)

      2. The implementation is where the news is at; it's summarized thusly:

      A process calls a system call with a number of arguments, on linux alot of arguments (including pointers to large blocks of data, ie, a write() call) are placed in registers; while old UNIX (solaris/freebsd/netbsd, etc) push all arguments (including pointers) into the user stack.

      The wrapper uses these arguments for it's security check; however, in the case of the pointers, for performance reasons they rarely do a proper copyin() in kernel mode to move all the data into kernel space (this is a huge performance hit on modern CPUs). This, combined with the assumption that an address space is only writable by the process making the system call, is the reason why all of these syscall wrappers are broken; Unless the wrapper takes the effort to move all the data into kernel space before the security check, it's /broken/ (and for those who claim the NT kernel is immune, the problem is inherent when you pass pointers as arguments to a system call, in the simplest form)

    2. Re:Parallelism by Peaker · · Score: 1

      Are you sure the system call wrappers in question are in kernel space? The article gave me the impression its purely a user-space technique (I was guessing it was done via some sort of code injection or such).

      If it is kernel-mode, how does it use another thread of execution to overwrite the temporary copy made in the kernel?

  26. Hypervisor by lunchboxtheman · · Score: 1

    Is it just me, or does this sound like a glorified rootkit? There is something called "Bluepill" that uses the hypervisor mode on new hardware to insert what essentially is a mega rootkit into the system that can intercept (and modify/drop) kernel calls. I'm not nearly as computer savy as most people here, but this is what it sounds like. If this is the case, this is old news. Also, the article mentioned that it was a problem on single-core processors, so the title is misleading.

    1. Re:Hypervisor by geniusj · · Score: 1

      That's like saying: "Oh, this is just a race condition, nothing new here . . ." These are incredibly broad classes of exploits. And what he's talking about, while a race condition, is almost its own class of exploit because of how broad its scope is.

    2. Re:Hypervisor by geniusj · · Score: 1

      I'll also add that a rootkit isn't traditionally an exploit at all. It's usually a backdoor or series of backdoors (sometimes as well as tools/kernel mods to hide itself) that allow an attacker further or continued access to a system that he has exploited in some other way. So it's not what you use to get in the first time, but the times following.

  27. Misleading article by Anonymous Coward · · Score: 2, Informative

    From the title it seemed clear to me this article was *supposed* to be about exploits unique to SMP hardware. Yet all it really is about is generic software race conditions totally unrelated to SMP and its concurrency model.

    For those of you who didn't read the article:

    "I was able to successfully bypass security in many system call wrappers by creating unmanaged concurrency between the attacking processes and the wrapper/kernel. This was possible on both uniprocessor systems and multiprocessor systems."

    I wish people posting articles would stop with all the bullshit. Its really starting to get old.

  28. Well, it was almost English. by _Shorty-dammit · · Score: 1

    That summary made my head hurt. Stupid taco.

  29. Rediscovered again by kabdib · · Score: 2, Interesting

    Nothing really new here.

    Other attacks include DMA into buffers already provided to the kernel (lots of fun with async disk and network I/O), GPU writes, OS callbacks (depends on the OS in question), and even plain vanilla threads.

    The kernel (or whatever secure subsystem you're talking about) needs to copy and verify parameters. This stuff has been known for decades. That doesn't stop weak software from being written, but it does give old farts like me a chance to kvetch :-)

    --
    Any sufficiently advanced technology is insufficiently documented.
  30. Re:i wouldnt worry too much by rthille · · Score: 1

    Not true. Messaging passing OS's and even BSD's without syscall wrappers enabled don't suffer from the problem.

    --
    Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
  31. Ahem. by tomstdenis · · Score: 1

    FTA I was able to successfully bypass security in many system call wrappers by creating unmanaged concurrency between the attacking processes and the wrapper/kernel. This was possible on both uniprocessor systems and multiprocessor systems.

    What's this about attacking multi-core processors?

    The processors aren't broken, you could race a process in a uni and SMP system just the same. And in reality, your syscall security should be in there kernel itself, where any copies taken of data are passed internally to the required functions after policy checking.

    --
    Someday, I'll have a real sig.
  32. How hard can it be? by Chabil+Ha' · · Score: 1

    Even if some of these dark aspects of concurrency were already known, Watson proved that real attacks can be developed... Elementary, my dear Watson.
    --
    We're all hypocrites. We all have hidden parts, it's the contrast between them that make us more a hypocrite than others
  33. Re:err, system call wrapper runs with kernel privs by Anonymous Coward · · Score: 0

    I'm not sure how you can modify values stored in privileged space before they're sent off to the original code. That's the whole point; the values aren't stored in privileged space, they're never copied out of the caller's address space. So if the caller has two threads, and the other thread's only job is to time overwriting those values after they are checked (in-place) by the wrapper but before the kernel copies them, there's nothing preventing the attack from succeeding.

    Yes, it's obvious in retrospect that leaving the values in-place where they can be overwritten by just about anything owned by the same user is a stupid thing to do. Yes, a lot of wrappers apparently still work that way. Hence the article.
  34. Re:i wouldnt worry too much by sjames · · Score: 3, Interesting

    It's not even restricted to SMP. Some of the more clever hacks will work on a uniprocessor system by retrying until a context switch happens at just the right instant (or wrong instant depending on your perspective). They may stack the deck in their favor by arranging for a function call to cause a page fault. It's certainly easier to exploit with multiple processors.

    The one certainty is that this form of attack is nothing like new.

    Of course, many syscall wrappers can be bypassed by coding a syscall directly in assembly language rather than calling a library function.

    The crux of the problem for ptrace based systems is that some syscall parameters are stored in user memory. Consider the open call in an environment using ptrace for security. I write a multi-threaded app and create a buffer holding the filename. I set it to "/some/path/thats/ok" and call open. The ptrace process is notified of the call, accesses the filename parameter in my thread's memory and decides it's OK, so it calls ptrace to allow the syscall to happen (rather than nullifying or killing my process).

    IF my second thread can change the filename buffer to "/some/path/I/shouldnt/be/allowed" between the moment that the tracer decides it's OK and the moment it calls ptrace to allow it , the kernel will open the file for me and I have bypassed security.

    On a uni-processor system, I might have to make a great many attempts, but with persistance, eventually my second thread might get scheduled at just the right moment to make the change. If I succeed once, the billion failed attempts won't matter.

    The central problem in this instance is that ptrace was intended to be a debugging interface and not a security measure.

    Solving that problem could get quite complex. If the security measure must also validate data written (which could potentially be several GB), the kernel would have to make sure that no thread in any process that has access to the memory the syscall covers can be scheduled AND that no other ptrace parent of those threads can be scheduled. It can do that by walking process structs under a lock (expensive) or temporarily marking the affected pages R/O and blocking on a fault (also expensive on most archetectures). Even if such a measure is taken, it shouldn't apply to a normal ptrace since it would significantly change the behaviour of a program being debugged.

    The difficulties above are why all files that can be accessed by a system that can access classified data must also be treated as classified no matter what they are. Otherwise a badguy might manage to stuff a blob of top secret data into an unclassified file for later retrieval. Just imagine the nightmare of attempting to track classification level page by page and proving it can't do the wrong thing.

    It's related to the reason that no DRM scheme can ever provide absolute protection against a sufficiently determined copier.

    If the security is limited to parameters that have a more sane maximum size (such as a filename where MAXPATHLEN is a set value), the kernel could copy the parameter first and provide it to the tracer process using a different syscall.

    From a more theoretical POV, any OS kernel that unwisely relies on a parameter in userspace not changing between the time it validates access and the time it fulfills the request can even have it's internal access controls violated or end up getting crashed on an SMP system. That's one reason why modifying a kernel meant only for uniprocessor systems to support SMP is VERY non-trivial.

  35. Similar attack exists on single CPU with DMA I/O by karl.auerbach · · Score: 1

    Way back in the 1970's folks I worked with were hired by IBM to form a tiger team to attack VM/370. (Virtual machine OS's have been around since the 1960's.)

    They were able to crack the system by setting up a DMA based read. Then they called the kernel with some kernel call parameters. The kernel checked the parameters. And then the DMA input rolled new values onto those parameters.

    This, of course, took some careful timing.

    And it relied on kernel weakness - the weakness of leaving the user parameters in user accessible memory while they were being validated. The fix was to have the kernel move the call parameters into its own memory before validating.

    And on a multi-CPU unit (those, too, existed back then) that copying of system call parameters had to be to a different place for each CPU, else synchronized calls from different CPU's could be a weakness.

  36. Re:i wouldnt worry too much by gratemyl · · Score: 1

    You'd probably get a BSOD before it can do any harm.

    --
    hackerkey://v4sw5/7BCHJMPRUY$hw3ln3pr6/7FOP$ck6ma8+9u6L$w4/7CGUXm0l6DLRi82NCe3+9t5Sb7HMOPRen5a17s0DSr1/2p-3.62/-5.23g3/5
  37. RTFA - not SMP specific by sofar · · Score: 1

    I was able to successfully bypass security in many system call wrappers by creating unmanaged concurrency between the attacking processes and the wrapper/kernel. This was possible on both uniprocessor systems and multiprocessor systems.

    So, this doesn't protect UP systems at all. preempt already exposes you to these kind of concurrency issues, and one can only assume that pretty much any RT OS also is vulnerable.

  38. Re:err, system call wrapper runs with kernel privs by dgatwood · · Score: 1

    Unless I'm misunderstanding the issue, this seems like a completely irrelevant exploit. More accurately, it seems to be about the least efficient way possible to achieve this goal. If you already have injected virus code running in a separate thread inside a process, you don't have to intercept the system call and overwrite the data at all. You can just ask the system to grant write permission to the TEXT pages and change the system call to call into your own function that mucks with the values, calla the system call, and returns the result. For that matter, you could rewrite the code to not call the system call at all and just always return "not infected". You could also patch around the verification function entirely and then overwrite the data at your convenience.

    Doing such an exploit with a timing attack just doesn't make any sense. Once you have untrusted code running in your address space, your process must be considered untrustworthy anyway. This is why we have processes instead of just running everything on multiple threads in the same process. Once those boundaries break down, you're screwed even if you could prevent that race condition, as the code and data could be manipulated at any other point along the way.

    Indeed, the ability to debug software depends on this race condition. As I understand it, system calls and possibly function calls are the only guaranteed safe points for attaching to an unknown process and stopping it. If you were to eliminate the ability to stop a process or thread on entry to or exit from a system call, your ability to debug would go south rather rapidly.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  39. The Software, Not The Hardware by ars+architectura · · Score: 1

    Just to point out, or re-emphasize, that the exploit is possible due to the nature of the software (the operating system, in this instance) and not because of a flaw in the hardware, per se.

  40. Re:err, system call wrapper runs with kernel privs by DrSkwid · · Score: 1

    Yeah, that'll be why the example exploit code fails.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  41. Watson? by Anonymous Coward · · Score: 0

    No shit Sherlock! Keep digging ..... you know how it goes..

  42. Vulnerability in multi-core WINDOWS systems... by ekimminau · · Score: 1

    This isn't a problem in non-Microsoft OS, is it?

    --
    Armaments, 2-9-21 And Saint Attila raised the hand grenade up on high, saying, 'O Lord, bless this Thy hand grenade' N
  43. Vague; unsubstantiated..."race" conditions? oh my! by lpq · · Score: 1

    While there are potential problems, he doesn't say which systems.

    The article mentions *nix based systems, but talks about Anti-Vir sw that layers on top of the
    OS. The layered AV SW, sounds like a windows problem.

    While there are race conditions possible with many security solutions due to the fact that they are not bound into the kernel, none of the problems are new with "multi-core" than with other "MP" machines (computers did have multiple "Cores" (CPUs) in the past -- just not on one chip).

    The article is very vague about what systems this affects, but if a module is properly implemented using the linux security module framework, it won't be affected by this problem. The only time/place where this affects modules is in close-source environments where they can't both decode *and* use the arguments without re-enabling interrupts within the same process.

    "Systrace" (mentioned in base article), has been known to suffer from this problem for years (before
    Dual Core existed). But I thought it was (from the name) more intended to be a tracing tool/diagnostic for use in "friendly environments".

    No one will need to fix anything unless they are required to (by law or by monetary considerations). This isn't a problem the average home user would have to deal with from the internet, *usually*, and even if it happens what you wanna bet that no changes will come down the line until they are required by some "customer". Maybe a government security involved contract would require this, but how many of those require network security in a hostile environment? i.e. usually if security is required, it's not directly on the internet.

    Case in point -- last evaluation I heard for Windows only involved it being tested as "secure" in a non-networked configuration. You want security? Don't let strange code, data or people on your computer...but the minimum required, disabling web-scripting, by default, is too much trouble for most people (I still have it turned off, but I'm willing to not have things magically work to be safer).

    I don't see how this is 'news'...except for those who weren't awake last time this was discussed.