AppArmor ist eine Sicherheits-Erweiterung für den Linux-Kernel, die die Kontrolle über die Zugriffsrechte von Programmen und Prozessen auf Dateien, Verzeichnisse und andere Ressourcen auf dem System ermöglicht. Es wurde entwickelt, um das Sicherheitsniveau von Linux-Systemen zu erhöhen, indem es eine zusätzliche Schicht der Zugriffskontrolle bereitstellt.
Im Gegensatz zu anderen Sicherheitsmechanismen wie SELinux, das auf Mandatory Access Controls (MAC) basiert, verwendet AppArmor ein Konzept namens „Profil-basierte Sicherheit“. Dabei werden spezifische Profile für einzelne Anwendungen oder Dienste erstellt, die festlegen, welche Ressourcen diese Anwendungen zugreifen dürfen und welche nicht. Diese Profile definieren die erlaubten Zugriffsrechte und Einschränkungen für jeden Prozess.
AppArmor ermöglicht es Administratoren, feingranulare Sicherheitsrichtlinien festzulegen, um bestimmte Anwendungen oder Dienste vor potenziell schädlichen Aktionen zu schützen. Dies kann dazu beitragen, das Risiko von Sicherheitslücken und Exploits zu verringern, indem der Zugriff von Anwendungen auf sensible Systemressourcen eingeschränkt wird.
# This profile is for the Apache web server #include <tunables/global> /usr/sbin/apache2 { # Allow read access to configuration files /etc/apache2/apache2.conf r, /etc/apache2/conf.d/ r, /etc/apache2/conf.d/** r, /etc/apache2/sites-available/ r, /etc/apache2/sites-available/** r, /etc/apache2/mods-available/ r, /etc/apache2/mods-available/** r, # Allow read access to web content /var/www/html/ r, /var/www/html/** r, # Allow write access to logs /var/log/apache2/ rw, /var/log/apache2/** rw, # Allow network access network tcp, network udp, # Allow access to necessary system libraries /lib/** r, /usr/lib/** r, # Allow execution of CGI scripts /usr/lib/cgi-bin/ rix, # Allow access to system time /etc/localtime r, # Allow access to other necessary resources capability net_bind_service, capability setuid, capability setgid, capability dac_override, capability dac_read_search, capability sys_resource, }
Dieses Profil erlaubt dem Apache-Webserver Zugriff auf seine Konfigurationsdateien, das Webinhaltsverzeichnis, die Protokolldateien, das Netzwerk und andere notwendige Ressourcen. Es schränkt jedoch auch den Zugriff auf andere Systemressourcen ein, um das Sicherheitsrisiko zu minimieren.