mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Zack Weinberg <zackw@panix.com>
To: Paul_Koning@Dell.com, dje.gcc@gmail.com
Cc: gcc@gcc.gnu.org, libc-alpha@sourceware.org, musl@lists.openwall.com
Subject: Re: Compiler support for erasure of sensitive data
Date: Wed, 9 Sep 2015 15:03:50 -0400	[thread overview]
Message-ID: <55F08296.10003@panix.com> (raw)
In-Reply-To: <EEF686A4-BC3C-4BC8-BEB8-3502965F2405@dell.com>

On 09/09/2015 02:02 PM, Paul_Koning@Dell.com wrote:
>> On Sep 9, 2015, at 1:54 PM, David Edelsohn <dje.gcc@gmail.com>
>> wrote:
>> 
>> What level of erasure of sensitive data are you trying to ensure? 
>> Assuming that overwriting values in the ISA registers actually 
>> completely clears and destroys the values is delusionally naive.
> 
> Could you point to some references about that?

I *assume* David is referring to register renaming, which is not
architecturally visible...

...
> I agree it would be good to specify the threat model.  Reading
> between the lines, I believe it is: capture of the software-visible
> process state after the code is finished with the sensitive data,
> either via a process dump file, or a debugger.

This is correct.  Other avenues for the sensitive data to leak include
use-after-free or out-of-bounds memory reads within the program, and
malicious code (having gained control via some other bug) scanning
memory in bulk.

I would consider data leaks via state inaccessible to a program
executing at the same privilege level as the code to be hardened to be
out of scope.  (Which does mean that *when hardening an OS kernel* one
would possibly have to worry about special mechanisms that reveal the
"true" register file, and the like, but I'd be plenty happy with
something that was good enough for user mode.)  Techniques involving
direct manipulation of the hardware or the microcode, ditto.

> Another threat that I don't believe is covered here is disclosure of
> copies of the process state held in the OS, like saved context from
> thread switching, copies of stuff in the page file or in now-freed
> memory pages, or things like that.

Some of that might conceivably be in-scope; jmp_buf comes to mind.  (I'm
not prepared to make an exhaustive list at the moment.)  Normally,
people programming this kind of code expect to have to lock pages in
memory and so on.

zw


  parent reply	other threads:[~2015-09-09 19:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-09 16:36 Zack Weinberg
2015-09-09 16:39 ` Fwd: " Zack Weinberg
2015-09-09 16:41   ` Zack Weinberg
2015-09-09 16:42 ` Rich Felker
2015-09-09 16:47   ` [musl] " Zack Weinberg
2015-09-09 17:13     ` Rich Felker
2015-09-09 18:48       ` [musl] " Zack Weinberg
2015-09-09 20:05         ` Rich Felker
2015-09-09 16:52 ` Paul_Koning
2015-09-09 16:58   ` Zack Weinberg
2015-09-09 17:25     ` [musl] " Rich Felker
2015-09-09 17:54 ` David Edelsohn
2015-09-09 18:02   ` Paul_Koning
2015-09-09 18:11     ` David Edelsohn
2015-09-09 19:03     ` Zack Weinberg [this message]
2015-09-09 20:26       ` Szabolcs Nagy
2015-10-22 16:02         ` [musl] " Denys Vlasenko
2015-10-22 16:09 ` Denys Vlasenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55F08296.10003@panix.com \
    --to=zackw@panix.com \
    --cc=Paul_Koning@Dell.com \
    --cc=dje.gcc@gmail.com \
    --cc=gcc@gcc.gnu.org \
    --cc=libc-alpha@sourceware.org \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).