Windows Vista, ASLR, DEP and OEMs
As I mentioned in a previous series of posts, we recently had all the major OEMs on campus to discuss SDL and how we can work together. My big ask of the OEMs (actually, I grovelled, it was pathetic) was to enable DEP/NX in the BIOS by default on all their shipping PCs in time for Windows Vista.
The reason for this ask is pretty simple, for ASLR to be effective, DEP/NX must be enabled by default too.
Here's the good news, I found out yesterday that all the major OEMs (you know who they are!) have agreed to not disable DEP/NX in their BIOSs by default.
This is huge!
If you're an OEM reading this - THANKS!
Note, you can verify if your PC has DEP enabled by following these steps.
- Open the Control Panel
- Select System & Maintenance
- Click System
- Click Advanced system Settings
- Click the Advanced tab
- Click Performance Settings
- Click the Data Execution Prevention tab
You should see the dialog box below. If not, check your BIOS and make sure your CPU is capable of DEP/NX, most CPUs these days support DEP/NX.
Comments
Anonymous
December 05, 2006
ASLR is indipendent by the DEP/NX.Anonymous
December 07, 2006
they're agreed to not enable... ???Anonymous
December 07, 2006
The double negative had me going for a loop there for a bit.. Once I realized they were enabling DEP it was cool :)Anonymous
December 07, 2006
The wording is correct. By default CPUs and the OS support DEP/NX. But OEMs can disable it in their BIOS. We asked them not to disable it!!Anonymous
December 07, 2006
The comment has been removedAnonymous
December 08, 2006
We changed it for the final release of Windows Vista.Anonymous
December 09, 2006
So I guess apps that don't play nicely with DEP will yield messages like "The instruction at "0x77f41d24" referenced memory at "0x00000000." The memory could not be written." from the O/S then? I mean its the programmers that have to write better code right?Anonymous
December 13, 2006
According to Joe Wilcox at eweek, the network connection is tempermental? You are online one second and then you lose your network connection. Has this been fixed? You talk about so many things about Vista but the key feature, network stability, seems to be left out. Assumed that it is stable. Check out eweek's podcast.Anonymous
December 14, 2006
This news is false, because ASLR works on every CPU !!!Anonymous
December 15, 2006
calsz, this news is correct, DEP is not enabled on all CPUs. This blog post is about how DEP must be enabled for ASLR to be effectiveAnonymous
December 15, 2006
>>According to Joe Wilcox at eweek >>the network connection is tempermental [sic] I couldn't find anything about this on the eweek site - can you pls send me the URL?Anonymous
December 15, 2006
However, third party binaries must still "opt-in" to full ASLR to receive image base randomizations. Heap and stack address randomizations are globally on by default, however. Virtually all of the Microsoft binaries that ship with Vista opt in to ASLR for image base addresses, which is absolutely a good thing, but third party software will not (by default) take full advantage of ASLR without being recompiled (technically, it is possible to flip the necessary bit in the PE header with a hex editor or the like, but I wouldn't consider that a general use solution). Specifically, PE images must be linked with a new linker option that sets a new flag in the PE header which indicates to Vista that the image is ASLR aware and wants to have its base address randomized. This extra step is required even for images that were built with base relocations, so there is still a necessary call to action for ISVs to relink their binaries with the ASLR-aware flag. More details at Nynaeve.net: http://www.nynaeve.net/?p=100Anonymous
December 15, 2006
What happen if the CPU does not have DEP/NX capability? so what happen to the ASLR now. does ASLR still protect me or is this feature turn off?Anonymous
December 16, 2006
The comment has been removedAnonymous
December 17, 2006
Cd-MaN, you answered your own question in your last paragraph!Anonymous
December 18, 2006
Howard said: "calsz, this news is correct, DEP is not enabled on all CPUs. This blog post is about how DEP must be enabled for ASLR to be effective" DEP is NOT ASLR!!! ASLR works with every CPU also with DEP disabled.Anonymous
December 18, 2006
Howard said: "calsz, this news is correct, DEP is not enabled on all CPUs. This blog post is about how DEP must be enabled for ASLR to be effective" DEP is NOT ASLR!!! DEP is NOT a requisite for ASLR!!! ASLR works with every CPU also with DEP disabled.Anonymous
December 19, 2006
[Default] Spotlight on: Visual Studio Team System for Database Professionals Visual Studio 2005 TeamAnonymous
January 23, 2007
Dear Micheal, I hate to rain on the parade, but I wouldn't trust vendors (especially toshiba) to keep their word on this. Toshiba's support and configuration is poor. They have a track record of being slow and conservative. Try accessing their support website for downloads (i.e. manuals, bios updates, drivers etc.); you'll be lucky to get a 6KB/s download and luckier still if the download doesn't stall. Disabling the NX/DEP is incredibly arrogant and sloppy of these vendors. Crippling a security feature like this is really wrong. BTW I just saw brand new VISTA ready Toshiba laptops and all of them had the NX/DEP disabled (with no option to turn it on in BIOS setup).