Summary

This specification defines administration tools used to setup and apply security profiles to programs and manage security frameworks.

Rationale

The main security frameworks (SELinux and AppArmor) are in Ubuntu repositories. However, their setup and management are not easy and relies mainly on command line tools.

SELinux is already in the kernel and the utilities are in universe. There are a number of profiles installed by default. Profiles have been tested in Debian and RHEL/Fedora.

AppArmor is not included in the kernel. All the packages are in universe. There are a number of profiles installed by default. Profiles have been tested in Novell/SELS.

Use Cases

Scope

This specification focuses on a high level management of security policies. It should be made easy to activate and deactivate security profiles for services. It should be possible to update the profile according to the audit logs.

Policy edition is out of the scope of this specification. It requires a great knowledge of the security frameworks and the syntax of their respective configuration files.

Design

Good profiles

Administration tools

Functionalities :

The administration tools should be security framework agnostic.

Different user interface should be provided :

Implementation

Good profiles

List of profiles

The base profiles shipped with upstream AppArmor can be used as a starting point. As a first step, profiles for all network services in main should be provided.

Where profiles should be included

Profile testing

In order to improve the quality of profiles, feedback from users should be leveraged.

Integration with [Apport], logcheck.

Event auditing

Both AppArmor and SELinux use the audit sub-system of the kernel to log information. If the audit daemon is running, it will dump all the events into /var/log/audit/audit.log. If not, audit messages are handled by syslog and sent to /var/log/messages by default.

AppArmor provided a daemon (aa-eventd in utils) that scans log files and dumps audit messages into an sqlite database for further processing by reporting tools. The main reason for doing this is speed.

Reporting tools

AppArmor provides a perl module that can generate reports using the sqlite database. The module is used by Yast.

The audit package provides tools (ausearch, aureport) to extract information from the audit logs. SELinux is supported. AppArmor support is very basic.

Administration tool

Command line scripts

Console based interface

GUI interface

Ressources

Security module backends

AppArmor requires a manual compilation of the kernel module. The solution is to include AppArmor in the kernel.

Enable/disable apparmor :

Activation of a new profile : restart apparmor :

There are some basic command line scripts in apparmor-utils. They are shipped by upstream and written in perl.

AppArmor now in feisty

UsingAppArmor

Enable/disable selinux : SELinux has to be activated on the kernel command line, at the bootloader level. Enabling/disabling it requires rebooting the system.

Activation of a new profile :

Frameworks can be in three different states :

Outstanding Issues

the compilation of a module. AppArmor has been posted on the lklm for inclusion in April 2007. Response has been much better compared to the previous request. Utilities can be moved into main.

Utilities can be moved into main.

BoF agenda and discussion

SELinux and AppArmor profile integration/conversion tool.

Break down the spec.

Testing that profile works by replacing the binary with another one and making sure that policy violation are reported.


CategorySpec

SecurityModuleAdminTool (last edited 2008-08-06 16:28:34 by localhost)