Free Republic
Browse · Search
News/Activism
Topics · Post Article

Skip to comments.

'DieHard' wards off memory attacks
Linux World ^ | 03 January 2007 | Matthew Broersma

Posted on 01/03/2007 5:13:04 PM PST by ShadowAce

A U.S. computer scientist and a Microsoft researcher have devised a program that drastically reduces application crashes and can prevent some types of attacks by altering the way applications use memory.

The program, called DieHard, officially launched over the holidays, following development that was funded by large grants from Microsoft, Intel and the US' National Science Foundation.

Developers Emery Berger, a computer scientist from the University of Massachusetts Amherst, and Microsoft's Ben Zorn, have made DieHard freely available for noncommercial use at their Web site.

The problems Berger wanted to address were caused by the fact that despite the huge amount of memory installed in today's PCs, "programmers are still writing code as if memory is in short supply".

That leads to errors such as double-frees, invalid frees, and various types of overflow. Berger said DieHard eliminates or makes less dangerous many of these problems by making chunks of memory available at various locations, and assigning addresses randomly.

Address-space randomization is a technique used in some versions of Linux and in Windows Vista, but Berger said DieHard is a much more thorough application of the idea. Without randomization, attackers can easily locate where applications store sensitive data such as passwords. Attackers also commonly use memory errors to execute malicious code and take control of systems.

DieHard also secretly launches multiple copies of some applications, so that when one application is about to crash it can be shut down, while the others continue to run.

He said DieHard completely prevents double-free and invalid-free errors from having any effect, reduces the likelihood of dangling pointer errors and moderate buffer overflows. It prevents certain library-based heap overflows and all but eliminates heap corruption.

The program is available for Windows XP, Windows Vista and Linux, but the Windows versions only protect the Firefox browser so far. The Linux version protects any application launched once DieHard is running.

Programmers on either Windows or Linux can use DieHard to protect any application they are developing.

One caveat is that DieHard noticeably increases memory usage -- a rise of 50 to 75 percent, according to Berger. Application performance shouldn't be noticeably altered, though, as long as the system has sufficient memory.


TOPICS: Technical
KEYWORDS: freeware; microsoft; ram; xp
Navigation: use the links below to view more comments.
first 1-2021-38 next last

1 posted on 01/03/2007 5:13:05 PM PST by ShadowAce
[ Post Reply | Private Reply | View Replies]

To: rdb3; chance33_98; Calvinist_Dark_Lord; Bush2000; PenguinWry; GodGunsandGuts; CyberCowboy777; ...

2 posted on 01/03/2007 5:13:20 PM PST by ShadowAce (Linux -- The Ultimate Windows Service Pack)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce

Has anyone downloaded this?


3 posted on 01/03/2007 5:16:48 PM PST by Kimmers (It's not what you take when you leave this world behind, it's what you leave behind when you go)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce
Rats! I thought this was about a cure for Alzheimer's.
4 posted on 01/03/2007 5:18:03 PM PST by pepperdog
[ Post Reply | Private Reply | To 1 | View Replies]

To: Kimmers

I don't use Firefox so I guess I'll wait.

Probably MicroSoft will keep putting it off until the next OS upgrade. Or SP2 for Vista or something like that.


5 posted on 01/03/2007 5:19:33 PM PST by Duke Nukum (To thine own self be true...or relatively true. --Guy Caballero)
[ Post Reply | Private Reply | To 3 | View Replies]

To: ShadowAce

bookmark for later


