After completing this tutorial, you should be able to:
In Tutorial 3.10, we examined Discretionary Access Control (DAC), where the owner of a resource has discretion over access. While DAC is flexible and intuitive, it has significant limitations, particularly the Trojan horse problem and the inability to enforce a consistent security policy across an organization. Mandatory Access Control (MAC) addresses these shortcomings by placing authority in a central administrator who sets immutable policies based on security labels and classifications.
MAC is a model where access decisions are determined by a central authority according to a set of rules that cannot be overridden by users or owners. In MAC, every subject and object is assigned a security label (e.g., classification level, clearance, categories). Access is granted only if the labels satisfy the policy rules. This ensures strict information flow control, making MAC ideal for high-security environments such as military, government, and critical infrastructure.
This tutorial provides a comprehensive exploration of MAC. We begin by defining MAC and its foundational concepts, including security labels, classification levels, and clearance. We then delve into two classic formal models: the Bell-LaPadula model, which focuses on confidentiality, and the Biba model, which focuses on integrity. We analyze their rules and properties—the Simple Security Property, the *-Property (Star Property), and the Discretionary Security Property for Bell-LaPadula, and the corresponding rules for Biba.
We compare and contrast these models, highlighting their complementary roles: Bell-LaPadula prevents unauthorized reading of sensitive information (no read up, no write down), while Biba prevents corruption of high-integrity data (no write up, no read down). We discuss the practical applications of each model and how they can be combined.
We then survey real-world MAC implementations, focusing on SELinux (Security-Enhanced Linux) and AppArmor, which are the two most prominent MAC frameworks in Linux. We examine their architectures, policy languages, and typical use cases. We also discuss the advantages of MAC—strong security, centralized control, resistance to user errors—and its limitations—complexity, administrative overhead, and potential for misconfiguration.
The tutorial concludes with case studies illustrating MAC in a military intelligence system and a healthcare environment where integrity is paramount. These examples demonstrate the practical application of MAC principles and the trade-offs involved in deploying such systems.
By the end of this tutorial, you will have a thorough understanding of MAC, enabling you to evaluate when and how to apply it, and to recognize the critical role it plays in protecting highly sensitive or high-integrity systems.
Mandatory Access Control (MAC) is an access control model in which access decisions are made by a central authority based on a set of system-wide policies. These policies are mandatory and cannot be overridden or modified by users, even the owners of objects. In MAC, every subject (user, process) and object (file, device) is assigned a security label that includes a classification level and possibly other attributes. Access is allowed only if the labels meet the policy's rules (e.g., subject's clearance is at least the object's classification).
The "mandatory" aspect means that the policy is enforced by the system and cannot be bypassed. This is in stark contrast to DAC, where the owner has discretion. MAC is used in environments where a consistent, global security policy is required and where the risk of unauthorized access or data leakage is very high.
MAC has its roots in military and government security requirements, particularly the U.S. Department of Defense's (DoD) Trusted Computer System Evaluation Criteria (TCSEC), also known as the Orange Book. The Orange Book defined requirements for mandatory protection, including the use of security labels and the enforcement of information flow policies. The Bell-LaPadula model was developed in the 1970s to formalize the confidentiality requirements of MAC. Later, the Biba model addressed integrity. MAC has since been implemented in many operating systems, including security-enhanced Linux (SELinux), Trusted Solaris, and various military-grade systems.
In MAC, the system enforces rules based on these labels. For example, a subject with clearance "Secret" and categories {NATO, Crypto} can read objects classified as "Secret" or lower, but only if the object's categories are a subset of the subject's categories.
Classification levels are typically ordered in a hierarchy from lowest to highest. Common DoD classifications include:
Each level includes all lower levels, so a Top Secret clearance allows access to Secret, Confidential, and Unclassified objects (subject to category restrictions). The hierarchy ensures that the more sensitive the data, the higher its classification and the more restricted its access.
Categories are non-hierarchical tags that represent areas of interest or specific projects. They are used to implement need-to-know. For example, a user might have clearance Top Secret with categories {NATO, Crypto}. This user can access objects with classification Top Secret or lower, but only if the object's categories are a subset of the user's categories. Thus, the user cannot access a Top Secret document classified with {NATO, Crypto, Personnel} because "Personnel" is not in their set.
In a MAC system, every subject (user process) and object (file, device, etc.) must have a security label. The label is often stored in the object's metadata (e.g., extended attributes in a file system). The operating system's reference monitor checks these labels on every access request.
| Entity | Label |
|---|---|
| User Alice | Clearance: Secret; Categories: {NATO} |
| User Bob | Clearance: Top Secret; Categories: {Crypto, NATO} |
| File A | Classification: Secret; Categories: {NATO} |
| File B | Classification: Top Secret; Categories: {Crypto} |
In this example, Alice can read File A (since her clearance is Secret, and her categories include NATO). She cannot read File B because her clearance is not Top Secret. Bob can read both File A and File B. If File B had categories {Crypto, NATO}, Bob could read it because his categories are a superset.
The Bell-LaPadula (BLP) model is a formal security model developed in 1973 by David Bell and Leonard LaPadula. It is a state-machine model that focuses on preserving confidentiality. It is designed to prevent unauthorized disclosure of information by enforcing information flow from lower security levels to higher ones. BLP was developed for the U.S. Department of Defense and is the foundation for many MAC implementations.
The BLP model defines three main properties:
The key insight is that information flows upward, from lower classifications to higher classifications. A subject with a higher clearance can read lower-classified data, but cannot write down to lower levels, preventing leakage.
In BLP, each subject and object has a security label consisting of a classification level and a set of categories. The dominance relation (≥) is defined as follows:
The SS property: subject can read object iff the subject's label dominates the object's label. The *Property: subject can write to object iff the object's label dominates the subject's label.
Consider a subject with label (Secret, {NATO}) and an object with label (Unclassified, {}).
Now consider an object with label (Top Secret, {NATO, Crypto}). Subject's label does not dominate object's label (Top Secret > Secret), so read is not allowed. Write: object's label dominates subject's label, so write is allowed. The subject can write to a higher classification object (which is permissible because it doesn't leak sensitive data).
The Biba model was developed by Kenneth J. Biba in 1977 as a complementary model to Bell-LaPadula, focusing on integrity rather than confidentiality. The Biba model is designed to prevent data corruption by ensuring that information flows from higher integrity levels to lower integrity levels, preventing untrusted subjects from corrupting high-integrity data.
In the Biba model, subjects and objects are assigned integrity labels that indicate their level of trustworthiness or correctness. Higher integrity labels indicate more reliable or verified data. For example, a system might have integrity levels: High, Medium, Low.
The Biba model defines three properties analogous to BLP but reversed:
In essence, Biba ensures that data flows from high integrity to low integrity, preventing low-integrity data from affecting high-integrity processes.
Consider a subject (process) with integrity level High, and an object (file) with integrity level Low.
Note: The Biba model is less widely deployed than Bell-LaPadula but is important for integrity-critical systems.
| Aspect | Bell-LaPadula (Confidentiality) | Biba (Integrity) |
|---|---|---|
| Goal | Prevent unauthorized disclosure of information | Prevent unauthorized modification or corruption |
| Label Focus | Classification (Confidentiality level) | Integrity level |
| Read Rule | No read up (subject can only read at or below its clearance) | No read down (subject can only read at or above its integrity level) |
| Write Rule | No write down (subject can only write at or above its clearance) | No write up (subject can only write at or below its integrity level) |
| Information Flow | Flows upward (low to high) | Flows downward (high to low) |
| Common Use | Military, government, data confidentiality | Financial systems, data integrity, healthcare |
In practice, a system might use both models by assigning both confidentiality and integrity labels to subjects and objects, enforcing both sets of rules. This is often referred to as a multilevel security system. However, the combined rules can be restrictive and require careful design.
SELinux is a Linux kernel security module that implements Mandatory Access Control. It was developed by the U.S. National Security Agency (NSA) and released as open source. SELinux uses a flexible policy language based on Type Enforcement (TE) and Role-Based Access Control (RBAC) within a MAC framework. It labels subjects and objects with security contexts that include user, role, type, and level.
Key features:
SELinux is complex but provides fine-grained control over system resources, making it suitable for high-security environments like military systems, government servers, and critical infrastructure.
AppArmor is another Linux MAC implementation, but it is simpler and easier to use than SELinux. AppArmor uses path-based access control rather than labeling. It confines applications (profiles) to a set of files and permissions. AppArmor is included in many Linux distributions (Ubuntu, SUSE) and is popular for securing network services like web servers, databases, and email servers.
Key features:
AppArmor is less granular than SELinux but is more accessible and requires less administrative overhead.
| Aspect | SELinux | AppArmor |
|---|---|---|
| Labeling | Labels every object (files, processes, sockets) | Path-based; no labeling; associates profiles with applications |
| Complexity | High; steep learning curve | Low; easier to manage |
| Policy Language | TE, RBAC, MLS; complex | Simple profile syntax |
| Use Cases | High-security, military, government | Web servers, databases, enterprise applications |
| Adoption | Red Hat, CentOS, Fedora | Ubuntu, SUSE, Debian |
MAC is often used in conjunction with DAC, RBAC, and ABAC. For example, SELinux can enforce MAC while allowing DAC (via POSIX ACLs) for additional flexibility. MAC provides the baseline mandatory controls, while other models handle finer-grained or dynamic permissions.
Background: A defense intelligence agency operates a classified information system that stores intelligence reports, satellite imagery, and operational plans. The system must comply with DoD security requirements and enforce strict need-to-know and classification controls.
Solution:
Outcome: The system successfully prevents unauthorized disclosure and ensures that intelligence analysts only see information they are cleared for. The system is resilient to Trojan horse attacks because even if a user runs malicious code, it cannot elevate privileges or leak data.
Background: A hospital's electronic health record (EHR) system must ensure the integrity of patient records. Incorrect or altered data could lead to serious medical errors. The system must prevent unauthorized modifications and ensure that data entered by trusted clinicians is not corrupted by lower-integrity processes.
Solution:
Outcome: Patient data integrity is maintained. Low-integrity processes (e.g., external lab feeds) are confined and cannot alter high-integrity records. The system provides strong assurance against data corruption.
This tutorial provided a comprehensive exploration of Mandatory Access Control (MAC). We defined MAC as a model where access decisions are made by a central authority using system-wide policies and security labels that are mandatory and non-overridable. We discussed the key concepts of security labels, classification levels, and clearance, and introduced the Bell-LaPadula model (confidentiality) and the Biba model (integrity), analyzing their properties and rules.
We compared Bell-LaPadula and Biba, highlighting how they complement each other: Bell-LaPadula prevents reading sensitive data (no read up) and writing down (no write down), while Biba prevents reading low-integrity data (no read down) and writing up (no write up). We then examined real-world MAC implementations in Linux: SELinux (complex, label-based, flexible) and AppArmor (simpler, path-based, easier to manage).
We evaluated the advantages of MAC—strong, consistent security, resistance to Trojan horses, and information flow control—as well as its limitations, including complexity, administrative overhead, and rigidity. We discussed best practices for designing and deploying MAC policies, including starting with a permissive mode, regular auditing, and integration with other controls.
The case studies illustrated MAC in a military intelligence system (Bell-LaPadula) and a healthcare integrity system (Biba), demonstrating how MAC is applied in practice to meet specific security requirements.
MAC provides a powerful tool for environments where confidentiality or integrity is paramount. However, its rigidity and complexity mean it is not suitable for all contexts. In the next tutorial, Tutorial 3.12, we will explore Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC), which offer more flexible and scalable approaches to access control while still providing strong security enforcement.
Answer the following questions to check your understanding. Click the "Answer" button to reveal the solution.
Q1. In MAC, who has the authority to change access permissions?
Q2. The Bell-LaPadula model is primarily concerned with:
Q3. In the Bell-LaPadula model, the Simple Security Property states:
Q4. In the Biba model, the purpose is to:
Q5. In the Biba model, the Simple Integrity Property is:
Q6. SELinux is an implementation of MAC that uses which mechanism?
Q7. Which of the following is a limitation of MAC?
Q8. In Bell-LaPadula, the *-Property (Star Property) prevents:
Q9. AppArmor uses which approach for access control?
Q10. A subject with clearance Top Secret and categories {NATO} can read an object classified as Secret with categories {NATO, Crypto}?
Q11. Which model is typically used to prevent data corruption by ensuring that low-integrity processes cannot affect high-integrity data?
Q12. SELinux's MLS (Multilevel Security) is based on which model?
These exercises are designed to help you apply the concepts from this tutorial. Attempt each exercise before revealing the sample solution.
Exercise 3.11-1: Bell-LaPadula Labeling and Access
Given the following labels:
For each subject-object pair, determine if read and write are allowed according to Bell-LaPadula (Simple Security and *-Property). Explain why.
Exercise 3.11-2: Biba Model Access Analysis
Consider a system using the Biba model with integrity levels: High (H), Medium (M), Low (L). Subjects and objects have integrity labels. Subject S1 has integrity H, S2 has M, S3 has L. Objects O1 has integrity H, O2 has M, O3 has L.
For each subject-object pair, determine if read and write are allowed according to Biba (Simple Integrity and Integrity *-Property). Explain.
Biba rules:
Now evaluate:
Exercise 3.11-3: Comparing MAC and DAC
Compare and contrast DAC and MAC in terms of:
Exercise 3.11-4: SELinux Policy Design
You are tasked with designing an SELinux policy for a web server that hosts confidential data. The web server process must be able to read files in a specific directory but not write to them. The system also has a database that the web server should not access directly. Outline the steps to design and implement this policy. What types and domains would you define? How would you test the policy?
Exercise 3.11-5: Multilevel Security Scenario
A system uses both Bell-LaPadula for confidentiality and Biba for integrity. A subject has clearance Secret and integrity High. An object has classification Secret and integrity Low. Determine what operations are allowed (read/write) according to both models. Explain any conflicts.
These homework questions require deeper analysis, research, and application. Answer each question comprehensively.
Homework 3.11-1: Bell-LaPadula Formal Analysis
Write a 1,000–1,250 word essay on the Bell-LaPadula model. Include its motivation, formal definitions, security properties, and its practical implications for system design. Discuss the model's limitations, particularly its inability to address integrity and its potential for overly restrictive policies. Provide examples of systems where Bell-LaPadula is appropriate and where it may not be.
Bell-LaPadula Model: Confidentiality Through Mandatory Control
Homework 3.11-2: Biba Model and Integrity
Write a 750–1,000 word paper on the Biba model. Compare it with Bell-LaPadula and explain why integrity is critical in certain systems. Discuss scenarios where Biba would be the preferred model and how it can be combined with other models. Provide a practical example of a Biba policy in a healthcare or financial system.
Biba Model: Ensuring Integrity
Homework 3.11-3: SELinux Policy Development
Research SELinux and write a 1,000–1,250 word guide on creating a custom SELinux policy for a new application. Include steps to define types, domains, rules, and how to transition from permissive to enforcing. Discuss tools like audit2allow, semanage, and seinfo. Provide a simple example of a policy for a hypothetical application.
Developing SELinux Policies: A Practical Guide
Homework 3.11-4: MAC in Cloud Environments
Write a 750–1,000 word analysis of how MAC can be applied in cloud environments. Discuss the challenges of implementing MAC in multi-tenant, dynamic cloud infrastructures. Consider the use of SELinux in containerized environments (e.g., OpenShift, Kubernetes) and the role of MAC in zero-trust architectures. Provide recommendations for organizations considering MAC in the cloud.
MAC in the Cloud: Challenges and Opportunities
Homework 3.11-5: Multilevel Security System Design
Design a multilevel security system for a government agency that handles information at three classification levels (Unclassified, Secret, Top Secret) and multiple categories. The system must enforce both confidentiality (Bell-LaPadula) and integrity (Biba). Describe the labeling scheme, the enforcement mechanisms (e.g., SELinux MLS), the workflow for users, and how auditing is handled. Discuss potential conflicts and how to resolve them.
Multilevel Security System Design
This tutorial provided a comprehensive exploration of Mandatory Access Control (MAC). We defined MAC as a model where access decisions are made by a central authority based on system-wide policies and security labels that are mandatory and non-overridable. We introduced the key concepts of security labels, classification levels, categories, and clearance, and examined two classic formal models: the Bell-LaPadula model (confidentiality) and the Biba model (integrity).
We analyzed the properties of Bell-LaPadula—Simple Security (no read up), *-Property (no write down), and Discretionary Security—and compared them with Biba's Simple Integrity (no read down) and Integrity *-Property (no write up). We discussed how these models can be used together to enforce both confidentiality and integrity in multilevel security systems.
We surveyed real-world MAC implementations: SELinux (complex, label-based, flexible) and AppArmor (simpler, path-based), highlighting their strengths and typical use cases. We evaluated the advantages of MAC—strong, consistent security, resistance to Trojan horses, and information flow control—and its limitations, including complexity, administrative overhead, and rigidity.
The case studies illustrated MAC in a military intelligence system (Bell-LaPadula) and a healthcare integrity system (Biba), demonstrating how MAC is applied in practice to meet specific security requirements. We also discussed best practices for designing and deploying MAC policies, emphasizing testing, auditing, and integration with other controls.
MAC provides a powerful tool for environments where confidentiality or integrity is paramount. However, its rigidity and complexity mean it is not suitable for all contexts. In the next tutorial, Tutorial 3.12, we will explore Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC), which offer more flexible and scalable approaches to access control while still providing strong security enforcement.
© 2026 COMP400 – Computer and Network Security • School of Computing and Information Systems, TrustOpen University • Unit 3: Authentication and Access Control