Slashdot Mirror


ALSR in Vista Gets OEM Push

gr00ve writes "Eweek is reporting that all the major OEMs will enable DEP/NX in their BIOSes by default to allow Address Space Layout Randomization (ASLR), a new security feature in Windows Vista, to work as advertised. ASLR, which is used to randomly arrange the positions of key data areas to block hackers from predicting target addresses, is meant to make Windows Vista more resilient to virus and worm attacks." From the article: "Because most CPUs that ship today support DEP/NX, Howard explained that Vista users on older hardware can use the control panel to manually verify that PCs have DEP enabled. With full support from OEMs, Microsoft is effectively using ASLR to create software diversity within a single operating system, a move that is widely seen as Redmond's attempt to address the monoculture risk. The memory-space randomization technique will block the majority of buffer overflow tricks used in about two-thirds of all worm and virus attacks."

170 comments

  1. grsec by Jon+Howard · · Score: 2, Interesting

    Didn't grsec implement something like this ages ago?

    1. Re:grsec by oojah · · Score: 4, Informative

      It's PaX actually, but yes. You can randomise the kernel stack base, the user stack base and the mmap() base.

      Security Options->PaX->Address Space Layout Randomisation in your kernel config, assuming you have the appropriate patches installed.

      Cheers,

      Roger

      --
      Do you have any better hostages?
    2. Re:grsec by defile · · Score: 4, Insightful

      This probably isn't such a big deal for open source.

      With Windows, whole swaths of the user community are running nearly identical binaries so malware authors have a large attractive market for their worms.

      With Linux, you have virtually thousands of possible binary configurations due to the high prevalence of custom compiled from source and the sheer number of competing distributions with frequent releases. Reduces the attraction.

      DISCLAIMER: Yes, I know, there are players who target niches, this rationale isn't bullet proof.

      DISCLAIMER2: Yes, address space virtualization can't stop all buffer overflow exploits either.

    3. Re:grsec by Jon+Howard · · Score: 1

      Cool, thanks for the reminder. That's the one I was thinking of, alright.

    4. Re:grsec by LifesABeach · · Score: 1

      Randomizing the stack sounds like a great idea, to cure the symptom; Not the problem. Maybe we should wait for Vista SP1 before feeling comfortable leaving the front door open in an inner city environment that is the Internet. I do not know any better, but could someone post the results of having a Knoppix CD read a Vista formated hard drive? I am getting this nagging feeling that my M$-Zombie boss is going to let me find out, the hard way.

    5. Re:grsec by oojah · · Score: 3, Insightful
      Randomizing the stack sounds like a great idea, to cure the symptom; Not the problem.

      Right, but that doesn't mean we shouldn't do it.

      Cheers,

      Roger

      --
      Do you have any better hostages?
    6. Re:grsec by oojah · · Score: 1
      With Linux, you have virtually thousands of possible binary configurations

      Very true, but Linux in a corporate environment is likely to be uniform don't forget.

      Cheers,

      Roger

      --
      Do you have any better hostages?
    7. Re:grsec by Anonymous Coward · · Score: 0

      Maybe, but when the problem is something that can't really be "fixed" you have to treat the symptoms.

      For instance, if you tried to "fix" the fact that the sun can give you a sunburn, you don't block the sun from hitting earth with a giant space shield, you just apply some damn sunscreen.

  2. what about the other 1/3rd? by nutznboltz2003 · · Score: 1

    The memory-space randomization technique will block the majority of buffer overflow tricks used in about two-thirds of all worm and virus attacks.
    Ok, so two-thirds of the tricks used in worms and virus buffer overflor attacks are negated, but are those two-thirds heavily used attacks, or very minor ones?

    This is a nice step, but I'd like to see them be a little more active on the security front. How about patching some more of those released zero-day exploits for Word?
    1. Re:what about the other 1/3rd? by Anonymous Coward · · Score: 0

      buffer overflows are the most heavily used method of exploiting an operating system. Windows, Linux and OS X are all vunerable. This is a great move from MS.

      Google it and you find that writing a buffer overflow exploit is not all that difficult. (or at least 6 years ago it wasn't)

    2. Re:what about the other 1/3rd? by ThatsNotFunny · · Score: 1

      You've got it backwards. The tricks are used in 2/3ds of the attacks, not that it will stop only 2/3ds of the attacks that use the trick.

      --
      "Was it a millionaire who said 'Imagine No Posessions?'" -- Elvis Costello
    3. Re:what about the other 1/3rd? by DrSkwid · · Score: 2, Interesting

      You do know that the people in Microsoft work in parallel not serial.

      They don't work on one thing at a time, so quit yer bitching.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    4. Re:what about the other 1/3rd? by Tim+C · · Score: 1

      More to the point, 9 women can't have a baby in 1 month; throwing more people at a task doesn't necessarily make it go any faster.

    5. Re:what about the other 1/3rd? by julesh · · Score: 1

      Ok, so two-thirds of the tricks used in worms and virus buffer overflor attacks are negated, but are those two-thirds heavily used attacks, or very minor ones?

      There are two ways of exploiting a buffer overflow: you can make code in the buffer execute, or you can make code that already exists in the system execute with parameters from the buffer. The former is prevented by NX protection in most cases. The latter is made substantially more difficult by ASLR.

    6. Re:what about the other 1/3rd? by OnlineAlias · · Score: 1

      Many of the 0-days in Word are buffer overflows. Your wish has been granted.

    7. Re:what about the other 1/3rd? by EvanED · · Score: 1

      There are two ways of exploiting a buffer overflow: you can make code in the buffer execute, or you can make code that already exists in the system execute with parameters from the buffer. The former is prevented by NX protection in most cases. The latter is made substantially more difficult by ASLR.

      There's a third way, which is to corrupt other security-sensitive data, but leave the control flow (i.e. the return address on the stack) unchanged.

    8. Re:what about the other 1/3rd? by TheNetAvenger · · Score: 1

      Ok, so two-thirds of the tricks used in worms and virus buffer overflor attacks are negated, but are those two-thirds heavily used attacks, or very minor ones?

      This is a nice step, but I'd like to see them be a little more active on the security front. How about patching some more of those released zero-day exploits for Word?


      The trick is for these exploits to 'get into' the computer in the first place, which Vista makes far more challenging by 100x over previous versions of Windows.

      In theory it should take a user with admin level access and tons of social engineering to get them to click through the herd of 'Are you really stupid enough to run this on your computer?" boxes they have to click through. And even then the software would have to get past the inherent spyware scanning table, in the case it is a known exploit.

      As for the Word patches, well if you are Mac user, just do what Apple has told you about OSX several times. "If you want the bugs and exploits fixed, pay the upgrade fees and get the new version." (*winks to Steve Jobs rolling naked in the patch extorted money.)

      However, maybe not everyone should be 'forced' to upgrade to get exploits fixed. Just give MS a couple of days, they already patched a couple of these pretty fast, almost lightning speed in MS time.

      It is strange the new exploits are so common in the last days of the pre-Office 2007 OpenXML document format era. Maybe hackers are getting what they can out of the last generation of Office before people buy new computers for the holidays with Office 2007 pre-installed.

      I also wonder if MS is considering adding an option to pre-2007 office versions to give a flag or warning about opening native documents that are not Open XML, or only allow documents to be opened via the Open XML add-on. (Anyone at MS reading, just give me a wink in the notes if you add this feature.)

  3. I feel dumb. by bigdavex · · Score: 4, Funny

    ALSR?

    34/en/m/c

    --
    -Dave
    1. Re:I feel dumb. by clydemaxwell · · Score: 2, Funny

      So is R religion or race to you? Because either you're a christian or a caucasian, and statistically speaking, you're likely to be both.

      --
      Browsing with classic discussion, noscript, at -1 and nested
      no hidden comments and I only mod UP
    2. Re:I feel dumb. by bigdavex · · Score: 1

      I was thinking race.

      I'm not sure why L became language instead of location.

      --
      -Dave
    3. Re:I feel dumb. by chad.koehler · · Score: 1

      This is slashdot, we all know your sex.

    4. Re:I feel dumb. by mkw87 · · Score: 1

      Oh, I thought R stood for rank and couldn't figure out what that translated to.

      --
      Arguing with an engineer is like wrestling a pig in mud. Soon, you realize the pig is dirty, and he likes it.
    5. Re:I feel dumb. by Anonymous Coward · · Score: 0

      ALSR?

      34/en/m/c

      Ok, I get part of if:
      34 = age
      en = english
      m = male (i think)
      c = ???
      What in the hell is "c"

    6. Re:I feel dumb. by Anonymous Coward · · Score: 2, Funny

      Roughly 299,792,458 m/s

    7. Re:I feel dumb. by sideshow · · Score: 1

      Hundreds of millions of Catholics the world over would disagree with that statement.

      --

      Hollow words will burn and hollow men will burn.

    8. Re:I feel dumb. by DittoBox · · Score: 2, Funny
      This is slashdot, we all know your sex.

      None?

      --
      Good. Cheap. Fast. Pick Two.
    9. Re:I feel dumb. by fm6 · · Score: 1

      How many of them even have IM accounts?

  4. can it be disabled during development? by mcouper · · Score: 1

    I can just imagine the headaches of having to track down memory related issues if their locations are now going to be 'scrambled'.

    1. Re:can it be disabled during development? by Anonymous Coward · · Score: 4, Informative

      The technique is simply a scrambling of address of DLLs and eventually of procedures of those DLLs. The symbols will be remapped accordingly and you should be able to use your debugger as always. It just makes more difficult to make "jump to libc" attacks which defy DEP [mastropaolo.com] entirely.

    2. Re:can it be disabled during development? by ifrag · · Score: 1

      My guess is you'll have the option to turn it off via complier options. Probably default off on debug builds and default on for release builds.

      --
      Fear is the mind killer.
    3. Re:can it be disabled during development? by ifrag · · Score: 1

      Err... I just realized what I wrote makes no sense... This is OS level stuff not application level.

      --
      Fear is the mind killer.
    4. Re:can it be disabled during development? by badboy_tw2002 · · Score: 1

      Given that its an option in the control panel and the bios, and that OEMs had to do something to turn it on, and thus implying that its an on/off switch, the only rational conclusion that one could make is of course...

      NO.

    5. Re:can it be disabled during development? by bluefoxlucid · · Score: 1

      Actually this makes it easier to find memory related issues. Often times a memory corruption bug will wind up corrupting some memory, allowing the program to run on for a little bit before it crashes; now you have a bug at X and a crash point at X+dX, you have to figure out what dX is. When the addresses are randomized, dX will change; importantly, sometimes the memory being corrupted just won't be there and your program will crash due to read from/write to unmapped memory. At this point your debugger tells you just about where you screwed up, or at least the exact mechanism you broke. Tracking down from this point is easier.

      In other words, one crash case can get you as much information as several crash cases.

  5. Linux virtual address randomization by Anonymous Coward · · Score: 2, Interesting

    Isn't this the same as Linux virtual address randomization that works without BIOS?

    1. Re:Linux virtual address randomization by Rosyna · · Score: 5, Informative

      Isn't this the same as Linux virtual address randomization that works without BIOS?

      Yes, but the NX bit enforcement is part of a larger security push. It just happens that most articles confuse ASLR with NX (or are fuzzy on the details of each) when talking about them both. Part of the confusion is the fact in order for ASLR to be effective, then the NX bit should be enforced. AFAICT, ASLR doesn't actually require NX at all and it's a mistake these "technical journalists" are making.

      Basically, Vista adds a bunch of walls to increase security. the NX bit and ASLR are just two separate instances of those walls.

      The big news is that even though some OEMs have previously disabled the NX bit in the BIOS (due to software compatibility issues), they've said they'll enable it by default in the future.

    2. Re:Linux virtual address randomization by hjf · · Score: 0

      Yes, but if it has problems, it's the BIOS manufacturer's fault, not Microsoft's. That's outsorcing taken to the extreme!

    3. Re:Linux virtual address randomization by k1e0x · · Score: 0

      Well.. you don't need NX to do ASLR as you said and you don't need it to do it effectively either. Both Linux with PAX and OpenBSD with W^X can do it on i386 hardware that doesn't even have a NX bit. OpenBSD has had this feature standard for quite some time now. Linux still requires a special patch to kernel source for it as GrSec will probably never be included into the Kernel Source. (However some Linux distributions do included it by default.)

      This is probably a good thing overall.. but I expect Microsoft to screw it up somehow.

      --
      Bringing liberty to the masses. - http://freetalklive.com/
  6. Mixed news by inviolet · · Score: 1

    Nice to see them taking steps like this.

    Alas, it's going to cause me some personal heartache. Presently, I know by heart the memory address ranges of the various core Windows components.

    --
    FATMOUSE + YOU = FATMOUSE
    1. Re:Mixed news by lysdexia · · Score: 1

      ... if you start talking about using POKE without a manual we're leaving. Seriously.

    2. Re:Mixed news by gsn · · Score: 3, Funny

      You must be new here. this is Slashdot. Hes never gotten a PEEK at anything before let alone got to POKE it.

      Even the nerd chicks don't think memorizing memory address ranges is cool.

      --
      Reality must take precedence over public relations, for nature cannot be fooled.
    3. Re:Mixed news by wiggles · · Score: 2, Funny
      I know by heart the memory address ranges of the various core Windows components

      You win. You are officially the biggest geek here -- and that's saying something!

      Seriously, if you have this kind of shit memorized, you really need to get laid.
    4. Re:Mixed news by idontgno · · Score: 1
      Someone here has a sig which seems massively relevant just now:

      Three kinds of knowledge:
      1. Need to know
      2. Nice to know
      3. Get a life
      Someone is definitely in category 3.
      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    5. Re:Mixed news by inviolet · · Score: 1
      You win. You are officially the biggest geek here -- and that's saying something!

      You see the address ranges a lot when you're poking around in a crashed process with windebug. It's incredibly useful to know approximately where an instruction pointer is pointing.

      Guess you had to be there. :)

      --
      FATMOUSE + YOU = FATMOUSE
  7. SKREEEEEEEEEE! by lysdexia · · Score: 0, Offtopic

    What is up with the Pooping Sumo Wrestler in the ad next to the article?

    *brrrr*

    1. Re:SKREEEEEEEEEE! by Chosen+Reject · · Score: 2, Funny

      It's pretty obvious what it's talking about. It talks about security countermeasures in you inbox. That's obviously viruses and trojans. Thus the squatting Sume Wrestler is taking a crap directly into your inbox if you use MS. The imagery is a little over the top, but it presents the facts quite well.

      --
      Stop Global Warming!
      Just say no to irreversible processes!
    2. Re:SKREEEEEEEEEE! by lysdexia · · Score: 1

      Thanks for giving me the straight poop on my inbox. I wonder if he tosses quicklime or salt into your junk folder before entering?

  8. Ok, class: let's determine the effectivity of this by postbigbang · · Score: 1, Insightful

    There are supposedly 256 possible randomizations.

    Old code:

    poke (scriptylittlecode) to this address (usual kernel location, but we might check other modules with probes)

    New code:

    while not successful()
          for i=1 to 254
                spank (module old code with randomized address prediction)
          next i; /*next spank

    This is goofy at best, and tragically hilarious and useless at worst.

    --
    ---- Teach Peace. It's Cheaper Than War.
  9. Re:I call BS by interiot · · Score: 2, Informative

    This article seems to imply that ASLR (or ALSR or whatever it is) can either be disabled by the user system-wide, or that certain systems won't have the features required to enable ASLR. So it probably won't stop determined users.

  10. Re:I call BS by Anonymous Coward · · Score: 0

    MS also wants to start using gets() again.

  11. Not quite! by Anonymous Coward · · Score: 5, Insightful

    This is a legitimate technique already used by some other high-security OSes (e.g. Open BSD). So it's a legitimately good security measure.

    That said, I don't doubt that wanting to better secure their DRM is high on their list of reasons to improve security. That is, they probably want more to secure the machine *from* you than *for* you... While I've certainly had users that the system needed protection from, I still don't like what they're doing with DRM.

    Soon, at this rate, you'll either have an unencumbered OS, or what you have won't be fit to call a computer. It'll probably look something more like a high definition TV with popup ads.

  12. This is good news by ENOENT · · Score: 4, Funny

    Now if only Microsoft could develop a system for delivering electric shocks to users who run untrusted executables they receive in email, that would be something.

    --
    That's "Mr. Soulless Automaton" to you, Bub.
    1. Re:This is good news by truthsearch · · Score: 4, Funny

      Microsoft does sell their own mouse.......

    2. Re:This is good news by Red+Flayer · · Score: 1

      I would submit that burns work as well as shock, maybe MS could put Sony batteries in their wireless mice?

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    3. Re:This is good news by DLG · · Score: 1

      If they did, then they would be accused of stifling a clearly important niche for development. Take hold of the opportunity and make your fortune!

    4. Re:This is good news by speculatrix · · Score: 1

      go look up the spoof RFC for "simple lart transfer protocol". well worth reading.

    5. Re:This is good news by ENOENT · · Score: 1

      One problem: I believe that the BOFH has prior art, and is willing to use it.

      --
      That's "Mr. Soulless Automaton" to you, Bub.
    6. Re:This is good news by SL+Baur · · Score: 1

      Now if only Microsoft could develop a system for delivering electric shocks to users who run untrusted executables they receive in email, that would be something. That's Microsoft's fault to begin with. Running arbitrary code like that has always been considered bad practice. Is anyone else old enough to remember all the controversy on USENET over executable shell archives? At least with a shar file you could read it first before running it to get at the files inside.
    7. Re:This is good news by drsmithy · · Score: 1

      That's Microsoft's fault to begin with.

      No, it's the users' fault.

      Running arbitrary code like that has always been considered bad practice.

      Running arbitrary code is also considered essential functionality by 99% of users.

  13. now rebooting Windows might actually help by mkcmkc · · Score: 1

    On the flipside, this "diversity" will increase the incidence of intermittent bugs. But hey, with Windows, who'll notice the difference anyway?

    --
    "Not an actor, but he plays one on TV."
    1. Re:now rebooting Windows might actually help by Quantam · · Score: 1

      Seems to me that it would make rare, intermittent bugs almost always occur. That's a very good thing for bug-hunting.

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
  14. Re:Ok, class: let's determine the effectivity of t by lseltzer · · Score: 2, Insightful

    You can't just loop through it like that. Every failure crashes the app. It will be obvious that something is wrong.

  15. NX by ThurstonMoore · · Score: 5, Funny

    I have noticed if DEP is turned on in XP when I look at the folder with all my porn and thumbnails are turned on it causes Explorer to crash. I hope they fix this.

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

      That isn't DEP's fault, it is just a sign that your 500GB porn drive is out of space.

    2. Re:NX by julesh · · Score: 1

      I have noticed if DEP is turned on in XP when I look at the folder with all my porn and thumbnails are turned on it causes Explorer to crash. I hope they fix this.

      Of course this could be because one of those thumbnails is exploting a bug in Explorer's JPEG rendering and trying to execute itself, and DEP is actually preventing it from doing so...

    3. Re:NX by bensch128 · · Score: 1

      I dont think Explorer is crashing because of DEP.

      The moment it has to build thumbnails of your porn, it probably shuts down and quits...

      You Sicko!!! ;) Ben

  16. Re:Ok, class: let's determine the effectivity of t by AP2k · · Score: 1

    Hopefully any heuristic analysis can catch these exploits before they hit the right address. I'm still in no hurry to switch over to Vista though.

  17. Re:I call BS by Anonymous Coward · · Score: 2, Insightful

    Theory:

    Maybe they (Gasp, shock, swoon) have two different motivations at the same time, or there are at least two people working on it that both have either one or the other motivation

    Shocking and mind-exploding, I know

  18. Why does this need to be in the BIOS anyway? by Viol8 · · Score: 1

    What exactly can the BIOS do with the hardware that the OS or boot loader can't? Err , nothing as far as I'm aware so whats the deal here?

    1. Re:Why does this need to be in the BIOS anyway? by julesh · · Score: 2, Informative

      What exactly can the BIOS do with the hardware that the OS or boot loader can't? Err , nothing as far as I'm aware so whats the deal here?

      As I understand it, there's a method that can be used to disable NX protection on some processors. Some BIOSs/motherboards do this. Once it is done, there's no way for the OS to undo it.

      What all this has to do with ASLR is beyond me.

  19. It depends entirely on how you probe by postbigbang · · Score: 3, Interesting

    You do memory reads and code string matches to determine where modules are loaded, the poke your favorite malware where it needs to go. The signature only is corrupted when the module loads, so you need to write out the corrupted module and change its signature. So, it's not as tough as you're implying at all. Try it sometime. It's great for party jokes.

    --
    ---- Teach Peace. It's Cheaper Than War.
    1. Re:It depends entirely on how you probe by julesh · · Score: 1

      You do memory reads and code string matches to determine where modules are loaded

      How do you do that when you don't have access to run code on the machine, but are only able to overwrite a stack return address with an address you've chosen?

      Note that the address of your exploit code will likely have been randomised along with everything else. Or NX is enabled, and you've only got a return-to-libc attack available to you.

      Those are the situations this scheme is designed to protect from, and it's pretty successful.

  20. Re:Ok, class: let's determine the effectivity of t by Aladrin · · Score: 2, Insightful

    Everything the previous replies said, plus you missed 2 of the random spots ;)

    Randomly jamming things into memory locations is almost sure to crash the app. It wouldn't be too much harder to simply locate the thing you want, instead of doing it like you did, I'm sure. I believe the hardware bit is designed to stop you from locating the address as well, though...

    I haven't bothered to research the tech because I think it will probably be mostly useless, take up additional processor/memory speed, be disabled on all old system, and users will likely disable it on new systems because it causes errors with some game they play.

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  21. "the majority" ... "used in about two-thirds" by BadERA · · Score: 1

    "the majority" ... "used in about two-thirds" ... forgive my ignorance, but do worm attacks typically use multiple buffer overruns to do their dirty deeds, or is this simply poorly written?

    --
    I am, therefore you think.
    1. Re:"the majority" ... "used in about two-thirds" by p.gogarty · · Score: 1

      I cannot comment on the attack vector/methodology of most worms (because I've never really bother reading detailed descriptions of exploits).

      But in my experience most privaledge escallation attacks relly on buffer overflows

      --
      Paul Gogarty
    2. Re:"the majority" ... "used in about two-thirds" by BadERA · · Score: 1

      Totally irrelevant and/or redundant, but thanks for posting ... a majority of attacks exploit overflows, no doubt there, but does a single worm rely on multiple overflows?

      --
      I am, therefore you think.
  22. It might be that heuristics and Vista by postbigbang · · Score: 1

    are an oxymoron.

    Sorry, it's kind of a troll remark, but remember that modules are checked at load time; corrupt them in memory and make them do things is both an onerous and non-casual corruption. I won't say which modules are the leakiest, but look to the ones with lots of calls to hardware (hint) to do the job. It's not funny how easily this can be done-- especially if you then change a few key registry signature (next hint).

    --
    ---- Teach Peace. It's Cheaper Than War.
  23. From the article... by wiredog · · Score: 1
    "Windows Vista also introduces ..., kernel patch protection, mandatory driver signing..."

    So they make it more difficult for new hardware to be developed, and more difficult for hardware hacking in general. Unless you just click "allow this driver to run". That's going to make lots of people who develop non-mass marketed hardware very unhappy.

    The kernel patch protection sounds like a good security feature. Unless the server they serve patches from gets compromised, or unless someone finds a way to disable/subvert the client end. Then it's going to be utter hell.

    1. Re:From the article... by PhrostyMcByte · · Score: 1

      There is no "allow this driver to run". Under normal operation on Vista x64, drivers must be signed by a "trusted" authority (making your own root cert doesn't work), or they won't load. Period. The only way to get past it is to hit F8 when the computer boots, which only turns off mandatory signing for that session.

    2. Re:From the article... by Evangelion · · Score: 1


      "Windows Vista also introduces ..., kernel patch protection, mandatory driver signing..."

      So they make it more difficult for new hardware to be developed, and more difficult for hardware hacking in general. Unless you just click "allow this driver to run". That's going to make lots of people who develop non-mass marketed hardware very unhappy.
      ... or make them port thier non-mass market stuff to Linux.

    3. Re:From the article... by b0s0z0ku · · Score: 1
      Under normal operation on Vista x64, drivers must be signed by a "trusted" authority (making your own root cert doesn't work), or they won't load. Period. The only way to get past it is to hit F8 when the computer boots, which only turns off mandatory signing for that session.


      What say people chip in a few bucks for the appropriate certificate from Very$lime and then leak it onto the Internet or share it amongst themselves? Call it the Windows Authors' Collective or some such thing. The fact that you essentially need a license to develop kernel-mode software for Vista galls me.


      -b.

    4. Re:From the article... by EvanED · · Score: 1

      What say people chip in a few bucks for the appropriate certificate from Very$lime and then leak it onto the Internet or share it amongst themselves? Call it the Windows Authors' Collective or some such thing.

      I'm pretty sure that Verisign and/or MS can revoke said certificats.

      The fact that you essentially need a license to develop kernel-mode software for Vista galls me.

      You "need" a license to distribute it in a usable form, but you don't need one to develop at all since you can control the "hit F8" thing.

    5. Re:From the article... by Allador · · Score: 1

      *sigh*

      Does no one around here even bother to read up on what they're commenting on before the actual commenting?

      "So they make it more difficult for new hardware to be developed, and more difficult for hardware hacking in general. Unless you just click "allow this driver to run". That's going to make lots of people who develop non-mass marketed hardware very unhappy."

      No. It doesnt work that way. This has absolutely no effect on hardware hacking or developing hardware. It only affects you if you're DISTRIBUTING software to other people. You have a couple options to turn this off when you're in development, including turning it off on your machine globally, or using self-signed certs.

      "The kernel patch protection sounds like a good security feature. Unless the server they serve patches from gets compromised, or unless someone finds a way to disable/subvert the client end. Then it's going to be utter hell."

      The word 'patch' here doesnt mean what you think it means. Kernel Patch Protection is MS finally getting smart and STOPPING people from 'patching' (ie, modifying) in-memory kernel data structures at runtime. It's a horrible technique, and tends to destabilize systems. It's inherently non-deterministic.

      This is the same thing that Symantec and McAfee were complaining about recently. MS was going to stop them from modifying kernel data structures at runtime, which is how they build their products.

  24. PC Architecture... by StupidMBA · · Score: 1
    You know I was thinking along similar lines of "W(hy)TF are we still beholden to hardware architecture from the early 80s? And hardware architecture that, IIRC, was a hack by one of IBM's engineers?"

    So, I agree with you.

    --
    Don't mod me down: I was joking!
    1. Re:PC Architecture... by zuiraM · · Score: 1

      I take it you forked over for the IA64, then? They got virtually everything, except the crosscompilers, right this time. Considering how long they've had to hack up the x86, it is forgivable that the IA64 still has a few things to sort out.

  25. Re:Ok, class: let's determine the effectivity of t by interiot · · Score: 1

    Surely it's at least partially useful... Wikipedia mentions that it's enabled by default on OpenBSD, and that there are a number of add-ons available for Linux that lets you enable it there.

  26. so how will this affect installing Linux? by advocate_one · · Score: 3, Interesting

    if this thing is done in the BIOS? will it make it extra hard to do duel boot?

    --
    Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
    1. Re:so how will this affect installing Linux? by Red+Flayer · · Score: 1
      will it make it extra hard to do duel boot?
      Duel boot?

      Maybe you're looking for this?

      Pistols at noon.
      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    2. Re:so how will this affect installing Linux? by Lord+Ender · · Score: 4, Funny

      Duel boot?

      Linux: On-guard! This MBR is MINE!
      Windows: *parry* *thrust* Never! The first 512B are the domain of NTLDR! Mu-ha-ha!
      Linux: Touche! Looks like the boot CD will be needed to get GRUB back on here. *removes mask*

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    3. Re:so how will this affect installing Linux? by jlarocco · · Score: 1
      will it make it extra hard to do duel boot?

      No.

    4. Re:so how will this affect installing Linux? by Minwee · · Score: 1

      "I admit it, you are better than I am."

      "Then why are you smiling?"

      "Because I know something you don't know."

      "And, what is that?"

      "I am not little-endian."

  27. band-aid by bcrowell · · Score: 2, Insightful

    If there are buffer overflows, isn't the solution to fix the buffer overflows?

    I keep hearing about stuff people do on Windows to avoid viruses, and it all seems predicated on the assumption that every Windows machine is going to get infected, so then you have to mitigate the damage. For instance, I've heard people say that even if you have a Windows box sitting on your desk at home, you should make a habit of logging off when you're not using it, because that way if yout box gets owned and starts sending out penis enlargement spam, the amount of spam being sent out will be reduced.

    Shouldn't the idea be to keep your machine from having hostile code run on it at all?? All this kind of stuff seems like telling people to go ahead having unsafe sex, but then take vitamin C afterward to help boost their immune system and reduce the harm done by the HIV virus.

    Heck, if I found out my Linux box had been owned, my reaction would probably be to wipe the hard disk, reinstall Ubuntu, and restore all my user files from backup. I don't have the expertise that would be needed to do forensics on the machine once it's been compromised.

    Antivirus software seems like the same kind of deal. Why do I want a resource-hogging process running all the time on my machine to scan the disk and memory for viruses? By then it's too late. At my school, I have some web stuff I want my students to be able to use, but it requires modern CSS support, so I requested that the Windows machines in the student labs be upgraded to IE7. The response that came back was that they weren't ready to support IE7 yet, because it didn't work with their AV software. WTF?? IE7 is a high-priority security update that is supposed to happen by default. Where is the logic of refusing to do security updates that would keep your machine from being infected, so that you can run the software that would detect the infection?

    1. Re:band-aid by Anonymous Coward · · Score: 0

      IE7 is a high-priority security update that is supposed to happen by default. Calling IE7 a "security update" is like calling Chernobyl "an improved application of nuclear energy."

    2. Re:band-aid by Jerf · · Score: 1
      If there are buffer overflows, isn't the solution to fix the buffer overflows?
      Well, sure, but defense in depth is a good thing.
    3. Re:band-aid by tokul · · Score: 1
      IE7 is a high-priority security update that is supposed to happen by default. Where is the logic of refusing to do security updates that would keep your machine from being infected, so that you can run the software that would detect the infection?
      Windows Genuine Advantage Notification was high priority update too. Are you sure that IE7 is security fix and not some unstable new thing convicted monopolist wants to push to end users?
    4. Re:band-aid by bcrowell · · Score: 1

      Well, sure, but defense in depth is a good thing.
      Agreed, but all these second-tier defenses tend to have negative effects as well. AV software hogs resources. Randomizing the locations at which modules are loaded into memory makes it impossible to do certain types of optimization to speed up booting. It's a hassle to log off of your Windows machine at home when you make a run to the store for a loaf of bread.

    5. Re:band-aid by Aadain2001 · · Score: 4, Insightful
      If there are buffer overflows, isn't the solution to fix the buffer overflows?

      Well sure it is! But MS doesn't control all the source code of the software the OS runs (but they're working on that ;)). Even if the OS is free of buffer overruns (which is should be after 5+ years of development), if a poorly implemented yet popular program (such as an IM client) still has buffer overruns, there is only so much that the OS can do/not do.

      --
      Space for rent, inquire within
    6. Re:band-aid by pkulak · · Score: 3, Insightful

      What you're saying is correct, but it's often a good idea to do both at the same time. You could say the same thing about firewalls. I'm nearly 100% sure that I've got my Linux box locked up tight, but I still appreciate knowing that it's behind a router with only 2 ports open.

      Of course, my router doesn't slow down my machine, introduce its own bugs, annoy me for updates, waste space and resources, etc...

    7. Re:band-aid by Shados · · Score: 1
      Are you sure that IE7 is security fix and not some unstable new thing convicted monopolist wants to push to end users?


      Considering IE7 is a major step in "undoing" the ties between the OS and the browser...I think its more an attempt at avoiding to be convicted AGAIN.

      Never noticed that if you have IE7 installed, and type a URL in windows' explorer, it will pop Firefox if its your default browser?

      So i think that was a bad example :)
    8. Re:band-aid by pestilence669 · · Score: 1

      True. You can't keep poor developers from introducing overflows in their own code... but you can prevent a poorly written IM client from allowing an attacker to root the entire machine. The problem has never been buffer overflows, it's what you can do to the operating system with an unprivileged process.

    9. Re:band-aid by budgenator · · Score: 1

      Of course it's better to fix the buffers, that's my job now, before that I used to board up windows to keep the brain eating zombies out; seriously they only have to miss one and you'd be rooted. Defense in depth is the ticket, but I suspect that M$ skips bounds checking to improve performance where the buffer shouldn't be overflowable and see what we get.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    10. Re:band-aid by bluefoxlucid · · Score: 1

      If there are buffer overflows, isn't the solution to fix the buffer overflows?

      No. The solution is to make them trivial. If there's a buffer overflow, it should result in your machine crashing once in a while; THEN someone should fix it. This way you don't just silently get loaded with spyware and worms for 9 months until someone notices odd network traffic and starts analyzing the worm's behavior; it's immediately apparent that the whole system just shit itself because LSASS.exe died.

    11. Re:band-aid by EvanED · · Score: 1

      I can run 'rm -rf ~' from user mode without rooting the system. Doing so would do 90% of the damage that 'rm -rf /' would.

      If you have a properly set up multi-user system, yes, it makes a difference; but if you don't, for 95% of the people out there (I'm one of them) who doesn't routinely back up, the former is just as damaging as the latter. So if I can break a user application and coerce it to do the former, why would I want root?

      (And A LOT of the malware behavior that's out there is stuff that wouldn't need root.)

    12. Re:band-aid by drsmithy · · Score: 1

      If there are buffer overflows, isn't the solution to fix the buffer overflows?

      Certainly. It's not always _possible_ though.

      Shouldn't the idea be to keep your machine from having hostile code run on it at all??

      Yes. As in most things, however, theory != practice. As long as users are allowed to execute arbitrary code, ther is no way to stop them executing hostile code.

      Antivirus software seems like the same kind of deal. Why do I want a resource-hogging process running all the time on my machine to scan the disk and memory for viruses?

      Because users have a nasty habit of running malicious code.

      By then it's too late.

      Not if the AV software has hooked into the OS (many do) and stopped the virus from actually doing anything nasty.

    13. Re:band-aid by Anonymous Coward · · Score: 0

      You can not be convicted of being a monopolist, because being a monopoly is not a crime.
      Microsoft was not convicted for being a monopoly.

      How many times do you idiots need to have this hammered home?

    14. Re:band-aid by tokul · · Score: 1
      So i think that was a bad example :)

      the fact that company forced upgrade to new browser version through automatic OS updates is bad example? IE7 is new feature and not security update. It is not required. IE7 might be better than IE6, but Microsoft does not have the right to abuse its OS position to push new product. If IE7 is pushed as security update, all regular users will install it without questioning legitimacy and consequences of this upgrade.

      IE7 update is not about security. It is about stopping users transition to alternative browsers.

    15. Re:band-aid by Allador · · Score: 1

      It's a 'in addition to' relationship not a 'instead of' relationship.

      Think defense in depth. So you try to stop the buffer overflows in naughty software, but you also put in a general protection layer that helps to defend against all buffer overflow attacks.

    16. Re:band-aid by Allador · · Score: 1

      If you're doing things correctly, and running as a non-privileged user, then no user-mode software can root the entire machine.

      So you already have what you want in Windows, and have since the NT 3.51 days.

      If you're running your IM client as root/admin, then you're asking for whatever you get.

  28. BS on your BS by Mr+44 · · Score: 5, Informative

    In what way does this prevent FairUse4WM?

    This is a good thing to prevent viruses, without affecting anything else. Buffer overflow attacks need to rely on a known location in memory to jump to, typically kernel32!LoadLibrary/GetProcAddress, which will allow them to dynamically access the rest of the functions they need. Read more here: http://www.windowsecurity.com/articles/Analysis_of _Buffer_Overflow_Attacks.html

    This is 100% completely unrelated to DRM bypass programs, which can actually link to the correct functions. Anyone who mods the parent up has no idea about how windows security or programming works.

    It sounds like the parent might (just trying to be generous here) be confusing FairUse4WM with the Apple Fairplay hack tool, which does rely on known offsets within the fairplay module's memory layout. However, even that wouldn't be affacted by this, since an actual properly linked program can still determine the base address it needs.

    1. Re:BS on your BS by Orange+Crush · · Score: 1

      I'm no programmer, but I had figured that FairUse4WM worked by cracking the blackbox file into plaintext by finding the encryption key securing it in memory when Media Player was running. I was going on the discussions I read over at Doom9 when MS released their lightning-quick response patch which merely changed the address used. It sounded like the FairUse author countered this by just adjusting to the new address.

    2. Re:BS on your BS by Mr+44 · · Score: 3, Informative

      as far as I know, FairUse4WM doesn't rely on known offsets as a key aspect of how it works. Even so, what you are referring to would be a combination of the module's base address and an offset. ASLR would just mean the module base address changes every boot. A program running on the machine would still be able to call kernel32!GetModuleHandle to determine the current base address, and obviously ASLR wouldn't have anything to do with the offset from that base.

      However, it still prevents buffer overflows, since any shellcode wouldn't have gotten "fixed up" by the loader, and so wouldn't even be able to access any kernel32 functions, since the buffer overflow data would need to hard-code an absolute address.

    3. Re:BS on your BS by Anonymous Coward · · Score: 0

      I wonder if they left the application descripter at 0x10000.

  29. Oh, gosh by postbigbang · · Score: 1

    See, you always probe a default position first, and the last one is what remains and must be true because all of the rest of the smacks didn't work.

    Yet there are any number of ways to compromise things. But I'm super-paranoid and only a bit of a hack, with origins in 8086/i386 machine code. Nothing is fool proof, because fools are so ingenious.

    --
    ---- Teach Peace. It's Cheaper Than War.
  30. Say you manually verify that DEP ISN'T enabled... by dpbsmith · · Score: 1

    ...what then?

    Oh, wait, I forgot, this is the new millennium. There is no such thing as property. We own almost nothing. We rent almost everything as a service.

    The very few things we own are only there for the purpose of supporting things we rent (playing music we've rented, watching videos we've rented, running an OS we're rented) and are only expected to last a couple of years.

  31. New challenge for AntiVirus software. by Anonymous Coward · · Score: 0

    What if the virus/spyware developers use this technology to provent their malware from detected by AntiVirus software. Is there a method available at all to identify applications with randomized image?

  32. Structured Exception Handling? by mypalmike · · Score: 1

    > Every failure crashes the app.

    Doesn't Win32 allow you to catch STATUS_ACCESS_VIOLATION using SEH?

    --
    There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
    1. Re:Structured Exception Handling? by PsychicX · · Score: 1

      Normally, yes. But this isn't a normal situation. Exceptions are relying on the stack (and a specific register on x86, I forget which) to do the right thing. The problem is that you destroyed the thread stack in order to get arbitrary code execution in the first place. So there's no telling where an exception will take you, because at least one stack frame is damaged.

      To make matters worse -- or better, depending on who you are -- when a system exception happens, the kernel goes into "uh oh something's wrong" mode. That mode includes fairly aggressive verification of each and every stack frame. So it's very possible that the kernel will notice the damage to the stack and forcibly end the process.

  33. It may not be cool... by jd · · Score: 1

    ...but the power-on self-test for the Commodore PET 3032 was at location 65520, as I recall. What always seemed odd to me was that a machine that had an OS entirely in ROM and a software reboot would actually crash more than a third of the time when running the reboot.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  34. how nice they are... by towsonu2003 · · Score: 1
    How nice those OEMs are to Microsoft, right? In the meantime, I will keep doing all sorts of clowning and turning somersaults just to make my wireless and my winmodem work in Linux.

    Don't you love how market forces work for the good of the consumer ;)


    ay, here goes my karma again...

    1. Re:how nice they are... by julesh · · Score: 1

      Don't you love how market forces work for the good of the consumer

      Market forces tend to work pretty well for the largest group of consumers. The rest of us suffer.

  35. Application to servers? by Anonymous Coward · · Score: 0

    It's been a while since I've studied this in college, but wouldn't this make little difference to a server, since they are rebooted less frequently than a regular desktop/terminal? According to another post of his (http://blogs.msdn.com/michael_howard/archive/2006 /05/26/address-space-layout-randomization-in-windo ws-vista.aspx) it sounds like this only occurs when the machine is rebooted. Plus, if my memory still serves me correctly, isn't the whole goal of some buffer overflow attacks to crash/terminate an application, since that way they know they've "hit a nerve"?

    1. Re:Application to servers? by TheAwfulTruth · · Score: 1

      It helps prevent it because every one of the 50 million windows servers out there will have different memory layouts, even if they are never rebooted. They are booted at least ONCE with a ramdom layout. That stops wide spread attacks /of this sort/ dead.

      Yes, there are many many MANY ways to attack a machine, this is just one, a hole being closed. BTW to all those people that are yapping about how this is some kind of unique MS shenanigans to patch a busted OS, you DO realize that Linux has this capability too? It's a Good Thing[tm]

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  36. What a pathetic approach to security by Animats · · Score: 2, Insightful

    This is pathetic. The OS vendor is so inept that they can't keep hostile code from changing kernel data space, and their answer to this is to randomly move kernel code around? This will make many kernel bugs nonrepeatable, and improve Microsoft's defect deniability. That's its main advantage to Microsoft.

    Meanwhile, hostile code can just take over the interrupt locations, which can't move. Attacks will have to do more of the operating systems's work, like that attack which installs a virtual machine under the operating system. There are other approaches, such as simply taking over the whole machine and running something else, like a mini-OS equipped with a spam engine. Eventually someone may notice and power cycle the machine, but night attacks could get whole zombie farms going. While the attacker has control of the machine, they can make changes to the disk, too, so that after the reboot some of their stuff remains for next time. There's also a potential attack on the network controller which could leave the machine wide open for future takeover.

    Note the effect. This doesn't make attacks harder. It makes attacks which leave Windows running harder.

    Earth to Microsoft: if an attack can get into kernel mode, it's succeeded.

    1. Re:What a pathetic approach to security by salimma · · Score: 3, Informative
      This is pathetic. The OS vendor is so inept that they can't keep hostile code from changing kernel data space, and their answer to this is to randomly move kernel code around?

      No - this targets userspace security. If everytime a DLL is loaded it starts at a different base address, then you cannot write a worm that has the addresses hardcoded, so buffer overflow attacks will be much less effective. OpenBSD started doing this several years ago, and Linux has also had it for some time.

      Microsoft is also introducing "kernel patch protection" that, I'd guess, would probably block unsigned kernel modules from being loaded. Even in the Unix world, if you're a superuser you can load kernel modules at runtime. The security risk in Windows currently is that everyone is an Administrator by default.
      --
      Michel
      Fedora Project Contribut
    2. Re:What a pathetic approach to security by flynn_nrg · · Score: 2, Informative

      Not really. In the BSD world once you raise the secure level you cannot load kernel modules, root or not. And of course once you've raised the secure level you cannot lower it until next reboot.

    3. Re:What a pathetic approach to security by Schraegstrichpunkt · · Score: 1

      Doesn't Red Hat/SELinux have some sort of signed kernel module check?

    4. Re:What a pathetic approach to security by dadragon · · Score: 1

      Actually, init (and only init) can lower the secure level. Try typing:

      $ kill -s TERM 1

      as root some time. It will lower securelevel and drop into single user mode. Securelevel will rise again once in multiuser.

      --
      God save our Queen, and Heaven bless The Maple Leaf Forever!
    5. Re:What a pathetic approach to security by bluefoxlucid · · Score: 1

      When did OpenBSD start with randomization? I know PaX got NX on i386 in late 2000, added an NX policy back then, and ASLR in 2001; OpenBSD and RedHat both got an emulated NX bit in May of 2003, but no NX policy yet (a PaX fan added a few SELinux policy elements that let you get PaX's NX policy on RHAT though). I don't know when the last two got their randomization.

    6. Re:What a pathetic approach to security by salimma · · Score: 1

      Probably does. I boot my system in permissive mode so I've not had any problem loading self-compiled kernel modules.

      --
      Michel
      Fedora Project Contribut
    7. Re:What a pathetic approach to security by salimma · · Score: 1
      When did OpenBSD start with randomization?

      I'm not sure, to be honest. Wikipedia claims that it does, and from Kerneltrap it seems that since 3.8 even malloc would return a random address each time (). Someone commented there that OBSD also does ASLR, but I could not find a hard reference yet (they probably call it something else)
      --
      Michel
      Fedora Project Contribut
    8. Re:What a pathetic approach to security by bluefoxlucid · · Score: 1

      Yeah, I know OBSD does; I just don't know when they added it. I tend to keep a table of who-did-it-first data, because RedHat *cough* I mean, SOME MICROSOFT-LIKE COMPANIES like to argue others' ideas are useless fluff, then rip them out and tout a new ultra-security improvement without giving credit for prior art.

      OBSD and RedHat are annoying with their stuff, because they drop in a feature and go "WE HAVE NEW FEATURE!" out of nowhere, but don't go into technical detail about its implementation or keep a timeline of whence any of the stuff was created and when feature enhancements were made. As such, that kind of information is premium.

  37. Is still monoculture, and is defense in deep. by Tei · · Score: 1

    You still use one and only one way to do things. So It still is monoculture. You can describe this as a "defense in deep", not as a solution, or a real safe protection. Anyway: Wellcome!

    --

    -Woof woof woof!

  38. Re:I call BS by st1d · · Score: 1

    Which means the result will be a little of both, and utterly worthless in the long run, right? :)

    --
    Microsoft has just released their much anticipated hands-free cordless mouse. Warning, it may hurt a little at first.
  39. Change of plans! by monkeyboythom · · Score: 0

    Thanks! So instead of reading up on all the memory address allocs for Vista, all I have to do is study NX because once I crack that I no longer care about separate applications. I could destroy the whole table or get it to "randomize" a specific app to allocate at a specific address.

    Of course this is only for the newest machines that will have the BIOS update. The older ones still use the old plans.

    The memory-space randomization technique will block the majority of buffer overflow tricks used in about two-thirds of all worm and virus attacks."
  40. Re:I call BS by russotto · · Score: 1
    Hogwash! The real reason MS wants this is to keep things like FairUse4WMV from reading encryption keys to strip off the DRM.
    That's a good (if paranoid) thought, but (and I probably shouldn't say this, because they might not have thought of it) it won't make an insurmountable difference for reading encryption keys. While brute-forcing the key space of an encryption algorithm may be infeasible, trying every possible "key" within the address space of a process isn't. Of course, MS will try to prevent untrusted (by them, not by you) programs from accessing trusted program's address space to stop that sort of attack.
  41. Not on my new Toshiba.... by Anonymous Coward · · Score: 0

    I find this interesting because on my brand new A105-S4334 Toshiba with a Core 2 T5500, Execute Disable is disabled and they've removed the BIOS level option to enable it, this on a laptop that is marked "Vista Capable". Toshiba has had an option in Satellites for a while now to Enabled XD (or NX as AMD calls it, or DEP as MS calls it) with the default being disabled. However, on this newer model, it's disabled and no setting exists. We're a Toshiba ASP so we have a high level fix request waiting an answer now but the tech told me that *all* their doing now is testing for Vista, hope someone over there reads this one...

    Jay

  42. Compatiblity? by nurb432 · · Score: 1

    So what sorts of things can we expect to break due to this, and can we disable it if we want too?

    --
    ---- Booth was a patriot ----
  43. ALSR, Ulcer, coincidence? by r_jensen11 · · Score: 1

    Is it just a coincidence that the two sound similar?

  44. Security through Obscurity by zmod3m · · Score: 0

    Isn't this just more of Microsoft's typical 'Security through Obscurity' TM. They cant fix the problems so they will just hide them in different parts of the memory.

    1. Re:Security through Obscurity by TheAwfulTruth · · Score: 1

      Is that the same reason that Linux has implementations of it too?

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  45. Gonna make debugging & bug reporting a bitch! by sbaker · · Score: 1

    I'm not sure I understand all of the details here - but I presume (please correct me if I'm wrong) that shuffling code around will tend to randomise the nature of memory corruption bugs in software.

    For example, an array off-by-one overflow error might benignly overwrite an unused RAM location during debug - but one time in a hundred the random shuffle could cause it to screw up something important. This would make software stability generally worse - and unreproducable bugs would be much, much harder to find than reproducible ones.

    Of course ideally we want software that has no bugs - but for software of any size, that just ain't gonna happen. It'll be interesting to see whether the benfits of helping insecure software avoid letting the bad guys in outweigh the penalty of making somewhat buggy software less reliable.

    --
    www.sjbaker.org
  46. Re:Ok, class: let's determine the effectivity of t by MadMidnightBomber · · Score: 1

    ... even on Windows :p

    --
    "It doesn't cost enough, and it makes too much sense."
  47. Re:Gonna make debugging & bug reporting a bitc by badboy_tw2002 · · Score: 1

    Well, hopefully you're not allocating arrays in your code segment. Generally if you're overwriting anywhere near where your code lives thats a bad thing.

  48. Re:Ok, class: let's determine the effectivity of t by PsychicX · · Score: 3, Informative

    Nope, not so easy.

    The problem lies in the subtlety of "not successful()" in your psuedo-code. It can't be implemented, to be exact. What you're generally trying to do in a buffer overflow attack is to replace the return address for the current function with the address for the code you actually want to run. If you get your addresses wrong, you crash and you're done. And when you're playing games with this sort of thing, exceptions are pretty much out the window. You can't rely on using SEH (structured exception handling, look it up if you're not familiar) to save your ass, because guess what -- you destroyed the application stack to get here! If you take an exception, you're completely gone.

    So basically there's no reliable way to actually execute the desired code. All of the solutions you'd normally apply, thinking from an apps programmer's point of view, no longer work. Remember, the virus is a parasite which will destroy the process beyond repair. The goal is to jump ship and set up somewhere core to the system. And none of the usual mechanisms are functional because you've gone and mucked them up. You need to talk (in)directly to the operating system, and ASLR makes that impossible to do reliably.

    That's the theory, anyway. Hackers have proven to be rather clever and innovative.

  49. All it takes is a single exception at root by postbigbang · · Score: 1

    Find something that can blow up to root, feed it the pill, and watch it get sick.

    Users in Vista are presented with 100s of decisions about whether to install something. Someone will figure out how to forge something needed but not included (like MM flash), and slip the code a mickey the second the user makes an acknowledgement. It's proven.

    Pretty successful? Others think naught.

    --
    ---- Teach Peace. It's Cheaper Than War.
    1. Re:All it takes is a single exception at root by julesh · · Score: 1

      Pretty successful? Others think naught.

      So why, then, is it included in multiple BSD systems and SELinux?

    2. Re:All it takes is a single exception at root by postbigbang · · Score: 1

      In BSD or SELinux, the code base has always been of the kind where apps didn't often try to get root or a root authenticated app to do things with. In Windows, however, it has been commonplace, and very much needed to handle quote-unquote legacy apps which behaved miserably.

      If an SELinux (or other privilege-demoted) app tried to make exceptions, it can be successfully kept demoted, but will drive users crazy when their apps misbehave. In Windows Vista, about 50% of apps (or more) will misbehave, including apps that work with IE7-- even Firefox 2. The user is constantly bombarded with permission exceptions-- I've already put on a helmet because of this problem. If a user installs an application that seems legit-- and allows it to install malware, the entire system is broken. Users don't know the difference between bad and not, but Windows will allow the USER to make the choice, whereas in SELinux, it can be completely bolted down.

      If in a Vista Active Directory Domain, the policies applied prohibit the user from being bad and accepting seemingly legit code, so much the better. But indeed this doesn't happen unless the user has this policy specificly applied-- and Microsoft kinds of blushes and shuffles and shucks and jives before they tell you this. Any home machine not on an AD doesn't get this protection. Boom. Crash. Burn. Boo. Hiss.

      --
      ---- Teach Peace. It's Cheaper Than War.
    3. Re:All it takes is a single exception at root by drsmithy · · Score: 1

      In BSD or SELinux, the code base has always been of the kind where apps didn't often try to get root or a root authenticated app to do things with.

      Say what ? Only a few short years ago pretty much ever single daemon on a typical unix system would have "required" running as root. Why do you think kludges like chroot exist ? Not to mention things like SUID...

  50. Redmond's attempt to address the monoculture risk by cyber-vandal · · Score: 1

    Stopping trying to own everything desktop-related would probably be a cheaper and more reliable alternative.

  51. Re:Ok, class: let's determine the effectivity of t by Splab · · Score: 1

    Yeah, and so what? Never been an issue for most users, they just think; "oh its microsoft" restarts the application and you get your next try.

  52. Re:I call BS by julesh · · Score: 1

    This article seems to imply that ASLR (or ALSR or whatever it is) can either be disabled by the user system-wide, or that certain systems won't have the features required to enable ASLR.

    That article's talking crap. ASLR doesn't require DEP; it just isn't particularly useful at preventing buffer overrun attacks without it. If there were any programs that failed to work when run on the local system when ASLR was enabled, the lack of DEP would not prevent this.

  53. What's the catch? by Sloppy · · Score: 1

    Wow, a good idea that even Microsoft is willing to implement. What's the catch? Does the PRNG always return 0? Oh wait, I bet I know: it sometimes randomly uses address ranges that overlap with already-allocated memory?

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  54. Impossible to stop that. by jnelson4765 · · Score: 1

    So long as they allow one process to spawn a thread in another, you can read process memory. The Cell processor has some hardware tricks to try and keep that from happening, involving a combination of signed code and some special calls in one of the CPEs, combined with access restrictions on the memory areas accessed by thet CPE. x86 doesn't have the capability to do that - and both VMWare and checked builds allow you full access to the process memory.

    That's a barn door you can not close on x86 or x86-64. At all.

    --
    Why can't I mod "-1 Idiot"?
  55. Re:Ok, class: let's determine the effectivity of t by bluefoxlucid · · Score: 3, Informative

    Works well when you can try this over and over; but sometimes you'll need to break a lot. On vanilla Linux you have 524288 states of memory (stack and mmap() base) relevant to your attack (you probably only care about {stack OR heap} and {mmap() OR program base}); in PaX you have 2^(24+16). Now if Internet Explorer crashes on the first newbie you try to exploit, you have to wait until he surfs to your site AGAIN to attack; if you have high-end randomization (2^48 is doable on x86, since the stack/heap/mmap()/program bases are all independently randomized; about double is possible on x86_64), it could be eternity before you actually break something (2^32 is 4 billion, earth's population is 6 billion).

    A miss from ASLR attack will change the instruction pointer and crash the program on failure, almost guaranteed. You'll either hit data; misalign with the instruction stream; align with the instruction stream in some way that makes no sense (in the middle of a function with another function's call stack); or hit unmapped memory. Any of these will get you program termination. You think someone won't notice if his Web server decides to crash and restart 300,000 times a minute? A simple host IDS can figure out that's wrong.

  56. Re:Ok, class: let's determine the effectivity of t by EvanED · · Score: 1

    It wouldn't be too much harder to simply locate the thing you want, instead of doing it like you did, I'm sure

    It is if the reason you're doing it in the first place is because you need a vulnerability to get your code running on the system, it's sorta hard to locate the thing you want until you've already done that.

    I haven't bothered to research the tech... ...but I feel like I can just spout random crap about it anyway

    it will probably be mostly useless

    OpenBSD and the NSA [SELinux] disagree.

    take up additional processor/memory speed

    No additional memory, and only an increase in the time it takes when first loading a DLL (such as on boot). Once the DLL's loaded, accesses don't change.

    be disabled on all old system

    I can't speak to this, so I won't say anything.

    and users will likely disable it on new systems because it causes errors with some game they play.

    I guess theoretically possible, but to break because of ASLR the game would have to be doing something extremely non-kosher like using hard coded addresses. And since those addresses can change from version-to-version (or even just patch-to-patch), the chance that it'd run under Vista w/o ASLR is extraordinarily slim.

  57. Re:I call BS by chrisbtoo · · Score: 1

    Maybe they (Gasp, shock, swoon) have two different motivations at the same time, or there are at least two people working on it that both have either one or the other motivation

    Don't be daft! Next you'll be saying the whole company has degenerated into a series of disconnected fiefdoms that aren't all moving in the same direction!
    --
    Registering accounts later than some other chrisb since 1997
  58. You are seriously confused. by Generic+Player · · Score: 1

    "Heck, if I found out my Linux box had been owned, my reaction would probably be to wipe the hard disk, reinstall Ubuntu, and restore all my user files from backup. I don't have the expertise that would be needed to do forensics on the machine once it's been compromised."

    The whole point of this is to help prevent the compromise in the first place. Nobody is perfect, and there is no way to make sure that all software is 100% bug free. So using techniques to help prevent exploitation of bugs when they are found is a good thing.

    OpenBSD and linux both support this as well. Just because microsoft does something, doesn't mean its a bad thing.

  59. Where's the -1 crackmonkey mod option? by Generic+Player · · Score: 1

    "The OS vendor is so inept that they can't keep hostile code from changing kernel data space"

    This has nothing to do with the kernel at all.

    "This will make many kernel bugs nonrepeatable, and improve Microsoft's defect deniability"

    No, it will make exploiting the bugs require you to correctly guess where the library is loaded in memory. The bugs don't change.

    "Meanwhile, hostile code can just take over the interrupt locations, which can't move. Attacks will have to do more of the operating systems's work, like that attack which installs a virtual machine under the operating system. There are other approaches, such as simply taking over the whole machine and running something else, like a mini-OS equipped with a spam engine."

    This is to prevent successful exploitation of bugs in software. It has nothing to do with preventing rootkits or other nastiness from being installed after your machine is already compromised.

    "Note the effect. This doesn't make attacks harder. It makes attacks which leave Windows running harder."

    Yes it does make (certain) attacks harder. You have to guess the address correctly. Typically, if you guess wrong it will crash the software instead of exploiting it.

    "Earth to Microsoft: if an attack can get into kernel mode, it's succeeded."

    Earth to Animats: if you have no idea what you are talking about, don't pretend you do.

  60. Re:Gonna make debugging & bug reporting a bitc by ivan256 · · Score: 1

    Who said anything about allocating? Ever see a programmer dereference some data pulled off the network as an address? (Hell, maybe it was an address on the server side...) How about dereferencing a null pointer as an array with a suitably high index? Or clobbering your stack with a buffer overflow, and then dereferencing what used to be a perfectly valid pointer? Overwriting data by accident is a bad thing even if it is nowhere near your code segment, but bugs happen, and there are plenty of bad programmers out there.

    I think a better answer to the parent is that you can turn this stuff off while you are debugging.

  61. No, it makes sense. by r00t · · Score: 1

    Lots of OS-level things are controlled by flags in the headers of executables.

  62. why is this a BIOS issue at all? by r00t · · Score: 1

    I mean really WTF?

    If the processor supports the feature, it should be available to the OS.
    If the OS also supports the feature, it should be available to the apps.
    For apps that are unaware of the feature, the OS should let the user decide.

    Does the BIOS actually make the CPUID instruction lie about the feature?
    (allowing the BIOS to hide the feature from the OS) If so, is it merely
    hidden or actually disabled? In other words, could the OS just use the
    feature despite whatever the CPUID reports? Does the BIOS instead make
    the feature non-functional?

  63. Are DLLs no longer shared in memory? by Myria · · Score: 2, Informative

    In previous versions of NT, if a DLL doesn't have to be relocated, the kernel will make the read-only portions of the mapped file shared among all processes using that DLL. With address randomization, it's as if *every* DLL is relocated. Won't this eat a lot of memory having a bunch of copies of the same DLL taking up RAM?

    Melissa

    --
    "Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
    1. Re:Are DLLs no longer shared in memory? by Lennie · · Score: 1

      Going by the all the other comments of I'd say: no, it's only randomized when loaded the first time.

      --
      New things are always on the horizon
    2. Re:Are DLLs no longer shared in memory? by zuiraM · · Score: 1

      You could just randomize it upon installation of the DLL.

      Sure, it reduces the likelyhood of correctly guessing the address to the square root or so of the full approach, but it is still a viable solution, security-wise. Perfect tradeoff.

      Protecting individual installations is the task of the security people, and either way Windows is not suited to a no-compromises security scenario. Greatly decreasing the bulk vulnerability of the OS without significantly decreasing individual performance seems like the right way to go for them.

      Randomizing per-installation ensures that there will be little or no risk of widespread use of these vulnerabilities, although it does less to protect a single site.

      Pity I didn't patent it back when I first thought of it. :P

  64. yeah....or they could make the BSOD actually work by ILuvRamen · · Score: 1

    that sounds like a really, really, really good idea but so was blue screening whenever any program tried to read from memory that was in the operating system section of the memory. I guess if hackers found away around it then it doesn't work so well. Why didn't they fix that problem? It's like building a new car because your other one is broken.

    --
    Google's Super Secret Search Algorithm: SELECT @search_results FROM internet WHERE @search_results = 'good'
  65. Re:Ok, class: let's determine the effectivity of t by Aladrin · · Score: 1

    They can disagree all they want. Until it's been PROVEN to be effective, I won't believe it. Some of the hacks to 'train' xbox games were amazing. I even used the 'code cave' technique myself a couple times, and that's considered nearly child's-play compared to some of the hacks they did.

    I meant memory speed, as in bandwidth. Not actual memory space. But even after boot, there's some processing needed to find the newly located code. If there wasn't, you could simply look up the location in the OTHER part of memory and BAM, hack time. To run tricks like that, they need to process.

    It'll be disabled on all old systems because it either doesn't exist, or was shipped disabled. RTFA. It says so. No need to even argue it.

    As for game errors... You have obviously never bothered to look into game programming. Some of the tricks they pull to gain speed are amazing. And absolutely reliant on the architecture. They use glitches to improve performance, and count on them. The oldest example of this was when games were programmed to use the system bus speed to time the game. Faster computers can't run these games without software that slows it down. Any other example is quite a bit more complex.

    Still think I'm spouting crap randomly? I didn't have to look any of this information up because I've been dealing with it for so long. This new tech doesn't sound like it'll be worth researching. If it turns out to be a big thing, THEN I can be bothered. I'm still pretty sure it'll flop, and not going to waste my time.

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  66. Re:Ok, class: let's determine the effectivity of t by zuiraM · · Score: 1

    Until people start actually using the segmentation and privilege ring facilities on the x86 processors, this will still be circumventable. I think that the segmentation stuff et al is as silly as most other people who have done stuff with the x86, but there actually is some rationale behind it.

    The real problem with segmentation et al, is that Unix doesn't map reasonably well to it, and there's this whole "lowest common denominator" thing (frequently labeled "portability", which is arguably a good thing in most cases).

    As it is, as long as you can take over the running context, you can still scan for the code you are looking for, which will work until they start doing polymorphic code in the kernel. Which will work until someone (I assume only the real black hats will have the fortitude for this) writes up a code analyzer that will detect if the code does what you want it to. At that point, you'll need heartbeating and/or better CPU-level protection facilities.

    If you want to be safe, limit your segment so that the program *cannot* access anything it isn't supposed to, set different page tables, use gates for control transfer, etc.

  67. Three words. by zuiraM · · Score: 1

    Prevention.
    Detection.
    Response.

  68. Re:Gonna make debugging & bug reporting a bitc by zuiraM · · Score: 1

    Software without bugs happens. Regularly.

    Specifications without bugs is a rare beast.

    Have a look at companies like Lockheed-Martin.

  69. Re:Ok, class: let's determine the effectivity of t by Frizzle+Fry · · Score: 1

    while not successful()
          for i=1 to 254
                spank (module old code with randomized address prediction)
          next i; /*next spank
      The goal is to prevent you from exploiting the machine by getting it run your code. If you have somehow gotten this "new code" running, then the game is already over.

    --
    I'd rather be lucky than good.