FICCDocumentation
nightly prerelease / Version 0.3.0.dev1Project website
Reference library
Maintain
On this page
  1. Review, install and qualify
  2. Rollback

AppArmor prerequisite for executable modules#

This optional administrator action prepares Ubuntu hosts that restrict unprivileged user namespaces and lack a working Bubblewrap profile. It does not enable a module. FICC still requires its exact namespace, syscall and cgroup probe to succeed before executable activation.

The profile attaches to /usr/bin/bwrap, so it also applies to other applications that execute that binary. Its bootstrap may use capabilities needed to construct the isolated environment. Every executed child receives a stacked profile that denies capabilities. The profile alone does not restrict arbitrary file paths. FICC's read-only mounts, hidden home and sockets, private namespaces, seccomp rules and resource controls provide the rest of the execution boundary.

This is a scoped executable policy, not a change to the global user-namespace sysctl. Do not disable AppArmor, use a complain-mode profile or give a module a general unconfined profile to make the probe pass. The installer refuses known conflicting bwrap policies and never replaces a different policy file. An administrator must review any existing policy or attachment ambiguity first.

The rule structure comes from the AppArmor project's ABI 4.0 bwrap profile, with FICC-specific profile names and optional local overrides removed. This separate policy is GPL-2.0-only under the upstream license; the full license is in COPYING. The installer and this document are Apache-2.0.

Ubuntu describes the restricted namespace capability transition and recommends a purpose-built bwrap profile with constrained children in its security explanation. Its AppArmor documentation describes loading and removing individual profiles.

Review, install and qualify#

Read ficc-module-bwrap and install.sh. The check action compiles policy without loading it or writing the parser cache. It needs no administrator access.

sh
bash tools/module-sandbox-policy/install.sh check

Only after administrator review, install from a trusted checkout:

sh
sudo bash tools/module-sandbox-policy/install.sh install

The command writes only /etc/apparmor.d/ficc-module-bwrap and loads its two profiles. It requires ABI 4.0 support and the namespace restriction to be enabled. It does not restart AppArmor or change other profile files. The installed file loads through the normal AppArmor startup mechanism. Loading failures trigger removal; a failed rollback retains the file and reports the recovery requirement.

Start FICC as the ordinary desktop account, then check its actual service sandbox:

sh
ficc module-sandbox

For custom state, pass the same --state-dir path as the launcher. The Module manager also provides Check module sandbox. Do not run FICC as root. Require available: true, then run real installed-module isolation and lifecycle tests before claiming the platform is qualified. A syntax check is not a security qualification. Other applications using Bubblewrap need a smoke check because the child capability restriction can affect their existing workflows.

Rollback#

Disable executable modules and stop the FICC controller and other active bwrap jobs. The removal command refuses while a process uses these profiles or if the installed file differs from the reviewed source:

sh
sudo bash tools/module-sandbox-policy/install.sh remove

It unloads only ficc_module_bwrap and ficc_module_payload, then removes the matching policy file. The namespace sysctl and unrelated profiles remain intact. On a host requiring this prerequisite, executable activation will fail closed again after removal. Declarative workspace components do not launch a process.

FICC / DocumentationBack to top

Search documentation

Press Escape to close

Loading search...

    Reading appearance

    Choose colours, surfaces and text independently. These settings are saved for this documentation site in this browser.

    Flat surfaces remove decorative materials. Typography is a separate choice. Increased contrast uses the Contrast palette. System forced colours always take precedence.