Was ist apparmor?

90

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

  • Was ist apparmor?
  • Wie funktioniert apparmor?
Alvar 05.01.2013, 03:09
quelle

3 Antworten

87

Was es ist

Apparmor ist ein Obligatory Access Control (oder MAC) -System. Es verwendet LSM-Kernel-Erweiterungen, um Programme auf bestimmte Ressourcen zu beschränken. AppArmor tut dies mit Profilen, die beim Systemstart in den Kernel geladen werden. Apparmor hat zwei Arten von Profilmodi, Durchsetzung und Beschwerde. Profile im Erzwingungsmodus erzwingen die Regeln dieses Profils und melden Verstoßversuche in syslog oder auditd . Profile im Reklamationsmodus erzwingen keine Profilregeln, nur Protokollverletzungsversuche.

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 mehr finden Sie im Paket apparmor-profiles .

Sie können apparmor-profiles installieren, indem Sie sudo apt-get install apparmor-profiles ausführen.

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

  

Apparmor ist ein Sicherheitsrahmen, der verhindert, dass Anwendungen böse werden. Zum Beispiel: Wenn ich Firefox starte und eine schlechte Seite besuche, die versucht, Malware zu installieren, die meinen home -Ordner löscht, hat Apparmor Limits für Firefox, verhindert aber, dass es etwas tut, was ich nicht will (wie Zugriff auf meine Musik, Dokumente, etc). Auf diese Weise kann selbst bei kompromittierter Anwendung kein Schaden angerichtet werden.

Wie es funktioniert

Das Paket apparmor-utils enthält Befehlszeilentools zum Konfigurieren von Apparmor. Mit ihr können Sie den Ausführungsmodus von Apparmor ändern, den Status eines Profils suchen, neue Profile erstellen usw.

Dies sind die gebräuchlichsten Befehle:

HINWEIS: : Profile werden in /etc/apparmor.d/

