We're in the process of merging the changes for the 3 Smack domain policy. This 
will have a global impact on the Tizen system, but for the most part will make 
it much simpler for everyone who is not directly involved with implementing 
system security.

Packaging:

We will no longer be doing package based domains. The manifest files have been 
changed to reflect this. With rare exception the manifest file should add a 
package to the floor domain and do nothing else. The security team, especially 
Bumjin and Casey, will be taking the lead on any manifest changes beyond that. 
If your manifest has been updated by the security team and you don't know why, 
don't hesitate to ask.

The floor domain:

Only kernel helper processes run in the floor ("_") domain. System data files, 
programs and libraries are stored in the floor domain. The contents of the 
floor domain are generally readable.


The System domain:

We are using systemd as the manager of the domain called "System". Because 
systemd is the initial process and its children will inherit the Smack label, 
the services launched by systemd will run in the System domain. The /run 
directory will be maintained as a transmuting filesystem labeled "System::Run". 
The System domain will have full access to the label System::Run. The /run 
directory contains all sorts of subdirectories and files used to communicate 
between systemd and the services it manages. The network label used for 
unlabeled packets (the ambient label) has been set to System, allowing network 
services to communicate off-box.

The journal daemon requires read access to all files in /proc. This is 
accomplished by running the daemon in a peer domain called hat ("^") of the 
System domain.

The User domain:

The user experience is provided by the display manager and the application 
launcher. They have been set to run in the User domain. The appropriate 
manifest files will be updated as part of the merge. Because these services are 
managed by systemd the User domain is granted access to the System::Run label 
and hence the /run directory. The /run directory is a resource managed by 
systemd and must not be used as a repository for other data.

IVI:

The ivi project has been used to verify the implementation of the 3 domain 
policy. Labeling of devices should be complete and correct for ivi. The display 
manager used is weston, and the program /usr/bin/weston-launch given a Smack 
execution attribute of "User". The application launcher for ivi is 
launchpad_preloading_preinitializing_daemon, which has also been given the 
Smack execution attribute of "User". These two programs are the basis of the 
User domain for ivi.

Mobile:

There is no User domain entry point identified for mobile. The entire system, 
including applications, will run in the System domain until the base for the 
User domain is fully identified.

Next Step:

The changes required for the Linux kernel have been accepted. The systemd and 
related changes are poised. The User domain setup will go in once the systemd 
changes are in. We're waiting on a toolchain change that will allow images to 
be built with the correct labeling.

Once that is in place we will start polishing access rules and looking into 
peer domains.

_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to