Home / LinuxUser / 2006 / 03 / System abschotten mit AppArmor

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(226 Punkte bei 13 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Re: War doch klar...
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.
AA_photocase_kaefige.jpg

© photocase.com

Goldene Käfige

System abschotten mit AppArmor

01.03.2006 Hat ein Cracker einen fremden Rechner geknackt, mag er sich wie im Paradies fühlen. AppArmor trübt die Freude und sperrt den Bösewicht in einen virtuellen Käfig.

Niemand ist ohne Fehler – das gilt besonders für Software. In jeder halbwegs komplexen Anwendungen stecken Programmierfehler. Einbrecher nutzen dies: Sie übernehmen die Kontrolle und bringen die Software dazu, etwas anderes zu tun als vom Entwickler gewollt. Kritisch wird das, wenn die Applikation über mehr oder andere Rechte (Privilegien) verfügt als der Einbrecher.

Zum Beispiel benötigt der Befehl ping Root-Rechte. Nur damit darf er das Sonderpaketformat verschicken, das Ping braucht. Mit den Root-Privilegien könnte der Prozess auch beliebigen Unfug anstellen, der Root vorbehalten bleibt. Zwar hält sich ping an die Regeln, zwingt aber ein Angreifer den Prozess unter seine Fuchtel, hält ihn nichts mehr vom restlichen System fern.

AppArmor [1] ändert dies. Statt jedem Root-Programm vollen Zugriff auf das System zu gestatten, beschränkt es die Möglichkeiten. Dabei geht es einen Kompromiss zwischen Wirksamkeit und Komplexität ein: Mit einfachen und durchschaubaren Mechanismen erreicht AppArmor einen hohen Schutz und ähnelt damit Systrace [2]. Mit komplexen Systemen wie SELinux [4] oder RSBAC [5] will es sich nicht messen – deren Konfiguration bleibt höhere Admin-Schule.

Härte zeigen

Trotz aller zusätzlichen Hürden lautet das erste Gebot: Eine nicht vorhandene Sicherheitslücke schützt am besten. Auch auf einem AppArmor-geschützten Rechner sollten Sie – wie auf jeder anderen Installation – nur wirklich benötigte Dienste betreiben, Patches zeitnah einspielen und eine behutsame gestrickte Konfiguration verwenden. Erst bei unbekannten oder noch nicht behobenen Sicherheitslücken und den dazugehörenden Zero-Day-Exploits sollte AppArmor tätig werden.

AppArmor überwacht, auf welche Dateien eine Anwendung auf welche Weise zugreift, und es kontrolliert den Einsatz der Root-Privilegien. Linux unterscheidet je nach Kernel-Version bis zu 29 Privilegien, genannt Capabilities (Fähigkeiten, siehe man 7 capabilities). So ist CAP_KILL die Fähigkeit von Root, beliebige Prozesse zu beenden und CAP_NET_RAW die Capability, beliebige Netzwerkpakete zu erzeugen.

Im Falle des Ping-Befehls im Eingangsbeispiel würde es im Wesentlichen genügen, wenn AppArmor den Einsatz von CAP_NET_RAW erlaubt und beispielsweise CAP_KILL untersagt. Dann dürfte ein Einbrecher keine fremden Prozesse mehr abschließen.

Immunix

Mitte 1995 hat Novell die Firma Immunix gekauft. Sie ist seit Jahren auf die Entwicklung von Sicherheitslösungen spezialisiert. Ihr modifizierter GCC namens StackGuard übersetzt Anwendung so, dass viele Formen von Buffer-Overflow-Exploits scheitern. Dazu benutzt StackGuard einen so genannten Canary. Dieses Frühwarnsystem ermittelt beim Programmstart zufällige Zahlen. Vor jedem Aufruf eines Unterprogramms legt es den Canary-Wert auf den Stack. Hat sich der Wert bis zum Rücksprung verändert, bricht das Programm ab, da es einen Buffer Overflow vermutet. Der Begriff Canary kommt aus dem Bergbau, wo Kanarienvögel als Früherkennung für Kohlenmonoxid dienen.

Immunix war auch maßgeblich an der Entwicklung LSM-Schnittstelle (Linux Security Modules [3]) in Kernel 2.6 beteiligt. Diese Schnittstelle erlaubt es Kernel-Modulen, an den verschiedensten Stellen sicherheitsrelevante Vorgänge zu überwachen. Einige Sicherheitssysteme nutzen LSM, etwa LIDS (Linux Intrusion Detection System [6]) und SELinux (Security Enhanced Linux [4]). Letzteres wurde von der NSA (National Security Agency, USA) entwickelt, es implementiert ein MAC-System (Mandatory Access Control). Der Admin gibt dabei detaillierte Regeln für erlaubte Zugriffe vor. Dieses restriktive Richtlinienwerk kann sogar den allmächtigen Superuser Root und dessen Handlungen überwachen und einschränken.

Während die aktuellen Novell/Suse-Distributionen bereits im Kernel und den benötigten Programmen SELinux unterstützen, fehlen die für die Funktion erforderlichen Richtlinien (Policies).

Ebenfalls von Immunix stammt das AppArmor-System. Novell positioniert nun AppArmor als einfache und wirksame Alternative zu SELinux. Während SELinux eine umfassende und sehr komplexe Konfiguration erfordert, beschränkt sich AppArmor auf einzelne Applikationen und die wichtigsten Aktionen. Ende Januar 2006 gab Novell den Quellcode von AppArmor unter der GPL frei und veröffentlichte umgehend den Code [7] auf der hauseigenen Webseite.

Einsatz unter Linux

In den kommerziellen Distributionen SLES 9 und Suse Linux 10.0 hat Novell das AppArmor-System bereits integriert, damals war AppArmor noch keine freie Software (siehe Kasten "Immunix"). Mit der Freigabe unter der GPL hat Novell angekündigt, AppArmor auch in OpenSUSE 10.1 einzubinden. Wer nicht so lange warten will, kommt auch mit OpenSUSE 10.0 zum Ziel. Allerdings ist die Installation aufwändig: Unter anderem verlangt sie, den Kernel zu modifizieren und neu zu übersetzen. Ungeübten Benutzern ist davon eher abzuraten.

AppArmor-RPMs für OpenSUSE 10.0 stehen auf Novell Forge [7] bereit und zusätzlich auf der Heft-CD dieser Ausgabe. Obwohl Suse/Novell die RPMs für OpenSUSE 10.1 Alpha gebaut hat, funktionieren sie auch unter OpenSUSE 10.0. Die Installation klappt wie üblich per rpm -ivh Paketname.rpm. Zusätzlich braucht der Kernel AppArmor-Unterstützung. Novell stellt Patches bereit [8], die auf einen Originalkernel in Version 2.6.15 passen [9]. Um daraus einen AppArmor-fähigen Kernel zu generieren, laden Sie den Originalkernel sowie die Patches aa_2.0-2.6.15.patch und aa_namespace_sem-2.6.15.patch. Danach folgen die Schritte in Listing 1.

Die Installation auf Nicht-Suse-Systemen wie Debian oder Fedora ist ebenfalls möglich. Allerdings müssen Sie die Quelltextarchive dann selbst übersetzen und auf die grafische Oberfläche verzichten, da diese Yast 2 voraussetzt.

Listing 1

tar xjf linux-2.6.15.tar.bz2
cd linux-2.6.15
patch -p1 <../aa_2.0-2.6.15.patch
patch -p1 <../aa_namespace_sem-2.6.15.patch
make oldconfig
make bzImage
make modules
make modules_install
make install
rmdir /subdomain
ln -s /sys/kernel/security/subdomain /subdomain

Abbildung 1: Mit Yast2 ist es sehr einfach, AppArmor zu aktivieren.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

888 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 1 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...