AppArmor
WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
Sie können ihre Website besuchen und ihren Dienst kostenlos ausprobieren unter:
Grundlegende Informationen
AppArmor ist eine Kernel-Erweiterung, die darauf ausgelegt ist, die Ressourcen, die Programmen über programmbezogene Profile zur Verfügung stehen, einzuschränken, und implementiert effektiv Mandatory Access Control (MAC), indem sie Zugriffssteuerungsattribute direkt an Programme anknüpft, anstatt an Benutzer. Dieses System funktioniert durch Laden von Profilen in den Kernel, normalerweise während des Bootvorgangs, und diese Profile geben an, auf welche Ressourcen ein Programm zugreifen kann, wie Netzwerkverbindungen, Raw-Socket-Zugriff und Dateiberechtigungen.
Es gibt zwei Betriebsmodi für AppArmor-Profile:
Durchsetzungsmodus: Dieser Modus setzt die innerhalb des Profils definierten Richtlinien aktiv durch, blockiert Aktionen, die gegen diese Richtlinien verstoßen, und protokolliert jeden Versuch, sie durch Systeme wie syslog oder auditd zu verletzen.
Beschwerdemodus: Im Gegensatz zum Durchsetzungsmodus blockiert der Beschwerdemodus keine Aktionen, die gegen die Richtlinien des Profils verstoßen. Stattdessen protokolliert er diese Versuche als Richtlinienverletzungen, ohne Einschränkungen durchzusetzen.
Komponenten von AppArmor
Kernelmodul: Verantwortlich für die Durchsetzung von Richtlinien.
Richtlinien: Spezifizieren die Regeln und Einschränkungen für das Programmverhalten und den Ressourcenzugriff.
Parser: Lädt Richtlinien in den Kernel für die Durchsetzung oder Berichterstattung.
Dienstprogramme: Dies sind Benutzermodusprogramme, die eine Schnittstelle für die Interaktion mit und Verwaltung von AppArmor bereitstellen.
Profile-Pfad
AppArmor-Profile werden normalerweise in /etc/apparmor.d/ gespeichert
Mit sudo aa-status
können Sie die Binärdateien auflisten, die durch ein Profil eingeschränkt sind. Wenn Sie den Schrägstrich "/" für einen Punkt des Pfads jeder aufgelisteten Binärdatei ändern, erhalten Sie den Namen des AppArmor-Profils im genannten Ordner.
Beispiel: Ein AppArmor-Profil für /usr/bin/man befindet sich in /etc/apparmor.d/usr.bin.man
Befehle
Erstellen eines Profils
Um das betroffene ausführbare Programm anzugeben, sind absolute Pfade und Platzhalter (für Datei-Globbing) zur Spezifizierung von Dateien erlaubt.
Um den Zugriff anzugeben, den die Binärdatei über Dateien haben wird, können die folgenden Zugriffskontrollen verwendet werden:
r (lesen)
w (schreiben)
m (als ausführbare Speicherabbildung)
k (Dateisperre)
l (Erstellen von harten Links)
ix (um ein anderes Programm mit dem neuen Programm unter Vererbung der Richtlinie auszuführen)
Px (unter einem anderen Profil ausführen, nach Bereinigung der Umgebung)
Cx (unter einem untergeordneten Profil ausführen, nach Bereinigung der Umgebung)
Ux (unbeschränkt ausführen, nach Bereinigung der Umgebung)
Variablen können in den Profilen definiert und von außerhalb des Profils manipuliert werden. Zum Beispiel: @{PROC} und @{HOME} (fügen Sie #include <tunables/global> zur Profildatei hinzu)
Deny-Regeln werden unterstützt, um Allow-Regeln außer Kraft zu setzen.
aa-genprof
Um das Erstellen eines Profils zu erleichtern, kann Ihnen AppArmor helfen. Es ist möglich, AppArmor die Aktionen überwachen zu lassen, die von einer Binärdatei ausgeführt werden, und dann zu entscheiden, welche Aktionen Sie zulassen oder ablehnen möchten. Sie müssen nur Folgendes ausführen:
Dann führen Sie in einer anderen Konsole alle Aktionen aus, die das Binärprogramm normalerweise ausführen würde:
Dann drücken Sie in der ersten Konsole "s" und geben Sie dann in den aufgezeichneten Aktionen an, ob Sie ignorieren, erlauben oder was auch immer möchten. Wenn Sie fertig sind, drücken Sie "f" und das neue Profil wird in /etc/apparmor.d/path.to.binary erstellt.
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/möchten
aa-easyprof
Sie können auch eine Vorlage eines AppArmor-Profils einer Binärdatei mit erstellen:
Beachten Sie, dass standardmäßig in einem erstellten Profil nichts erlaubt ist, daher ist alles verweigert. Sie müssen Zeilen wie /etc/passwd r,
hinzufügen, um das Lesen der Binärdatei /etc/passwd
zu erlauben, zum Beispiel.
Sie können dann das neue Profil erzwingen mit
Bearbeiten eines Profils aus Logs
Das folgende Tool liest die Logs und fragt den Benutzer, ob er einige der erkannten verbotenen Aktionen erlauben möchte:
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/whatever möchten.
Profil verwalten
Protokolle
Beispiel für AUDIT- und DENIED-Protokolle aus /var/log/audit/audit.log des ausführbaren Programms service_bin
:
Sie können diese Informationen auch mit folgendem Befehl abrufen:
Apparmor in Docker
Beachten Sie, wie das Profil docker-profile von Docker standardmäßig geladen wird:
Standardmäßig wird das Apparmor Docker-Standardprofil von https://github.com/moby/moby/tree/master/profiles/apparmor generiert.
Zusammenfassung des Docker-Standardprofils:
Zugriff auf alle Netzwerke
Es sind keine Fähigkeiten definiert (Einige Fähigkeiten werden jedoch durch das Einbeziehen grundlegender Basissätze wie #include <abstractions/base> bereitgestellt)
Schreiben in jede /proc-Datei ist nicht erlaubt
Andere Unterverzeichnisse/Dateien von /proc und /sys haben keinen Lese-/Schreib-/Sperr-/Verknüpfungs-/Ausführungszugriff
Mounten ist nicht erlaubt
Ptrace kann nur auf einen Prozess ausgeführt werden, der durch dasselbe Apparmor-Profil eingeschränkt ist
Nachdem Sie einen Docker-Container gestartet haben, sollten Sie die folgende Ausgabe sehen:
Beachten Sie, dass AppArmor standardmäßig sogar die Berechtigungen für Fähigkeiten blockiert, die dem Container gewährt wurden. Zum Beispiel wird es in der Lage sein, die Erlaubnis zum Schreiben innerhalb von /proc zu blockieren, selbst wenn die SYS_ADMIN-Fähigkeit gewährt wurde, da das Docker-AppArmor-Profil standardmäßig diesen Zugriff verweigert:
Du musst AppArmor deaktivieren, um seine Beschränkungen zu umgehen:
Beachten Sie, dass standardmäßig AppArmor auch das Mounten von Ordnern im Container verbietet, selbst mit der SYS_ADMIN-Fähigkeit.
Beachten Sie, dass Sie Berechtigungen hinzufügen/entfernen können, um dem Docker-Container Berechtigungen hinzuzufügen (dies wird immer noch durch Schutzmethoden wie AppArmor und Seccomp eingeschränkt):
--cap-add=SYS_ADMIN
gibt dieSYS_ADMIN
-Berechtigung--cap-add=ALL
gibt alle Berechtigungen--cap-drop=ALL --cap-add=SYS_PTRACE
verwirft alle Berechtigungen und gibt nurSYS_PTRACE
Normalerweise, wenn Sie feststellen, dass Sie eine privilegierte Berechtigung im Inneren eines Docker-Containers haben, aber ein Teil des Exploits nicht funktioniert, liegt das daran, dass Docker AppArmor es verhindert.
Beispiel
(Beispiel von hier)
Um die Funktionalität von AppArmor zu veranschaulichen, habe ich ein neues Docker-Profil "mydocker" erstellt, mit der folgenden hinzugefügten Zeile:
Um das Profil zu aktivieren, müssen wir Folgendes tun:
Um die Profile aufzulisten, können wir den folgenden Befehl ausführen. Der unten stehende Befehl listet mein neues AppArmor-Profil auf.
Wie unten gezeigt, erhalten wir einen Fehler, wenn wir versuchen, "/etc/" zu ändern, da das AppArmor-Profil den Schreibzugriff auf "/etc" verhindert.
AppArmor Docker Umgehung1
Sie können herausfinden, welches AppArmor-Profil einen Container ausführt, indem Sie Folgendes verwenden:
Dann können Sie die folgende Zeile ausführen, um das genaue verwendete Profil zu finden:
AppArmor Docker Umgehung2
AppArmor basiert auf Pfaden, das bedeutet, selbst wenn es Dateien innerhalb eines Verzeichnisses wie /proc
schützt, könnten Sie, wenn Sie konfigurieren können, wie der Container ausgeführt wird, das proc-Verzeichnis des Hosts innerhalb von /host/proc
einhängen und es wird nicht mehr von AppArmor geschützt.
AppArmor Shebang Umgehung
In diesem Fehler können Sie ein Beispiel sehen, wie selbst wenn Sie verhindern, dass Perl mit bestimmten Ressourcen ausgeführt wird, wenn Sie einfach ein Shell-Skript erstellen, das in der ersten Zeile #!/usr/bin/perl
angibt und die Datei direkt ausführen, können Sie alles ausführen, was Sie wollen. Z. B.:
WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
Sie können ihre Website besuchen und ihre Suchmaschine kostenlos ausprobieren unter:
Last updated