Thread (29 messages) 29 messages, 5 authors, 2018-02-22

[RFC PATCH v16 0/6] mm: security: ro protection for dynamic data

From: Igor Stoppa <hidden>
Date: 2018-02-20 18:03:49
Also in: linux-mm, lkml


On 20/02/18 03:21, Dave Chinner wrote:
On Mon, Feb 12, 2018 at 03:32:36PM -0800, Kees Cook wrote:
quoted
On Mon, Feb 12, 2018 at 8:52 AM, Igor Stoppa [off-list ref] wrote:
quoted
This patch-set introduces the possibility of protecting memory that has
been allocated dynamically.

The memory is managed in pools: when a memory pool is turned into R/O,
all the memory that is part of it, will become R/O.

A R/O pool can be destroyed, to recover its memory, but it cannot be
turned back into R/W mode.

This is intentional. This feature is meant for data that doesn't need
further modifications after initialization.
This series came up in discussions with Dave Chinner (and Matthew
Wilcox, already part of the discussion, and others) at LCA. I wonder
if XFS would make a good initial user of this, as it could allocate
all the function pointers and other const information about a
superblock in pmalloc(), keeping it separate from the R/W portions?
Could other filesystems do similar things?
I wasn't cc'd on this patchset, (please use david at fromorbit.com for
future postings) 
Apologies, somehow I didn't realize that I should have put you too in
CC. It will be fixed at the next iteration.
so I can't really say anything about it right
now. My interest for XFS was that we have a fair amount of static
data in XFS that we set up at mount time and it never gets modified
after that.
This is the typical use case I had in mind, although it requires a
conversion.
Ex:

before:

static int a;


void set_a(void)
{
	a = 4;
}



after:

static int *a __ro_after_init;
struct gen_pool *pool;

void init_a(void)
{
	pool = pmalloc_create_pool("pool", 0);
	a = (int *)pmalloc(pool, sizeof(int), GFP_KERNEL);
}

void set_a(void)
{
	*a = 4;
	pmalloc_protect_pool(pool);
}
I'm not so worried about VFS level objects (that's a
much more complex issue) but there is a lot of low hanging fruit in
the XFS structures we could convert to write-once structures.
I'd be interested to have your review of the pmalloc API, if you think
something is missing, once I send out the next revision.

--
igor
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help