No announcement yet.

A Backdoor In AMD's Catalyst OpenCL Library?

  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    This is weird

    I've been looking throught the code (disassembled with IDA) and there some very weird things.

    The osTestBackdoorATI function takes two arguments. The first is a value used in the main switch, the other is a pointer.
    Depending on the first argument osTestBackdoorATI will call different functions.

    Now the weird part is that a lot of this code seems to be doing ... nothing at all.

    For example at the very start a global object's address is fetched from the GOT and placed into ebx. And then functions are called and ebx is overwritten before even being used.

    There's one function that does NOTHING AT ALL.
    It takes the value in ebx, does nothing with it, changes ebp, zeroes eax even if eax isn't used after this point, then restores ebp, canceling the changes, and returns.

    This definitely looks like handwritten assembly. A compiler would never generate empty functions like that. Not unless you disabled ~every optimisations.

    I'm still trying to understand what it's doing.


    • #32
      Originally posted by FLHerne View Post
      Put my bet down for 'not actually a backdoor; humorously-named test function'.

      If you were going to put a top-secret NSA backdoor into your driver, why would you give it such an obvious name? You'd call it osDefinitelyNotABackdoor instead, right?!
      Never forget Microsoft and their NSAkey.


      • #33
        Originally posted by FLHerne View Post
        Put my bet down for 'not actually a backdoor; humorously-named test function'.

        If you were going to put a top-secret NSA backdoor into your driver, why would you give it such an obvious name? You'd call it osDefinitelyNotABackdoor instead, right?!
        i would prefere:


        • #34
          Guys, seriously... I know with the recent NSA and Snowden stuff and all, but the word "backdoor" has a lot of other meanings besides something that can be used to invade your privacy and fetch your private information.

          As a software developer, if I had to put myself in the shoes of AMD devs, I guess it would make sense to use the name "osTestBackdoor" as the symbol for something like a function to be able to insert tests into a running driver to debug its behavior. That is my best guess about what it does, and if I were to write such a function, that would be a good thing to call it. I highly doubt it would be the type of backdoor you guys are thinking of with the NSA and everything, especially since the name is so obvious.

          Although, I guess it never hurts to be extra paranoid, just in case .


          • #35
            Originally posted by Kemosabe View Post
            Let me summarize:
            1) Most likely you are Linux user.
            2) You considered buying a AMD GPU but not nVidia

            This implies:
            1) You do not need high end GPU performance
            2) You do not need bugfree OpenCL implementation (if you use it at all)

            Well, why the hell should you use catalyst then? I use radeon open source drivers every day (r600) and i am completely happy with it. Cities in Motions 2 runs great. :-P
            As an Nvidia owner moving to AMD Radeon they want a modern OpenCL stack that when fully matured will of course never be supported by NVidia, never mind a better combined LLVM/Clang experience working with the upcoming options in their OpenCL stack support of the R600 and new targets.


            • #36
              Another backdoor funded by US tax money?


              • #37
                Originally posted by chuckula View Post
                Jigga what?

                Go look at the top contributors list to the Linux kernel sometime, you'll note that Intel consistently the largest contributing company that isn't a 100% Linux based organization like Redhat. You won't see AMD anywhere near the top of that list. I think that the fact that Intel is the first company to bring Android into the 64-bit world and that there are excellent Chromebooks running on Haswell parts speaks volumes about how important they think Linux is and where they are going with Linux.

                Just remember that back in the 90's when Microsoft was on trial for anti-trust violations it was Jerry Sanders, CEO of AMD, who got up on the witness stand and testified in favor of Microsoft. I always remember that when their PR department starts up with the usual self-serving whining about how Intel is a "monopoly" or something.

                Just remember that AMD branded its own CPUs as "Athlon XP" right around 2001 when Microsoft launched "Windows XP". You think that was a coincidence?

                When thinking about Intel vs. AMD here's the easiest way to frame the question: "Would my machine even boot if I stripped out all the Linux code contributed by company X". If you strip out AMD's contributions, then even on an AMD box your machine would still boot fine (you might lose GPU drivers if you use open-source AMD drivers). If you strip out all the Intel-contributed code, your AMD box wouldn't even come close to completing a boot sequence.
                Very good points.


                • #38
                  maybe it is a cry for help and they wanted it to be found!!! XD
                  on the other hand i recently stumbled upon a case of pure ignorance in PR: #hasjustinelandedyet
                  maybe AMD is simply suffering from the same.. at least when it comes to linux...


                  • #39

                    Originally posted by Graham Sellers
                    osTestBackdoorATI is a hook used by our automated tests to access memory usage statistics from the driver.


                    • #40
                      Great, now that everyone's finished tripping out over nothing (I'm especially impressed and inspired by the people who claim to change their buying behaviors in response to unsubstantiated garbage), we can get back to regular programming. I'm sure someone will reverse that portion of code anyway just to make sure.

                      Also, whoever claimed that a BIOS implementation was a firmware replacement, this is unfortunately not true on graphics cards. The "firmware" here is what needs to be loaded into various control units and microcontrollers inside the GPU core itself to allow all parts of the GPU to work properly, and has nothing to do with the video BIOS that the system BIOS calls to initialize the card for framebuffer/text mode.

                      A totally open firmware (or BIOS for that matter) would be nice, but I don't think there are many functional benefits to be had from doing that. Perhaps there could be a bug or two hidden in there, but other than that I think it is only a "feel good" thing that in the end makes no real difference. I think there would be far more functional benefits from implementing open firmware for flash memory controllers (eg, the tiny microcontroller inside SD cards or bigger controller in SSDs that manages sector relocation, error correction, and similar tasks to make dirt cheap and crap flash memory act like something that will hold data for you, and can hide any number of crazy bugs or failure modes that can eat your data whole!