tools/dm_depriv: Add first cut RLIMITs
authorGeorge Dunlap <george.dunlap@citrix.com>
Tue, 6 Nov 2018 15:41:25 +0000 (15:41 +0000)
committerGeorge Dunlap <george.dunlap@citrix.com>
Tue, 6 Nov 2018 15:41:25 +0000 (15:41 +0000)
commitce2f42605888f18f63ff9fe0d45dd69ae83045bb
treea648392eff24f74485a5829c31695a7f10290d82
parent371a23e65db5eb3a80a148586aeb551d4d0015f1
tools/dm_depriv: Add first cut RLIMITs

Limit the ability of a potentially compromised QEMU to consume system
resources.  Key limits:
 - RLIMIT_FSIZE (file size): 256KiB
 - RLIMIT_NPROC (after uid changes to a unique uid)

Probably unnecessary limits but why not:
 - RLIMIT_CORE: 0
 - RLIMIT_MSGQUEUE: 0
 - RLIMIT_LOCKS: 0
 - RLIMIT_MEMLOCK: 0

NB that we do not yet set RLIMIT_AS (total virtual memory) or
RLIMIT_NOFILES (number of open files), since these require more care
and/or more coordination with QEMU to implement.

Suggested-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: George Dunlap <george.dunlap@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
Changes since v4:
- Put global headers before local headers (sugg by Paul)
- Move #undif inside the braces (sugg by Paul)

Changes since v3:
- Align RLIMIT_ENTRY list for easier reading
- Fix wrong format string specifier
- Get rid of some trailing whitespace

Changes since v2:
- Use a macro to define rlimit entries
- Use RLIMIT_NLIMITS as an end-of-list marker, rather than -1
- Various style clean-ups

CC: Ian Jackson <ian.jackson@citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Anthony Perard <anthony.perard@citrix.com>
docs/designs/qemu-deprivilege.md
tools/libxl/libxl_linux.c