linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Sanitizing freed pages
@ 2015-04-24 21:05 Anisse Astier
  2015-04-24 21:05 ` [PATCH 1/2] mm/page_alloc.c: cleanup obsolete KM_USER* Anisse Astier
  2015-04-24 21:05 ` [PATCH 2/2] mm/page_alloc.c: add config option to sanitize freed pages Anisse Astier
  0 siblings, 2 replies; 11+ messages in thread
From: Anisse Astier @ 2015-04-24 21:05 UTC (permalink / raw)
  Cc: Anisse Astier, Andrew Morton, Mel Gorman, Kirill A. Shutemov,
	David Rientjes, Alan Cox, Linus Torvalds, Peter Zijlstra,
	PaX Team, Brad Spengler, Kees Cook, linux-mm, linux-kernel

Hi,

I'm trying revive an old debate here[1], though with a simpler approach than
was previously tried. This patch series implements a new option to sanitize
freed pages, a (very) small subset of what is done in PaX/grsecurity[3],
inspired by a previous submission [4].

The first patch is fairly independent, and could be taken as-is. The second is
the meat and should be straight-forward to review.

There are a few different uses that this can cover:
 - some cases of use-after-free could be detected (crashes), although this not
   as efficient as KAsan/kmemcheck
 - it can help with long-term memory consumption in an environment with
   multiple VMs and Kernel Same-page Merging on the host. [2]
 - finally, it can reduce infoleaks, although this is hard to measure.

The approach is voluntarily kept as simple as possible. A single configuration
option, no command line option, no sysctl nob. It can of course be changed,
although I'd be wary of runtime-configuration options that could be used for
races.

I haven't been able to measure a meaningful performance difference when
compiling a (in-cache) kernel; I'd be interested to see what difference it
makes with your particular workload/hardware (I suspect mine is CPU-bound on
this small laptop).


[1] https://lwn.net/Articles/334747/
[2] https://staff.aist.go.jp/k.suzaki/EuroSec12-SUZAKI-revised2.pdf
[3] http://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Sanitize_all_freed_memory
[4] http://article.gmane.org/gmane.linux.kernel.mm/34398

Anisse Astier (2):
  mm/page_alloc.c: cleanup obsolete KM_USER*
  mm/page_alloc.c: add config option to sanitize freed pages

 mm/Kconfig      | 12 ++++++++++++
 mm/page_alloc.c | 15 +++++++--------
 2 files changed, 19 insertions(+), 8 deletions(-)

-- 
1.9.3

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-04-27 21:27 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-24 21:05 [PATCH 0/2] Sanitizing freed pages Anisse Astier
2015-04-24 21:05 ` [PATCH 1/2] mm/page_alloc.c: cleanup obsolete KM_USER* Anisse Astier
2015-04-24 21:36   ` David Rientjes
2015-04-25 13:43     ` Anisse Astier
2015-04-24 21:05 ` [PATCH 2/2] mm/page_alloc.c: add config option to sanitize freed pages Anisse Astier
2015-04-24 21:38   ` David Rientjes
2015-04-25 13:52     ` Anisse Astier
2015-04-26 20:12   ` Andi Kleen
2015-04-27  8:11     ` Anisse Astier
2015-04-27  9:25       ` PaX Team
2015-04-27 21:27         ` Anisse Astier

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).