Subject: Re: Kernel modification that verifies execs against a md5 fingerprint
To: None <tech-security@netbsd.org>
From: Michael Richardson <mcr@sandelman.ottawa.on.ca>
List: tech-security
Date: 03/15/2000 13:58:37
by redmail.netbsd.org with SMTP; 15 Mar 2000 19:00:55 -0000
by pzero.sandelman.ottawa.on.ca (8.8.8/8.8.8) with ESMTP id NAA01771
for <tech-security@netbsd.org>; Wed, 15 Mar 2000 13:58:37 -0500 (EST)
Message-Id: <200003151858.NAA01771@pzero.sandelman.ottawa.on.ca>
To: tech-security@netbsd.org
Subject: Re: Kernel modification that verifies execs against a md5 fingerprint
In-reply-to: Your message of "Tue, 14 Mar 2000 09:02:04 PST."
<20000314090204.N10872@dhcp0.wlan.shagadelic.org>
Mime-Version: 1.0 (generated by tm-edit 7.108)
Content-Type: text/plain; charset=US-ASCII
Date: Wed, 15 Mar 2000 13:58:37 -0500
From: Michael Richardson <mcr@sandelman.ottawa.on.ca>
>>>>> "Jason" == Jason R Thorpe <thorpej@zembu.com> writes:
Jason> On Tue, Mar 14, 2000 at 01:36:46PM +1030, Brett Lymn wrote:
Jason> [ description of md5 executable signature hack ]
>> Naturally, evaluating a md5 fingerprint on a executable every time
>> does involve overhead - it slows the machine down to almost half speed
>> (things take about 70% longer). To overcome this slow down the status
>> of the md5 fingerprint comparison is cached in the kernel which
>> markedly reduces the impact of the md5 fingerprinting on the running
>> of the system.
Jason> While the of fingerprinting executables is a cool idea, I have some
Jason> concerns here:
Jason> (1) Demand paging of executables is effectively dead with this
Jason> modification.
If you load a signature for each block, then you only have to check it
when the block is loaded.
Jason> (2) What does it really buy you? The md5 signatures are loaded
Jason> at boot time, presumably from a file in the file system.
Jason> What's to prevent an attacker from modifying this file?
Jason> That could cause a DoS (can't start programs!), or allow
Jason> an attacker to sneak in a trojan horse.
RSA signature on it, public key on read-only boot media.
Jason> (3) To address (2), you'd need to make the file immutable. But,
Jason> for that matter, you could also make all executables on the
Jason> system immutable, which would prevent people from changing them.
It also prevents people from signing an executable on another system, and
then copying it to the machine and running it.
] Out and about in Ottawa. hmmm... beer. | firewalls [
] Michael Richardson, Sandelman Software Works, Ottawa, ON |net architect[
] mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |device driver[
] panic("Just another NetBSD/notebook using, kernel hacking, security guy"); [