security revision 1.1.4.2 1 1.1.4.2 pgoyette $NetBSD: security,v 1.1.4.2 2017/03/20 06:52:12 pgoyette Exp $
2 1.1.4.2 pgoyette
3 1.1.4.2 pgoyette NetBSD Security Roadmap
4 1.1.4.2 pgoyette =======================
5 1.1.4.2 pgoyette
6 1.1.4.2 pgoyette This roadmap discusses security-related features.
7 1.1.4.2 pgoyette
8 1.1.4.2 pgoyette The following elements, projects, and goals are considered strategic
9 1.1.4.2 pgoyette priorities for the project:
10 1.1.4.2 pgoyette
11 1.1.4.2 pgoyette 1. PaX aslr, mprotect, and segvguard are on by default now; this will
12 1.1.4.2 pgoyette be in 8.0.
13 1.1.4.2 pgoyette 2. Transparent full-disk encryption (discussed in the storage roadmap)
14 1.1.4.2 pgoyette 3. User-switching and secure attention key (see desktop roadmap)
15 1.1.4.2 pgoyette
16 1.1.4.2 pgoyette The following elements, projects, and goals are not strategic
17 1.1.4.2 pgoyette priorities but are still important undertakings worth doing:
18 1.1.4.2 pgoyette
19 1.1.4.2 pgoyette 4. Security restriction framework for large/less trusted applications
20 1.1.4.2 pgoyette 5. Interface for location, accelerometer, and similar sensitive services
21 1.1.4.2 pgoyette
22 1.1.4.2 pgoyette
23 1.1.4.2 pgoyette Explanations
24 1.1.4.2 pgoyette ============
25 1.1.4.2 pgoyette
26 1.1.4.2 pgoyette
27 1.1.4.2 pgoyette 4. Security restriction framework for large/less trusted applications
28 1.1.4.2 pgoyette
29 1.1.4.2 pgoyette Traditionally in Unix permissions go with the user logged in, and all
30 1.1.4.2 pgoyette programs that are run execute with the credentials and permissions of
31 1.1.4.2 pgoyette that user. (Except for setugid programs, which execute with additional
32 1.1.4.2 pgoyette permissions.)
33 1.1.4.2 pgoyette
34 1.1.4.2 pgoyette This makes sense for programs like cat(1) or grep(1) that work with
35 1.1.4.2 pgoyette user data in the traditional shell environment. However, it is
36 1.1.4.2 pgoyette unsatisfactory for large semi-trusted applications such as web
37 1.1.4.2 pgoyette browsers, and entirely unsuitable for 3rd-party "apps" such as found
38 1.1.4.2 pgoyette on phones, which routinely contain spyware.
39 1.1.4.2 pgoyette
40 1.1.4.2 pgoyette We would like to have a permissions framework that works on a
41 1.1.4.2 pgoyette per-application basis and allows imposing restrictions on what apps
42 1.1.4.2 pgoyette may do, what data apps may read, and also supports policies like
43 1.1.4.2 pgoyette "cannot talk on the network after reading user data".
44 1.1.4.2 pgoyette
45 1.1.4.2 pgoyette Such a framework is entirely different from traditional Unix
46 1.1.4.2 pgoyette permissions and requires careful thought and design. Prior art is
47 1.1.4.2 pgoyette mostly not very good; e.g. Android's app permissions framework is both
48 1.1.4.2 pgoyette not expressive enough to pose serious barriers to spyware, and too
49 1.1.4.2 pgoyette complicated for typical users to cope with effectively. Meanwhile,
50 1.1.4.2 pgoyette system-call-based restrictions like seccomp/seccomp-bpf in Linux are
51 1.1.4.2 pgoyette messy and complicated and hard to use effectively. OpenBSD's "pledge"
52 1.1.4.2 pgoyette has been widely criticized for a range of reasons. Most of these
53 1.1.4.2 pgoyette models also do not provide for lying to apps that demand access you
54 1.1.4.2 pgoyette don't want to give them.
55 1.1.4.2 pgoyette
56 1.1.4.2 pgoyette dholland was working on this with some undergrads a while back and
57 1.1.4.2 pgoyette there's a design that may be of some value, although the prototype
58 1.1.4.2 pgoyette implementation was not a success.
59 1.1.4.2 pgoyette
60 1.1.4.2 pgoyette - As of January 2017 nobody is known to be working on this.
61 1.1.4.2 pgoyette - There is currently no clear timeframe or release target.
62 1.1.4.2 pgoyette - Contact dholland for further information.
63 1.1.4.2 pgoyette
64 1.1.4.2 pgoyette
65 1.1.4.2 pgoyette 5. Interface for location, accelerometer, and similar sensitive services
66 1.1.4.2 pgoyette
67 1.1.4.2 pgoyette Currently in NetBSD we have no infrastructure for the "new" hardware
68 1.1.4.2 pgoyette interfaces typically found in phones, like GPS location information,
69 1.1.4.2 pgoyette accelerometer and orientation data, and so forth.
70 1.1.4.2 pgoyette
71 1.1.4.2 pgoyette There is probably no need to invent new APIs for retrieving this data,
72 1.1.4.2 pgoyette but we do need a sound underlying framework with security controls in
73 1.1.4.2 pgoyette place, as many of these data sources provide information that is
74 1.1.4.2 pgoyette either sensitive or can be used to derive sensitive information.
75 1.1.4.2 pgoyette
76 1.1.4.2 pgoyette (Note also that it's been shown that location data can be derived from
77 1.1.4.2 pgoyette monitoring battery level so that one's also sensitive.)
78 1.1.4.2 pgoyette
79 1.1.4.2 pgoyette - As of January 2017 nobody is known to be working on this.
80 1.1.4.2 pgoyette - There is currently no clear timeframe or release target.
81 1.1.4.2 pgoyette - Contact: ? (XXX)
82 1.1.4.2 pgoyette
83