# PitBull LX

PitBull ist eine sichere Applikations-Umgebung entwickelt von der Argus Systems Group. Ende des Jahres 2012 wurde das Unternehmen aufgekauft von General Dynamics, einem der größten Rüstungskonzerne der USA. Bei der Version PitBull LX handelt es sich um einen modifizierten Linux oder Solaris Kernel. Die Standard-Datei-Berechtigungen (DAC), die nur auf Benutzerebene greifen, werden auf Prozessebene erweitert. Das Rechtemodell entspricht dem Lattice- (bzw. compartment-) Modell: Ein Zugriffsrecht (Lesen, Schreiben, Ausführen) auf eine Datei wird nur gewährt, wenn der zugreifende Prozess alle dafür notwendigen Zugriffsklassifizierungen (hier Domain genannt) bereithält.
Darüber hinaus wird auch die Möglichkeit implementiert, Netzwerkzugriffe auf Prozessebene einzuschränken (sogenannte Netrules). Hier greifen ähnliche Filtermechanismen wie bei Firewalls zwischen getrennten Systemen. Außerdem kann die Interprozesskommunikation über Unix-Sockets ebenfalls eingeschränkt werden.
Die Weiterentwicklung von PitBull LX ist zugunsten von PitBull Foundation eingestellt worden, da PitBull Foundation neben den Merkmalen von PitBull LX auch die insbesondere die im Militär- und Behördenumfeld notwendigen, hierarchischen Berechtigungsstrukturen (Top Secret, Secret, Confidential, Unclassified …) zwischen verschiedenen, zusammenarbeitenden Ländern, Organisationen oder Partnerunternehmen Netzwerkübergreifend unter Nutzung des CIPSO IP-Header-Standards ermöglicht.

## Technologie

Die erweiterten Rechtestrukturen für Dateien werden zusätzlich zu den standard DAC Berechtigungen in der Inode-Table des ext3-Dateisystems (Linux-Version) abgelegt. Ein zugreifender Prozess muss für eine Operation (Lesen, Schreiben, Ausführen) die erforderlichen Berechtigungen beider Rechtesysteme (PitBull LX und DAC) besitzen.
Die Netrules werden über eine Konfigurationsdatei (meist /etc/argus/netrules) in das PitBull LX Kernel-Modul geladen. Kriterien für Regeln sind Quell- und Ziel-IP-Adresse, Port, Protokoll (TCP, UDP, ICMP …) sowie die verwendete Netzwerkschnittstelle.
Die Zugriffsklassifizierungen (Domänen) erhalten Prozesse im Fall ausführbarer Binärdateien beim Starten über weitere in den Inode-Tabellen abgelegte Strukturen. Für Scripte gibt es ein wrapper-Programm (lxexec), welches die Domänen über Parameterangaben an das auszuführende Script weitervererbt.
Für die Vergabe der Domänen an die Ausführungsumgebung bei der Nutzeranmeldungen an der Konsole wird ein PAM-Modul bereitgestellt. Die differenzierte Anpassung der Rechte erfolgt in der Datei /etc/argus/users, wobei hier zwischen einer lokalen Anmeldung und einer entfernten Anmeldung (beispielsweise via ssh) unterschieden werden kann.

## Ziel

Durch die Modifikation ist es möglich, auch als root-User ausgeführte Prozesse einzuschränken, so dass jeder Prozess für sich selbst so ausgeführt wird, als wenn er sich in einer eigenen virtuellen Maschine befinden würde. Somit wird der Schaden im Fall eines erfolgreichen Hacks deutlich reduziert. Dies wird dadurch erreicht, dass der Zugriff auf Dateien, die sich auf dem gleichen System befinden, ähnlich wie auch durch das chroot-Konzept eingeschränkt wird. Darüber hinaus wird durch die Netrules auch die Kommunikation (IP-Netzwerk und Unix-Sockets) zwischen den Diensten ähnlich einer Firewall eingeschränkt, so dass der Angreifer auch über diesen Umweg keinen weiteren Zugriff erhält.
Auch lassen sich durch Mandatory Access Control sehr viel komplexere Berechtigungsstrukturen realisieren, wie sie oftmals im Militärbereich oder großen Behörden eingesetzt werden.

## Vorteile

* Die erweiterte Rechtestruktur trennt auf einem System ausgeführte Dienste logisch voneinander, so dass ein Sicherheitsniveau ähnlich wie bei Virtualisierung erreicht wird.
* Im Gegensatz zu anderen Virtualisierungslösungen wird der Kernel-Code nur einmal ausgeführt; es sind auch nicht mehrere Betriebssystem-Installationen (und Lizenzen) notwendig.
* Im Gegensatz zu chroot-Umgebungen müssen keine Bibliotheken und Konfigurationsumgebungen mehrfach auf einem System vorhanden sein. Außerdem ist es in chroot-Umgebungen nicht möglich, Netzwerkzugriffe einzuschränken. Somit kann hier ein erfolgreicher Angreifer aus der chroot-Umgebung heraus andere auf dem System laufende Dienste unmittelbar über die geöffneten Netzwerkports angreifen.
* Die Sicherheit des Konzepts wurde in zwei Open Hacks unter Beweis gestellt, beim Open Hack III unter Ankündigung einer Prämie von bis zu 50.000 $.
* Es lassen sich mehrstufige Berechtigungskonzepte realisieren.
* Das Konzept ist Ähnlich dem von SELinux, allerdings existieren dort keine Netrules oder vergleichbares, so dass Netzwerkzugriffe zwischen den Prozessen nicht eingeschränkt werden können.

## Nachteile

* Es handelt sich um ein kostenpflichtiges Produkt von General Dynamics.
* Durch etliche Kernel-Hooks (weit mehr als 2000, Linux-Version) ist es schwierig, andere Kernel-Patches mit PitBull LX parallel zu betreiben.
* Es sind exakte Kenntnisse der Datei- und Netzwerkzugriffe der einzelnen Dienste notwendig, damit diese effizient abgesichert werden können bzw. mit den eingeschränkten Rechten überhaupt funktionsfähig sind.