2021-04-02 19:13:03 +02:00
[< img src = "https://gitlab.com/uploads/-/system/project/avatar/25600351/logo.png" align = "right" height = "110" / > ][project]
2021-11-30 19:36:04 +01:00
# apparmor.d
2023-12-04 23:31:42 +01:00
[![][workflow]][action] [![][build]][project] [![][quality]][goreportcard] [![][matrix]][matrix-link]
2021-04-02 19:13:03 +02:00
2021-05-09 16:08:26 +02:00
**Full set of AppArmor profiles**
2021-04-02 19:13:03 +02:00
2023-09-20 20:01:52 +02:00
> [!WARNING]
2024-03-16 20:27:45 +01:00
> This project is still in its early development. Help is very welcome; see the [documentation website](https://apparmor.pujol.io/) including its [development](https://apparmor.pujol.io/development) section.
2021-05-09 01:50:07 +02:00
2023-01-29 23:13:58 +01:00
## Description
2021-05-09 16:08:26 +02:00
2024-03-16 20:27:45 +01:00
**AppArmor.d** is a set of over 1500 AppArmor profiles whose aim is to confine most Linux based applications and processes.
2021-05-09 16:08:26 +02:00
2023-01-29 23:13:58 +01:00
**Purpose**
2021-05-09 16:08:26 +02:00
2023-01-29 23:13:58 +01:00
- Confine all root processes such as all `systemd` tools, `bluetooth` , `dbus` ,
2023-01-31 22:13:35 +01:00
`polkit` , `NetworkManager` , `OpenVPN` , `GDM` , `rtkit` , `colord`
2023-01-29 23:13:58 +01:00
- Confine all Desktop environments
- Confine all user services such as `Pipewire` , `Gvfsd` , `dbus` , `xdg` , `xwayland`
2024-06-07 21:42:41 +02:00
- Confine some *"special"* user applications: web browsers, file managers, etc
2023-01-29 23:13:58 +01:00
- Should not break a normal usage of the confined software
2021-05-09 16:08:26 +02:00
2023-01-29 23:13:58 +01:00
**Goals**
2021-05-09 01:50:07 +02:00
2023-01-31 22:13:35 +01:00
- Target both desktops and servers
2023-01-29 23:13:58 +01:00
- Support all distributions that support AppArmor:
2024-06-07 21:42:41 +02:00
* Arch Linux
2023-02-05 01:22:21 +01:00
* Ubuntu 22.04
2023-06-18 12:44:56 +02:00
* Debian 12
2023-02-05 01:22:21 +01:00
* OpenSUSE Tumbleweed
2024-06-07 21:42:41 +02:00
- Support for all major desktop environments:
2024-01-28 00:13:43 +01:00
* Gnome
2024-04-28 18:47:07 +02:00
* KDE
* XFCE *(work in progress)*
2023-01-31 22:13:35 +01:00
- Fully tested (Work in progress)
2021-04-02 19:13:03 +02:00
2022-09-13 19:14:58 +02:00
2024-03-16 20:27:45 +01:00
> This project is originally based on the work from [Morfikov][upstream] and aims to extend it to more Linux distributions and desktop environments.
2021-04-02 19:13:03 +02:00
2023-01-29 23:13:58 +01:00
## Concepts
2021-04-02 19:13:03 +02:00
2023-01-29 23:13:58 +01:00
*One profile a day keeps the hacker away*
2021-04-02 19:13:03 +02:00
2024-03-16 20:27:45 +01:00
There are over 50000 Linux packages and even more applications. It is simply not possible to write an AppArmor profile for all of them. Therefore, a question arises:
2022-09-13 19:28:27 +02:00
2023-01-29 23:13:58 +01:00
**What to confine and why?**
2022-02-08 22:13:31 +01:00
2024-03-16 20:27:45 +01:00
We take inspiration from the [Android/ChromeOS Security Model][android_model], and we apply it to the Linux world. Modern [Linux security distributions][clipos] usually consider an immutable core base image with a carefully selected set of applications. Everything else should be sandboxed. Therefore, this project tries to confine all the *core* applications you will usually find in a Linux system: all systemd services, xwayland, network, Bluetooth, your desktop environment... Non-core user applications are out of scope as they should be sandboxed using a dedicated tool (minijail, bubblewrap, toolbox...).
This is fundamentally different from how AppArmor is usually used on Linux servers as it is common to only confine the applications that face the internet and/or the users.
2021-04-02 19:13:03 +02:00
2023-11-09 18:28:33 +01:00
**Presentations**
2023-06-13 18:11:30 +02:00
2024-06-07 21:42:41 +02:00
Building the largest set of AppArmor profiles:
2023-11-09 18:28:33 +01:00
- [Linux Security Summit North America (LSS-NA 2023) ](https://events.linuxfoundation.org/linux-security-summit-north-america/ ) *([Slide](https://lssna2023.sched.com/event/1K7bI/building-the-largest-working-set-of-apparmor-profiles-alexandre-pujol-the-collaboratory-tudublin), [Video](https://www.youtube.com/watch?v=OzyalrOzxE8))*
2024-01-28 00:13:43 +01:00
- [Ubuntu Summit 2023 ](https://events.canonical.com/event/31/ ) *([Slide](https://events.canonical.com/event/31/contributions/209/), [Video](https://www.youtube.com/watch?v=GK1J0TlxnFI))*
2021-12-05 20:17:53 +01:00
2023-01-29 23:13:58 +01:00
## Installation
2022-10-17 23:43:36 +02:00
2023-01-29 23:13:58 +01:00
Please see [apparmor.pujol.io/install ](https://apparmor.pujol.io/install )
2023-01-28 23:29:33 +01:00
2023-01-29 23:13:58 +01:00
## Configuration
2021-12-05 20:17:53 +01:00
2023-01-29 23:13:58 +01:00
Please see [apparmor.pujol.io/configuration ](https://apparmor.pujol.io/configuration )
2021-12-05 20:17:53 +01:00
2021-08-02 12:54:58 +02:00
## Usage
2023-01-29 23:13:58 +01:00
Please see [apparmor.pujol.io/usage ](https://apparmor.pujol.io/usage )
2021-08-02 12:54:58 +02:00
2021-05-09 01:50:07 +02:00
## Contribution
2023-01-29 23:36:16 +01:00
Feedbacks, contributors, pull requests are all very welcome. Please read
[apparmor.pujol.io/development ](https://apparmor.pujol.io/development )
for more details on the contribution process.
2021-05-09 01:50:07 +02:00
2023-12-04 23:31:42 +01:00
Development chat available on https://matrix.to/#/#apparmor.d:matrix.org
2021-05-09 01:50:07 +02:00
## License
2023-01-29 23:13:58 +01:00
This Project was initially based on Mikhail Morfikov's [apparmor profiles project][upstream]
and thus has the same license (GPL2).
2021-05-09 01:50:07 +02:00
[upstream]: https://gitlab.com/morfikov/apparmemall
[project]: https://gitlab.com/roddhjav/apparmor.d
2023-01-29 23:13:58 +01:00
[build]: https://gitlab.com/roddhjav/apparmor.d/badges/main/pipeline.svg?style=flat-square
2023-01-29 23:36:16 +01:00
[workflow]: https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Froddhjav%2Fapparmor.d%2Fbadge%3Fref%3Dmain& style=flat-square
[action]: https://actions-badge.atrox.dev/roddhjav/apparmor.d/goto?ref=main
2021-11-30 19:36:04 +01:00
[quality]: https://img.shields.io/badge/go%20report-A+-brightgreen.svg?style=flat-square
[goreportcard]: https://goreportcard.com/report/github.com/roddhjav/apparmor.d
2023-12-04 23:31:42 +01:00
[matrix]: https://img.shields.io/badge/Matrix-%23apparmor.d-blue?style=flat-square& logo=matrix
[matrix-link]: https://matrix.to/#/#apparmor.d:matrix.org
2021-05-09 16:08:26 +02:00
[android_model]: https://arxiv.org/pdf/1904.05572
[clipos]: https://clip-os.org/en/
2022-07-03 19:55:21 +02:00
[write xor execute]: https://en.wikipedia.org/wiki/W%5EX