Novell sieht App Armor [1] als besonders einfach zu konfigurierendes und dennoch wirksames Schutzsystem für Linux. Es konkurriert aus Sicht des Herstellers mit SE Linux, das zwar seit längerem in Suse-Distributionen enthalten ist, doch am chronischen Fehlen der nötigen Richtlinien (Policies) leidet. Während SE Linux eine vergleichsweise schwer zu konfigurierende, dafür aber umfassende MAC-Zugriffskontrolle implementiert (Mandatory Access Control), konzentriert sich App Armor darauf, einzelne Applikationen in ihrem Wirkungskreis zu beschränken.
Armors Aufgabe
Leider weisen viele Anwendungen Programmierfehler auf. Besonders anfällig sind Webapplikationen: Die meist individuell entwickelte Software stammt nicht von Sicherheitsspezialisten, ist aber über das Netz weltweit erreichbar und damit ein ideales Angriffsziel. Findet ein Einbrecher einen Programmierfehler in der Anwendung, kann er sie meist für seine Zwecke missbrauchen und sich Zugang zum System verschaffen.
Auf Umwegen zu Root
Selbst wenn der Eindringling nur den Account eines Normalusers erlangt, droht weitere Gefahr: Der Cracker hat direkten Zugang zu allen lokal installierten Programmen. Eine einzige Sicherheitslücke in einem Set-UID-Root-Programm genügt und er übernimmt die Kontrolle.
Den Admins und Webmastern bleibt klassischerweise nur übrig, ihr System ständig auf dem neuesten Stand zu halten und auf allen Ballast zu verzichten, also ausschließlich die unbedingt nötige Software zu installieren. All das schützt aber nicht vor so genannten Zero-Day-Exploits, den Angriffen auf bislang unbekannte Sicherheitslücken.
Aus dieser Misere will App Armor den Admin befreien. Das System überwacht, wie ein Prozess auf Dateien zugreifen möchte. Dabei unterscheidet App Armor lesende und schreibende Aktionen. Zudem kontrolliert es den Einsatz der Root-Privilegien: Je nach Kernel kennt Linux bis zu 29 Privilegien (Capability, Fähigkeit; siehe »man 7 capabilities«). So ist »CAP_KILL« die Fähigkeit von Root, beliebige Prozesse zu beenden, und »CAP_NET_RAW« erlaubt beliebige Netzwerkpakete zu erzeugen. Letzteres braucht zum Beispiel der »ping«-Befehl.
Die Idee, Zugriffe und Aktionen anhand eines Programms und nicht anhand seines Besitzers beziehungsweise Benutzers zu unterscheiden, ist nicht neu. Unter den freien BSD-Systemen und Linux implementiert beispielsweise auch Systrace ([7], [8]) von Niels Provos dieses Prinzip. Während Systrace - dem Namen entsprechend - Systemcalls überwacht, benutzt App Armor die LSM-Hooks (siehe Kasten "Immunix").
|
App Armor begann seine Karriere als kommerzielles Produkt der Firma Immunix, allerdings trug es damals den Namen Subdomain. Novell hat Immunix Mitte 2005 gekauft, Subdomain in App Armor umgetauft und Anfang 2006 unter die GPL gestellt. Bekannt wurde Immunix als Entwickler von Sicherheitslösungen, vor allem durch den Stackguard-Compiler. Dieser modifizierte GCC schützt Anwendungen vor vielen Varianten von Buffer-Overflow-Angriffen.
Immunix war auch maßgeblich an der Entwicklung der LSM-Schnittstelle (Linux Security Modules, [9]) in Kernel 2.6 beteiligt. Neben App Armor setzen etliche Sicherheitssysteme, etwa LIDS (Linux Intrusion Detection System) und das konkurrierende SE Linux, LSM ein, um ihre Kontrollfunktionen in die passenden Stellen des Kernels einzuklinken. Dank LSM klappt das ohne Patches - allerdings ist die LSM-Architektur bei manchen Projekten umstritten ([10], [11]).
|
« Zurück
1
2
3
4
5
6
7
Weiter »