xref: /freebsd/share/man/man4/mac_biba.4 (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1.\" Copyright (c) 2002-2004 Networks Associates Technology, Inc.
2.\" All rights reserved.
3.\"
4.\" This software was developed for the FreeBSD Project by Chris Costello
5.\" at Safeport Network Services and Network Associates Laboratories, the
6.\" Security Research Division of Network Associates, Inc. under
7.\" DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
8.\" DARPA CHATS research program.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\" 2. Redistributions in binary form must reproduce the above copyright
16.\"    notice, this list of conditions and the following disclaimer in the
17.\"    documentation and/or other materials provided with the distribution.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.Dd November 18, 2002
32.Dt MAC_BIBA 4
33.Os
34.Sh NAME
35.Nm mac_biba
36.Nd "Biba data integrity policy"
37.Sh SYNOPSIS
38To compile Biba into your kernel, place the following lines in your kernel
39configuration file:
40.Bd -ragged -offset indent
41.Cd "options MAC"
42.Cd "options MAC_BIBA"
43.Ed
44.Pp
45Alternately, to load the Biba module at boot time, place the following line
46in your kernel configuration file:
47.Bd -ragged -offset indent
48.Cd "options MAC"
49.Ed
50.Pp
51and in
52.Xr loader.conf 5 :
53.Bd -literal -offset indent
54mac_biba_load="YES"
55.Ed
56.Sh DESCRIPTION
57The
58.Nm
59policy module implements the Biba integrity model,
60which protects the integrity of system objects and subjects by means of
61a strict information flow policy.
62In Biba, all system subjects and objects are assigned integrity labels, made
63up of hierarchal grades, and non-hierarchal components.
64Together, these label elements permit all labels to be placed in a partial
65order, with information flow protections based on a dominance operator
66describing the order.
67The hierarchal grade field is expressed as a value between 0 and 65535,
68with higher values reflecting higher integrity.
69The non-hierarchal compartment field is expressed as a set of up to 256
70components, numbered from 0 to 255.
71A complete label consists of both hierarchal and non-hierarchal elements.
72.Pp
73Three special label values exist:
74.Bl -column -offset indent ".Li biba/equal" "lower than all other labels"
75.It Sy Label Ta Sy Comparison
76.It Li biba/low Ta "lower than all other labels"
77.It Li biba/equal Ta "equal to all other labels"
78.It Li biba/high Ta "higher than all other labels"
79.El
80.Pp
81The
82.Dq Li biba/high
83label is assigned to system objects which affect the integrity of the system
84as a whole.
85The
86.Dq Li biba/equal
87label
88may be used to indicate that a particular subject or object is exempt from
89the Biba protections.
90These special label values are not specified as containing any compartments,
91although in a label comparison,
92.Dq Li biba/high
93appears to contain all compartments,
94.Dq Li biba/equal
95the same compartments as the other label to which it is being compared,
96and
97.Dq Li biba/low
98none.
99.Pp
100In general, Biba access control takes the following model:
101.Bl -bullet
102.It
103A subject at the same integrity level as an object may both read from
104and write to the object as though Biba protections were not in place.
105.It
106A subject at a higher integrity level than an object may write to the object,
107but not read the object.
108.It
109A subject at a lower integrity level than an object may read the object,
110but not write to the object.
111.It
112If the subject and object labels may not be compared in the partial order,
113all access is restricted.
114.El
115.Pp
116These rules prevent subjects of lower integrity from influencing the
117behavior of higher integrity subjects by preventing the flow of information,
118and hence control, from allowing low integrity subjects to modify either
119a high integrity object or high integrity subjects acting on those objects.
120Biba integrity policies may be appropriate in a number of environments,
121both from the perspective of preventing corruption of the operating system,
122and corruption of user data if marked as higher integrity than the attacker.
123In traditional trusted operating systems, the Biba integrity model is used
124to protect the Trusted Code Base (TCB).
125.Pp
126The Biba integrity model is similar to
127.Xr mac_lomac 4 ,
128with the exception that LOMAC permits access by a higher integrity subject
129to a lower integrity object, but downgrades the integrity level of the subject
130to prevent integrity rules from being violated.
131Biba is a fixed label policy in that all subject and object label changes are
132explicit, whereas LOMAC is a floating label policy.
133.Pp
134The Biba integrity model is also similar to
135.Xr mac_mls 4 ,
136with the exception that the dominance operator and access rules are reversed,
137preventing the downward flow of information rather than the upward flow of
138information.
139Multi-Level Security (MLS) protects the confidentiality, rather than the
140integrity, of subjects and objects.
141.Ss Label Format
142Almost all system objects are tagged with an effective, active label element,
143reflecting the integrity of the object, or integrity of the data contained
144in the object.
145In general, objects labels are represented in the following form:
146.Pp
147.Sm off
148.D1 Li biba / Ar grade : compartments
149.Sm on
150.Pp
151For example:
152.Bd -literal -offset indent
153biba/10:2+3+6
154biba/low
155.Ed
156.Pp
157Subject labels consist of three label elements: an effective (active) label,
158as well as a range of available labels.
159This range is represented using two ordered Biba label elements, and when set
160on a process, permits the process to change its active label to any label of
161greater or equal integrity to the low end of the range, and lesser or equal
162integrity to the high end of the range.
163In general, subject labels are represented in the following form:
164.Pp
165.Sm off
166.D1 Li biba / Ar effectivegrade : effectivecompartments ( lograde : locompartments -
167.D1 Ar higrade : hicompartments )
168.Sm on
169.Pp
170For example:
171.Bd -literal -offset indent
172biba/10:2+3+6(5:2+3-20:2+3+4+5+6)
173biba/high(low-high)
174.Ed
175.Pp
176Valid ranged labels must meet the following requirement regarding their
177elements:
178.Pp
179.D1 Ar rangehigh No \[>=] Ar effective No \[>=] Ar rangelow
180.Pp
181One class of objects with ranges currently exists, the network interface.
182In the case of the network interface, the effective label element references the
183default label for packets received over the interface, and the range
184represents the range of acceptable labels of packets to be transmitted over
185the interface.
186.Ss Runtime Configuration
187The following
188.Xr sysctl 8
189MIBs are available for fine-tuning the enforcement of this MAC policy.
190.Bl -tag -width ".Va security.mac.biba.ptys_equal"
191.It Va security.mac.biba.enabled
192Enables enforcement of the Biba integrity policy.
193(Default: 1).
194.It Va security.mac.biba.ptys_equal
195Label
196.Xr pty 4 Ns s
197as
198.Dq Li biba/equal
199upon creation.
200(Default: 0).
201.It Va security.mac.biba.revocation_enabled
202Revoke access to objects if the label is changed to dominate the subject.
203(Default: 0).
204.El
205.Sh SEE ALSO
206.Xr mac 4 ,
207.Xr mac_bsdextended 4 ,
208.Xr mac_ifoff 4 ,
209.Xr mac_lomac 4 ,
210.Xr mac_mls 4 ,
211.Xr mac_none 4 ,
212.Xr mac_partition 4 ,
213.Xr mac_portacl 4 ,
214.Xr mac_seeotheruids 4 ,
215.Xr mac_test 4 ,
216.Xr maclabel 7 ,
217.Xr mac 9
218.Sh HISTORY
219The
220.Nm
221policy module first appeared in
222.Fx 5.0
223and was developed by the
224.Tn TrustedBSD
225Project.
226.Sh AUTHORS
227This software was contributed to the
228.Fx
229Project by Network Associates Labs,
230the Security Research Division of Network Associates
231Inc.
232under DARPA/SPAWAR contract N66001-01-C-8035
233.Pq Dq CBOSS ,
234as part of the DARPA CHATS research program.
235