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