Apparmor From Scratch: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 8: Zeile 8:
 
*Wir machen eine kopie von "cat" mit den Namen "katze"
 
*Wir machen eine kopie von "cat" mit den Namen "katze"
 
*Für diese erstellen wir dann ein apparmor-Profil
 
*Für diese erstellen wir dann ein apparmor-Profil
 +
=Einige wichtige Punkte für die Profildefinition=
 +
*Sie können sowohl absolute Pfade als auch Glob-Muster einbeziehen.
 +
*Sie können beispielsweise entweder den absoluten Pfad /etc/passwd hinzufügen oder alle Dateien über das Glob-Muster /tmp/* einbinden lassen.
 +
*Sie können einen oder mehrere Zugriffstypen auf die Datei aus der folgenden Liste haben
 +
**r ⇒ bietet Lesezugriff auf die Datei
 +
**w ⇒ bietet Schreibzugriff auf die Datei
 +
**m ⇒ Memory Map als ausführbar. Es wird für Programmdateien oder *.so-Dateien verwendet
 +
**l ⇒ bietet Erstellung für Symlinks
 +
**k ⇒ Sperren von Zeiten. Dies wird normalerweise verwendet, wenn mehr als ein Prozess die Datei öffnen könnte, zum Beispiel das /tmp-Verzeichnis. Es wird meistens in Verbindung mit Schreibzugriff verwendet
 +
*Es gibt weitere Berechtigungen wie ix, Px, Cx und Ux, aber in den meisten Fällen werden die oben genannten verwendet
 +
*Unterstützt auch Zugriffskontrollen von Fähigkeiten, Netzwerken, DBus, PTrace und UNIX-Domain-Sockets.
 +
*Auch Variablen werden im Profil unterstützt, zum Beispiel @{MY_VAR}.
 +
*Einige gemeinsame Variablen sind in /etc/apparmor.d/tunables/global definiert.
 +
*Sie können #include <tunables/global>-Makros am Anfang der Datei haben
 +
*Explizite Verweigerungsregeln werden unterstützt.
 +
*Dies haben wir bereits im letzten Beitrag besprochen
 +
 
=Quellen=
 
=Quellen=
 
*https://tbhaxor.com/writing-apparmor-profile-from-scratch/
 
*https://tbhaxor.com/writing-apparmor-profile-from-scratch/

Version vom 11. Mai 2022, 11:26 Uhr

Einführung

  • Man kann fast jedes Profil für AppArmor im Community-Forum oder beim Projektautor erhalten
  • Es gibt aber auch einige Tools zum Erstellen Ihres Profils von Grund auf bereitstellt
  • Die geschieht sowohl interaktiv (unter Verwendung des Audit-Protokolls) als auch mit Hilfe von Vorlagen.

Konkret

  • Wir wollen hier ein Programmprofil für das cat-Programm schreiben, das es daran hindert, den Inhalt der Dateien /etc/passwd und /etc/group zu lesen
  • Jede andere Datei im /tmp-Verzeichnis und im Home-Verzeichnis soll aber gelesen werden können
  • Wir machen eine kopie von "cat" mit den Namen "katze"
  • Für diese erstellen wir dann ein apparmor-Profil

Einige wichtige Punkte für die Profildefinition

  • Sie können sowohl absolute Pfade als auch Glob-Muster einbeziehen.
  • Sie können beispielsweise entweder den absoluten Pfad /etc/passwd hinzufügen oder alle Dateien über das Glob-Muster /tmp/* einbinden lassen.
  • Sie können einen oder mehrere Zugriffstypen auf die Datei aus der folgenden Liste haben
    • r ⇒ bietet Lesezugriff auf die Datei
    • w ⇒ bietet Schreibzugriff auf die Datei
    • m ⇒ Memory Map als ausführbar. Es wird für Programmdateien oder *.so-Dateien verwendet
    • l ⇒ bietet Erstellung für Symlinks
    • k ⇒ Sperren von Zeiten. Dies wird normalerweise verwendet, wenn mehr als ein Prozess die Datei öffnen könnte, zum Beispiel das /tmp-Verzeichnis. Es wird meistens in Verbindung mit Schreibzugriff verwendet
  • Es gibt weitere Berechtigungen wie ix, Px, Cx und Ux, aber in den meisten Fällen werden die oben genannten verwendet
  • Unterstützt auch Zugriffskontrollen von Fähigkeiten, Netzwerken, DBus, PTrace und UNIX-Domain-Sockets.
  • Auch Variablen werden im Profil unterstützt, zum Beispiel @{MY_VAR}.
  • Einige gemeinsame Variablen sind in /etc/apparmor.d/tunables/global definiert.
  • Sie können #include <tunables/global>-Makros am Anfang der Datei haben
  • Explizite Verweigerungsregeln werden unterstützt.
  • Dies haben wir bereits im letzten Beitrag besprochen

Quellen