Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

ATI Driver Flaw Exposes Vista Kernel to Attackers

Posted by CowboyNeal on Fri Aug 10, 2007 06:34 AM
from the sneaking-in dept.
Shack0ption writes "An unpatched flaw in an ATI driver was at the center of the mysterious Purple Pill proof-of-concept tool that exposed a way to maliciously tamper with the Windows Vista kernel. The utility, released by Alex Ionescu and yanked an hour later after the kernel developer realized that the ATI driver flaw was not yet patched, provided an easy way to load unsigned drivers onto Vista — effectively defeating the new anti-rootkit/anti-DRM mechanism built into Microsoft's newest operating system. Ionescu confirmed his tool was exploiting a vulnerability in an ATI driver — atidsmxx.sys, version 3.0.502.0 — to patch the kernel to turn off certain checks for signed drivers. This meant that a malicious rootkit author could essentially piggyback on ATI's legitimately signed driver to tamper with the Vista kernel."
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • trusted computing (Score:3, Insightful)

    by Anonymous Coward on Friday August 10 2007, @06:39AM (#20180911)
    ok...
    so windows vista trusts ATI.
    ATI trusts themselves.
    I don't trust no one, especially closed-source drivers from ATI.

    shouldn't they simply replace their "fglrx" with "ati", in their xorg.conf?
  • by Wooky_linuxer (685371) on Friday August 10 2007, @06:39AM (#20180913)
    Vista has an anti-DRM mechanism built-in? Wow, and I thought Linux stood for free sofware... way to go Redmond!
    • Re: (Score:2, Insightful)

      and I thought Linux stood for free sofware...

      Linux does NOT stand for free software. It happens to have a (now old and relatively flawed) free software license. The main direction for Linux comes from a guy who likes Tivoisation (ie, DRM), and is of the opinion that politics like Freedom issues don't matter; he just wants to create tools.

      If you want a Free Software kernel, that guarantees you'll still be able to use it at version 11.6, you'll need to look further afield.

      You could argue that kernels don't

      • Re: (Score:3, Interesting)

        udev is part of the Linux kernel project, while HAL and D-BUS are not.

        So, why doesn't Linux have a HAL? I can tell you the answer in one word - Tradition. The Linux kernel emanates from kernel.org, which essentially produces a white box OS, supporting x86/IA-32 compatible CPUs. With that Wintel architecture, things like code compatibility, BIOS, and chipsets come together to form what I call the PC/AT "virtual machine." Linux, like Windows, leverages basic knowledge about this platform, so that booting a
  • by Anonymous Coward on Friday August 10 2007, @06:40AM (#20180927)
    if each driver had its own separate space, this flaw wouldn't affect the rest of the system.
    • by A non-mouse Coward (1103675) on Friday August 10 2007, @09:58AM (#20182949)
      Mod Parent Up.

      Even Microsoft Research [microsoft.com] is looking into making microkernel [wikipedia.org] operating systems with their Singularity project [microsoft.com].

      Of course, the Minix 3 Project [minix3.org] has been doing this for awhile, supposedly even having a fully POSIX compliant product at this point.

      The major design factor of Microkernels [wikipedia.org] is that it's bad practice to have a trusted path from any driver or system service in kernelspace to any other driver or system service in kernelspace. Just because you're "in" doesn't mean that anything else that's "in" should trust you.

      The largest hurdle microkernels have to overcome, however, is the problem of DMA [wikipedia.org]. As long as a malicious ATI video card (nevermind the driver) has direct access to all memory locations via DMA, it could easily just patch the driver's memory at runtime every time via hardware. That's why microkernel development is going to have to go hand-in-hand with tools like IOMMU [wikipedia.org], for controlling access to critical areas of memory.

      Of course, critics often complain about Inter-process Communication (IPC) [wikipedia.org] as being another limitation to microkernels, but at this point, it's really just an implementation hurdle as there are several ways to get processes that are in different memory spaces to communicate with high performance, especially as Moore's Law brings CPUs faster and faster.
      • Re: (Score:3, Insightful)

        The largest hurdle microkernels have to overcome, however, is the problem of DMA
        Absolutely correct and imho correct for all types of kernels. As long as hardware uses system memory to function, and the location of memory is not properly restricted, this problem will persist. Drivers openly developed could easily be developed to restrict specific device types to specific memory areas.
        • Re: (Score:3, Interesting)

          The hardware people are going to have to fix/modify DMA anyway, if they want fast IO, hardware etc with virtualization.

          They might as well do something more innovative and useful, after all I heard they were running out of ideas on what to do with all those transistors, and resorting to stuff like more cores and more cache.

          Should sit down with the O/S, DB etc people, and brainstorm some stuff that will make doing things the "right" way easier (or even just possible). Sure there's often no real right way, but
  • I wonder (obviously not a kernel developer here), would a micro kernel prevent these types of problems, where malicious code which normally wouldn't have permission to do things, attack a part of the kernel (video driver) which does and so gain permissions?
    • I'd prefer a decently written & thoroughly tested Kernel API to be honest. It's not like they haven't got the cash to invest in decent developmental and quality assurance practices.
    • Re:Kernel Type (Score:5, Informative)

      by TheRaven64 (641858) on Friday August 10 2007, @07:06AM (#20181079) Homepage Journal
      Depends. A video driver needs to be able to DMA data to and from the card. Even if it's in an isolated address space, a compromised driver can write all over physical memory by telling the card to. If you have an IOMMU then this can be alleviated somewhat. Some kernel component outside the driver could provide DMA apertures in the correct places, and if it did correct validation of the driver's requests (i.e. not let it open windows anywhere into memory except where it is owned by a process using the driver) then it would be possible for a microkernel to be safe from this kind of thing.
    • Re: (Score:3, Insightful)

      It's an interesting dilemma for Microsoft - they can't have DRM without video drivers running in kernelspace (performance issues), but DRM is broken if they allow drivers in kernelspace. Consider this: anyone can now load the vulnerable driver, apply Ionescu's magic and WHAM! I predict pirate-patched video card drivers for windows are coming soon - the oportunity to strip the DRM out of high-def movies from the comfort of your own PC is just too nice to pass up. And doing it with a legitimate copy of Vista?
      • Re:Kernel Type (Score:5, Informative)

        by drawfour (791912) on Friday August 10 2007, @07:12AM (#20181131)
        You may have missed the part in the article where the kernel *knows* it's running unsigned binaries, and thus turns off the DRM stuff. So there is no way to strip out the DRM, since that capability will be turned off when the system detects it's running unsigned binaries.

        From the article:

        Vista is perfectly aware that an unsigned driver has been loaded: you will even get a warning a bit after the driver is loaded. This also means that PMP will become aware that the driver is loaded, and disable high-definition media playback. This means that this tool will not help you bypass DRM in any way, because the original Vista protection mechanisms are still in place. Note that on Vista 32-bit, this behavior already exists by default in the OS, so it is not a "bug" of Purple Pill.
        • That's exactly the problem: If the program runs "as" the driver, which is signed and thus trusted, the kernel does not notice that it's unsigned code. For the kernel, this is signed code. Worse (or better, depending on your POV), you run with a fairly high level of trust (being the graphics driver), thus you have a rather good chance to pop the DRM altogether.
  • Rules of the Road (Score:4, Interesting)

    by mfh (56) on Friday August 10 2007, @06:46AM (#20180965) Journal
    When hardware drivers are responsible for system integrity, all hope of safety is permanently lost. Introducing the new battleground for virus writers... fake patches:

    YOUR VIDEO CARD NEEDS NEW DRIVERS: CLICK NEXT!!!!!
    • AFAIK, this doesn't happen. I'm under the impression each release of a driver for Vista has to be tested and signed off by MS. However it does pose the possibility of an insider creating a sekret backdoor. Once you've created one backdoor, it'd probably be a good insurance policy to create an extra one so that when the first one is discovered, you maintain access.
  • FTFA, quoting a Symantec senior manager: "Basically, that ATI driver has functionality that allows you to read and write kernel memory. It's either a bug or a feature of the driver." I guess it's a feature to the bad guys. To everyone else, it's a bug.
    • Re: (Score:3, Insightful)

      I guess it's a feature to the bad guys. To everyone else, it's a bug.
      I guess it's a bug to Microsoft and the content industries. To everyone else, it's a feature.
    • Re: (Score:3, Insightful)

      If you consider someone a bad guy who wants his legally purchased machine to do what he wants, then yes.
  • by Glowing Fish (155236) on Friday August 10 2007, @06:55AM (#20181021) Homepage
    The fact that people are actually going to the lengths of breaking into Windows by using a legitimate driver with kernel access to load in rootkits...the fact that it even requires explaining, means that Windows has reached some type of real security. I mean, with Windows 98, you would just hit enter on the login dialog box, and there you were!
  • by Dekortage (697532) on Friday August 10 2007, @06:59AM (#20181041) Homepage

    Seems like the real concern is not that ATI's code opens a security hole. You know ATI will patch it. A more important question is, how many other securely-signed drivers, etc., have similar holes? How many drivers are there in a typical Windows Vista system, anyway?

    At least Microsoft can say (with some truth) that it's not THEIR software which introduces the problem! (it actually is, of course, but not directly)

    • You know ATI will patch it.

      And how will ATI ensure that all people using the flawed drivers upgrade to the newest ones? How will the average Vista/ATI user even know that they are at risk of this flaw? Unless all those flawed systems are patched this will remain a fairly big hole to be exploited by the unscrupulous.

  • A kernel-level driver can own a system? No shit!

    (BTW, that's one of the reasons drivers need to be signed to run on Windows Vista x64.)
            • Re: (Score:3, Interesting)

              Red herring? Is the article not a specific example of a program being able to anonymously run kernel level code, bypassing the signing mechanism? I wasn't saying it's intrinsically broken, just that what you said (anonymous code can't run) is evidently not the case.

              That it exploits a flaw in 3rd party software does not change the fact that the system is currently breakable. Signing simply makes it harder, which is certainly a good thing. It does not confer complete trust, which is what absolute statemen
  • by Opportunist (166417) on Friday August 10 2007, @07:29AM (#20181247)
    Actually I'm amazed it took almost a year. I would've betted my annual income that something like this would surface before May.

    Let's take a look at the inner workings of the system. Yes, MS has full access to the source code, so their drivers will probably not leak. They also have no "real" competition on the OS market (yes, there's Linux, there's MacOS, but what company would switch?). They can take their time to proof and perfect their drivers until you can be certain that they don't leak.

    Do third party vendors have the source? No. Do they have tight schedules and competition breathing down their neck? You bet. Will they prefer performance or security? Well, what of those two is tested on pages like THG?

    Worse yet, what if such a driver actually allows a user to "crack open" his system and use it as he pleases? Could you see people buy a cheap ATI card just for the purpose of disabling the DRM? I mean, there have been really, really crappy games for some consoles that sold surprisingly well, because they contained a bug that allowed disabling certain security measures. Save-game exploits were quite popular for a while.

    Could you see that this "security" bug could actually be a selling argument FOR the hardware rather than against it?
  • I see... (Score:3, Funny)

    by lixee (863589) on Friday August 10 2007, @07:32AM (#20181267)
    So the reason ATI is not giving us Linux users free drivers, is because they care about the security of our systems. Talk about irony!
  • by Ravenscall (12240) on Friday August 10 2007, @07:52AM (#20181439)
    And this is why I have used nVidia hardware since I upgraded from my Voodoo 3 3000. While ATI and nVidia may go back and forth in hardware performance, nVidia has much better driver support on Linux or Windows.

    *Still rather upset That there is no linux acceleration driver for the ATI Rage Mobility in the original iBook, I would much rather run Linux on it than OS X or OS 9.
  • by NullProg (70833) on Friday August 10 2007, @08:25AM (#20181751) Homepage Journal
    Oops, I guess not....

    Because WPF is largely written in managed code on the common language runtime, it never ran in kernel mode. There are elements of WPF (called the MIL) that are written in unmanaged code, but that code also largely runs (and always has run) in user mode. Insofar as WPF needs to touch kernel mode stuff (e.g., drivers), it interacts with them through the existing DirectX APIs. The user mode and kernel mode aspects of the WPF architecture haven't changed.
    http://arstechnica.com/news.ars/post/20051216-5788 .html [arstechnica.com]

    So what did Microsoft gain with the Vista GDI changes?

    Enjoy,
    • Re: (Score:3, Informative)

      In NT 3.x, the Win32 video driver model was created from scratch. A video driver consisted of two parts: a video miniport driver that does the actual talking to hardware, resource allocation, etc., running in kernel mode and a display driver that handles all the drawing and display functions, running in user mode with the window server (winsrv.dll) hosted in csrss.exe. In NT4, Microsoft moved the window manager into kernel mode (win32k.sys), which took the display driver with it.

      Vista supports two displa
  • I only knew about the red pill and the blue pill. Hmmmmmmmmmm........

    Morpheus: This is your last chance, Neo. After this, there is no turning back.
    You take the blue pill, the story ends, you awake in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland, and I show you how deep the rabbit-hole goes.Remember: all I'm offering is the truth, nothing more.
    Neo: And the purple pill?
    Morpheus: Oh, the purple pill gets you high. I can't guarantee what happens later.
    Neo: I'll take the purple pill. (*gulp*)
    (After a short pause...)
    Whoa, dude, I can see what's behind the mirror! Whoa... everything's like computer code! I understand what the Matrix is now!!
    (Back in the nebuchadnezzar...)
    WE'RE LOSING HIM!
    Neo: I can fly dude!!! Excellent!!!
    Flatline: beeeeeeeeeeeeeeeeeeeeeeeep....

    (Some time later...)
    Trinity: Seriously, Morpheus. This is the 20th time we lose a potential "One" because of the purple pill!
    Morpheus: He wasn't "The One". "The One" would have survived.
    Trinity: Idiot.


    Now, seriously, what's "purple pill"?
    • Re: (Score:2, Insightful)

      It starts here, with me. Microsoft is making driver devs jump through hoops with the whole signed-drivers thing when all it takes (as has been shown in this case) is ONE signed driver with ONE exploitable flaw to break the whole scheme.

      What are Microsoft going to do now? Revoke the key they used to sign drivers with? How many copies of Vista wich verify drivers with the now-revoked pubkey have already been sold? How many devices were sold in retail with drivers which will no longer JustWork(tm)? Will Micros
      • (BTW--I've been using Linux as my primary OS since 1996, so no I'm not Linux bashing)

        Well, one thing to consider is this -- how different are other OSes like Linux? With Linux, a root exploit in a kernel module gains you access to the whole system as well, especially when you consider that it uses a monolithic kernel. IOW, kernel modules directly patch the Linux kernel, live, in memory. Now consider that the ATI drivers for Linux are based at least in part on the ATI drivers for Windows.

        Mind you that some things like SELinux might help to mitigate some of this in some scenarios, but not in all.

        • Re: (Score:3, Informative)

          This is exactly why the OpenBSD folks have been fighting against binary blobs and demanding open source drivers for hardware. Too many other open source OS's will gladly take a closed binary blob so that they can run hardware. And that leads to possible exploits down the road.
            • by mhall119 (1035984) on Friday August 10 2007, @08:52AM (#20182085) Homepage Journal
              Malicious to whom? This systems seems designed more to prevent the installation of kernel-mode drivers that would allow the circumvention of things like DRM. I guess it could stop the installation of rootkits too, but there are other ways to stop them. It's funny (to me at least) that there are things that Windows can stop even an Administrator from doing on their own machine.
      • by Tim C (15259) on Friday August 10 2007, @07:38AM (#20181305)
        Each of those probably stands a 50-50 chance of being either rooted or patched with the new key the first time it's connected to the 'net.

        It's a local exploit.

        did I mention that finding another bug in another driver signed with the new key will mean the whole process must be repeated?

        Third parties write crap, exploitable code and it's MS's fault? You can write exploitable kernel modules for Linux as well, yet somehow I don't think you'd be blaming that on Linus. If anything, this is an argument for open source drivers, not against MS's scheme - although how many people actually have the skill to audit the code they run, let alone auditing it?

        did I mention that if someone finds such a bug and sits on it, they have root to any Vista system in existence

        Every Vista install that uses the exploitable driver, you mean. Just as an exploitable driver for Linux would open every Linux install that uses that driver. For example, I have an NVidia card; as and when I upgrade to Vista, I won't be vulnerable to this particular exploit.

        Try to tone the hyperbole down a little, it's not very becoming.
      • Re: (Score:3, Interesting)

        I think Microsoft's main consideration with driver signing is stability, not security.

        It is a lot easier and more reliable to test a driver for stability than it is to test it for security. There is so much crap hardware with flakey drivers floating around which causes stability problems, Windows has an undeservedly bad reputation for stability. Everyone blames Microsoft when the see a BSOD, but in many cases they should be blaming the manufacturer of their $10 SATA adapter.

        I'm posting this from an Ubuntu b
    • by bl8n8r (649187) on Friday August 10 2007, @07:12AM (#20181129)
      Very quickly.

      You must be new here, so I'll try and enlighten you.

      You see, Microsoft is a lot like the smelly kid in 3rd grade that
      used to drop a load in his shorts and not say anything while
      everyone wandered around trying to figure out what died, where.

      After a few of these episodes, whenever there was a strange smell,
      it would come to pass that the smelly kid dropped another load.

      Now, to make matters worse for the smelly kid, imagine him running
      around telling everyone that he has solved the problem*. People are
      relieved for a while until, guess what? The smelly kid drops another
      load. How can this happen, isn't this supposed to be fixed?

      This insane cycle of disappointment/re-assurance causes people to
      get cynical very quickly and as a result, causes people to start complaining
      very quickly.

      [*] - http://news.com.com/Allchin+Buy+Vista+for+the+secu rity/2100-1012_3-6032344.html [com.com]

      • Re: (Score:3, Insightful)

        But you'll also find that the Linux kid will also drop a "load in his shorts" if he's using a kernel module with a flaw that can be exploited.

        It is impossible to prove that any piece of software is 100% bug free. Impossible. Regardless of your operating system, if you trust kernel-level drivers (you actually want to *do* something useful with your system?), chances are that somewhere there is an exploitable flaw. It's just that no-one may have found it yet. There is no such thing as a 100% secure system.
    • by an.echte.trilingue (1063180) on Friday August 10 2007, @07:19AM (#20181169) Homepage
      For my part, I'm not going to play the blame game since I don't know better either way. I am, however, in some strange way comforted to see that Windows users are starting to have issues with ATI drivers, too.

      All those years of trying to get fglrx to work, avenged!

      So, is that what you call passive aggression?
      • by drawfour (791912) on Friday August 10 2007, @07:17AM (#20181161)
        You do realize that the kernel does not do any signing, that's Verisign's job, right? The kernel only verifies that the signature is valid (and trusted). All this hack is doing is causing the kernel to turn off the part where it refuses to load an unsigned driver.

        From the article:

        Vista is perfectly aware that an unsigned driver has been loaded: you will even get a warning a bit after the driver is loaded.
        • Re: (Score:3, Informative)

          You do realize that the kernel does not do any signing, that's Verisign's job, right?

          Even that's wildly inaccurate, and just demonstrates that you're confused as to how digital signature systems (and other things based on a PKI too) work.

          Verisign just signs the driver author's certificate, and even then just to say "these guys are who they say they are, and they're doing code signing with the key matching this certificate". They most certainly say nothing at all about the correctness of the drivers; that's up to the driver author (and maybe Microsoft too).

        • Re: (Score:3, Informative)

          Actually, Windows will accept only stuff signed by Microsoft itself, and they take a hefty chunk of change for the privilege. You cannot also choose to have a driver which Microsoft doesn't like signed -- so that state-of-the-art professional sound processing tools are a no-no if they somehow can be used to record "premium content". Or if, say, the driver's authors somehow competes with MS.

          VeriSign can sign only SSL certs and certain less-well-known types of keys for you.
      • Re:lol wut (Score:5, Interesting)

        by fuzzix (700457) <fuzzbucket@eircom.net> on Friday August 10 2007, @07:20AM (#20181181) Homepage Journal

        We need to strip ATi of its driver team, and then strip nVidia of their hardware team, and merge the remainder.

        What does it matter? Neither of them bother with proper overlay any more.

        My last nVidia card was simply without overlay hardware. My last ATi card's overlay dropped resolution when a high refresh rate was used. At least the nVidia card could play a video at full res without resorting to GL.

        It's not all about the 3D... :)

        You do have a point about the drivers, though. While closed, nVidia's Linux module hasn't provided nearly as much heartache as ATi's... abomination.
        • Just like the OS market... look how Windows' price has risen and how much of an improvement Vista is over XP.

    • by Knight2K (102749) on Friday August 10 2007, @09:05AM (#20182231) Homepage
      1. It is important to use the correct names for things. The word "terrorist" is subset of "criminal". My working definition of 'terrorist', which can doubtless be improved on, is: one who uses violence to create terror or panic within a populace in order to achieve political ends. Without the political component, a terrorist is simply a criminal guilty of assault, murder, theft, etc. and should be caught and prosecuted accordingly. By using this term incorrectly, you are just as guilty of spreading FUD as the U.S. government. While this may be an effective way to get attention, it is alarmist, unethical, and immoral.

      By expanding the meaning of the term, the government has been able to greatly expand its power at the expense of its citizens. It certainly is important to catch and prosecute cyber-criminals, but discuss it rationally and pass appropriate, targeted laws to deal with the problem. More importantly, enforce the ones that already exist.

      2. In most cases, a non-anonymous network would probably be fine, as long as encryption was used to keep data private. Unfortunately, we live in a world where, in some places, using encryption will get you tossed in jail, regardless of the content. In other words, it can be important to hide not only what you sent, but the fact that you sent it. A concrete example would be blogging in China. Given recent events with the NSA, I wouldn't be surprised if the U.S. government starts to take a more active role in discouraging personal strong encryption. How do we solve that problem?

      3. Guantanamo is one of the worst violations of human rights in recent history. Even the basest criminals are entitled to due process. That's what makes our system justice and not revenge. The United States is NOT the world police. There is a process to be followed to enforce change in other countries. The lack of serious international backing is part of our problem in Iraq. The U.S., despite being the last world superpower, does not have the resources to fight every battle and prosecute every crime that other countries won't deal with.

      You are right that we need effective computer crime laws and effective enforcement of them. The way to do it is to lobby other countries for this and establish treaties with them. Use diplomacy and sanctions where necessary. It isn't impossible; if we can get intellectual property laws perverted across the globe, surely we can expend the effort needed to reach cyber-criminals where ever they choose to hide.

      4. The government is supposed to work for us, but it needs watching. One of the most important lessons of modern history is that we have to be active and mistrustful of government, in order for it to function correctly. The Bay of Pigs was the first warning and the Watergate scandal made this manifest. The Iraq war, NSA wiretapping, and the PATRIOT Act are examples of what happens when we fail to perform our role of government watchdog. I'm not going to trust the government on who the bad guys are. I want the FBI, the CIA, Interpol, etc. to gather evidence and arrest criminals and bring them before the appropriate judicial authority and prove their case before the public.

      You are correct that this is a serious international problem and needs serious international intervention, but it also has to be done right.
        • Re: (Score:3, Insightful)

          I was trying to avoid Godwin's law, since there are many other examples that can be appealed to besides Nazi Germany. The genocide in the former Yugoslavia and Darfur works as well. Saying Gitmo is "one of the worst" is not the same as "is the worst". I am certainly aware of the Holocaust, know a great deal about it and certainly acknowledge that it happened and was terrible. I have no problem with the Holocaust being the worst, but Gitmo is clearly wrong and abusive.
          In a way, is there any point in ranking
      • Windows Vista is just a hack on top of all the prior Microsoft Windows releases. While Microsoft Windows itself is just a hack on top the profoundly insecure and stunningly badly-coded DOS.

        Considering the lousy reviews, it seems that Windows Vista is indeed "just a hack" on top of XP.

        But it is no longer correct that it is a hack based on DOS. Parallel to Windows 9x, Microsoft introduced the Windows NT line. Windows 2000, XP and Vista are based on that.
        In a direct comparison of Windows 2000 to Windows 98 (ye