Roadmap
Toward a stable release¶
This is the current list of features that must be implemented to get to a stable release
-
- Move most profiles into groups
- Provide complain/enforced packages version
- normal/FSP/server packages variants
-
Build system
- Continuous release on the main branch, ~2 releases per week
- Provide packages repo for ubuntu/debian
- Add a
just
target to install the profiles in the right place - Fully drop the Makefile in favor of
just
-
Tests
- Tests VM for all supported targets (see tests/vm)
- Small integration tests for all core profiles (see tests/integration)
-
Documentation
- Initial draft of the security model and goal
- General documentation improvements
-
General improvements
-
Abstractions
- Document all abstractions
- Split and reorganize some big abs into set of smaller abstractions. Strictly follow the new abstractions guidelines (layer 0, layer 1, etc.)
- Abstraction based profiles: Most of the accesses needed by GUI based application are commons. As such 80-90% of the profile content should be handled by abstractions (internally they will have conditions).
-
Test new interface like abstractions - notifications - audio-bluetooth - secrets-service - media-keys - ...
- Rewrite the desktop abstraction to only contains other abs. No direct rules in it.
- Rewrite the DE specific abstraction to be a layer 1 abs
-
Security improvements
- Limit the use of
abstractions/common/systemd
- Ensure systemctl restart/stop/reload is always confined and filtered by unit (dbus only)
- Revisit the usae of
systemd-tty-ask-password-agent
- Limit the use of
Next features¶
-
Conditions
- Integrate the new condition feature in the profiles and restrict them a lot according to the application actually in use. Eg:
Gnome | KDE
,X11 | Wayland
, etc. - Create a new
aa-config
tool, similar to seboolean, to manage various settings, based on conditions.
- Integrate the new condition feature in the profiles and restrict them a lot according to the application actually in use. Eg:
-
User Data
- Fully rewrite the way user data is allowed / denied. The current implementation requires too much configuration to be usable by everyone.
- Add a prompt listener to handle the user data access.
-
- Debug tool to show the profiles transition tree, and ensure no profile is missing
- Remove the
default
profile
-
Define roles
- Unrestricted shell role without FSP enabled
- Define the roles when FSP is enabled
Done¶
General improvements
- The apt/dpkg profiles has been rewritten
Abstractions
- New
audio-client
andaudio-server
abstractions - New desktop agnostic
desktop
abstraction for all common access for any GUI app. - New
graphics
abstraction, hardware-agnostic. Fully replace and restrict the oldopencl
abstractions - All new abstractions are documented in the abstractions page
Dbus
- New
dbus-{system,session,accessibility}
profiles. Works regardless of the dbus implementation in use. - New talk directive: Allow the application to talk to session services. (send to)
- New own directive: Allow the application to own session services under the given name. (receive, send, bind)
- New
bus-{system,session,accessibility}
abstraction to be used in the profiles
Directives
- Add directive. See the directive page