Was ist apparmor

93

Ich höre viel über apparmor reden, ich möchte Folgendes wissen:

  • Was ist apparmor
  • Wie funktioniert AppArmor?
Alvar
quelle

Antworten:

92

Was es ist

Apparmor ist ein System mit obligatorischer Zugriffskontrolle (MAC). Es verwendet Verbesserungen des LSM-Kernels, um Programme auf bestimmte Ressourcen zu beschränken. AppArmor führt dies mit Profilen durch, die beim Systemstart in den Kernel geladen werden. Apparmor bietet zwei Arten von Profilmodi: Durchsetzung und Beschwerde. Profile in Erzwingungsmodus erzwingen um die Profilregeln und Verletzung Versuche berichten syslogoder auditd. Profile im Reklamationsmodus erzwingen keine Profilregeln, sondern protokollieren lediglich Verletzungsversuche.

In Ubuntu ist Apparmor standardmäßig installiert. Es beschränkt Anwendungen auf Profile, um zu bestimmen, auf welche Dateien und Berechtigungen ein Programm zugreifen muss. Einige Anwendungen werden mit ihren eigenen Eigenschaften geliefert und weitere sind im apparmor-profilesPaket enthalten.

Sie können apparmor-profilesdurch Ausführen installieren sudo apt-get install apparmor-profiles.

Ich habe in den Ubuntu-Foren ein gutes Beispiel für Apparmor gefunden, das ich für diesen Beitrag umgeschrieben habe.

Apparmor ist ein Sicherheitsframework, das verhindert, dass Anwendungen böse werden. Beispiel: Wenn ich Firefox ausführe und eine fehlerhafte Website besuche, auf der versucht wird, Malware zu installieren, mit der mein homeOrdner gelöscht wird, hat Apparmor Einschränkungen für Firefox, obwohl verhindert wird, dass etwas getan wird, was ich nicht möchte (z. B. Zugriff auf meine Musik, Dokumente usw.). Auf diese Weise kann kein Schaden angerichtet werden, selbst wenn Ihre Anwendung gefährdet ist.

Wie es funktioniert

Das apparmor-utilsPaket enthält Befehlszeilentools zum Konfigurieren von Apparmor. Hiermit können Sie den Ausführungsmodus von Apparmor ändern, den Status eines Profils ermitteln, neue Profile erstellen usw.

Dies sind die häufigsten Befehle:

