Linux Security

AppArmor unter Linux – Anwendungen effektiv absichern und das System härten

Nicht jede Sicherheitslücke lässt sich durch Updates oder Firewalls verhindern. Wird eine Anwendung kompromittiert, kann sie im schlimmsten Fall auf das gesamte System zugreifen. Genau hier setzt AppArmor an: Das Linux Security Module begrenzt die Rechte einzelner Anwendungen und verhindert so, dass ein erfolgreicher Angriff das komplette System gefährdet. In diesem Beitrag erfährst du, wie AppArmor unter Debian 13 funktioniert, installiert, konfiguriert und optimal eingesetzt wird.

4 min Lesezeit
Grafik: AppArmor - Linux-Anwendungen effektiv absichern

Was ist AppArmor?

AppArmor (Application Armor) ist ein Linux Security Module (LSM), das Anwendungen mithilfe von Sicherheitsprofilen einschränkt.

Im Gegensatz zu klassischen Benutzerrechten entscheidet AppArmor nicht nur, welcher Benutzer auf Dateien zugreifen darf, sondern auch welches Programm welche Aktionen ausführen darf.

Dadurch wird selbst ein Prozess mit Root-Rechten auf die ausdrücklich erlaubten Ressourcen beschränkt.

AppArmor gehört zu den effektivsten Maßnahmen für das sogenannte System-Hardening.


Warum ist AppArmor wichtig?

Viele Angriffe laufen nach einem ähnlichen Muster ab:

  1. Eine Schwachstelle in einer Anwendung wird ausgenutzt.
  2. Der Angreifer erhält Zugriff auf den Prozess.
  3. Anschließend versucht er, auf weitere Dateien oder Dienste zuzugreifen.
  4. Im schlimmsten Fall übernimmt er den gesamten Server.

Mit AppArmor wird dieser letzte Schritt erheblich erschwert, da jede Anwendung nur auf zuvor definierte Ressourcen zugreifen darf.

Selbst wenn beispielsweise ein Webserver kompromittiert wird, kann er ohne entsprechendes Profil weder beliebige Dateien lesen noch Systembefehle ausführen.


Vorteile von AppArmor

AppArmor bietet zahlreiche Vorteile:

  • Open Source
  • direkt im Linux-Kernel integriert
  • geringer Ressourcenverbrauch
  • einfache Profilverwaltung
  • anwendungsbezogene Zugriffskontrolle
  • Schutz vor Privilegienausweitung
  • ideal für Server und Desktop-Systeme
  • bereits bei vielen Distributionen vorinstalliert
  • hervorragend für Container geeignet

AppArmor und Mandatory Access Control (MAC)

Linux verwendet standardmäßig das klassische Berechtigungssystem (DAC – Discretionary Access Control).

Dabei entscheidet der Eigentümer einer Datei über deren Zugriffsrechte.

AppArmor ergänzt dieses Modell um Mandatory Access Control (MAC).

Das bedeutet:

Selbst wenn Dateiberechtigungen einen Zugriff erlauben würden, kann AppArmor diesen trotzdem verbieten.

Dadurch entsteht eine zusätzliche Sicherheitsebene.


Installation unter Debian 13

Unter Debian 13 ist AppArmor meist bereits installiert.

Prüfen:

sudo aa-status

Ist AppArmor nicht vorhanden, erfolgt die Installation mit:

sudo apt update
sudo apt install apparmor apparmor-utils apparmor-profiles apparmor-profiles-extra

Anschließend den Dienst aktivieren:

sudo systemctl enable apparmor
sudo systemctl start apparmor

Status prüfen:

sudo systemctl status apparmor

Läuft AppArmor?

Status anzeigen:

sudo aa-status

Beispiel:

apparmor module is loaded

120 profiles are loaded

95 profiles are in enforce mode

25 profiles are in complain mode

Diese Ausgabe zeigt bereits, welche Programme geschützt werden.


Die Betriebsmodi

AppArmor kennt hauptsächlich zwei Betriebsarten.

Enforce Mode

Hier werden Verstöße aktiv blockiert.

enforce

Die Anwendung darf ausschließlich die erlaubten Aktionen durchführen.


Complain Mode

complain

Alle Verstöße werden lediglich protokolliert.

Dies eignet sich hervorragend zum Erstellen neuer Profile.


Profile finden

Alle Profile befinden sich unter:

/etc/apparmor.d/

Beispiele:

/usr/sbin/apache2
/usr/bin/man
/usr/bin/evince

Jede Anwendung besitzt ein eigenes Profil.


Profilstatus anzeigen

sudo aa-status

Nur geladene Profile:

sudo apparmor_status

Profil in den Enforce-Modus setzen

sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2

Profil in den Complain-Modus setzen

sudo aa-complain /etc/apparmor.d/usr.sbin.apache2

