Slashdot Mirror


Hacker Bypasses Windows 7/8 Address Space Layout Randomization

hypnosec writes "Microsoft upped its security ante with Address Space Layout Randomization (ASLR) in Windows 7 and Windows 8, but it seems this mechanism to prevent hackers from jumping to a known memory location can be bypassed. A hacker has released a brilliant, yet simple trick to circumvent this protection. KingCope, a hacker who released several exploits targeting MySQL in December, has detailed a mechanism through which the ASLR of Windows 7, Windows 8 and probably other operating systems can be bypassed to load a DLL file with malicious instructions to a known address space."

208 comments

  1. Step One by Anonymous Coward · · Score: 5, Funny

    Click on link in article...

  2. the only thing Microsoft and others can do is... by logicassasin · · Score: 4, Informative

    ... delay the inevitable.

    Every new security feature they can dream up can and will be bypassed with enough time.All they can do is build it hard enough that it takes more time to crack.

    --
    Fifty watts per channel, baby cakes.
  3. Re:the only thing Microsoft and others can do is.. by bigstrat2003 · · Score: 5, Insightful

    I'm sure they're aware of that, as is anyone with a shred of knowledge about computer security (or hell, security in general). What is your point?

    --
    "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
  4. OMG that is childishly simple by Anonymous Coward · · Score: 2, Informative

    Fill up memory, then free some until enough is free to load the DLL.

    1. Re:OMG that is childishly simple by gnasher719 · · Score: 3, Informative

      Fill up memory, then free some until enough is free to load the DLL.

      Which works fine with a 32 bit operating system. With 64 bit, filling up memory looks like a hard job to me.

    2. Re:OMG that is childishly simple by mmell · · Score: 1
      But the way ASLR is (supposed) to work . . . theoretically, it should not be possible to know what blocks of memory are used, which ones are still free, which ones you are freeing up when you deallocate memory. I'm assuming Java gets a relative memory pointer when it allocates memory and not an absolute one.

      If Java gets an absolute address then, yes - this is childishly simple (and that seems to be the behavior in this case). If that's so, this guy is keeping the best under his hat, because I can think of a few ways to speed the process and reduce the risk of the target machine crashing due to lack of available memory.

    3. Re:OMG that is childishly simple by mhotchin · · Score: 1

      On 64 bit, I wonder if allocating (reserving) the VM space, but not allocating memory for it, would do the trick. Harder (impossible?) to do from javascript though.

    4. Re:OMG that is childishly simple by Rockoon · · Score: 1

      Its not possible to hide the absolute address, so nobody uses relative addressing in 32-bit because its less efficient, and in 64-bit while relative addressing no longer has a performance penalty its still impossible to hide the absolute address.

      --
      "His name was James Damore."
    5. Re:OMG that is childishly simple by BitZtream · · Score: 2

      VirtualAlloc's without requiring a backing store work just fine for consuming enough of the 64 bit virtual backing store that it doesn't matter.

      Asking for space but telling the OS you don't need it right NOW will get you an address space with no memory used until you cause a page fault by accessing it causing a page of real memory to actually be attached to it. Until that point, its just an entry in the page table, to which its easy to fill up, your computer does it every boot.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    6. Re:OMG that is childishly simple by BitZtream · · Score: 0

      But the way ASLR is (supposed) to work . . . theoretically, it should not be possible to know what blocks of memory are used,

      If no one knows whats in use, how does any one (or OS) know how to access the data in those locations?

      Something ALWAYS knows whats in use and where its at. All you have to do is know where to ask.

      If I put some block of data in some random RAM location, but don't store any way to know whats in that block of data than NO ONE can do anything useful with it, not just the exploits. Your OS and your Apps have to know how to write to important locations in order to work.

      Without ASLR (more specifically without relocatable code) your app has a hard coded table of addresses for important bits of data made at compile time.

      With ASLR (or relocatable code) your app still has to know where those places are! Now it just uses a lookup table, which it can find the lookup table ... at a well known address. So exploits just use your lookup table as well. The only exploits it stops are old ones that weren't coded to use the lookup table. All new exploits WILL use the lookup table which means you've added complexity and effectively added no advantage.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    7. Re:OMG that is childishly simple by jhol13 · · Score: 1

      All this can be trivially stopped by ulimit. If a javascript can allocate 4 gigs of memory it is effectively a DoS. I would never let some web script allocate more than a fraction of physical memory.
      Besides, there is absolutely no reason for a DLL to be put into same address where allocation heap resides.

    8. Re:OMG that is childishly simple by WaywardGeek · · Score: 1

      Yep. I toyed a bit over Xmas with fixed location dynamic arrays. The problem I was trying to solve was that dynamic arrays keep moving around their data as they grow, and multiple threads accessing those arrays can clobber each other. By allocating 32 bits of address space for each dynamic array, I avoid having to relocate it as it grows. It worked OK, but unfortunately, the page table memory is not free. At startup, my code allocated many of megabytes of page table data. It also took several seconds to complete, depending on the number of 4G arrays allocated. Over about 10,000 seemed to be a problem.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    9. Re:OMG that is childishly simple by WaywardGeek · · Score: 1

      I'm not a security expert, but isn't ASLR implemented in the dynamic linker? I would expect that the function lookup table you're talking about would be in a system level process, and not accessible in user space. My user level code would have all it's hard-coded function calls updated when loaded, and so long as my executable code is not readable, there's some protection of the actual addresses. However, if all you have to do is call a fixed location, asking for an address of whatever function is in that tale, then ASLR is pretty worthless.

      I'm interested in sand-boxing some P2P apps in a way similar to what Chromium does. Basically, the app itself would be a DLL I'd load, and before calling anything in it, I'd drop all privileges to the lowest setting possible. Is it possible in Windows or Linux to disable the ability to dynamically load and link to a DLL or shared library? Preferably, I'd disable all system calls, other than reading from stdin, and writing to stdout.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    10. Re:OMG that is childishly simple by Rockoon · · Score: 1

      From what I understand, the WIN64 address space is 2^42, and a WIN64 page is still 2^12, which means a total of 2^30 possible virtual page addresses.. a binary billion.

      With 8 byte page table entries thats 8GB of memory just for the page table.

      So I'm thinking its not actually possible to fill up the page table in systems with 8GB or less memory, and systems with 12GB of memory would probably be thrashing extremely hard (writing multiple gigabytes of data is a slow process, even on high performance SSD's) as stuff gets swapped out in order to hold the page table.

      --
      "His name was James Damore."
    11. Re:OMG that is childishly simple by Anonymous Coward · · Score: 0

      You should be using large page support, even 2MB pages should reduce the issue a lot and increase overallocation only minimally.

  5. Obvious? by Todd+Knarr · · Score: 3, Interesting

    And this exploit wasn't obvious from the start? When the heap and dynamically-loaded code share the same address space, this vulnerability always exists. We knew this 30 years ago. It took someone this long to apply it?

    1. Re:Obvious? by icebike · · Score: 1

      I wonder if this would be reliable in a heavily used machine with lots of processes vying for memory. There may be demands for memory blocks in the queue which were waiting longer than your request which might get serviced first.

      --
      Sig Battery depleted. Reverting to safe mode.
    2. Re:Obvious? by Anonymous Coward · · Score: 0

      heavily used machine with lots of processes vying for memory.

      You mean in 2003 ? Cause it's 2013 now and CPUs are so powerful while software is so poorly written that the most loaded machines average on 80% cpu usage throughout the day.

      Just opening a thread (let alone a process) spikes the cpu (both windows and linux). A few cycles later it flattens while the RAM catches up with the disk reads. It's also true on SSDs...

    3. Re:Obvious? by icebike · · Score: 3, Interesting

      True, but that just shows how often demands for memory can happen in a modern multi-core machine.
      Microsoft didn't implement ASLR until 2007 (Vista).

      With so much multitasking going on under the processors of that time and today, it would suggest that any attempt to saturate memory would inconvience many tasks, many of whom would have allocation requests pending, probably for smaller chunks than your rogue task would require. These would stack up while your were saturating memory, and be serviced upon first, as soon as you released your block. There is no way you can do a system call tor free-memory AND follow it with DLL load command without yielding some time slots on the processors and memory allocation routines. The busier the machine the more likely this is to fail because allocation requests are always in flight.

      --
      Sig Battery depleted. Reverting to safe mode.
    4. Re:Obvious? by Todd+Knarr · · Score: 3, Informative

      Processes would be irrelevant, since each one has it's own address space (the exploit works on the process level, not down on physical memory). And with NOP slides and other tricks, you don't need to pin down the location to the byte. Allocate one large block that'll be forced into the end of memory (start too large and work down until it succeeds, it'll have been allocated at the end of the heap because that's the only place that has a single contiguous block big enough open), allocate smaller blocks until the allocation fails (you've now filled up the heap), then resize your big block down enough to open up a hole for the DLL (it'll be loaded immediately after your big block since that's where the hole was opened up). The only real trick is chopping up the low portion of the heap and leaving enough small blocks there that most normal allocation will be happening below your big block while the only hole big enough for the DLL is above the big block, and it's not like that's all that challenging a programming problem.

      And the amusing thing is that the x86 architecture allows you to make this sort of exploit physically impossible (at least without cracking ring 0 first). Separate code, heap and stack and place the heap and stack in non-executable segments, and any attempt to try this kind of thing just results in the kernel getting a memory access exception and terminating the offending process.

    5. Re:Obvious? by Anonymous Coward · · Score: 0

      And the amusing thing is that the x86 architecture allows you to make this sort of exploit physically impossible (at least without cracking ring 0 first). Separate code, heap and stack and place the heap and stack in non-executable segments, and any attempt to try this kind of thing just results in the kernel getting a memory access exception and terminating the offending process.

      That's the point of loading a DLL at a known address, not shellcode. The POC uses a non-malicious DLL to construct a ROP chain (return-oriented programming) from fragments of the DLL in executable memory, effectively bypassing DEP and NX.

    6. Re:Obvious? by Anonymous Coward · · Score: 0

      I once tried to do some volume visualisation work on a desktop PC - figured that if I bought a few extra Gigabytes of memory, I'd pop it into the system, reboot and my malloc( 1024x1024x1024* sizeof(float) ) would work perfectly. Turned out what actually happened, was that all that memory was shared out between the hundred or so file devices that were never used. When the malloc came around, all that memory was requisitioned by the kernel and the system would just grind to a halt as blocks of memory were freed and reallocated.

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

      Don't forget that each process has it's own address space. So another process allocating memory will do so in it's address space, the hole that the attacker has opened up, is a hole in their address space, what other processes do allocating and freeing memory is for the most part irrelevant. This is virtual memory, virtual addresses are translated to physical addresses. Physical memory may be exhausted and swapping/paging may be occurring.

      DLLs are meant to be shared, so Windows will try to load them at an address common to all processes; in this case however the exploit is trying to load a DLL that has not yet been loaded, so only the free ranges in the victim process really matters.

  6. TLDR by YodasEvilTwin · · Score: 5, Informative

    Fill memory until only enough space is left for loading whatever it is you're trying to load. Obviously the location is predictable since there's only one spot for it.

    1. Re:TLDR by Kaenneth · · Score: 1

      If an attacker has enough access to fill all the address space of a 64 bit process, it sounds like they are already in too much control.

      "It rather involved being on the other side of this airtight hatchway."

    2. Re:TLDR by Anonymous Coward · · Score: 0

      And their "exploit" requires the ability to load a random dll in order to do anything useful. This doesn't seem like a serious vulnerability.

    3. Re:TLDR by asmkm22 · · Score: 2

      This appears to be a 32-bit exploit, at least as tested.

    4. Re:TLDR by Anonymous Coward · · Score: 2, Insightful

      Not only that but the point of ASLR is to randomly locate system DLLs, not some evil hacker code. This does nothing to break the intended use of ASLR.

    5. Re:TLDR by phantomfive · · Score: 1

      It's not as hard as it sounds. Create a malicious web page that does something to fill memory (create a lot of javascript objects or something). At that time, put an active-X module on the page. This will probably trigger the loading of the Active-X dll, since it's unlikely that the user will have encountered an active-X page since they last launched internet explorer. (if they have, then this exploit might not work).

      Then you are ready to launch some exploit code into the active-X DLL, and you know the address you need to smash the stack for fun and profit.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:TLDR by Anonymous Coward · · Score: 0

      Seems, as far as doing this with JavaScript, easy to stop by just letting a browser place an arbitrary limit on the memory used, whether for all JavaScript or say per tab. This has the added benefit of stopping a single script from using up all of your memory. It already seems to be enough on some computers to crash X by having a script make Firefox's memory exceed that of physical memory, then random other processes getting axed when there is no memory left to allocate.

    7. Re:TLDR by Anonymous Coward · · Score: 0

      So now you need to know memory addresses and be able to corrupt the stack from javascript. Good luck with that.

    8. Re:TLDR by The+MAZZTer · · Score: 2

      It is very uncommon to see 64-bit web browsers, as most plugins only come in 32-bit flavors. So running a 64-bit Windows won't matter for 99.99% of users. Only IE offers a 64-bit version, at least theirs is the easiest to find and use. Firefox might offer one I think? But it won't be the default download. Chrome does not yet offer one for Windows.

    9. Re:TLDR by Anonymous Coward · · Score: 0

      Not only that but the point of ASLR is to randomly locate system DLLs, not some evil hacker code. This does nothing to break the intended use of ASLR.

      The exploit describe in the article causes a system DLL to be located in a predictable location, so it does break the intended use of ASLR.

    10. Re:TLDR by tippe · · Score: 1

      Don't think that's quite it. I think you alloc all space in blocks until memory is full (NB: you'll obviously know the location of each block you allocated), then you release blocks of your choosing so as to create a space large enough for the program you are trying to inject. You can't just alloc all space minus your program size as 1) there is no guarantee that the space you're left with at the end will be continuous (or known), AND, 2) unless you know the location of all other previously allocated memory in the system, how are you going to know where the last un-allocated space (for the program you want to inject) is going to be?

    11. Re:TLDR by PRMan · · Score: 1

      Firefox just quit their 64-bit version and then re-instituted it based on the collective howls of nerds everywhere.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    12. Re:TLDR by Anonymous Coward · · Score: 0

      Not only that but the point of ASLR is to randomly locate system DLLs, not some evil hacker code. This does nothing to break the intended use of ASLR.

      The exploit describe in the article causes a system DLL to be located in a predictable location, so it does break the intended use of ASLR.

      He deserves credit, that is to say if this really works as advertised. Especially since MS has gone to a lot of trouble to hire an small army of some the best brains in, maths, security, computer science and a number of other scientific disciplines and yet even these brainy overachievers overlooked this simple trick.

    13. Re:TLDR by PPH · · Score: 2

      This has the added benefit of stopping a single script from using up all of your memory.

      Its as if a million JavaScript developers cried out in terror and were suddenly silenced when we stopped them from using all our system's resources.

      --
      Have gnu, will travel.
    14. Re:TLDR by Antique+Geekmeister · · Score: 1

      "lynx" is also 64-bit, and works very well for visually impaired people who need robust text-speech. If your website does not work with lynx, it's probably too gizmo filled for ordinary use, anyway.

    15. Re:TLDR by Shoten · · Score: 2

      This appears to be a 32-bit exploit, at least as tested.

      That depends on what you mean by "32-bit exploit." He's doing it as 32-bit code because then you have a LOT less memory to fill up. Even better, you have a predictable amount of memory to fill. It affects operating systems which are 64-bit; he's not doing it in a way that makes those OS versions safe, but for his own convenience of exploitation. There's another added benefit as well...not only is it easier to fill up the RAM of a 32-bit memory space, but in a 64-bit environment you won't be as likely to slog the machine down overall while you do so.

      --

      For your security, this post has been encrypted with ROT-13, twice.
    16. Re:TLDR by qbast · · Score: 2

      That's the problem with security - it is easy to overlook one stupid trick.

    17. Re:TLDR by fisted · · Score: 1, Troll

      Especially since MS has gone to a lot of trouble to hire an small army of some the best brains in, maths, security, computer science and a number of other scientific disciplines and yet even these brainy overachievers overlooked this simple trick.

      They've also hired such guys to come up with Windows 8 in the first place. And Windows 7. And Windows Vista. And... you get the idea.

    18. Re:TLDR by gnasher719 · · Score: 2

      There's another added benefit as well...not only is it easier to fill up the RAM of a 32-bit memory space, but in a 64-bit environment you won't be as likely to slog the machine down overall while you do so.

      Quite the opposite. With 64 bit, the logical address space is many orders of magnitude bigger than available RAM. So you end up thrashing your virtual memory quite soon. However, the logical address space is still orders of magnitude bigger than your swapspace (4 TB if we are generous), so it's quite impossible to fill the 64 bit address space.

    19. Re:TLDR by Anonymous Coward · · Score: 0

      Especially since MS has gone to a lot of trouble to hire an small army of okay brains in, maths, security, computer science and a number of other scientific disciplines that couldn't get jobs at Google and other better and more ethical companies.

      Fixed that for you.

    20. Re:TLDR by sexconker · · Score: 2

      It's not as hard as it sounds. Create a malicious web page that does something to fill memory (create a lot of javascript objects or something). At that time, put an active-X module on the page. This will probably trigger the loading of the Active-X dll, since it's unlikely that the user will have encountered an active-X page since they last launched internet explorer. (if they have, then this exploit might not work).

      Then you are ready to launch some exploit code into the active-X DLL, and you know the address you need to smash the stack for fun and profit.

      I don't understand how he knows the addresses. Virtual memory and ASLR result in the a process knowing the following:

      Data X is at Location A
      Data Y is at Location B
      Data Z is at Location C

      A,B,C are randomized offsets.
      If you fill everything up, you still only have a list of random offsets. You could then kill off some objects and then HOPE that the next thing you load (a target DLL for example) fits into the freed-up space AND the OS drops it in the same physical space and presents the same virtual offset to the process. On a 32-bit system the OS MAY reliably stuff shit into the expected offset IF the whole thing doesn't go tits up when you cross the heap/stack line AND no other process dares ask for a byte of memory during your attempts. But on a 64-bit system you're shit out of luck because you'll never fill up the memory.

      Regardless, the fix is trivial - when memory is that scarce, juggle shit around a bit when you allocate new crap.

    21. Re:TLDR by phantomfive · · Score: 1

      Regardless, the fix is trivial - when memory is that scarce, juggle shit around a bit when you allocate new crap.

      Nah, you can't do that because you'll need to fix all the pointers, unless you're in a VM you can't do that.

      Virtual memory still presents itself to the user-space program as contiguous memory (because of the TLB). So it doesn't matter where it actually is in hardware, you can still address it with the correct number.

      I don't entirely understand the details either, but he has the source code there, and honestly I don't care enough to actually go through and read them. He fills up memory until the Javascript engine starts throwing out of memory exceptions. It is possible he is exploiting some explicit behavior in the Javascript engine without realizing it, and that this would not work in other programs.

      --
      "First they came for the slanderers and i said nothing."
    22. Re:TLDR by phantomfive · · Score: 1

      lol you know, I haven't seen anyone else who's said they've reproduced this, and he himself only tested on two different computers (AFAIK). It is possible that the exact address varies from computer to computer and that this technique is actually completely useless for attacking an unknown remote computer.....

      --
      "First they came for the slanderers and i said nothing."
    23. Re:TLDR by Shoten · · Score: 1

      I think you've confused potential address space with actual available RAM. While you're right that there will be an impact on performance from filling up a 32-bit address space in the larger confines of a 64-bit operating system, you'll cause an even greater impact if you fill up all the actual available RAM by running the exploit in 64-bit context. And it's not about address space; the point is not to fill the address space that is potential, but the actual available RAM, because that's the point where you hit the ceiling and can determine where you want to create the empty spot to load into. The address space doesn't come into it, really, except as a limitation on the amount of RAM that the 32-bit process is aware of.

      --

      For your security, this post has been encrypted with ROT-13, twice.
    24. Re:TLDR by Anonymous Coward · · Score: 0

      They wouldn't hire you, would they?

    25. Re:TLDR by loufoque · · Score: 1

      You don't need to actually allocate the memory, you just need to reserve the memory space.
      I don't know what you mean by "too much control". Every process, even though without administrator/root rights, run in a virtual 32 or 64-bit space. Both of them can entirely fill the virtual memory space whatevere the operating system, and even if there is very litle actual RAM.

    26. Re:TLDR by smellotron · · Score: 1

      Only IE offers a 64-bit version

      Whoa, that's wrong. I have been using 64-bit Opera for months.

    27. Re:TLDR by BitZtream · · Score: 1

      So you think any application on your computer has too much access?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    28. Re:TLDR by BZ · · Score: 2, Informative

      Actually, the address space is in fact key. The goal is to load a known DLL at a known address in the process address space, not a known address in physical RAM, because process address space is what you can see in the code that you will then try to run that will try to call into the DLL.

      So in a 64-bit process, this technique is pretty hard to pull off, since it does in fact rely on address space exhaustion.

    29. Re:TLDR by jhol13 · · Score: 1

      Why is a web loaded javascript code allowed to fill the entire memory in the first place? Isn't it effectively a DoS, as the machine will swap for the next quite a few minutes?

    30. Re:TLDR by Anonymous Coward · · Score: 0

      AND the OS drops it in the same physical space and presents the same virtual offset to the process

      The physical address is irrelevant -- nobody except the kernel will ever need to know the physical address of anything. The exploit code just needs to find the virtual address the DLL was loaded into.

    31. Re:TLDR by Anonymous Coward · · Score: 0

      They didn't overlook it (except for not realizing that you should limit how much RAM javascript can use, but that still will not make this completely ineffective).
      The problem is simply that ASLR cannot work properly with only 32 bit to work with, especially when real-world workloads can use up all virtual memory, so running out of bits to randomize does not necessarily mean an exploit is going on.
      Running out of bits to randomize means ASLR is completely useless.
      Even if all you can do is fixing 24 of the 32 bits your exploit will work in one of 256 cases on the first try.
      Heck, even with full ASLR, just randomly trying all addresses until you get lucky might be realistic in some cases.
      Which comes back to my starting point: ASLR and 32 bit is better than nothing, but it just can't work properly.
      The only real idiocy is continuing to stick with 32 bit despite these well-know issues. Looking at you, Mozilla.

    32. Re:TLDR by cheekyboy · · Score: 1

      its not hard to have a 64bit app running, with another 32bit process having its window open inside the 64bit bit apps main window.

      The 32bit plugin can commuincate to the 64bit browser by usual ipc/tcp/windows msgs way.

      Sure its a bit of effort, but stop being lazy, or shall we say, the 32bit plugin people, stop being lazy! make a 64bit ver.

      --
      Liberty freedom are no1, not dicks in suits.
    33. Re:TLDR by mikael · · Score: 1

      It's like having a wi-fi router with a built-in firewall that is enabled by default. Except they also have VPN services enabled by default too with easy to guess hardcoded administrator passwords as well.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    34. Re:TLDR by robsku · · Score: 1

      What is it always with "lynx" when a terminal/text-mode browser is mentioned - most systems today (all I've seen) have at least one of links versions (links/links2 or the best, eLinks, which I prefer when I use text only browsers), and then there is also w3m... of all these Lynx is the most outdated (although it does what it supports quite well), both UI and technical features (missing support for html tables in this day is really outdated. ...but I try to keep my websites functional and test it also with Lynx ;)

      --
      In capitalist USA corporations control the government.
    35. Re:TLDR by robsku · · Score: 1

      I was just thinking of why couldn't firefox implement a 64-bit build of browser but 32-bit build of "plugin-process", which they made a separate process from firefox-bin long ago on some 3.6.x version...

      --
      In capitalist USA corporations control the government.
    36. Re:TLDR by Antique+Geekmeister · · Score: 1

      As you said: lynx does what it supports quite well. It's also very portable, and very broadly available. The unnecessary use of HTML tables, while common, often confuses and interferes with text-speech synthesizers and simple parsing of web content for people with visual problems or very little screen space.

    37. Re:TLDR by YodasEvilTwin · · Score: 1

      Yeah, like I said this was the TL;DR version :P

    38. Re:TLDR by sexconker · · Score: 1

      AND the OS drops it in the same physical space and presents the same virtual offset to the process

      The physical address is irrelevant -- nobody except the kernel will ever need to know the physical address of anything. The exploit code just needs to find the virtual address the DLL was loaded into.

      If you're FILLING UP MEMORY then you need things to be placed into the same physical space as what you just freed up because if they aren't placed into the same physical space, then that means there were OTHER memory changes you can't account for. Those changes would most likely affect your process's virtual memory space (since that process is the one eating up all the memory). Since operating systems tend to manage memory, especially when usages trends toward 100%, this attack seems unreliable at best.

    39. Re:TLDR by robsku · · Score: 1

      In eLinks, I believe, table support can be disabled, but you have a point.

      --
      In capitalist USA corporations control the government.
  7. Restrict working set size of the process by Anonymous Coward · · Score: 0

    I RTFA. The trick relies on memory exhaustion. I'd think if you restrict process working set size on the browser process using Windows job objects, the trick won't work.

    1. Re:Restrict working set size of the process by Anonymous Coward · · Score: 0

      Except you don't understand what you read. It's not phyisical memory but virtual. 32-bit processes are already limited to 2GB memory. Trick they are doing is within these 2GB.

  8. Cool hack by sl4shd0rk · · Score: 4, Informative

    So basically use javascript to allocate all available memory. Once you get the allocation exception, begin freeing small chunks. After each free, try loading an Active X DLL (target DLL exploit). As soon as you have freed enough blocks, the DLL will load into the space you freed. Essentially bypassing any ASLR -- there is nowhere to randomize too except the freed memory.

    --
    Join the Slashcott! Feb 10 thru Feb 17!
    1. Re:Cool hack by asmkm22 · · Score: 2

      This doesn't seem to be a fundamental problem with ASLR, at least. Things could be patched to prevent something from filling up memory like that, I assume.

    2. Re:Cool hack by fisted · · Score: 2

      Be sure to tell me when you found that infinite-memory patch.

    3. Re:Cool hack by Anonymous Coward · · Score: 1

      Or the program growing by X amount of memory per Y amount of time without releasing hardly any chunks at all while trying to load a DLL should be stopped patch....

      Simple-minded numb skull. Think.

  9. Re:DUMFUX BELIEVE ANYTHING !! by sjames · · Score: 1

    Look in a mirror! It's the address space you have to fill so that there is only one place to map the DLL. The rest can all be mapped to the zero page (and so take up zero physical memory).

  10. Other browsers and operating systems? by YurB · · Score: 1
    What exactly does this mean (quoting the source):

    It might be possible to use the very same method to exploit other browsers as other browsers give similar opportunities to the exploit writer. I don't want to sound crazy but even other Operating Systems might be affected by this, yet unconfirmed.

    Is it possible to "rewrite the instruction pointer of the processor to a known heap address where the shellcode resides quite deterministic" on, say, Firefox on Gnu/Linux [given that flash and java are disabled in the browser]?

    1. Re:Other browsers and operating systems? by benjymouse · · Score: 5, Informative

      Is it possible to "rewrite the instruction pointer of the processor to a known heap address
      where the shellcode resides quite deterministic" on, say, Firefox on Gnu/Linux [given that flash and java are disabled in the browser]?

      This is an ASLR bypass technique, not an actual exploitable vulnerability by itself. The attacker still needs an exploitable memory corruotion vulnerability to start the attack. ASLR+DEP is designed to make it much harder for an attack to gain foothold in the face of such an attack.

      An exploitable memory corruption bug could for instance be a buffer overflow or use-after-free bug in a jpeg or gif library. Such a bug allows a small window of opportunity for an attacker. However, with DEP he will have a hard time injecting actual executable code into the attacked process. Instead he will use a programming technique termed ROP (return oriented programming) where he will trampoline to code carefully chosen code fragments residing at known locations.

      Think of a buffer overflow bug which allows the attacker to overwrite the return address of the vulnerable function. Instead of returning to the point where thebfunction was called, the instruction pointer will return to whatever the stack was overwritten with through the buffer overflow. The attacker *still* has not gained full control. But if he can overwrite with an address pointing to a piece of code which does all or part of what he needs he can use that. If it only does part of what he needs but ends with a RET, he can make sure that the stack above the original return address points to the Next piece of usable code.

      This technique will Work in any process and on any operating system where the attacker is allowed relatively free access to allocate memory. Think browsers where JavaScript can be used to allocate/squeeze memory.

      So yes, this is in no way Windows specific. It is interesting because at this point the Windows ASLR is pretty much state of the art. Only recently has OS X achieved randomization of the "dyld" - the OS libraries. Even a single library being loaded in a predictable location may be enough for the agtacker to squeeze through. Linux ASLR is weaker (not as random) and many Linux libraries are still loaded at perfectly predictable locations.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    2. Re:Other browsers and operating systems? by YurB · · Score: 1

      Thank you for your detailed explanation. I'm an amateur programmer with very little C experience (and very little knowledge of the low-level stuff), so it may take time for me to grasp the mechanism, but your post is very helpful. I want to be sure I'm not giving the destructive people any opportunity to break into my almost "[w]holly free" OS:)

  11. Re:the only thing Microsoft and others can do is.. by icebike · · Score: 3, Informative

    True, but you have to consider that ASLR was never intended as an unbreakable security feature. It was always just an impediment to an easy exploit of jumping to a fixed address. There are common tricks published for getting around ASLR to some degree.

    --
    Sig Battery depleted. Reverting to safe mode.
  12. Will not work on 64 bit by benjymouse · · Score: 1, Informative

    The address Space of 64 bit processes is vast compared to available memory. The process will run out of memory before the address Space could be filled.

    Unfortunately many browsers still run 32bit even on 64bit systems because of plugin compatibility. Time to move to 64 bit browser processes.

    Note also that this attack is only feasible against browsers. Like other ASLR bypasses it will not Work against e.g. Outlook or Word where the attacker has very limited ability to control memory allocation.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    1. Re:Will not work on 64 bit by Carnildo · · Score: 4, Interesting

      The address Space of 64 bit processes is vast compared to available memory. The process will run out of memory before the address Space could be filled.

      Every 64-bit OS I know of uses delayed allocation: when a program asks the OS for memory, the OS assigns a chunk of address space, but doesn't assign memory (physical, virtual, or otherwise) until the program actually tries to use it. It's quite possible for a program to exhaust the available address space without actually using very much memory.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    2. Re:Will not work on 64 bit by benjymouse · · Score: 1

      The address Space of 64 bit processes is vast compared to available memory. The process will run out of memory before the address Space could be filled.

      Every 64-bit OS I know of uses delayed allocation: when a program asks the OS for memory, the OS assigns a chunk of address space, but doesn't assign memory (physical, virtual, or otherwise) until the program actually tries to use it. It's quite possible for a program to exhaust the available address space without actually using very much memory.

      True. Butbthe OS will not commit more memory than it is *actually* able to assign to the process at some point. Once you allocated the memory it is the process to use. It may not be backed by physical or virtual memory (paging file) yet, but the OS must guarantee that memory *can* be accessed once it has committed to it.

      The point still stands. There's a reason the article specifically limits the PoC to 32bit processes.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    3. Re:Will not work on 64 bit by Jahava · · Score: 2

      The address Space of 64 bit processes is vast compared to available memory. The process will run out of memory before the address Space could be filled.

      Unfortunately many browsers still run 32bit even on 64bit systems because of plugin compatibility. Time to move to 64 bit browser processes.

      Note also that this attack is only feasible against browsers. Like other ASLR bypasses it will not Work against e.g. Outlook or Word where the attacker has very limited ability to control memory allocation.

      It's worth mentioning that the critical component here is using client-executed trusted/sandboxed code (in this case, JavaScript) to exhaust the memory space. The code must be able to allocate memory, and it must be able to identify the virtual address of the memory that it allocated, else when it begins opening a hole for ASLR determinism, the shellcode won't know where to target.

      Any client-side language that can allocate arbitrary memory and identify the allocated address should be able to be used in this capacity. JavaScript is identified in the PoC, but I wouldn't be surprised at all if VBA can do the job in Office (e.g., Word/Excel/Outlook/etc.), and if other trusted/sandboxed codes could do the job in other languages (Java, C#, etc.).

      An obvious defeat is to either have application-enforced restrictions on embedded language allocations (e.g., I can allocate up to 10G of memory, but my embedded script can only allocate 1G) to guarantee the presence of some random areas. Another option would be to allocate dynamically-loaded library memory in a different restriction context than standard process memory so that their respective allocations don't draw from the same pool.

    4. Re:Will not work on 64 bit by rsborg · · Score: 1

      Unfortunately many browsers still run 32bit even on 64bit systems because of plugin compatibility. Time to move to 64 bit browser processes.

      Notably, Google Chrome, as well as Firefox are 32-bit. Amusingly in Win8 RT, since IE is the only legitimate browser for Metro, the new tablets are resistant to this attack. It's sad that big-time browsers don't have 64 bit builds, and that you have to roll your own (Firefox - I use Waterfox) or just suffer under IA32 legacy.

      --
      Make sure everyone's vote counts: Verified Voting
    5. Re:Will not work on 64 bit by Anonymous Coward · · Score: 0

      VirtualAlloc with MEM_RESERVE will commit address space without reserving backing store.

    6. Re:Will not work on 64 bit by mcl630 · · Score: 1

      How do you "suffer" when using a 32-bit browser?

    7. Re:Will not work on 64 bit by cnettel · · Score: 1

      The address Space of 64 bit processes is vast compared to available memory. The process will run out of memory before the address Space could be filled.

      Every 64-bit OS I know of uses delayed allocation: when a program asks the OS for memory, the OS assigns a chunk of address space, but doesn't assign memory (physical, virtual, or otherwise) until the program actually tries to use it. It's quite possible for a program to exhaust the available address space without actually using very much memory.

      True, but just the data structures for the OS heap could also become a serious burden when we start approaching actually filling the address space. On the other hand, x64 CPUs cannot handle fully arbitrary addresses, so it's all a complicated story. Suffice to say that any method using Javascript or most other "simple" ways to trigger memory allocation will also trigger memory writes into the newly allocated pages. You have to be rather careful not to write or init allocated pages in most languages and environments.

    8. Re:Will not work on 64 bit by benjymouse · · Score: 3, Interesting

      VirtualAlloc with MEM_RESERVE will commit address space without reserving backing store.

      Right. Can you show me how to do that from JavaScript in a browser?

      Because that is what this is about. JavaScript *does not* have any function or low level binding to *reserve* memory space. It only has the ability to actually *allocate* memory (MEM_COMMIT). And that will exhaust the commit limit *long* before the address space is exhausted to the point where a library load address is predictable.

      Point still stands. The technique described in the article *will not* work against 64 bit processes.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    9. Re:Will not work on 64 bit by Anonymous Coward · · Score: 0

      A very valid point, but it doesn't really matter. In order to perform the allocation, even delayed allocation, the OS must track the allocation. Therefore the page tables tracking the process' address space will grow proportionally and this will consume RAM. IIRC 64bit CPUs provide 48bits of VA ~ 256 TB. Assuming 4K page allocations, you will most certainly run out of memory creating page table entries on the average consumer system. A 4K page table page maps 512x 64bit pointers (2MB) that is a 512-to-1 ratio of page tables to memory (I'm ignoring the top level of the page table tree for simplicity). So unless you have 512GB of RAM ... ur boned.

      - kernel dev

    10. Re:Will not work on 64 bit by Anonymous Coward · · Score: 0

      Actually it doesn't need to know what memory allocated or freed. The limited randomization in the implementation of ASLR and the low memory situation caused by the attack result in a relatively consistent (70% for Windows 7, greater on Windows 8) predictable load address.

    11. Re:Will not work on 64 bit by Legion303 · · Score: 1

      Have you not read the comments in this very thread?

    12. Re:Will not work on 64 bit by Impy+the+Impiuos+Imp · · Score: 1

      Like other ASLR bypasses it will not Work against e.g. Outlook or Word where the attacker has very limited ability to control memory allocation.

      You've obviously never saved a Word or Excel document to disk.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    13. Re:Will not work on 64 bit by loufoque · · Score: 1

      You can assign the same page of physical memory multiple times in virtual memory.
      Therefore you can easily fill the whole virtual space with a single page.

    14. Re:Will not work on 64 bit by todorb · · Score: 1

      when a program asks the OS for memory, the OS assigns a chunk of address space, but doesn't assign memory (physical, virtual, or otherwise) until the program actually tries to use it.

      not true. the virtual address space is determined at the time of allocation. otherwise the program won't know where it's allowed to write to. only the physical pages are assigned on actual use (and can be swapped, reassigned, etc).

    15. Re:Will not work on 64 bit by benjymouse · · Score: 1

      You can assign the same page of physical memory multiple times in virtual memory.
      Therefore you can easily fill the whole virtual space with a single page.

      Ok. Which JavaScript function would I use to do that?

      DEP+ASLR are designed to prevent an attacker to get foothold when there *is* a memory corruption bug. To execute shell code the attacker has to somehow *bypass* DEP+ASLR. To do this he has very limited tools at his disposal. JavaScript does not allow the attacker to call the OS API or otherwise request certain memory areas.

      So no, I can not "easily fill the whole virtual space with a single page" because I would have to do that with JavaScript if I am to use this technique to bypass DEP+ASLR.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    16. Re:Will not work on 64 bit by Anonymous Coward · · Score: 0

      Yes, however most javascript VMs will not allocate memory that the script does not need/use.
      The point is not that a program running locally can circumvent ASLR, the point is that you can do so remotely.
      And there are very few programs that need to allow remote actions to use up almost all of the 64 bit memory space, so it is fairly easy to block this.
      I just hope this real-world PoC will finally stop all those "what do you need 64 bit for in a web-browser, what a nonsense" whiners.
      Because I'm getting tired of repeating this ASLR issue with 32 bit each time, because that ASLR has too little randomness anyway with 32 bit applications has been know basically since it was first implemented.
      If you really care about security you moved to 64 bit applications whereever possible long ago.

    17. Re:Will not work on 64 bit by loufoque · · Score: 1

      That kind of thing is obviously done through system calls.
      I don't understand the rest of what you're saying.

    18. Re:Will not work on 64 bit by mcl630 · · Score: 1

      Yes I have, and my question still stands. I don't feel any mental nor physical suffering because of Chrome being 32-bit only. There doesn't appear to be anything it can't do because it's not 64-bit. The vulnerability in the summary doesn't cause me "suffering" either... nobody's actually used it yet, and it'll probably be patched at some point soon enough.

  13. Appears to be 32-bit only by Anonymous Coward · · Score: 1

    Based on the description, so far this is only an exploit for 32-bit versions, I wonder if the size of the address space in 64-bit Windows makes it impractical?

    1. Re:Appears to be 32-bit only by benjymouse · · Score: 1

      Based on the description, so far this is only an exploit for 32-bit versions, I wonder if the size of the address space in 64-bit Windows makes it impractical?

      yes

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    2. Re:Appears to be 32-bit only by loufoque · · Score: 1

      What allows you to say that?
      It doesn't even require 150 million pages. I would think making that many mappings wouldn't be a problem.

    3. Re:Appears to be 32-bit only by benjymouse · · Score: 1

      It doesn't even require 150 million pages. I would think making that many mappings wouldn't be a problem.

      From JavaScript?. I think that would be a problem.

      Remember, this technique tries to take the randomness out of ASLR *before* executing the exploit. With code in predictable locations the attacker can design an exploit using ROP (return oriented programming). But in a 64 bit process he cannot squeeze memory using JavaScript like he can on a 32 bit system.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    4. Re:Appears to be 32-bit only by loufoque · · Score: 1

      JavaScript cannot run system calls?

  14. Point of ASLR by Barryke · · Score: 1

    The point with ASLR is for the good process to not be infiltrated by a bad one. I dont see the problem of loading a dll in a known memory location, unless you apply that to a dll of the good application, without it detecting that.

    But when you arrive at that point of being able to do that, what's circumventing ASLR good for?

    --
    Hivemind harvest in progress..
    1. Re:Point of ASLR by Anonymous Coward · · Score: 0

      This. If you really wanted to load your DLL in a predictable address, turn ASLR off in your compiler options. It's the system/kernel addresses that need to be randomized and this "exploit" does nothing to defeat that.

    2. Re:Point of ASLR by benjymouse · · Score: 2

      The point with ASLR is for the good process to not be infiltrated by a bad one. I dont see the problem of loading a dll in a known memory location, unless you apply that to a dll of the good application, without it detecting that.

      But when you arrive at that point of being able to do that, what's circumventing ASLR good for?

      You are correct that ASLR it a *mitigation*; not a failsafe protection in itself. Nor is this weakness and exploitable vulnerability *in itself*. An attacker still needs an actual exploitable memory corruption bug. But when one is found, the technique referred to as ROP can be used to bypass DEP/NX protections to gain foothold. The answer to ROP (where the attacker uses fragments of executable code loaded in known locations) is ASLR. This technique squeezes memory to take the "randomization" away from ASLR.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  15. Re:the only thing Microsoft and others can do is.. by BoRegardless · · Score: 0

    So are only safe if we run an OS on an isolated partition which has nothing but a web browser and the other partitions are automatically unmounted while the web browser OS is working?

    Then whatever we want to take back to other partitions upon reboot (hope you have your SSD) has been scanned thoroughly and copied to an empty partition before that reboot?

    The options to remain safe don't seem to be coming from Microsloth from its Microseneian era world of the DOS age of computers.

    And these are the guys who think their OS is not only the best but worth the mega-premium versus Apple's OS price or Linux.

  16. All Fixed in Windows 9 by hduff · · Score: 1, Flamebait

    Or at least by Windows 10.

    --
    "I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
    1. Re:All Fixed in Windows 9 by vistapwns · · Score: 0

      Not a Windows problem, it's a 32-bit problem and the solution is 64-bit, and of the main browsers, IE is easiest to use the x64 version (a checkbox in IE10), with FF being close, slick.

      --
      "...I think the Microsoft hatred is a disease." - Linus Torvalds
  17. buffer overflows by Twillerror · · Score: 1

    Are we ever going to fix the real issue? You generally use one to start horking the stack and then get the CPU to jump to some address. Then these protections come into play.

    I get the feeling people have just given up versus trying to change compilers and hardware to protect the stack. I should be able to keep writing into an unprotected char array and never come close to some instruction pointer shouldn't I. Is it too much to demand?

    1. Re:buffer overflows by Anonymous Coward · · Score: 1

      Easily done. Allocate all char[] on the heap (the compiler could do this at compile time, even with longjump() in play) or shadow stack if you're in a hurry. However, the heap is almost as exploitable (convincing free() to trash the stack instead). The shadow stack with blocked pages on each side would be safe as far as IP is concerned, but would still pose a problem for underran buffer clobbering the previous entry.

    2. Re:buffer overflows by Twillerror · · Score: 1

      would a secondary dedicated IP stack work. Hardware wise could we tell the CPU that a byte or range is where stack is and fault if its written twice...write once or clear.

    3. Re:buffer overflows by Anonymous Coward · · Score: 0

      In some ways, the problem is fixed. See the Memory Safety Menagerie (http://sva.cs.illinois.edu/menagerie/) for a list of papers on the topic. Control-Flow Integrity (CFI) enforcement is looking very promising right now (best overheads are 7.7% on average, but take that with a few grains of salt as more experimentation and experience with CFI is needed).

      There are two outstanding problems. The first is integration: many of these techniques work best with whole-program analysis. Getting them to work with third-party code compiled by someone else's compiler can be challenging. The second is performance: the stronger memory safety techniques still aren't fast enough for a speed-demon computing world, and the implementation complexity of optimizations needed to get the speeds we've got seems to be a bit higher than what people are willing to tolerate at present.

  18. Re:Who would've guessed? by benjymouse · · Score: 4, Interesting

    Just another in a long list of Microsoft/Windows security fails. Big shocker.

    So would you rather use an OS with much, much weaker ASLR, like Linux where large parts of the OS and libraries are just loaded at predictable locations without any memory squeezing in the first place?

    BTW, this technique will not Work on 64 bit processes. On OSes with weak ASLR and predictable locations for certain modules, moving to 64bits does not help on iota.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  19. Re:OSX invulnerable by CODiNE · · Score: 2

    You sure about that?

    Mac OS X

    Wikipedia ASLR
    Apple introduced randomization of some library offsets in Mac OS X v10.5 (released October 2007).[16] Their implementation does not provide complete protection against attacks which ASLR is designed to defeat.[17][18][19][20]Mac OS X Lion 10.7 has improved ASLR implementation for all applications. Apple explains that "address space layout randomization (ASLR) has been improved for all applications. It is now available for 32-bit apps (as are heap memory protections), making 64-bit and 32-bit applications more resistant to attack."[21] Since OS X Mountain Lion 10.8 the kernel as well as kexts and zones are randomly relocated during system boot.[22]

    --
    Cwm, fjord-bank glyphs vext quiz
  20. a brilliant, yet simple trick by WizADSL · · Score: 0

    Is this going to make my penis bigger?

    1. Re:a brilliant, yet simple trick by Anonymous Coward · · Score: 0

      yes, it will predictable make it slightly bigger: however it will make it grow because of all the pustules on it.

  21. Address randomization - security through obscurity by Animats · · Score: 2

    Address space randomization is a form of security through obscurity. It's also an admission that your system security really sucks. The concept is that the code is full of exploitable buffer overflows, but address space randomization will make it harder for exploits to patch the right target area. So low-level exploits tend to crash the system, or at least just mess it up, rather than getting their code executed.

    There are now "address spraying" attacks which counter address space randomization, so this is already an obsolete defensive measure.

  22. And it's already caught. by Smoky+D.+Bear · · Score: 1

    "Please note that Windows Defender detects the Win8 PoC as being an exploit and blocks execution." 'nuf said.

    1. Re:And it's already caught. by vistapwns · · Score: 1

      Defender catches the proof of concept code, but you could drop in your own code, for an unpatched vulnerability, and use the same technique described in the article. My advice is to use x64 IE. FF isn't sandboxed, and chrome isn't 64-bit.

      --
      "...I think the Microsoft hatred is a disease." - Linus Torvalds
  23. See Sappeur by Anonymous Coward · · Score: 0

    http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/SAPPEUR.pdf?format=raw

    And yeah, still in the proof-of-concept stage. But it demonstrates the unsafe Bell Labs stuff is not god-given.

    Actually, C and C++ are a major regression from Algol of ca 1970 or so.

  24. Re:the only thing Microsoft and others can do is.. by Smoky+D.+Bear · · Score: 1

    The isolated OS for a web browser works. All of my web browsing is done through VMs with persistent disks. Even on my Linux machines.

  25. Re:Who would've guessed? by Anonymous Coward · · Score: 0

    Parent post is just trolling on the old "Microsoft is insecure" meme. Yawn.

  26. ulimit(3) by Anonymous Coward · · Score: 1

    Sane per-process memory allocation limits will effectively prevent this exploit. In other words: use ulimit.

    1. Re:ulimit(3) by cnettel · · Score: 1

      The problem for 32-bit is where you put sane, since filling your address space to 75 % or more is suddenly a rather real prospect for real use cases.

  27. Re:ASLR? More like ASLnotsoR. by Anonymous Coward · · Score: 1

    Return slightly less than requested? If I malloc for sizeof(mystruct) then there better as hell be enough space to hold it. Or I suppose we can go around teaching programmers that when you ask for something you can't trust that the computer will actually give it to you. Fuzzy memory allocation means fuzzy programming. Fuck that.

    And that says nothing for pointer arithmetic.

  28. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    just another variant of the "everybody is as shitty as M$" meme.

  29. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 5, Interesting

    Every new security feature they can dream up can and will be bypassed with enough time.All they can do is build it hard enough that it takes more time to crack

    I'm sure they're aware of that, as is anyone with a shred of knowledge about computer security (or hell, security in general). What is your point?

    Legend has it that Finnish field marshal Mannerheim was interviewed by a journalist after the Winter war. The journalist asked him if he had at any time doubted that the Finns would eventually be defeated by the Soviets. Apparently the old man sent the journalist a sharp look and then replied that just because the odds are against you it does not mean you have to make life easy for your attacker. Dunno fi that is true but if I was in computer security, that's what my outlook would be... come up with nasty defences, whey they are breached you ambush the bastards and then come up with a new line of even nastier defences.

  30. Re:ASLR? More like ASLnotsoR. by Anonymous Coward · · Score: 0

    The workaround to increase the complexity of stack smashing in this regard is in ASLR/FMA, address space layout randomization with fuzzy memory allocation. Basically, reduce the predictability of memory locations from memory-fill attacks by causing memory allocation (in hardware, transparent to the OS) to return slightly more or less than what is called for. This has some implications for programmers to be sure; for example, for malloc(), if you think you'll need 1000 bytes, you just call for 1500 to make sure you get enough back from the OS to work with.

    WTF? Do you have any idea how malloc() actually works? Why the hell would the hardware have a feature to fuzz malloc() sizes? (a) that's a really bad idea, because it'll introduce a massive new set of buffer overflow attacks, and (b) even if you did for some reason want to implement it, you wouldn't do it in hardware, because the hardware designer doesn't know anything about malloc.

  31. Re:the only thing Microsoft and others can do is.. by MacGyver2210 · · Score: 1

    Just use VMs...

    No need to do an entire partition/separate OS thing the hard way these days. Especially not just for web browsing.

    --
    If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  32. It's already patched, and caught by cheapredwine · · Score: 2

    From TFA: The PoC makes use of the following vulnerability and therefore for testing the PoC the patch must not be installed. MS12-063 Microsoft Internet Explorer execCommand Use-After-Free Vulnerability This vulnerability is identified as CVE-2012-4969. So it's already preventable. (Yes, yes, patching is a bitch, doesn't happen, etc etc.) And also, it's already detected: Please note that Windows Defender detects the Win8 PoC as being an exploit and blocks execution. Yes, it's an interesting PoC, but it's not exactly taking my breath away overall.

    1. Re:It's already patched, and caught by Anonymous Coward · · Score: 0

      Protip: if you have no clue what you're talking about, shut the fuck up.

  33. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 1

    Microsoft released ASLR slightly before Apple, and when Apple did release it their implementation was incomplete. I also seem to recall that microsoft was possibly the first or close to the first to sandbox their browser. The Linux kernel had ASLR earlier than both but lets be honest - theres a difference between bringing a technology out and releasing it to 1% of computers via the internet (Linux), and shipping it in a consumer OS (Microsoft)

    As for making up names about Microsoft - well that really is from the DOS age.

  34. Re:Address randomization - security through obscur by flonker · · Score: 1

    security through obscurity

    I do not think that means what you think it means.

    "Security through obscurity" is being deliberately insecure and relying on other people not knowing about the insecurity as your defense.

    Something like this relies on the fact that choosing a random address is much easier than guessing a random address that was previously chosen. This flaw results in forcing the victim to choose a non-random address when they intend to choose a random one. And "address spraying" works by increasing the size of the target the attacker must hit from a single exact address to a large number of ranges which covers most of the available addresses.

  35. Re:the only thing Microsoft and others can do is.. by fahrbot-bot · · Score: 2

    So are only safe if we run an OS on an isolated partition which has nothing but a web browser and the other partitions are automatically unmounted while the web browser OS is working?

    Actually, we are only safe while the system is powered off, disconnected from all cabling and still in the box it came in. Trust me. After dealing with security weenies and various system lock-down methodologies for many, many years, a truly "secure" system (to their satisfaction, anyway) is unusable and you might as well not even bother to unpack it.

    --
    It must have been something you assimilated. . . .
  36. Re:ASLR? More like ASLnotsoR. by Anonymous Coward · · Score: 0, Insightful

    MOD PARENT DOWN.

    You have no fucking idea what you are talking about.
    There's no hardware involved in malloc(3), it isn't even a syscall.
    It's people like you who come up with shit like this:
    http://use.perl.org/use.perl.org/_Aristotle/journal/33448.html

    Please don't ever write any code again.

  37. Re:Who would've guessed? by Gadget_Guy · · Score: 1

    Just another in a long list of Microsoft/Windows security fails. Big shocker.

    I know that you are probably trolling here (considering that this is a generic technique that could be applied to other operating systems), but since you have to turn off Windows Defender to get this to work (at least in Win8) then it isn't that great a failure.

  38. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    Well, ASLR is the wrong answer in the first place. It's security through obscurity, which means it's adding obscurity, not security.

  39. Run your browsers in Sandboxie by Anonymous Coward · · Score: 0

    And you're good.

  40. Re:ASLR? More like ASLnotsoR. by Anonymous Coward · · Score: 0

    Please, PLEASE mod parent down. It's written by someone who is blowing it out his/her ass, who has absolutely no idea what they are talking about, with at least two complete falsehoods already pointed out by others who responded to this. Sheetrock apparently wants to look like someone who knows about computer programming, when in reality that couldn't be further from the truth.

  41. Re:the only thing Microsoft and others can do is.. by Nimey · · Score: 1

    That's what the Japanese did on Iwo Jima. It's a well-known military and IT strategy called "defense in depth".

    --
    Hail Eris, full of mischief...

    E pluribus sanguinem
  42. Re:ASLR? More like ASLnotsoR. by phantomfive · · Score: 2

    That won't work, if your address is only slightly off, then you can start your exploit code with a bunch of NOPs and then jump right in the middle of it. Then you don't need to know the exact address.

    Also, returning slightly less memory than requested is a good way to get people to stop using your OS, when basically every software starts crashing.

    --
    "First they came for the slanderers and i said nothing."
  43. Re:the only thing Microsoft and others can do is.. by ozmanjusri · · Score: 1

    So are only safe if we run an OS on an isolated partition which has nothing but a web browser and the other partitions are automatically unmounted while the web browser OS is working?

    OS on read-only media, sessions in disposable VMs.

    --
    "I've got more toys than Teruhisa Kitahara."
  44. Re:OSX invulnerable by Anonymous Coward · · Score: 0

    Well, if you didn't do address space layout randomisation, then you'd be that much easier to stack smash. ASLR is intended to make such an exploit harder, so this technique just makes an exploit that is comparatively easy on non-ASLR systems possible on a system that does it.

  45. Waiting for the fallacy of gray... by Anonymous Coward · · Score: 0

    Nearly every top voted comment --and this is really saddening-- is using the fallacy of gray. They're all variation on the theme: "no software can ever be secure, so everything is going to be rooted/admin'ed at some point, so it doesn't matter which OS you choose because you'll get hacked anyway".

    It is a very very sad fallacy.

    I've got a simple question: why did, for years, the OpenBSD main page claim: "No remote root exploit in the default install since x years"?

    Then at one point they had a first root issue, then a second but still. It's a darn impressive track record.

    Do you guys really think there are some mystical little faeries wearing boots casting spells on the hardware that somehow make root / admin exploit a fatality?

    Because from a pure technical and logical standpoint, an OS can be made to be secure.

    I don't buy that all OSes are equal when it comes to security because logical fallacies have never been my thing. I also don't buy that it's impossible to write secure software.

    And, thankfully, there are people (even at Microsoft) taking the matter seriously.

    But kneejerking "zomg, security is too hard, nothing is ever gonna be secure" is really not an interesting mindset for one to have.

  46. Re:the only thing Microsoft and others can do is.. by rubycodez · · Score: 4, Informative

    didn't work for the japanese, because no possibility of resupply, reinforcement, or retreat. Defeat thus assured. About 21,844 killed, 216 survivors taken prisoner. A horrible bloodbath and yes 6800 american soldiers killed, but it didn't "work"

  47. Easy to fix by DigitAl56K · · Score: 1

    There's also a really easy solution to this: Change the loader so that if there isn't enough space to perform the ASLR then the load fails. You have to handle the loader failing when you're down to the end of your memory space anyway. Suddenly you are back to not knowing where to jump to again.

    1. Re:Easy to fix by YodasEvilTwin · · Score: 1

      That's actually a good solution.

  48. Re:the only thing Microsoft and others can do is.. by Luckyo · · Score: 5, Interesting

    Japanese on Iwo Jima was "desperate defense with no hope of victory".

    Finnish was "pre-planned defense in order to make enemy bleed so hard, that even Stalin would decide that gains aren't worth the cost".
    It succeeded twice with quite possibly the single most insane-looking numbers in history. It was crazy enough to warrant wikipedia page screenshot becoming an internet meme:
    http://www.google.com/imgres?imgurl=http://data.whicdn.com/images/18990146/finland-be-afraid-be-very-afraid_thumb.jpg&imgrefurl=http://weheartit.com/tag/soviet%2520russia&h=200&w=240&sz=11&tbnid=e8G9SZNgTBMY-M:&tbnh=87&tbnw=104&zoom=1&usg=__Tk2w1zc2NxuOzEu4OclPzzBZzVc=&sa=X&ei=RjoDUfekBYbKtAaMuYCwCQ&ved=0CCEQ9QEwAw

    This success was repeated in 1944 where Finns faced the single biggest offensive in the entire WW2 war European theatre. Soviets focused 20 artillery pieces per every kilometer of the front line. They could literally dig people out of trenches with this much artillery. In the end, finns held out and even pushed back in spite of being completely outnumbered and outgunned. Stalin remembered the lesson from Winter War and signed a peace treaty with Finland allowing it to stay independent again. It ended up going in history as the only country mentioned in Molotov-Ribbentrop that didn't get conquered by either Germany or USSR.

    The main difference between these strategies is that Japanese viewed their empire as something holy and to be defended to the death, to the point where survivors should commit suicide if they failed. Finns viewed their country as something of theirs, and to be defended for as long as it remains defensible with as little losses as possible. Key difference was that finnish commanders valued lives of their soldiers very highly for the times. Japanese commanders treated their soldiers as completely disposable pawns. Difference could be explained by the fact that Japan is one of the most populated regions on the planet, while Finland is one of the least populated ones.

    It's the advantage of not being a huge country with long and proud history. You learn that to stand between the giants and survive, you need to show humility to the giants in most things, but also show that when needed, you can sting them so painfully, that any potential attempts of capture will not be worth it. And most of all you learn that when you're losing, minimize your losses so you can fight another day.

  49. The Index by Anonymous Coward · · Score: 0

    All knowledge can be located thru the index. Without an index you are lost and will run to and fro. You are no better than a blind man at the mercy of his hearing.

  50. Simple indeed by Impy+the+Impiuos+Imp · · Score: 2

    > A hacker has releasedÂa brilliant, yet simple trick to
    > circumvent this protection

    Beating up the guy after he logs in?

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  51. Re:ASLR? More like ASLnotsoR. by loufoque · · Score: 1

    reduce the predictability of memory locations from memory-fill attacks by causing memory allocation (in hardware, transparent to the OS) to return slightly more or less than what is called for

    This makes no sense at all.

    Operating systems use a hardware feature called MMU to give certain pages of physical memory with certain processes. The operating sytem manages which pages are owned by who, and that is why a user needs to ask the kernel to allocate a page before he can use it (the very concept of memory allocation because unnecessary if there is no operating system, though it can still be useful to share memory between different subsystems in the same program). The physical address of the page is unknown to the user and, while deterministic, is difficult to predict since it depends on everything that has happened since the kernel started.
    The page appears in a virtual space to the user. On a normal setup, the address in that virtual space will be deterministic and only depend on what has happened since the process started. ASLR simply changes this to make hardware pages be mapped at random addresses.

  52. Re:the only thing Microsoft and others can do is.. by Nimey · · Score: 2

    It was still better than the previous Japanese strategy of meeting us at the beaches and then banzai charges. Kuribayashi did quite well with the hand he was dealt.

    --
    Hail Eris, full of mischief...

    E pluribus sanguinem
  53. Re:the only thing Microsoft and others can do is.. by metrix007 · · Score: 4, Insightful

    Unnecessary. Absolutely no advantage over just keeping updated and running as non-admin.It's the type of thing people who don't understand security do and then get MITMed without even noticing.

    --
    If you ignore ACs because they are anonymous - you're an idiot.
  54. Re:Address randomization - security through obscur by Anonymous Coward · · Score: 0

    Assuming your code is full of buffer overflows is defense in depth, not security through obscurity.

  55. Re:the only thing Microsoft and others can do is.. by BitZtream · · Score: 3, Interesting

    True, but you have to consider that ASLR was never intended as an unbreakable security feature. It was always just an impediment to an easy exploit of jumping to a fixed address. There are common tricks published for getting around ASLR to some degree.

    Anyone who truly understands how computers work and specifically how ASLR does what it does should be fully aware that ASLR only stops absolutely stupid hacks. All important addresses can be looked up. They have to be looked up to be useful. If nothing can lookup an important address, nothing can really do anything to it, making it not real useful for computing in general, let alone hacking.

    To get around ASLR all you have to do is consult ... the built in lookup table which is at ... A FIXED ADDRESS as it has to be able to be found for everything to work.

    All ASLR does is means you need to spend a few extra clock cycles determining where you want to do your exploitation rather than hard coding it into the file.

    Let me restate that ...

    All ASLR does is means you have to use proper programming technics in your exploits rather than being lazy and hard coding your values.

    The only security it provides is against a bug accidentally causing the same sort of crash twice in a few causes and preventing a few exceptionally lazy people from writing working exploits. Unfortunately, most of the people writing exploits are far from lazy, making ASLR effectively worthless and a good waste of a considerable chunk of processing time as now a metric fuckton of addresses have to be looked up rather than known in advance.

    The 'common tricks' to 'get around ASLR' are 'write proper code'.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  56. Re:Address randomization - security through obscur by bloodhawk · · Score: 1

    It is not security through obscurity at all. It is Defence in Depth, You should ALWAYS assume all code has bugs and a portion of those bugs are potentially security bugs. ASLR is an additional mitigation (Defence in Depth) for when the inevitable human error next pops up to make it harder to exploit.

  57. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 1

    I thought we were talking about Windows 7/8 address space layout randomization?

  58. ASLR is not so easy to bypass by r00t · · Score: 5, Insightful

    You're right that it boils down to just looking up the address, but see, this is a chicken-and-egg problem. You're wanting to determine addresses so you can run code, but you must run code in order to look up addresses!

    You might as well say that it is easy to get a dinosaur and a dinosaur egg. To get the dinosaur, just wait for a dinosaur egg to hatch. To get the dinosaur egg, just wait for a dinosaur to lay one. Problem solved, right???

    1. Re:ASLR is not so easy to bypass by Sigg3.net · · Score: 1

      If you need to wait for a dinosaur to hack a computer, I'd suggest you hire a computer expert and not a paleontologist.

  59. Nope, he is right. by r00t · · Score: 1

    He won't lose control of his hardware unless the attacker finds an exploit for escaping the VM. With snapshots, the VM can even be reliably uninfected.

    1. Re:Nope, he is right. by hairyfeet · · Score: 1

      But you can get a similar advantage without all the bullshit by simply having the browser in low rights mode and sandboxed, this way they would have to both find a way to escalate the privileges AND get out of the sandbox to do anything.

      As far as low rights mode browsers any of the Webkit based as well as IE will do (although I would be hesitant to use IE simply because of how big a bullseye is painted on it by black hats) and as for automatic sandboxing of the browser I'm pretty sure Avast Free does this and I know Comodo AV Free does this by default so its really not hard to run a browser securely without needing a VM.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    2. Re:Nope, he is right. by microbox · · Score: 1

      But you can get a similar advantage without all the bullshit by simply having the browser in low rights mode and sandboxed, this way they would have to both find a way to escalate the privileges AND get out of the sandbox to do anything

      If your browser is separated in a VM, then you can blow away everything at the press of a button. I personally don't like rebuilding my entire computer, but if it's just a browser, then I can write a script that does the whole thing for me.

      --

      Like all pain, suffering is a signal that something isn't right
  60. Re:the only thing Microsoft and others can do is.. by Luckyo · · Score: 2

    The point is, that Iwo Jima was a battle they knew they lost, and they threw all of their soldiers under a proverbial bus. Those who survived mostly committed seppuku.

    Microsoft is definitely not doing that. They're doing what GP said Mannerheim did, strategic retreats and attacks on vulnerabilities that show up. Sometimes they lose a battle, like they did in this case, but they keep on winning the war. I.e. the OS stays overall secure enough for most users even if some aspects of its security suffer defeats every once in a while.

    ASLR lasted for years uncracked for example.

  61. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 2, Informative

    Anyone who truly understands how computers work and specifically how ASLR does what it does should be fully aware that ASLR only stops absolutely stupid hacks. All important addresses can be looked up. They have to be looked up to be useful. If nothing can lookup an important address, nothing can really do anything to it, making it not real useful for computing in general, let alone hacking.

    To get around ASLR all you have to do is consult ... the built in lookup table which is at ... A FIXED ADDRESS as it has to be able to be found for everything to work.

    No, the lookup table isn't at a fixed address. That is, in fact, the whole bloody point. The lookup table (technically the PLT, at least for ELF binaries) is at a fixed offset relative to the main binary, so if you can figure out where the main program is in memory you can find it very easily, but the point of ASLR is that it's non-trivial for the attacker to find the binary, and so they can't find the lookup table.

    Now, admittedly, programs have to actually be compiled to use ASLR for this to work (older programs will randomise the locations of libraries but not of the program itself), and there are still plenty of Linux distributions where it's *still* turned off in the default compiler (Debian and Ubuntu, certainly, and possibly others), but when it's implemented properly the attacker can't easily find the lookup table.

    Also, I think you're possibly underestimating the difficulty of using the lookup table once you've found it. It's not like the attacker can just call GetProcAddress() or dlsym() in the target program (because otherwise they'd have a far easier way of gaining control), and it's not like they (usually) have a way of reading arbitrary bits of the program address space. It's not much use knowing where the lookup table is if you can't actually read it.

  62. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    As a wise friend once said, "Any cause worth dying for, is worth living for." No truer words were ever said.

  63. Re:the only thing Microsoft and others can do is.. by Decker-Mage · · Score: 1

    In theory? Perhaps, although I can't be as sanguine here, nor will I ever. I've been using "PC" browsing appliances since very early days of VMWare (much, much earlier non-x86) and so long as I toss the VM afterwards, who cares if it was somehow compromised.

    --
    "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
  64. Re:the only thing Microsoft and others can do is.. by hairyfeet · · Score: 1

    Oh its worse than that now, in the old days you'd have one or two high level bug writers that could dig up exploits for major components like this, then there were the script kiddies that were just looking at what the last set of patches were plugging then writing a bug based around those patches.

    But thanks to virus kits and a thriving black market for bugs what we have now is a variation of the smart cow problem in that by the time most companies find out there is a new bug targeting a critical subsystem its already been sold, added to one or more virus kits, and a dozen plus variations already are up and running in the wild. This makes it a LOT harder to plug a hole when found because it has spread all over the underground and is used by dozens of other black hats as the foot in the door to come up with a dozen other ways to get their payload ran. If a black hat had found this and sold it on the black market we would have probably gotten a half a dozen or more zero days out of it, using this hack to then target Adobe Flash or Reader or Java or who knows what else as they evolve the attacks so damned quickly nowadays.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  65. Re:the only thing Microsoft and others can do is.. by hairyfeet · · Score: 3, Insightful

    First of all a public service announcement: To everyone that writes "M$" in 2013...This...Is...YOU! and this is what everyone sees and instantly dismisses when you write that lame ass M$ in 2013. You could write the most brilliant post in the history of Slashdot but a good 80%+ will NEVER read it because they see M$ and think "douchebag" and move on. So don't waste your time unless you want people posting your group photo as the very next post.

    Second of all lets get something VERY clear for those that don't seem to understand how these things work, okay? ALL OPERATING SYSTEMS that would be what we consider "modern" are some of the most complex pieces of software EVER written, we are talking millions of LOC in the kernel alone and thousands of little sub-programs that ALL have to work in concert to give the user the illusion that its all one program that "just works". Is Linux even close to immune? Not only is that a big NO but to even suggest it is is a symptom of what is known as "magical thinking" such as "If you buy (product X) then you will magically be safe!". We in IT have seen magical thinking used to sell everything from OSes to firewalls to routers and reality will blow holes in that lie every single time.

    So if Linux is vulnerable why don't we see Linux attacks in the news? We do only they are called "Android attacks" and in fact its predicted that later in the year Android will reach the one million infected mark which considering that Android isn't even a decade old is pretty impressive.

    Look its actually VERY simple, and evidence has bore this out time and time again. Criminals ARE LAZY and want to do the least amount of work for the biggest bang so they want to go after the biggest targets to yield the most infections they possibly can. I mean writing a OS/2 virus today would probably be the most trivial thing in the world yet you don't see anybody doing it, why? Because the fact is even though eComstation still sells OS/2 there are too few using it to make it a juicy target. But the malware writers WILL go where the targets are, used to be it was always Windows, then Vista bombs and everyone in the press starts talking about how Mac adoption is climbing, what happens? Mac Guardian and Mac Defender. Android phones and tablets explode in usage, what happens? Thousands of Android malware released weekly.

    So anybody who thinks their OS is gonna magically protect them from malware because "(product X) doesn't get bugs!" is merely deluding themselves with magical thinking. There are even articles that helpfully helpfully explain this and point out how switching platforms just for the sake of magical thinking (in the article OSX for Linux but you can insert any from and to in there and it still fits) just doesn't work. Be it Linux, Mac, or Windows you can find plenty of bugs, I could spend 5 minutes and cover this page in reports of bugs for all 3, I already listed the 2 biggest Mac bugs of recent memory, TFA is a Windows bug, and just off the top of my head there was the KDELook theme bug and the infected Quake 3 that was served up by most repos for a year and a half on Linux. NO OS is safe, NO OS is immune, and if you are gonna claim security by obscurity is actual security you might as well run Win95 or BeOS because hey, there aren't any bugs circulating targeting those OSes either.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  66. Re:the only thing Microsoft and others can do is.. by mikael · · Score: 1

    Microsoft and Intel spend something like 25% of their annual budgets on computer security. Going all the way from instruction sets, interrupts, supervisors and hypervisors, to DLL and kernel layouts, secure computing initiatives like SecureBIOS, hardware checksumming, file and network virus scanners, authentication protocols, network security applications, best practice virtual network layouts (separate virtual networks for different application levels). Even with all that, a standard desktop system still needs around 250 Megabytes of disk space to store all the anti-virus signature definition files.

    That's why the "walled garden" approach to applications is so attractive. You can avoid the overhead of dedicating computing resources to all of those things if they are screened before download.

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  67. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 1

    Apparently you know only how computers in general work, but not how executables are loaded into memory and dynamically linked or otherwise adjusted to the current address space layout (traditionally, a preferred adress may be occupied by some other program or library, nowadays, ASLR). While "modern" Linux ELF executables usually contain position independent code (i.e. can be loaded and executed at any adress whasoever, but pay for that flexibility with 1 Register), Windows uses the COFF derived PE format. There's a Relocation table in there, that alows the loader/linker to patch the program code to adjust for the "sub-optimal" placement in the address space.

  68. Re:the only thing Microsoft and others can do is.. by ilguido · · Score: 1

    Ever heard of qbasic and strings?

  69. Re:the only thing Microsoft and others can do is.. by hairyfeet · · Score: 1

    Ironically many of the strategies that the Japs used against us that look so stupid now actually worked against the Chinese but the Japanese military doctrine was so strict and unyielding that it just didn't take into account how vastly different the situation with the Chinese was compared to the Americans. The Banzai charge would work against the Chinese because they were armed with bolt action rifles that weren't in the best shape to start with so the Chinese couldn't hope to get more than a couple of poorly aimed shots off before the charge was upon them while the Americans with the BAR and M1 could just keep pouring on the fire.

    This was a problem the Nazis also ran into in Stalingrad where the Nazi foot soldiers were armed with K98 bolt action rifles and ran smack dab into entire companies carrying the PPSh-41 which could just spew lead and in the close quarters fighting made up for their lack of accuracy with just punishing firepower.

    As for TFA considering how long ASLR has lasted without an exploit I'd say it held up pretty well but of course one should never put all your eggs in one basket and ASLR is just one piece, along with a good AV, sandboxing of the browser (the biggest attack vector IMHO) and plain old common sense, when it comes to keeping a system safe.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  70. Re:Address randomization - security through obscur by fuzzywig · · Score: 1

    Not to mention that (especially with a 64bit address) guessing the address of a DLL is of a level of difficulty akin to guessing a password. It isn't completely impossible, but it can be made infeasibly difficult.

  71. Re:the only thing Microsoft and others can do is.. by microbox · · Score: 1

    Japanese commanders treated their soldiers as completely disposable pawns.

    If you watch the very excellent world at war series, you will note an interview with one of those japanese commanders where he says that he was overwhelmed with volunteers for suicide missions. Different culture, different times.

    On a side note, there will never be a better WWII documentary, because too many of the key players are dead now. The World At War series (26 episodes) has plenty of interviews with people who were actually there -- although recent declassification of soviet materials has changed the story a bit.

    --

    Like all pain, suffering is a signal that something isn't right
  72. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    Don't advocade this solution. Because if you do and many people will start using it, we'll exploit it and then your VM won't be safe anymore.

  73. Needle in stack of needles by Anonymous Coward · · Score: 0

    The problem with most all security measures is that they are of the same for each instance of a given measure. For example, let's say that you wanted to prevent access to a building. If you had say say 10 different doors made of different materials and different thicknesses then an intruder would need so many tools to break through them that it would not be feasible. We rely on known encryption algorithms, the same implementations of defense-in-depth, etc. Maybe what needs to be done is give users the capability to define their own very low-level of security? Imagine if you needed to create say 1000 different tools to break into 1000 different systems, what about evaluating it at several orders of magnitude? What if all those systems change their signatures multiple times per day...would changing your password more frequently than it would take to break solve the issue...probably not, but what if every user defined their own custom algorithm. Maybe have the user designate a mechanism to intersperse characters into the encrypted password so that it resolves to junk or doesn't conform to anything, but only when the user enters their password and passphrase (which is used to create the characters) does it resolve and then is removed from memory? Passwords and other authentication mechanisms use the same algorithms in virtually all cases based on type; however, if you can establish more user-defined augmentation then the better. Maybe just take an encrypted value and just reverse it...would it resolve to anything known, maybe swap every 3rd and 1st characters, etc?

  74. If Linux is vulnerable? by dgharmon · · Score: 1

    A KDE file launcher script ... link

    --
    AccountKiller
  75. Not an actual exploitable vulnerability by itself? by dgharmon · · Score: 1

    "This is an ASLR bypass technique, not an actual exploitable vulnerability by itself. The attacker still needs an exploitable memory corruotion vulnerability to start the attack. ASLR+DEP is designed to make it much harder for an attack to gain foothold in the face of such an attack", benjymouse

    "KingCope .. has detailed a mechanism through which the ASLR of Windows 7, Windows 8 and probably other operating systems can be bypassed to load a DLL file with malicious instructions to a known address space". 'Once done, the rest of the memory, which was filled up earlier, can be freed and known exploit methods of spraying the heap and heap corruption can be used to exploit the system '

    --
    AccountKiller
  76. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    Some "Nazi" soldiers also told stories of "waves of russians running into the fire of the MG42, until ammo ran out and the gun was glowing".

  77. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    If your claim is anywhere near the truth, it just shows how incredibly dumb these companies are. MS research definitely had the power to create a memory-safe and efficient (not like C# or Java) programming language. Instead they do what they have done for the last 30 years: C and C++.

    Why is it different in the FOSS world ? Because the Linux kernel developers can focus on a rather narrow field, while MS developers constanly have to implement the latestmadness of some MBA crapper. Under that pressure and using C or C++ you MUST fuck-up, security-wise.

  78. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0, Insightful

    Oh yeah, Mr $hill. Thanks for regurgitating "all operating systems are at least as shitty as Windows". Now bring on the statistics. So far, everbody in the know thinks it is quite the opposite. Windows is the worst piece of shit, from a security perspective. And that is not just because of number of lines of code, but because it is anti-modular, full of half-baked, indisciplined and generally shoddy design decisions.
    Windows has always been designed by "feature list", and that means it is an overly complex mess even the Micro$hafters don't completely understand. Most Unix-like OSes are muc better modularized and that means they have much less potential for dangerous failure modes.
    Here are some examples: A bitmap parser inside the kernel (!) allowed for vrius insertion via USB. A virus elevating itself to Admin mode because some M$ crappers decided that the "Guest" user should have his print jobs executed using "Admin" privileges, and the printer service process was of course the same bug-ridden shite we know from M$. As the Iranians (and probably 75 other nations) how they liked that great feature of Windows when StuxNet used it.

    I could go on to tell war stories about Oracle software, which is poisonous vomit if M$ software is shit, but I will spare you that. Suffice to say you better run FOSS-only stacks: Perl, PostgreSQL, Linux, BSD, evince and so on. Commercialware is like a can of worms you can't even inspect before you eat it, because the "deal" is that you have to turn off the lights before eating. Bon appetite !

  79. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    What makes you think a VM is especially secure ? That sleazebag porker corpo HBGary had a VMWare exploit "on sale". So if these little pork outfits have it, you bet the Russki Mafia and Chicoms have several.

  80. Re:the only thing Microsoft and others can do is.. by icebraining · · Score: 1

    who cares if it was somehow compromised

    People who know about exploits like CVE-2009-1244 and similar vulnerabilities?

  81. That is not true at all by SuperKendall · · Score: 1

    That's why the "walled garden" approach to applications is so attractive. You can avoid the overhead of dedicating computing resources to all of those things if they are screened before download.

    No, the walled garden is just one more layer. ALL of the other protections you mentioned are in place and needed. It's simply not possible to really scan an executable for every possible security threat - they do some examinations but there will always be an opening for an application to try something.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  82. Re:the only thing Microsoft and others can do is.. by Crosshair84 · · Score: 1

    Might want to check your history book. Despite a 3-to-1 numerical superiority in infantry, total air superiority, superior small arms, and no Japanese resupply, the defending Japanese managed to inflict 37% casualties on the Americans and nearly 10% KIA. That's as bad as some WW1 battles. Seems like given what was available that was a great defense.

  83. Re:the only thing Microsoft and others can do is.. by DrStoooopid · · Score: 1

    You weren't friends with Han Solo.

    --
    There are 2 groups of people you can make fun of on the Internet without fear of attack. The illiterate, and the Amish.
  84. Re:the only thing Microsoft and others can do is.. by bentcd · · Score: 1

    didn't work for the japanese, because no possibility of resupply, reinforcement, or retreat. Defeat thus assured. About 21,844 killed, 216 survivors taken prisoner. A horrible bloodbath and yes 6800 american soldiers killed, but it didn't "work"

    By the time of Iwo Jima, Japanese high command would have realized they were losing the war. When this realization sinks in, overall strategy will tend to shift from winning the war over to playing for conditional surrender.

    The way you get the enemy to offer you conditional surrender in this situation is by convincing them that totally defeating you is going to be so fantastically expensive, a conditional surrender is preferable. So if you can put up a spirited defence of e.g. Iwo Jima and kill thousands of their troops, and they start asking themselves how many tens or hundreds of thousands they will lose by invading your mainland, then your Iwo Jima defence will have "worked" even if that island itself should fall. It's the pawn you sacrifice to save your nation.

    And they would have gotten away with it too, if it hadn't been for those meddling scientists at the Manhattan project.

    --
    sigs are hazardous to your health
  85. Re:the only thing Microsoft and others can do is.. by Nimey · · Score: 1

    The Soviets did that against the Finns in the Winter War, too. William Trotter described them as locking arms and marching towards the Finnish positions on at least one occasion.

    It's one of those things you can do if your leaders are authoritarian, don't value human life & you've got more people than the other side.

    --
    Hail Eris, full of mischief...

    E pluribus sanguinem
  86. Re:the only thing Microsoft and others can do is.. by spitzak · · Score: 0

    The rest of your post is logical (though the Slashdot summary points out that this attack probably works on other operating systems, so your idea that this is not known here is pretty stupid).

    However I find it fascinating how using "M$" leads to such rabid foaming spew as your first paragraph. I notice that is somebody says "microsuck" or says Bill Gates is Hitler, or some other obviously childish thing, nobody says anything. But if anybody *dares* to put a symbol used for money into an abbreviation for your darling company, you go completely nuts with endless repetitions of "you are being childish". If it really was childish then you would not have to say anything, so your diatribe shows you are desperate to make it true and don't really believe it.

    The truth is that "M$" is the shortest way to write this that is not ambiguous and reads correctly. "MS" is the abbreviation for Mississippi, Multiple Sclerosis, Morgan Stanley (the official abbreviation!). And it reads as "miss", while "M$" reads to me as at least "msppp" which is a little closer to triggering the word "Microsoft" in my head.

    You can say "childish" all you want but it does not make it so. Your saying this is proof that it isn't.

  87. Re:Address randomization - security through obscur by spitzak · · Score: 1

    This is NOT "security through obscurity". The method is well documented (at least it is for Linux, and posts here have specified quite a few times without doubt that Window's version is somewhat better, which means that it must be documented just as well).

    The fact that a random number is chosen to control the algorithm does not make it use "obscurity". Otherwise you could make the same claim about *every* for of encryption. I don't think there is any that work if the attacker knows the key.

  88. typical by fazey · · Score: 0

    maybe next time just use what OpenBSD spent ages creating instead of re-inventing the wheel. Then you dont get bypassed. Thanks.

  89. Re:the only thing Microsoft and others can do is.. by ulzeraj · · Score: 1

    Dude... calm down. People who write "M$" may be childish or just repeating an overused joke but on the other side you are trying too hard.

  90. Re:the only thing Microsoft and others can do is.. by Anonymous Coward · · Score: 0

    Nah, if there were no A-bomb, the Soviets would have smashed the Japanese because loss of life was of lesser concern for them.

  91. Re:the only thing Microsoft and others can do is.. by thunderclap · · Score: 0

    BeOs still exists?

  92. Re:the only thing Microsoft and others can do is.. by hairyfeet · · Score: 3, Insightful

    To quote Mel Brooks "Bullshit bullshit aaaaannnnd bullshit". if you want a shortened way? Use MSFT, it even lets you be snarky as its the stock ticker and you can claim its because "they only care about the stock price instead of putting out a good product" so you can be just as douchey and stupid as you want and people will still understand WTF you are posting.

    But the "M$" bullshit is not only from fucking DOS which hasn't even been a product for 20 damned years but it was fucking retarded even THEN. Its just as fucking retarded as writing "Lunix" and deserves to get fucking smacked down for being stupid. And read the guys post dude, i'm assuming you didn't or you wouldn't be trying to apologize for him because it was a classic FOSSie douchebag rant, no different than the douchebag Mac users that insinuate if you aren't using Macs you're either too stupid or too poor, or the Win 8 douchebags that insinuate anybody that doesn't want a cellphone for an OS is too stupid to work it.

    But this is SUPPOSED to be a site FOR geeks and BY geeks and I'm pretty sure that in an article on Windows if somebody types MS everyone isn't gonna go "Why is he talking about Mississippi having a vulnerability?" but of course it was NOT about having a short way to type Microsoft, it was another coward that couldn't wait to wave his little dick and brag about his magical OS that he doesn't even understand. Magical thinking has no place on a site about tech and frankly that kind of horseshit needs to be nipped in the bud whenever possible.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  93. Re:the only thing Microsoft and others can do is.. by hairyfeet · · Score: 1

    Yeah and it didn't work either. You can't take out an enemy by just throwing bodies at him if he has superior firepower unless he is suffering from severe ammo constraints or having a LOT of weapon failures and with the Finns neither was the case.

    My great uncle was a marine during the Pacific campaign and he said what always disturbed him was how after one Banzai charge failed they would end up regrouping and doing it again sometimes in a different spot, sometimes they would be trying to charge over the bodies of the previous charge.

    He said frankly when it came to the bases the grunts didn't even have to use their BARs or M1s hardly at all because he said "We might not have toilet paper but one thing we had a shitload of was the 50 cals" so they had those things mounted everywhere and on everything. Boats, jeeps, trucks, you name it there was one or more 50 cals on it and he said they had plenty of 50s manning the perimeters, which is why he just couldn't understand why they'd ever charge more than once. According to him he said those 50s would just obliterate an entire company in seconds, they would have every area with crossfire support and it wasn't even a fight, it was a slaughter.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  94. Re:the only thing Microsoft and others can do is.. by Nimey · · Score: 1

    Actually the Finns did end up running out of ammunition just a few days before the Winter War ended. IIRC they used up their artillery ammo first (particularly at a position that was guarding a frozen-over part of the Gulf that the Soviets were trying to cross) and then ran out of small-arms ammo. They never did have enough antitank weapons or cartridges either - one of their bunkers was finally taken once the Soviet commander realized this and had his tanks park in front of the Finns' firing slits.

    With the Japanese... eh. The underlings had a culture of lying to their superiors, lying about failures and exaggerating successes. Made it hard for the overall commanders to get accurate intel about what worked and what didn't. I'm sure there were other factors, though.

    --
    Hail Eris, full of mischief...

    E pluribus sanguinem
  95. It's all odds, and you lose by SuperKendall · · Score: 1

    But you can get a similar advantage without all the bullshit by simply having the browser in low rights mode and sandboxed

    So given there are exploits for both breaking out of sandboxes and VM's, which one is an attacker realistically going to go for?

    Will he infect more systems by breaking out of a VM, which only a handful of people have browser running in - or by buying a sandbox exploit, which would gain access to millions of systems?

    Doing the thing that the least number of people are doing is always a better security choice unless you are being targeted specifically.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:It's all odds, and you lose by hairyfeet · · Score: 1

      That is security by obscurity and if you are gonna argue in favor of that you might as well go over to eComstation and pick up a copy of OS/2, after all NOBODY is writing bugs for OS/2!

      For the rest of us there comes a point when all the bullshit isn't worth it, and I'd say having to run a VM, set up a shared folder for the VM to save any files you may need to download, and all that other crap just isn't worth it. if I had to go through all the bullshit of a VM just to surf then 9 times out of 10 i just wouldn't surf at all. Sure that would be even safer but then I'd miss out on the reason for having Internet in the first place.

      But compare this to my method which I have not only been using myself but been giving to my customers including some that jack and squat about security, the kind that can't tell a good site from bad, a risky link from a non risk, how many infections have I had to clean? ZERO, zip nada squat bumpkiss. Sure theoretically there are exploits that can both get out of a sandbox and get out of low rights mode, hell there are exploits that can jump a VM as well, but from what i've seen they just ain't being encountered in the wild. Now maybe there is too many low hanging fruit for the malware writers to go through the trouble, maybe its too big a PITA to mess with, who knows. but I know MY method can be run by your grandma with absolutely ZERO training (since all you do is surf, everything is done automatically) and as long as I continue to get the results i have I'll stick with a low rights mode sandboxed browser, thanks.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    2. Re:It's all odds, and you lose by SuperKendall · · Score: 1

      That is security by obscurity

      It's not at all that, not even slightly. It's a matter of deciding ahead of time if a burglar will go after a plate of moldy cheese or a diamond bracelet given both have the same protection. Both sandbox exploits and VM escapes are to me, around the same level of effort to execute on.

      For the rest of us there comes a point when all the bullshit isn't worth it

      It's not worth it for me either but that doesn't mean I am not crystal clear that someone who DOES think it's "worth it" is in fact safer.

      All security is a tradeoff, and percentages. He is more secure. We are less secure. Just admit it.

      Sandboxing is still MORE secure than nothing, obviously, but there are more people attempting to write exploits for it because the gain is so much higher. And some will succeed; that's just how things are.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
  96. Re:the only thing Microsoft and others can do is.. by gweihir · · Score: 1

    Indeed. Once you are on a machine as local user, it cannot really be made hard to elevate privileges. (Exception: Minimalistic, hardened environments, but these are not suitable for normal uses. The maximum you can do is plug-in free web-browsing or the like and typically these are for batch-processing when security needs are high.)
    Hence what must be prevented is the attack code running locally. As long as users are willing to download code from questionable sources and start it, that is not going to happen. Better software engineering on the application side can help, but it takes a lot of effort to make a secure application. It basically only happens in long-term use software like Apache, the SSH demon, the Postfix mailer, etc. These all have very impressive security records (Apache only if you do not take the various plug-ins into account), and show that it is possible to write secure software. But nothing in the MS world has that type of long-term perspective, as everything has to be "new" all the time and so never gets to maturity.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  97. Re:the only thing Microsoft and others can do is.. by robsku · · Score: 1

    And they would have gotten away with it too, if it hadn't been for those meddling scientists at the Manhattan project.

    Especially Dr. Jonathan "Jon" Osterman.

    --
    In capitalist USA corporations control the government.
  98. Re:the only thing Microsoft and others can do is.. by spitzak · · Score: 1

    So you think it is ok to use "MSFT" even though *YOU* say it is "snarky". But for some reason "M$" is not ok, even though your argument basically is that it is "snarky". Right. The problem is pretty obvious: you think putting a symbol for currency into your beloved companies name is an insult and you will do anything you can to stop it. If it was just "snarky" or "childish" the best thing to do would be to ***IGNORE*** it, but you can't do that because you realize that the usage is not as uncommon as you desperately wish.

    I also think it is interesting that your response said "Lunix" as an example of an equivalent. I assume you meant to say "Linsux" but it is pretty telling. A better equivalent would be calling Open Source "O$$", which might even be a sensible thing to use in cases where it is done for profit, either legitimately or in some underhanded way.

    You can check my posting history and see that I use "Microsoft" all the time (I used to use "MicroSoft" because I thought that was correct but some incredibly irate person thought *that* was an insult!).

  99. This was expected by Anonymous Coward · · Score: 0

    Back around 2005, I was reading an MSDN article about ASLR and one of the things the mentioned was this exact theoretical case which could be used on 32 machines.

    As far as I know, the designers of ASLR already knew this could happen but assumed future computers will primarily be 64bit where the address space makes it unpractical.

    One still needs to give credit to the first working proof of concept.