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?
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?
Comments
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
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.
DEP and ALSR trip up many software protection (licensing) schemes. At least this is the reason we are not using it for Unbrowse SNMP.
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?