Apparmor Funktionsweise

Aus xinux.net
Zur Navigation springen Zur Suche springen

Grundsätzliches

  • App Armor ist auch ein System zur Umsetzung von Mandatory Access Control.
  • AppArmor ergänzt, die standardmäßige Discretionary Access Control (DAC), anstatt sie zu ersetzen.
  • Daher ist es unmöglich, einem Prozess mehr Privilegien zu gewähren, als er ursprünglich hatte.
  • Ubuntu, SUSE und eine Reihe anderer Distributionen verwenden es standardmäßig.
  • Es unterscheidet für jede einzelne Datei, ob der erbetene Zugriff erlaubt ist oder nicht..
  • Ganz gleich welcher Benutzer den Zugriff auf ein bestimmtes Objekt anfragt – er hat aus Sicht von App Armor exakt die gleichen Rechte wie alle anderen Benutzer auch.
  • Das einzige Kriterium, das für App Armor überhaupt eine Rolle bei der Entscheidung spielt, ob es den Zugriff auf ein Objekt erlaubt, ist dessen Pfad im System.

Profile

  • Die Regeln für dieses Spiel sind in so genannten Profiles definiert: Ein App-Armor-Profil legt die Zugriffsregeln für Programme im System fest.
  • Ein App-Armor-Profil für den Daemon »sshd« könnte zum Beispiel festlegen, dass dieses Programm auf die Datei »/etc/ssh/sshd_config« lesend zugreifen darf.
  • Führt Systemd das Programm »sshd« dann beim Systemstart tatsächlich aus, überprüft App Armor, dessen Systemaufrufe.
  • Es winkt sie durch oder blockiert sie, wenn der Daemon auf Ressourcen zugreifen will, die ihm nicht erlaubt wurden.
  • Die Profildateien liegen im Klartext-Format alle im Verzeichnis »/etc/ apparmor.d«.
  • Dort liest ein Hilfsprogramm sie aus und lädt sie beim Start des Systems in den laufenden Kernel.
  • Das hat aus Sicht des Nutzers den Vorteil, dass es sehr einfach ist, zusätzliche App-Armor-Profile hinzuzufügen.
  • Tatsächlich genügt es, ein syntaktisch korrektes File in den genannten Ordner zu platzieren.
  • Anschließend den Befehl »aa-enforce Programm« als Benutzer Root auf der Kommandozeile aufzurufen.
  • Programm ist dabei durch den Namen des Programms zu ersetzen, auf den sich das App-Armor-Profil beziehen soll.
  • Und das war es dann auch schon: Ab sofort schaut App Armor dem genannten Binary genau auf die Finger.

Konfiguration

  • Jeder Richtlinienverstoß löst eine Meldung im Systemprotokoll aus.
  • AppArmor kann so konfiguriert werden, dass Benutzer mit Warnungen zu Verstößen in Echtzeit benachrichtigt werden, die auf dem Desktop angezeigt werden.

Wie komme ich an Profile

  • Profile generieren lassen.
  • Profile manuell schreiben.
  • Profile von anderen benutzen und gegebenenfalls anpassen.