6 posted on 01/03/2007 5:19:37 PM PST by RebelTex (Help cure diseases: http://www.freerepublic.com/focus/f-news/1548372/posts)
[ Post Reply | Private Reply | To 1 | View Replies]

To: Kimmers

I wouldn't think we have many C and C++ programmers here.

If we do, they'll probably stick to malloc/free and new/delete. They're too proud that they never make mistakes to use something like this.


7 posted on 01/03/2007 5:19:38 PM PST by proxy_user
[ Post Reply | Private Reply | To 3 | View Replies]

To: ShadowAce

Just get an iMAC...it just works.
I converted from PC to iMAC back in August.
This is the most fun I've had on a computer in a long time...


8 posted on 01/03/2007 5:19:57 PM PST by GRRRRR ( What's Next? - Get to the Driving Range and Groove My Swing...)
[ Post Reply | Private Reply | To 2 | View Replies]

To: ShadowAce

I don't like probabalistic computing. Any properly-written program should know what memory pointers and handles are valid, and what ones aren't. Reducing the likelihood that careless memory accesses will cause damage will also tend to reduce the likelihood of them being found and fixed.

One thing I've been thinking I might like to see would be an eight-byte handle-plus-offset type, with both compiler support and hardware support for efficient access. I believe languages such as PostScript already implicitly use such types; if memory accesses using such types are validated, many types of memory corruption become impossible since access beyond the end (or before the beginning) of any allocated item will be trapped.


9 posted on 01/03/2007 5:20:27 PM PST by supercat (Sony delenda est.)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce

After reading how this works, my first reaction is to stand back and let other people be the guinea pigs for a good long while before venturing to try it.

I enjoy playing around with betas, but I steer clear of messing with the basic operating system.


10 posted on 01/03/2007 5:20:28 PM PST by Cicero (Marcus Tullius)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce

"Yippe kai yea, mother ....."

11 posted on 01/03/2007 5:21:20 PM PST by Mr. Brightside
[ Post Reply | Private Reply | To 1 | View Replies]

To: Kimmers
Has anyone downloaded this?

You first!

12 posted on 01/03/2007 5:21:42 PM PST by operation clinton cleanup
[ Post Reply | Private Reply | To 3 | View Replies]

To: ShadowAce
The problems Berger wanted to address were caused by the fact that despite the huge amount of memory installed in today's PCs, "programmers are still writing code as if memory is in short supply".

Like hell they are. Programmers are writing code and using memory like socialists spend other peoples' money.

13 posted on 01/03/2007 5:22:40 PM PST by Centurion2000 (Judges' orders cannot stop determined criminals. Firearms and the WILL to use them can.)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce

Bookmark to have the wife explain to me later what this means.


14 posted on 01/03/2007 5:25:54 PM PST by IrishCatholic (No local communist or socialist party chapter? Join the Democrats, it's the same thing.)
[ Post Reply | Private Reply | To 1 | View Replies]

To: operation clinton cleanup

Ok, I'll try it!


15 posted on 01/03/2007 5:26:07 PM PST by Randy Larsen (I'd rather be LUCKY than GOOD!)
[ Post Reply | Private Reply | To 12 | View Replies]

To: Centurion2000
"Programmers are writing code and using memory like socialists spend other peoples' money."

Ain't that the dammed truth!

16 posted on 01/03/2007 5:26:21 PM PST by KoRn
[ Post Reply | Private Reply | To 13 | View Replies]

To: proxy_user
If we do, they'll probably stick to malloc/free and new/delete. They're too proud that they never make mistakes to use something like this.

If a program isn't written right, it should be fixed. While allocation randomization is good for protecting against certain potential security weaknesses, programmers seem to be way too lazy at fixing memory-allocation bugs; allowing such bugs to exist silently doesn't seem like it will improve things. One thing I would think might be useful would be if programs and threads could give the operating system a "justify_memory" callback which would instruct them to notify the OS of all memory they knew about that they owned. Use of such a feature in development would make it possible for programmers to identify memory objects that were left stranded.

17 posted on 01/03/2007 5:26:24 PM PST by supercat (Sony delenda est.)
[ Post Reply | Private Reply | To 7 | View Replies]

To: Randy Larsen

I don't use Firefox...Oh well!


18 posted on 01/03/2007 5:28:50 PM PST by Randy Larsen (I'd rather be LUCKY than GOOD!)
[ Post Reply | Private Reply | To 15 | View Replies]

To: proxy_user
I wouldn't think we have many C and C++ programmers here.

If we do, they'll probably stick to malloc/free and new/delete. They're too proud that they never make mistakes to use something like this.


I haven't programmed in C++ in years, but memory leaks and heap overruns were a constant problem for every team I ever worked with - we'd have loved something like this though it would have hidden the effects of bad coding. I thought Java was supposed to save us from all that, while taking away our ability to do pointer arithmetic.

Anyway, this sounds like a nice way to prevent many of the buffer overflow exploits out there.
19 posted on 01/03/2007 5:29:14 PM PST by AnotherUnixGeek
[ Post Reply | Private Reply | To 7 | View Replies]

To: supercat
Reducing the likelihood that careless memory accesses will cause damage will also tend to reduce the likelihood of them being found and fixed.

Bingo! Let's be enablers of lazy and sloppy coders... NOT!

20 posted on 01/03/2007 5:30:00 PM PST by AmericaUnited
[ Post Reply | Private Reply | To 9 | View Replies]


Navigation: use the links below to view more comments.
first 1-2021-38 next last

Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.

Free Republic
Browse · Search
News/Activism
Topics · Post Article

FreeRepublic, LLC, PO BOX 9771, FRESNO, CA 93794
FreeRepublic.com is powered by software copyright 2000-2008 John Robinson