Apparmor Funktionsweise: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „*App Armor ist auch ein System zur Umsetzung von Mandatory Access Control. *Es unterscheidet für jede einzelne Datei, ob der erbetene Zugriff erlaubt ist ode…“)
 
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Grundsätzliches=
 
*App Armor ist auch ein System zur Umsetzung von Mandatory Access Control.  
 
*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..                                                               
 
*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.
 
*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.
 
*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.
 
*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.
 
*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.
Zeile 14: Zeile 19:
 
*Programm ist dabei durch den Namen des Programms zu ersetzen, auf den sich das App-Armor-Profil beziehen soll.
 
*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.
 
*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 [https://wiki.archlinux.org/title/AppArmor#Get_desktop_notification_on_DENIED_actions Desktop] angezeigt werden.
 +
 +
=Wie komme ich an Profile=
 +
*Profile generieren lassen.
 +
*Profile manuell schreiben.
 +
*Profile von anderen benutzen und gegebenenfalls anpassen.

Aktuelle Version vom 17. Januar 2023, 07:53 Uhr

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.