TOMOYO Linux is a Mandatory Access Control (MAC) implementation for Linux that can be used to increase the security of a system, while also being useful purely as a system analysis tool. It was launched in March 2003 and had been sponsored by NTT DATA Corporation, Japan until March 2012.
TOMOYO Linux focuses on the behaviour of a system. Every process is created to achieve a purpose, and like an immigration officer, TOMOYO Linux allows each process to declare behaviours and resources needed to achieve their purpose. When protection is enabled, TOMOYO Linux acts like an operation watchdog, restricting each process to only the behaviours and resources allowed by the administrator.
@ Replace trust_domain with keep_domain.
Since it was troublesome that there are two elements that can disable MAC
(assigning a profile that doesn't enable MAC or registering domains
with trust_domain directive), I removed trust_domain directive.
Instead, I introduced keep_domain directive to not to transit domains
unless a program registered with initializer directive is executed.
This change has the following advantages.
(1) Allows administrator use "enforce mode" for operations after login.
Since it was difficult to know what commands and files are invoked
and accessed in what sequences beforehand, we had to use trust_domain
directive for such domain, allowing users invoke any commands and
access any files in any sequence.
But now, we can use keep_domain directive and assign a profile for
"enforce mode" for such domain, forcing users invoke only allowed
commands and access only allowed files in any sequence
while these operations are kept under the control of "enforce mode".
(2) Allows administrator determine easily whether the domain is
under MAC or not because only the profile currently assigned to
the domain determines it.
(3) Saves total number of domains and memory.
@ Don't allow use of undefined profile.
To avoid assigning undefined profile to domains by error,
I added checks before assigning profiles to domains.
Now, profiles have to be defined prior to assigning them to domains.
Version 1.3.1 2006/12/08 Minor update release.
@ Fix CheckSingleWritePermission2() in fs/tomoyo_file.c .
I forgot to clear error in accept mode, resulting
all permissions may not be recorded at one time.
If you repeat three times, all permissions are recorded.
@ Fix AuditArgv0Log() in fs/tomoyo_exec.c .
I forgot to add strlen(argv0), resulting audit logs
could be truncated if argv is very long.