Einführung
Mandatory Access Control (MAC)-Systeme wie AppArmor und SELinux ermöglichen Systemadministratoren, den Zugriff auf Ressourcen und Steuerungssysteme, die in den Linux-Kernel integriert sind, zu gewähren oder zu verweigern. Obwohl beide die gleichen Aufgaben erfüllen, funktionieren diese Systeme unterschiedlich und bieten verschiedene Funktionen.
Dieser Artikel erklärt die Unterschiede zwischen AppArmor und SELinux und zeigt die Hauptmerkmale der beiden Systeme.
AppArmor vs. SELinux
Sowohl SELinux als auch AppArmor bieten Sicherheitstools, die Anwendungen isolieren und den Zugriff auf einen Angreifer beschränken, der einen Teil des Systems kompromittiert hat.
AppArmor funktioniert, indem es zuerst Zugriff gewährt und dann Einschränkungen anwendet. SELinux schränkt jedoch standardmäßig den Zugriff auf alle Anwendungen ein und gewährt nur Benutzern Zugriff, die die richtigen Zertifizierungen vorlegen.
Die beiden Systeme haben viele Gemeinsamkeiten, aber auch einige Unterschiede:
Vergleichspunkt | AppArmor | SELinux |
---|---|---|
Zugriffskontrolle | Verwendet Sicherheitsprofile basierend auf Pfaden. | Verwendet Sicherheitsrichtlinien basierend auf Dateilabels. |
Verfügbarkeit | Verfügbar für jede Distribution, wird aber hauptsächlich auf SUSE und Ubuntu verwendet. | Verfügbar für jede Distribution, wird aber hauptsächlich auf RHEL/Fedora-Systemen verwendet. |
Schwierigkeiten beim Lernen | Eine kürzere Lernkurve, einfacher einzurichten und zu verwalten. | Komplexer und weniger intuitiv. |
Unabhängige Überprüfung | Möglich. | Nicht möglich. |
Erfordert komplexe Konfiguration | Nein. | Ja. |
MLS/MCS | Nein. | Ja. |
Auswirkung auf die Systemleistung | Keine, aber die Startzeit ist länger. | Keine. |
Richtlinienregeln | Fehlt Flexibilität. | Flexibel. |
Kontrollebene | Mittel. | Hoch. |
AppArmor
AppArmor ist ein praktisches Linux-Sicherheitsmodul, das seit Version 7.10 standardmäßig in Ubuntu enthalten ist. Das Modul ermöglicht es Entwicklern, Anwendungen daran zu hindern, bestimmte Dateien zu verwenden. Daher verhindert AppArmor Schäden an potenziell gefährdeten Anwendungen und schützt leicht auszunutzende Software wie Webserver.
Das Modul verwendet Sicherheitsprofile, um zu bestimmen, welche Berechtigungen die Anwendung benötigt. Profile sind Textdateien, die in den Kernel geladen werden, normalerweise beim Booten.
AppArmor erzwingt zwei Haupttypen von Regeln in Profilen:
- Pfadeinträge . Sie bestimmen, auf welche Dateien eine Anwendung zugreifen kann.
- Funktionseinträge . Diese Regeln legen die Privilegien fest, die ein eingeschränkter Prozess verwenden darf.
Profile wurden entwickelt, um bestimmte Apps einzuschränken, und sie funktionieren in zwei Modi. Im
- Beschwerdemodus . In diesem Modus meldet das System Richtlinienverstöße, erzwingt jedoch keine Regeln.
- Modus erzwingen . Im Erzwingungsmodus wird das neue Profil überprüft und alle Verstöße werden gestoppt.
AppArmor besteht aus den folgenden Komponenten:
- Serveranalyse . Scannt Ports und lokalisiert Anwendungen, die diese automatisch abhören. Es erkennt auch Anwendungen ohne Profile und solche, die AppArmor einschränken muss.
- Profilgenerator . Ein statischer Prozess, der Bewerbungen analysiert und eine Profilvorlage erstellt.
- Optimierer . Diese Komponente protokolliert und sammelt Ereignisse im Profil des normalen Verhaltens.
Abgesehen von Ubuntu läuft AppArmor standardmäßig auf Debian, SUSE Enterprise Server, OpenSUSE-Distributionen und anderen Distributionen. Führen Sie Folgendes aus, um den Modulstatus zu überprüfen:
sudo apparmor_status
Die Ausgabe zeigt, dass AppArmor auf dem System aktiv ist. Der Befehl druckt auch die Liste der installierten Profile und der aktiven beschränkten Prozesse.
Vorteile von AppArmor
Die Hauptvorteile von AppArmor sind die Einfachheit und die kurze Lernkurve. Dieses Modul ist weitaus weniger komplex als SELinux, wodurch es einfacher einzurichten und zu verwalten ist.
Das Tool arbeitet direkt mit Profilen (Textdateien) für die Zugriffskontrolle, und Dateioperationen sind einfacher. Diese Funktion macht AppArmor benutzerfreundlicher als SELinux mit seinen Sicherheitsrichtlinien.
Dank der pfadbasierten Implementierung schützt AppArmor jede Datei auf dem System und ermöglicht die Festlegung von Regeln auch für noch nicht vorhandene Dateien. Der Lernmodus des Programms macht AppArmor anpassungsfähig an Änderungen und erzwingt bevorzugtes Anwendungsverhalten.
Nachteile von AppArmor
Bei AppArmor kann mehr als ein Pfad auf dieselbe Anwendung verweisen. Diese unterschiedlichen Pfade zu derselben ausführbaren Datei erstellen mehrere Profile für eine App, was ein potenzielles Sicherheitsproblem darstellt.
Darüber hinaus ist die größte Stärke von AppArmor, die Einfachheit, auch der Grund dafür, dass das Programm als weniger sicher gilt.
AppArmor verfügt nicht über Multi-Level Security (MLS) und Multi-Category Security (MCS). Der Mangel an MCS-Unterstützung macht AppArmor in Umgebungen, die MLS erfordern, fast unwirksam.
Ein weiterer Nachteil ist, dass das Laden der Richtlinie auch länger dauert, sodass das System langsamer startet.
SELinux
SELinux (Security Enhanced Linux) ist ein Linux-Sicherheitsmodul, das in den Linux-Kernel integriert ist. Das System gibt Systemadministratoren mehr Kontrolle darüber, wer Zugriff auf die Ressourcen hat.
SELinux weist den Dateien, Prozessen und Ports des Systems Bezeichnungen zu. Etikettentyp ist für zielgerichtete Richtlinien von entscheidender Bedeutung, während Typdurchsetzung ist das zweitwichtigste Konzept in SELinux.
Die Kennzeichnung dient als Gruppierungsmechanismus, der Dateien gibt und verschiedene Arten von Kennzeichnungen verarbeitet. Das Type-Enforcement-Sicherheitsmodell hilft SELinux festzustellen, ob ein Prozess mit einem bestimmten Label-Typ Zugriff auf eine Datei mit einem anderen Label-Typ hat.
Das System schränkt den Zugriff standardmäßig ein (im Gegensatz zu AppArmor). Benutzer müssen richtig konfiguriert sein, um auf alle Ressourcen zugreifen zu können.
SELinux kassiert frühere Entscheidungen im Access Vector Cache (AVC ), um beispielsweise den Zugriff zuzulassen oder einzuschränken. Das Einlösen von Entscheidungen beschleunigt den Zutrittskontrollprozess. Wenn beispielsweise eine Anwendung versucht, auf eine Datei zuzugreifen, überprüft SELinux den AVC und erlaubt oder verweigert den Zugriff basierend auf der vorherigen Entscheidung.
Bei RHEL, CentOS und Fedora ist SELinux standardmäßig installiert oder verfügbar. Um den aktuellen Status von SELinux herauszufinden, führen Sie Folgendes aus:
sudo sestatus
Hinweis :Befolgen Sie unsere Anleitungen, um SELinux auf CentOS zu aktivieren oder SELinux auf CentOS zu deaktivieren.
Vorteile von SELinux
Trotz (und wegen) der komplexen Richtlinien gilt SELinux als die sicherere Option für die Linux-Sicherheit.
Durch Kennzeichnung und Typdurchsetzung kann SELinux nur dann Zugriff gewähren, wenn eine Richtlinienregel dies zulässt. Dieser Prozess implementiert eine robustere und gründlichere Zugriffskontrolle.
Durch die MLS-Kompatibilität bietet SELinux bessere Zugriffsfunktionen. Eines der grundlegenden MLS-Prinzipien ist beispielsweise, dass Benutzer Dateien nur auf ihrer Empfindlichkeitsstufe und niedriger lesen können. Mit SELinux können Systemadministratoren jedoch Dateien auf ihren eigenen und niedrigeren Empfindlichkeitsstufen lesen und schreiben.
Standardmäßig trennt das System Dateien voneinander und vom Host und behält die Trennung bei. Beispielsweise hat eine Datei unterschiedliche Berechtigungen für:
- Der Eigentümer (Benutzer).
- Eine Gruppe, die die Datei hält.
- Andere Benutzer/Gruppen, die auf die Datei zugreifen.
Hinweis :Das Zwischenspeichern von Zugriffsentscheidungen ist ebenfalls ein erheblicher Vorteil, da der Prozess die Effizienz verbessert.
Nachteile von SELinux
SELinux bietet Systemadministratoren ein vielseitiges Zugriffskontrolltool. Dieses Sicherheitsmodul hat jedoch einige Nachteile.
SELinux ist ziemlich schwierig zu erlernen, einzurichten und zu verwalten. Während das Programm den Zugriff auf Anwendungen und Dateien effizient steuert, ist die Behebung potenzieller Probleme für Anfänger schwierig. Es ist nicht immer einfach festzustellen, was eine Fehlermeldung tatsächlich bedeutet und wo nach dem Problem gesucht werden muss. Insgesamt ist SELinux nicht benutzerfreundlich und unerfahrene Administratoren müssen möglicherweise eine steile Lernkurve durchlaufen.
Wichtig :SELinux verweigert häufig eine Aktion, wenn Dateien falsch gekennzeichnet sind.
Fazit
Nachdem Sie diesen Text gelesen haben, kennen Sie die Vor- und Nachteile von SELinux und AppArmor. Beide Systeme bieten unterschiedliche Ansätze für die Linux-Sicherheit und schützen Maschinen vor unbefugtem Zugriff und Änderung von Systemressourcen.
Möglicherweise möchten Sie mehr über andere Möglichkeiten zum Schutz Ihres Systems erfahren, z. B. die Verwendung unveränderlicher Backups zur Bekämpfung von Ransomware oder verschiedene Verfahren zum Schutz von Datenbanken.