AppArmor ist ein MAC- Linux-Sicherheitsmodul ( Mandatory Access Control ), das unter anderem von Ubuntu und SUSE Linux verwendet wird. AppArmor-Zugriffssteuerungsregeln werden in AppArmor-Profilen in definiert . Die Profile sind einfach Textdateien, die Informationen zu Ressourcen enthalten, auf die die Anwendung, auf die sich das Profil bezieht, zugreifen darf./etc/apparmor.d/
In der Regel wird beim Entwerfen von Profilen die Anwendung mit dem auf AppArmor eingestellten complain
Modus ausgeführt, in dem Verstöße gegen die Zugriffssteuerung zulässig sind, jedoch protokolliert werden. Mit den Protokollen würde man das Profil iterativ verfeinern. Wenn das Profil fertig ist, kann AppArmor in den enforce
Modus geschaltet werden, in dem die im Profil definierten Zugriffssteuerungsregeln erzwungen und alle Verstoßversuche protokolliert werden.
Der Umriss eines AppArmor-Profils sieht folgendermaßen aus:
#include <tunables/global>
/path/to/application {
[...]
}
Die #include
Richtlinien ermöglichen es, Anweisungen, die sich auf mehrere Anwendungen beziehen, in einer gemeinsamen Datei abzulegen und dann in das Profil jeder relevanten Anwendung aufzunehmen.
Die <tunables/global>
Datei, die wiederum entspricht, /etc/apparmor.d/tunables/global
enthält Definitionen, die für jedes Profil verfügbar sein sollten. Eine dieser zusätzlichen Funktionen ist /etc/apparmor/tunables/home
, die zusammen mit einer @{HOME}/** rw
(oder einer ähnlichen Richtlinie) Anwendungen Zugriff auf Benutzer-Home-Verzeichnisse gewähren.
In diesem Fall müsste eine Profilregel hinzugefügt werden, um den Zugriff auf die Dateien explizit zu verweigern , um den Zugriff auf bestimmte Dateien im Benutzerverzeichnis zu verweigern . Dies kann mithilfe der deny
Direktive erfolgen, wie im folgenden Beispiel:
#include <tunables/global>
/path/to/application {
[...]
# Allow directory listings (i.e. 'r' on directories).
@{HOME}/ r
# This is needed for saving files in the home directory.
@{HOME}/** rw
# Revoke access to specific file
deny /home/user/file rwa
}
Das würde read ( r
), write ( w
) und append ( a
) den Zugriff verweigern /home/user/file
.
Eine Alternative besteht darin, die Pfade, die Sie schützen möchten, zu /etc/apparmor.d/abstractions/private-files
oder hinzuzufügen /etc/apparmor.d/abstractions/private-files-strict
und sicherzustellen, dass das AppArmor-Profil für jede betroffene Anwendung das <abstractions/private-files>
oder enthält <abstraction/private-files-strict>
. Diese Dateien sollten bereits Regeln für allgemeine Dateien enthalten, die aus Datenschutz- oder anderen Sicherheitsgründen geschützt werden sollten.
Eine vollständige Liste der Details zum Zugriffsmodus und weitere Informationen zu AppArmor-Sicherheitsprofilen finden Sie auf der apparmor.d
Handbuchseite und im Novell AppArmor Administration Guide (pdf) .