gespeichert
  • Du kannst den Status von Apparmor mit sudo apparmor_status überprüfen. Sie erhalten eine Liste aller geladenen Profile, aller Profile im Enforce-Modus, aller Profile im Beanstandungsmodus, welche Prozesse in Enforce / Conflam definiert sind usw.

  • Um ein Profil in den Modus meckern zu setzen, verwenden Sie sudo aa-complain /path/to/bin , wobei /path/to/bin der Ordner bin des Programms ist. Wenn Sie beispielsweise " sudo aa-complain /usr/bin/firefox " ausführen, wird Firefox in den Modus "Beschwerden" versetzt.

  • Sie verwenden sudo aa-enforce /path/to/bin , um ein Programmprofil zu erzwingen.

  • Sie können alle Profile mit sudo aa-complain /etc/apparmor.d/* bzw. sudo aa-enforce.d/* in die Modi beschweren / verstärken laden.

Um ein Profil in den Kernel zu laden, verwenden Sie apparmor_parser . Sie können Profile mithilfe des Parameters -r erneut laden.

  • Um ein Profil zu laden, verwenden Sie: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a , wodurch der Inhalt von profile.name in den Parser von Apparmor ausgegeben wird.

  • Um ein Profil neu zu laden, verwenden Sie den Parameter -r , wie folgt: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r

  • Um alle Profile von Apparmor neu zu laden, benutze: sudo service apparmor reload

Um ein Profil zu deaktivieren, verknüpfen Sie es mit /etc/apparmor.d/disable/ mit ln wie folgt: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ und führen dann: sudo apparmor_parser -R /etc/apparmor.d/profile.name .

HINWEIS: Verwechseln Sie apparmor_parser -r nicht mit apparmor_parser -R SIE SIND NICHT DAS GLEICHE!

  • Um ein Profil wieder zu aktivieren, entfernen Sie den symbolischen Link zu ihm in /etc/apparmor.d/disable/ und laden Sie es dann mit dem Parameter -a . sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a

  • Sie können Apparmor mit sudo service apparmor stop deaktivieren und das Kernelmodul mit sudo update-rc.d -f apparmor defaults

  • entfernen
  • Starten Sie Apparmor mit sudo service apparmor start und laden Sie Kernel-Module mit sudo update-rc.d apparmor defaults

Profile

Profile werden in /etc/apparmor.d/ gespeichert und sind nach dem vollständigen Pfad zu der ausführbaren Datei benannt, die sie profilieren, wobei '/' durch '.' ersetzt wird. Zum Beispiel /etc/apparmor.d/bin.ping ist das Profil für ping in /bin .

Es gibt zwei Haupttypen von Einträgen, die in Profilen verwendet werden:

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

  2. Capability Einträge bestimmen, welche Privilegien ein Prozess verwenden kann.

Sehen wir uns das Profil für ping in etc/apparmor.d/bin.ping als Beispiel an.

#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> Schließt die Datei global in das Verzeichnis tunables ein. Dadurch können Anweisungen, die sich auf mehrere Anwendungen beziehen, in einer gemeinsamen Datei abgelegt werden.

/bin/ping flags=(complain) setzt den Pfad zum profilierten Programm und legt den Modus fest, um sich zu beschweren.

capability net_raw ermöglicht dem Anwendungszugriff auf die CAP_NET_RAW Posix.1e -Fähigkeit.

/bin/ping mixr ermöglicht der Anwendung Lese- und Ausführungszugriff auf die Datei.

/etc/modules.conf r, Die r gibt die Berechtigungen der Anwendung lesen für /etc/modules.conf

HINWEIS: Nach dem Erstellen / Bearbeiten eines Profils müssen Sie das Profil neu laden, damit die Änderungen wirksam werden.

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

  • r - lesen

  • w - schreiben

  • ux - Nicht eingeschränkt Ausführen

  • Ux - Unconstrained Execute - Scrub die Umgebung

  • px - Diskretes Profil ausführen

  • Px - Diskretes Profil ausführen - Scrub die Umgebung

  • ix - Vererben Sie die Ausführung

  • m - erlauben Sie PROT_EXEC mit mmap(2) -Aufrufen

  • l - link

QUELLEN:

Pfandrecht

Pfandrecht

Pfandrecht

Pfandrecht

    
Seth 05.01.2013, 04:17
quelle
6
  

AppArmor ist ein Mandatory Access Control (MAC) -System, das ein Kernel ist   (LSM) -Erweiterung, um Programme auf einen begrenzten Satz von Ressourcen zu beschränken.   Das Sicherheitsmodell von AppArmor dient dazu, Zugriffssteuerungsattribute an zu binden   Programme und nicht für Benutzer. AppArmor Confinement wird über bereitgestellt   Profile, die normalerweise beim Booten in den Kernel geladen werden. AppArmor-Profile   kann in einem von zwei Modi sein: Durchsetzung und Beschwerde. Profile geladen   Im Erzwingungsmodus wird die definierte Richtlinie durchgesetzt   sowohl im Profil als auch bei der Meldung von Richtlinienverstößen (entweder   via syslog oder auditd). Profile im Beschwerdemodus werden nicht erzwungen   Richtlinie, sondern stattdessen Richtlinienverstoßversuche melden.

     

AppArmor unterscheidet sich von einigen anderen MAC-Systemen unter Linux darin   ist pfadbasiert, ermöglicht das Mischen von Erzwingungs- und Reklamationsmodus   Profile, verwendet Dateien zur Erleichterung der Entwicklung und hat eine viel niedrigere   Eintrittsbarriere als andere gängige MAC-Systeme.

     

AppArmor ist eine etablierte Technologie, die erstmals in Immunix und später zu sehen war   integriert in Ubuntu, Novell / SUSE und Mandriva. Kern-AppArmor   Funktionalität ist im Mainline-Linux-Kernel ab 2.6.36;   Die Arbeit wird von AppArmor, Ubuntu und anderen Entwicklern fortgeführt   zusätzliche AppArmor-Funktionalität in den Mainline-Kernel.

Ich habe einige hilfreichere Links zu Ihnen: Wiki.Ubuntu.com Ubuntuforums.org

Apparmor-Anleitungen für Ubuntu 12.04 & amp; Ubuntu 12.10

Ich hoffe, das wird dir helfen.

    
Ten-Coin 05.01.2013 04:13
quelle
3

Hier ist ein Zitat aus dem Apparmor-Wiki :

  

AppArmor ist ein effektives und einfach zu bedienendes Sicherheitssystem für Linux-Anwendungen. AppArmor schützt proaktiv das Betriebssystem und die Anwendungen vor externen oder internen Bedrohungen, sogar Zero-Day-Angriffen, indem es ein gutes Verhalten durchsetzt und verhindert, dass selbst unbekannte Anwendungsfehler ausgenutzt werden. AppArmor-Sicherheitsrichtlinien definieren vollständig, auf welche Systemressourcen einzelne Anwendungen mit welchen Berechtigungen zugreifen können. Im Lieferumfang von AppArmor sind eine Reihe von Standardrichtlinien enthalten. Mit einer Kombination aus erweiterten statischen Analysen und lernbasierten Tools können AppArmor-Richtlinien selbst für sehr komplexe Anwendungen innerhalb weniger Stunden erfolgreich bereitgestellt werden.

    
Adeline Dale 09.01.2013 08:09
quelle

Tags und Links