summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/mac_mls.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/mac_mls.4 3.html')
-rw-r--r--static/freebsd/man4/mac_mls.4 3.html212
1 files changed, 212 insertions, 0 deletions
diff --git a/static/freebsd/man4/mac_mls.4 3.html b/static/freebsd/man4/mac_mls.4 3.html
new file mode 100644
index 00000000..490713e0
--- /dev/null
+++ b/static/freebsd/man4/mac_mls.4 3.html
@@ -0,0 +1,212 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">MAC_MLS(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">MAC_MLS(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">mac_mls</code> &#x2014;
+ <span class="Nd">Multi-Level Security confidentiality policy</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp">To compile MLS into your kernel, place the following lines in your
+ kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">options MAC</code>
+<br/>
+<code class="Cd">options MAC_MLS</code></div>
+<p class="Pp">Alternately, to load the MLS module at boot time, place the
+ following line in your kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">options MAC</code></div>
+<p class="Pp">and in <a class="Xr">loader.conf(5)</a>:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>mac_mls_load=&quot;YES&quot;</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">mac_mls</code> policy module implements the
+ Multi-Level Security, or MLS model, which controls access between subjects
+ and objects based on their confidentiality by means of a strict information
+ flow policy. Each subject and object in the system has an MLS label
+ associated with it; each subject's MLS label contains information on its
+ clearance level, and each object's MLS label contains information on its
+ classification.</p>
+<p class="Pp">In MLS, all system subjects and objects are assigned
+ confidentiality labels, made up of a sensitivity level and zero or more
+ compartments. Together, these label elements permit all labels to be placed
+ in a partial order, with confidentiality protections based on a dominance
+ operator describing the order. The sensitivity level is expressed as a value
+ between 0 and 65535, with higher values reflecting higher sensitivity
+ levels. The compartment field is expressed as a set of up to 256 components,
+ numbered from 1 to 256. A complete label consists of both sensitivity and
+ compartment elements.</p>
+<p class="Pp">With normal labels, dominance is defined as a label having a
+ higher or equal active sensitivity level, and having at least all of the
+ same compartments as the label to which it is being compared. With respect
+ to label comparisons, &#x201C;<code class="Li">lower</code>&#x201D; is
+ defined as being dominated by the label to which it is being compared, and
+ &#x201C;<code class="Li">higher</code>&#x201D; is defined as dominating the
+ label to which it is being compared, and
+ &#x201C;<code class="Li">equal</code>&#x201D; is defined as both labels
+ being able to satisfy the dominance requirements over one another.</p>
+<p class="Pp">Three special label values exist:</p>
+<table class="Bl-column Bd-indent">
+ <tr id="Label">
+ <td><a class="permalink" href="#Label"><b class="Sy">Label</b></a></td>
+ <td><a class="permalink" href="#Comparison"><b class="Sy" id="Comparison">Comparison</b></a></td>
+ </tr>
+ <tr id="mls/low">
+ <td><a class="permalink" href="#mls/low"><code class="Li">mls/low</code></a></td>
+ <td>dominated by all other labels</td>
+ </tr>
+ <tr id="mls/equal">
+ <td><a class="permalink" href="#mls/equal"><code class="Li">mls/equal</code></a></td>
+ <td>equal to all other labels</td>
+ </tr>
+ <tr id="mls/high">
+ <td><a class="permalink" href="#mls/high"><code class="Li">mls/high</code></a></td>
+ <td>dominates all other labels</td>
+ </tr>
+</table>
+<p class="Pp">The &#x201C;<code class="Li">mls/equal</code>&#x201D; label may be
+ applied to subjects and objects for which no enforcement of the MLS security
+ policy is desired.</p>
+<p class="Pp">The MLS model enforces the following basic restrictions:</p>
+<ul class="Bl-bullet">
+ <li>Subjects may not observe the processes of another subject if its clearance
+ level is lower than the clearance level of the object it is attempting to
+ observe.</li>
+ <li>Subjects may not read, write, or otherwise observe objects without proper
+ clearance (e.g. subjects may not observe objects whose classification
+ label dominates its own clearance label)</li>
+ <li>Subjects may not write to objects with a lower classification level than
+ its own clearance level.</li>
+ <li>A subject may read and write to an object if its clearance level is equal
+ to the object's classification level as though MLS protections were not in
+ place.</li>
+</ul>
+<p class="Pp">These rules prevent subjects of lower clearance from gaining
+ access information classified beyond its clearance level in order to protect
+ the confidentiality of classified information, subjects of higher clearance
+ from writing to objects of lower classification in order to prevent the
+ accidental or malicious leaking of information, and subjects of lower
+ clearance from observing subjects of higher clearance altogether. In
+ traditional trusted operating systems, the MLS confidentiality model is used
+ in concert with the Biba integrity model (<a class="Xr">mac_biba(4)</a>) in
+ order to protect the Trusted Code Base (TCB).</p>
+<section class="Ss">
+<h2 class="Ss" id="Label_Format"><a class="permalink" href="#Label_Format">Label
+ Format</a></h2>
+<p class="Pp">Almost all system objects are tagged with an effective, active
+ label element, reflecting the classification of the object, or
+ classification of the data contained in the object. In general, object
+ labels are represented in the following form:</p>
+<p class="Pp"></p>
+<div class="Bd
+ Bd-indent"><code class="Li">mls/</code><var class="Ar">grade</var>:<var class="Ar">compartments</var></div>
+<p class="Pp">For example:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>mls/10:2+3+6
+mls/low</pre>
+</div>
+<p class="Pp">Subject labels consist of three label elements: an effective
+ (active) label, as well as a range of available labels. This range is
+ represented using two ordered MLS label elements, and when set on a process,
+ permits the process to change its active label to any label of greater or
+ equal integrity to the low end of the range, and lesser or equal integrity
+ to the high end of the range. In general, subject labels are represented in
+ the following form:</p>
+<p class="Pp"></p>
+<div class="Bd
+ Bd-indent"><code class="Li">mls/</code><var class="Ar">effectivegrade</var>:<var class="Ar">effectivecompartments</var>(<var class="Ar">lograde</var>:<var class="Ar">locompartments</var><span class="No">-</span></div>
+<div class="Bd
+ Bd-indent"><var class="Ar">higrade</var>:<var class="Ar">hicompartments</var></div>
+)
+<p class="Pp">For example:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>mls/10:2+3+6(5:2+3-20:2+3+4+5+6)
+mls/high(low-high)</pre>
+</div>
+<p class="Pp">Valid ranged labels must meet the following requirement regarding
+ their elements:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><var class="Ar">rangehigh</var>
+ <span class="No">&#x2265;</span> <var class="Ar">effective</var>
+ <span class="No">&#x2265;</span> <var class="Ar">rangelow</var></div>
+<p class="Pp">One class of objects with ranges currently exists, the network
+ interface. In the case of the network interface, the effective label element
+ references the default label for packets received over the interface, and
+ the range represents the range of acceptable labels of packets to be
+ transmitted over the interface.</p>
+</section>
+<section class="Ss">
+<h2 class="Ss" id="Runtime_Configuration"><a class="permalink" href="#Runtime_Configuration">Runtime
+ Configuration</a></h2>
+<p class="Pp">The following <a class="Xr">sysctl(8)</a> MIBs are available for
+ fine-tuning the enforcement of this MAC policy.</p>
+<dl class="Bl-tag">
+ <dt id="security.mac.mls.enabled"><var class="Va">security.mac.mls.enabled</var></dt>
+ <dd>Enables the enforcement of the MLS confidentiality policy. (Default:
+ 1).</dd>
+ <dt id="security.mac.mls.ptys_equal"><var class="Va">security.mac.mls.ptys_equal</var></dt>
+ <dd>Label <a class="Xr">pty(4)</a>s as
+ &#x201C;<code class="Li">mls/equal</code>&#x201D; upon creation. (Default:
+ 0).</dd>
+ <dt id="security.mac.mls.revocation_enabled"><var class="Va">security.mac.mls.revocation_enabled</var></dt>
+ <dd>Revoke access to objects if the label is changed to a more sensitive level
+ than the subject. (Default: 0).</dd>
+</dl>
+</section>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="IMPLEMENTATION_NOTES"><a class="permalink" href="#IMPLEMENTATION_NOTES">IMPLEMENTATION
+ NOTES</a></h1>
+<p class="Pp">Currently, the <code class="Nm">mac_mls</code> policy relies on
+ superuser status (<a class="Xr">suser(9)</a>) in order to change network
+ interface MLS labels. This will eventually go away, but it is currently a
+ liability and may allow the superuser to bypass MLS protections.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">mac(4)</a>, <a class="Xr">mac_biba(4)</a>,
+ <a class="Xr">mac_bsdextended(4)</a>, <a class="Xr">mac_ddb(4)</a>,
+ <a class="Xr">mac_ifoff(4)</a>, <a class="Xr">mac_lomac(4)</a>,
+ <a class="Xr">mac_none(4)</a>, <a class="Xr">mac_partition(4)</a>,
+ <a class="Xr">mac_portacl(4)</a>, <a class="Xr">mac_seeotheruids(4)</a>,
+ <a class="Xr">mac_test(4)</a>, <a class="Xr">maclabel(7)</a>,
+ <a class="Xr">mac(9)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">mac_mls</code> policy module first appeared
+ in <span class="Ux">FreeBSD 5.0</span> and was developed by the TrustedBSD
+ Project.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp">This software was contributed to the
+ <span class="Ux">FreeBSD</span> Project by Network Associates Laboratories,
+ the Security Research Division of Network Associates Inc. under DARPA/SPAWAR
+ contract N66001-01-C-8035 (&#x201C;CBOSS&#x201D;), as part of the DARPA
+ CHATS research program.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
+<p class="Pp">While the MAC Framework design is intended to support the
+ containment of the root user, not all attack channels are currently
+ protected by entry point checks. As such, MAC Framework policies should not
+ be relied on, in isolation, to protect against a malicious privileged
+ user.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">July 25, 2015</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>