Profil deaktivieren

sudo ln -s /etc/apparmor.d/usr.sbin.apache2 \
/etc/apparmor.d/disable/

sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.apache2

Profil wieder aktivieren

sudo rm /etc/apparmor.d/disable/usr.sbin.apache2

sudo systemctl reload apparmor

Eigenes Profil erstellen

Neue Profile lassen sich komfortabel erzeugen.

sudo aa-genprof /usr/local/bin/meinprogramm

Während der Programmausführung analysiert AppArmor alle Zugriffe.

Anschließend können diese übernommen werden.


Profile automatisch erweitern

sudo aa-logprof

Dieses Werkzeug analysiert die Logdateien.

Neue Zugriffe können anschließend bequem übernommen werden.

Gerade bei der Profilerstellung spart dies enorm viel Arbeit.


Logs auswerten

AppArmor protokolliert Verstöße im Journal.

Beispielsweise:

journalctl -xe | grep apparmor

oder

dmesg | grep apparmor

Typische Meldung:

apparmor="DENIED"

Hier wird genau angezeigt:

  • Anwendung
  • Benutzer
  • Datei
  • Zugriffstyp

Typische geschützte Anwendungen

AppArmor eignet sich besonders für:

  • Apache
  • Nginx
  • PHP-FPM
  • MariaDB
  • PostgreSQL
  • Redis
  • OpenSSH
  • Dovecot
  • Postfix
  • Docker
  • Podman
  • Samba
  • Bind9

Gerade öffentlich erreichbare Dienste profitieren erheblich.


AppArmor bei Docker

Auch Docker nutzt AppArmor.

Aktuelles Profil anzeigen:

docker inspect CONTAINERNAME

Dort erscheint beispielsweise:

docker-default

Eigene Profile können Container zusätzlich absichern.


Unterschiede zu SELinux

Beide Systeme verfolgen dasselbe Ziel.

FunktionAppArmorSELinuxEinrichtungEinfachKomplexProfilePfadbasiertKontextbasiertLernaufwandGeringHochDebianStandardOptionalUbuntuStandardOptionalRHELOptionalStandardPerformanceSehr gutSehr gutFlexibilitätHochSehr hoch

Für Debian- und Ubuntu-Server ist AppArmor meist die unkompliziertere Wahl.


Kombination mit weiteren Sicherheitswerkzeugen

AppArmor ergänzt andere Sicherheitslösungen ideal.

Empfehlenswert sind:

  • UFW
  • Fail2ban
  • Lynis
  • RKHunter
  • AIDE
  • auditd
  • ClamAV
  • Wazuh
  • OSSEC

Während beispielsweise AIDE Dateiveränderungen erkennt, verhindert AppArmor viele Angriffe bereits im Vorfeld.


Best Practices

Für einen sicheren Linux-Server empfiehlt sich:

  1. AppArmor direkt nach der Installation aktivieren.
  2. Alle vorhandenen Profile im Enforce-Modus betreiben.
  3. Eigene Anwendungen mit Profilen absichern.
  4. Logs regelmäßig kontrollieren.
  5. Neue Profile zunächst im Complain-Modus testen.
  6. Nur benötigte Zugriffe erlauben.
  7. Profile regelmäßig überprüfen.
  8. AppArmor aktuell halten.
  9. Mit Firewalls und Intrusion Detection kombinieren.
  10. Nach Softwareupdates die Profile erneut testen.

Grenzen von AppArmor

AppArmor erhöht die Systemsicherheit erheblich, ersetzt jedoch keine weiteren Schutzmaßnahmen.

Nicht abgedeckt werden beispielsweise:

  • Netzwerk-Firewall
  • Malware-Erkennung
  • Rootkit-Erkennung
  • Schwachstellenscanner
  • Integritätsprüfungen
  • Sicherheitsupdates

AppArmor sollte deshalb immer Bestandteil eines umfassenden Sicherheitskonzepts sein.



AppArmor gehört zu den wirkungsvollsten Sicherheitsmechanismen unter Linux. Durch die konsequente Einschränkung von Anwendungen auf die tatsächlich benötigten Ressourcen lassen sich zahlreiche Angriffe bereits im Ansatz verhindern. Selbst wenn eine Anwendung kompromittiert wird, begrenzt AppArmor die möglichen Auswirkungen erheblich.

Besonders auf Debian-13-Servern ist AppArmor schnell eingerichtet und dank der mitgelieferten Profile sofort einsatzbereit. In Kombination mit einer Firewall, regelmäßigen Sicherheitsupdates, Intrusion-Detection-Werkzeugen wie AIDE und RKHunter sowie Hardening-Analysen mit Lynis entsteht ein mehrschichtiges Sicherheitskonzept, das Linux-Systeme nachhaltig schützt.