CSC_5SL03_TP-pt3-Tutorial3-BLP-answers
CSC_5SL03_TP-pt3-Tutorial3-BLP-answers
J. Leneutre
Answer
Lipner has proposed a security model that combines aspects of the Bell-LaPadula model and the Biba model6.
The objective of this exercise is to define, with this Lipner model, a security policy satisfying the previous
informal requirements. We will limit ourselves in this exercise to the part related to the aspects of the Bell-
LaPadula model.
5
That is they have read access to all objects except log files..
6
Lipner, S. B., “Non-Discretionary Controls for Commercial Applications”, Proceedings of the IEEE Symposium on
Security and Privacy, 1982.
5
A- Preliminaries
2. Considering the security concepts below indicate for each whether they are taken into account in the
policy described above (explain why):
• Separation of duty,
• Auditability.
Answer:
Separation of duty: At least 2 subjects must participate to complete a critical task. It appears in requirements 3 & 4:
moving a program from the development environment to the production environment is an example of a critical task. In
the case where an application developer has made an error during development, the probability that this error will be
detected will be greater if the subject who installs (and tests) the application is not the developer himself. Moreover, in
the case where the developer wants to deliberately corrupt production data with a malicious program, the subject certifying
the program will eventually be able to detect it.
Auditability: Allows to analyze which action took place and who performed it (imputability). It appears in requirements
4 & 5. It is particularly important to log any movement of an application from the development environment to the
production environment. The audit is based on log files.
Build an access control matrix for the subjects, objects and operations defined above.
6
Answer:
3. If we also want a system controller to be able to execute an application object during development, what
rights should be added?
Answer:
It would be necessary to add an execution right on the application Development Code, but also a write right on Test Data.
4. Rewrite the access control matrix obtained in question 2 by considering only the rights r, w, e and a and
replacing them with their respective access mode (observation and alteration), according to the table above 7:
Access Right r e w a
Access Mode
Observation x x
Alteration x x
Answer:
The matris becomes:
Confidentiality labels
7
This correspondence between rights and access modes is not the one initially considered in Bell LaPadula: for example
in Bell LaPadula the access right e has no effect in term of observation.
7
• PC (« Production Code »): corresponding to production code,
• PD (« Production Data »): corresponding to production data,
• T (« Software Tools »): programs provided by the development environment.
The set LC of privacy labels is defined as usual by : NC x P(CC) (where P(CC) denotes the set of parts of
CC).
Privacy labels will be assigned to objects in such a way that the simple security and confinement properties
(property *) of BLP are verified (we do not consider a current label for subjects, nor the discretionary rule)..
1- The confidentiality label associated with the production data object is (SL,{PC,PD}): explain why ?
Answer:
The label of the production data object must be the same as the label fro user subject, i.e. (SL,{PC,PD}), in
order to satisfy the simple security and confinement rules.
Moreover, this choice is appropriate because:
- the application developer subject can neither observe nor alter the production data object because its
label (SL,{D,T}) is not comparable with (SL,{PC,PD}).
- the system auditors and system controllers subjects can only observe the production data object
because their respective labels (AM,{D,PC,PD,T}) and (SL,{D,PC,PD,T}) strictly dominates
(SL,{PC,PD}).
Answer:
The label assigned to the production code object is (SL,{PC}):
- a user can observe it (simple security property), but cannot alter it (property *) because its label
(SL,{PC,PD}) strictly dominates (SL,{PC});
- an application developer can neither observe nor alter it because its label (SL,{D,T}) is not comparable
with (SL,{PC});
- a system auditor and a system controller will only be able to observe it because their respective labels
(AM,{D,PC,PD,T}) et (SL,{D,PC,PD,T}) strictly dominates (SL,{PC}).
The (SL,{PD}) label could also have been suitable for the same reasons. We choos (SL,{PC}) because its
category (Production Code) corresponds to the type of the object.
3- Could we replace the current lattice of labels with a new one with a single category P (Production) gathering
PC and PD?
Answer:
No, it is not possible to consider a single category P instead of PC and PD, because otherwise the user subject
could then alter the production code object.
4- What are the confidentiality labels associated with development code and test data objects?
Answer:
The development code and test data objects will receive the label (SL,{D,T}) because they must be observed
and altered by an application developer subject. Moreover this label is not comparable with the label
8
(SL,{PC,PD}) of the user subject and is strictly dominated by the respective labels (AM,{D,PC,PD,T}) and
(SL,{D,PC,PD,T}) of the system auditor and system controller subjects.
Answer :
The label of the software tool object is (SL,{T}): the simple security property must be satisfied for all subjects
except the user subject.
6- Knowing that log files are alterable by all subjects, but only observable by a system auditor subject, what is
the confidentiality label assigned to log objects?
Answer :
The log file object must receive the label (AM,{D,PC,PD,T}): to satisfy the simple security property its label
must be dominated by the label of a system auditor subject, and dominate the labels of all other subjects to
respect the *-property.
7- Show that the set of authorized accesses allowed by the Bell LaPadula policy previously obtained is larger
than the set of accesses allowed by the matrix constructed in question A2. Which additional rule of the Bell
LaPadula model must be considered for the two sets to coincide?
Answer :
For example, all subjects have access to the subject log with attributes a and w according to the Bell LaPadula
model, while they should only have access with attribute a. To remedy this, it is sufficient to take into account
the discretionary (ds) property by considering the matrix of question A.2.
8- In the context of Bell LaPadula model, how can the "dedicated procedures" of requirements 2 and 3 be
implemented.
Answer :
Requirement 2: an application developer who does not have the PD category in his label cannot access
production data; if he needs data to test his program, the category of the data must be changed from {PC,PD}
to {D,T}; the label change requires the intervention of a system controller which is a dedicated procedure as
defined in requirement 2.
Requirement 3: the installation of a program requires that the category of the program be changed from {D,T}
to {PC}: only a system controller can change the label and thus perform the installation of an application in
the production system.
The cs privilege introduced in question A.2 allows its holder to modify a security label.
9- Imagine that you add a system program object such that all subjects should be able to use it, but none should
be able to modify it. What would be its label?
9
Answer :
The label of the system program object must be (SL,Æ): it must be strictly dominated by the labels of all
subjects.
10- We wish to add a new subject S, which can modify the production code object without having access to
the production data (this would allow us to model, for example, the deletion of a version of an obsolete
application, or the update of a version). Show that there is no confidentiality label lattice allowing to take into
account the subject S.
Answer :
Subject S should have an alter mode access (at least) on the production code object, without being able to alter
the production data subject, nor observe it.
Supposed that there exists a label for each subject and object so that it is possible to model the previous
matrix. The labels indicated in the matrix should satisfy the following conditions when reading each
line of the table from left to right:
- cond1 : L1>L3
- cond2 : L1=L4
- cond3 : L3>L2
- cond 4 : L2 n.c. L4 (L2 and L4 are not comparable)
According to conditions 1 and 2, L4>L3. Using condition 3, we deduce that L4>L2, which is in
contradiction with condition 4. Therefore there does not exist a lattice of labels so that it is possible to
model the previous matrix.
10
Exercise 3: Unix Data General B2 System
The operating system Unix Data General B2 (DG/UX B2) implements a mandatory acces control policy
(MAC) based on a multi-level security model. This access control Policy uses security labels corresponding
The access control Policy of DG/UX B2 applies the simple security rule and the confinement rule (or *-
property) from Bell Lapadula model (a third rule is discussed in question c).
The subjects are the users and the processes. The security labels are affected to subjects as follows:
- The initial label of a user is stored in the “A&A database” from the “Administrative region”.
- When a process is created, it inherits the label of the parent process.
The objects are the files and the directories. The labels of the objects can be either explicit, or implicit. An
explicit label will be stored by the system in the attributes of the object. An implicit label is determined from
the parent directory label. This notion of implicit label is used for symbolic links. How the labels are affected
is not in the scope of this exercise.
Answer : The “Virus Prevention region” contains the system programs. According to the confinement
Figure 2: Unix Data Genral B2 System regions
property of BLP, no subject from the “User region”, i.e. no user is able to modify them. A virus running in
“User region” will therefore never be able to modify system programs in “Virus Prevention region” to copy
itself.
Answer: According to the simple property of BLP, users cannot read the datas in “Administrative region”
which is reserved to data relevant to the management of security (definition of labels, logs).
A subject with label l1 is not authorized to alterate an object with label l2, such that l2 strictly dominates l1.
Explain why?
Answer: Let consider two labels l1 and l2 such that l2> l1, two processes p1 with label 11 and p2 with label
l2, and two files f1 with label l1 and f2 with label l2, a directory d with label l1.
By reiterating the previous protocol, p1 can write the content of f2 inside f1, therefore creating an
information flow from an upper label to a lower label: this is a covert channel!
j- The restriction of question d forbids usual manual operations such as compilation or the access to mail
(which requires the access to directories /tmp8 and /var/mail). To avoid this limitation, DG/UX B2
introduces a mechanism called “multi-level directory”. Imagine what could be this mechanism.
Answer: A “multi-level directory” is a directory with a set of hidden sub-directories, one for each
possible value of label. These sub-directories are invisible for a user, and if a process with lavel l tries
to create a file in /tmp, the file will be in fact created in the sub-directory of /tmp with label l.
8
Temporary directory in which files from all the users maybe be stored for a given period of time.
12