poldecond1
Se linux policy file analysis tools
Part of slat(1).
Usage
poldecond [-v]
[-oOUTPUT]
[INPUT ...]
slat [-v]
[-a]
[-f]
[-oOUTPUT]
[POLICY
[MLS]]
lts2smv [-v]
[-oOUTPUT]
[LTS
[DIAGRAMS]]
Overview
This manual page briefly describes the slat package. It is used to analyze SE Linux policy, and see if it meets policy goals. It does so by transforming policy and the goals into input for a model checker. The model checker reports policy goal failures it finds.
There are three programs used to prepare input for the model checker, poldecond, slat, and lts2smv.
The poldecond program removes boolean conditional expressions from the policy source. The program extracts the unconditional policy defined by using the default value for each boolean in the input. The value for the first boolean declaration overrides all others, so one can derive other policies by adding boolean declarations with different defaults at the beginning of the input. Better yet, one can place the overriding definitions in their own file and read the policy configuration file after the overriding definitions. The poldecond program's input is obtained by concatenating the content from the input files given on the command line.
The slat program extracts an information flow transition relation as a labeled transition system (LTS) from an unconditional SE Linux policy. A policy file defines the authorized transitions. The multilevel security (MLS) file defines the direction of information flow for each authorized transition.
The slat program can also be used to extract an authorization transition relation and check neverallow statements in the policy. The authorization transition relation as a labeled transition system is obtained by using the -a option, and omitting the MLS file.
Information flow policy goals are expressed in diagram syntax. The lts2smv program transforms an information flow LTS and a sequence of diagrams into SMV model checker input. It will also transform an authorization LTS into SMV model checker input. To see how the diagrams in diagrams.txt translate into SMV syntax without translating a labeled transition system, type:
lts2smv "" diagram.txt
The program NuSMV is a model checker that accepts SMV input syntax. If NuSMV is not installed on your system, the package is available at http://nusmv.irst.itc.it/.
A complete example follows. The policy.conf file is the policy to be analyzed, the mls file is the multilevel security file, the overrides.conf file contains boolean overrides, and disk.txt contains policy goals as diagrams. The results are placed in the disk.log file.
poldecond -o decond-policy.conf overrides.conf policy.conf
slat -o flow.lts decond-policy.conf mls
lts2smv -o disk.smv flow.lts disk.txt
nice time NuSMV -f disk.smv > disk.log 2>&1
Options
-
-v -
display version information and exit
-
-a -
generate an authorization transition relation (slat only)
-
-f -
generate an information flow transition relation (default, slat only)
-
-o OUTPUT -
send output to this file (default stdout)
-
-- -
treat remaining args as file names, where - means stdin