Friday, July 02, 2010

Secunia Survey of DEP and ASLR

At the FIRST conference last month, Dave Aitel said something to the effect that DEP and ASLR are the only two noteworthy technologies produced by Microsoft since starting their security initiative. Forgive me Dave if I messed that up, and feel free to respond!

I thought that was interesting after reading the post DEP / ASLR Neglected in Popular Programs by Secunia. The figure at left summarizes their findings over time.

The report concludes thus:

DEP and ASLR support, although usually trivial to implement, is overlooked by a large number of application developers. The requirement for an additional call to "SetProcessDEPPolicy()" proved confusing to almost all vendors, resulting in late implementation of DEP when running on Windows XP.

Some developers have over time made their applications compatible with DEP, but overall the implementation process has proven slow and uneven between OS versions. ASLR support is on the other hand improperly implemented by almost all vendors, allowing return-into-libc techniques to likely succeed in their applications or in browsers designed to be otherwise ASLR compliant.

While most Microsoft applications take full advantage of DEP and ASLR, third-party applications have yet to fully adapt to the requirements of the two mechanisms. If we also consider the increasing number of vulnerabilities discovered in third-party applications, an attacker's choice for targeting a popular third-party application rather than a Microsoft product becomes very understandable.

Hopefully, vendors will see the importance of properly deploying the two measures, resulting in an increased number of third-party applications having full DEP and ASLR support in the near future.


I found the report interesting -- what do you think?

5 comments:

Anonymous said...

i've noticed that on many many programs, it was desirable, but not practical, to generally enable DEP - too many applications broke.

Personally I am not surprised, too many windows devs seem to not have the insight or interest for implementing even the easiest bit of security. it will have to be enforced, then they'll do it, but *never* just for a good cause, even if it causes no extra effort at all. I think it was good to introduce the feature, but it should have been enforced soon afterwards - but that's not microsoft's policy. I read that for example symbian apps needed to be signed by the OS vendor after they were ready for release. this makes things safe and good, but this also costs market share...

(Disclaimer: I started working in the sw dev department of a company quite closely tied to microsoft and currently do unix stuff at a company that primarly does windows apps)

florian

Anonymous said...

let me follow up with one more thing:
I think it's a general "people issue". hp also introduced a stack protection feature that would either ignore, alert or prohibit such accesses.
I was consulted and suggested to set it to "alert" mode for a limited period (one to cover all server's reboots, like 9 months or so), create monitoring rules to catch the error messages and then after the date, turn it over to prohibit mode.

Well. Everyone was convinced. The first step was successfully implemented. Noone remembers the rest.

VivekRajan said...

Here is a wild guess.

DEP and ALSR trip up many software protection (licensing) schemes. At least this is the reason we are not using it for Unbrowse SNMP.

Bruce Barnett said...

Since they get little credit, I wanted to mention that the Solaris CPU had DEP-technology in 1998. Intel had to put this technology in the MMU. Finally Microsoft starting using it. It's about time.

Mister Reiner said...

What I found even more interesting, is the amount of information online about DEP and ASLR bypass techniques and how even Microsoft's products with DEP and ASLR were bypassed. In some of the articles pertaining to Microsoft's products, it's hard to weed through the content and determine the facts. I read Microsoft's side and the vulnerability researcher's side and it just raises more questions than it answers.

Don't get me wrong, implementing DEP and ASLR is a good thing, but as with all security measures, hackers will just step up their game and figure a way around it. That's certainly not a valid reason to not implement these security measures, but does anybody think that DEP and ASLR are the end all security measure that will put an end to memory-based exploits?