Hinweis: Profile werden in gespeichert/etc/apparmor.d/

  • Sie können den Status von Apparmor mit überprüfen sudo apparmor_status. Sie erhalten eine Liste aller geladenen Profile *, aller Profile im Erzwingungsmodus, aller Profile im Beschwerdemodus, welche Prozesse in Erzwingung / Beschwerde definiert sind usw.
  • Um ein Profil in den Beschwerdemodus zu versetzen, verwenden Sie sudo aa-complain /path/to/bin, wo /path/to/binsich der Programmordner befindet bin. Wenn Sie beispielsweise: sudo aa-complain /usr/bin/firefoxausführen, wird Firefox in den Beschwerdemodus versetzt.
  • Mit sudo aa-enforce /path/to/binerzwingen Sie ein Programmprofil.
  • Sie können alle Profile mit sudo aa-complain /etc/apparmor.d/*und in den Beschwerde- / Erzwingungsmodus laden sudo aa-enforce.d/*.

Zum Laden eines Profils in den Kernel verwenden Sie apparmor_parser. Sie können Profile mit dem -rParameter neu laden .

  • Verwenden Sie zum Laden eines Profils :, um cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aden Inhalt von effektiv profile.namein Apparmors Parser zu drucken.
  • Um ein Profil neu zu laden, verwenden Sie den -rParameter wie folgt:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Um alle Profile von Apparmor neu zu laden, verwenden Sie: sudo service apparmor reload

So deaktivieren Sie ein Profil , das Sie verbinden es /etc/apparmor.d/disable/mit lnso: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/dann laufen: sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Hinweis: Verwechseln Sie nichtapparmor_parser -rmitapparmor_parser -R SIE SIND NICHT DIE GLEICHEN!

  • Um ein Profil wieder zu aktivieren, entfernen Sie die symbolische Verknüpfung /etc/apparmor.d/disable/und laden Sie es mit dem -aParameter.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Sie können Apparmor mit deaktivieren sudo service apparmor stopund das Kernelmodul mit entfernensudo update-rc.d -f apparmor defaults
  • Starten Sie Apparmor mit sudo service apparmor startund laden Sie die Kernelmodule mitsudo update-rc.d apparmor defaults

Profile

Profile werden in gespeichert /etc/apparmor.d/und nach dem vollständigen Pfad der ausführbaren Datei benannt, die sie enthalten, wobei '/' durch '.' Ersetzt wird. Zum Beispiel /etc/apparmor.d/bin.pingist das Profil für pingin /bin.

Es gibt zwei Haupttypen von Einträgen in Profilen:

  1. Pfadeinträge bestimmen, auf welche Dateien eine Anwendung zugreifen kann.

  2. Funktionseinträge bestimmen, welche Berechtigungen ein Prozess verwenden kann.

Schauen wir uns als Beispiel das Profil an ping, in dem sich etc/apparmor.d/bin.pingbefindet.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>Wenn die Datei globalin das Verzeichnis aufgenommen wird tunables, können Anweisungen für mehrere Anwendungen in einer gemeinsamen Datei abgelegt werden.

/bin/ping flags=(complain)Legt den Pfad zum Profilprogramm und den Beschwerdemodus fest.

capability net_rawErmöglicht der Anwendung den Zugriff auf die CAP_NET_RAW Posix.1eFunktion.

/bin/ping mixr Ermöglicht der Anwendung das Lesen und Ausführen des Zugriffs auf die Datei.

/etc/modules.conf r,Das rgibt die Anwendung Leseberechtigungen für/etc/modules.conf

Hinweis: Nachdem Sie ein Profil erstellt / bearbeitet haben, müssen Sie es erneut laden, damit die Änderungen wirksam werden.

Hier ist eine Liste der Berechtigungen, die Sie verwenden können:

  • r - lesen
  • w - schreiben
  • ux - Uneingeschränkte Ausführung
  • Ux - Uneingeschränkte Ausführung - Bereinigen Sie die Umgebung
  • px - Diskretes Profil ausführen
  • Px - Diskretes Profil ausführen - Umgebung reinigen
  • ix - Ausführen übernehmen
  • m - PROT_EXECMit mmap(2)Anrufen zulassen
  • l - Verknüpfung

Quellen

Seth
quelle
Es ist also so etwas wie ein Programm, das als Benutzer agiert und nicht die Berechtigung hat, die meisten Dateien auf dem System zu ändern.
Izkata
Ja und nein. Sie richten ein Profil ein , das definiert, was eine bestimmte Anwendung tun kann. Sie fügen dann Programme zu diesem Profil hinzu und dies schränkt ein, was die Programme in diesem Profil tun dürfen. Es ist also wie ein Benutzer, weil er nur auf das zugreifen kann, was der Administrator (Sie) im Profil angibt.
Seth
Ah, so Profile sind wie Benutzergruppen für Programme;)
Izkata
Ja, sehr gerne;)
Seth
Denken Sie, Apparmor könnte verwendet werden, um jede Internetverbindung zu blockieren und zu sagen, wer versucht, darauf zuzugreifen? und basierend auf diesem Protokoll erstellen wir Berechtigungen für jede Anwendung? Die Idee ist, es wie Zonalarm unter Windows $ und wie alte "Firewalls pro Anwendung" unter Linux wie LeopardFlower und ProgramGuard zu machen (diese scheinen meiner Meinung nach nicht mehr kompilierbar zu sein), und es gibt auch eine neue mit dem Namen Douane, die verwendet wird ein Kernel-Modul, mit dem Dinge funktionieren.
Aquarius Power
6

AppArmor ist ein MAC-System (Mandatory Access Control), eine Kernel-Erweiterung (LSM), mit der Programme auf einen begrenzten Ressourcensatz beschränkt werden können. Das Sicherheitsmodell von AppArmor besteht darin, Zugriffssteuerungsattribute nicht an Benutzer, sondern an Programme zu binden. Die AppArmor-Beschränkung erfolgt über Profile, die normalerweise beim Booten in den Kernel geladen werden. AppArmor-Profile können in zwei Modi ausgeführt werden: Durchsetzung und Beschwerde. Im Durchsetzungsmodus geladene Profile führen zur Durchsetzung der im Profil definierten Richtlinie sowie zur Meldung von Richtlinienverletzungsversuchen (entweder über syslog oder auditd). Bei Profilen im Beschwerdemodus werden keine Richtlinien erzwungen, sondern Richtlinienverletzungsversuche gemeldet.

AppArmor unterscheidet sich von einigen anderen MAC-Systemen unter Linux darin, dass es pfadbasiert ist, das Mischen von Durchsetzungs- und Beschwerdemodus-Profilen ermöglicht, Include-Dateien verwendet, um die Entwicklung zu vereinfachen, und eine weit geringere Eintrittsbarriere aufweist als andere gängige MAC-Systeme.

AppArmor ist eine etablierte Technologie, die erstmals in Immunix verwendet und später in Ubuntu, Novell / SUSE und Mandriva integriert wurde. Die Hauptfunktionalität von AppArmor ist ab 2.6.36 im Linux-Kernel enthalten. AppArmor, Ubuntu und andere Entwickler arbeiten derzeit daran, zusätzliche AppArmor-Funktionen in den Hauptkern zu integrieren.

Ich habe ein paar weitere hilfreiche Links zu dir: Wiki.Ubuntu.com Ubuntuforums.org

Apparmor-Anleitungen für Ubuntu 12.04 und Ubuntu 12.10

Hoffe das wird dir helfen.

rɑːdʒɑ
quelle
3

Hier ist ein Zitat aus dem Apparmor-Wiki :

AppArmor ist ein effektives und benutzerfreundliches Linux-Anwendungssicherheitssystem. AppArmor schützt das Betriebssystem und die Anwendungen proaktiv vor externen oder internen Bedrohungen, auch vor Zero-Day-Angriffen, indem es ein gutes Verhalten erzwingt und verhindert, dass auch unbekannte Anwendungsfehler ausgenutzt werden. AppArmor-Sicherheitsrichtlinien definieren vollständig, auf welche Systemressourcen einzelne Anwendungen zugreifen können und mit welchen Berechtigungen. In AppArmor sind eine Reihe von Standardrichtlinien enthalten. Mithilfe einer Kombination aus fortschrittlicher statischer Analyse und lernbasierten Tools können AppArmor-Richtlinien auch für sehr komplexe Anwendungen innerhalb weniger Stunden erfolgreich bereitgestellt werden.

Adeline Dale
quelle