DE10229114A1 - Operating system administering method in computer, involves manipulating compartments of operating system associating with different processes by command-line utility - Google Patents

Operating system administering method in computer, involves manipulating compartments of operating system associating with different processes by command-line utility

Info

Publication number
DE10229114A1
DE10229114A1 DE10229114A DE10229114A DE10229114A1 DE 10229114 A1 DE10229114 A1 DE 10229114A1 DE 10229114 A DE10229114 A DE 10229114A DE 10229114 A DE10229114 A DE 10229114A DE 10229114 A1 DE10229114 A1 DE 10229114A1
Authority
DE
Germany
Prior art keywords
department
rule
command line
departments
executable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10229114A
Other languages
German (de)
Other versions
DE10229114B4 (en
Inventor
Scott Alan Leerssen
Joubert Berger
Tse Huong Choo
Christopher I Dalton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/896,385 external-priority patent/US20030014466A1/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10229114A1 publication Critical patent/DE10229114A1/en
Application granted granted Critical
Publication of DE10229114B4 publication Critical patent/DE10229114B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

A management system associates different processes to several compartments (401-403) of an operating system (400). A command-line utility (404) is provided for manipulating the compartments. Independent claims are included for the following: (1) system for administering operating system; and (2) computer readable medium storing operating system administration program.

Description

Die vorliegende Erfindung bezieht sich allgemein auf eine Computer-Eindämmung und spezieller auf ein System und Verfahren, die eine Verwaltung von Abteilungen in einem Betriebssystem ermöglichen. The present invention relates generally to a Computer containment and more specifically on a system and Procedure that involves managing departments in one Enable operating system.

Ein Betriebssystem (OS; OS = operating system) ist mit Recht das wichtigste Programm, das auf einem Computersystem ausgeführt wird, weil das OS beim Ausführen aller anderen Programme (die im allgemeinen als "Anwendungen" bezeichnet werden) genutzt wird. Im allgemeinen bietet das OS eine Funktionalität, die die Anwendungen dann nutzen können. Zum Beispiel kann eine Anwendung eine OS-Routine (z. B. über einen Systemaufruf) aufrufen, um eine spezielle Datei zu speichern, und das OS kann mit dem Eingabe- /Ausgabegrundsystem (BIOS; BIOS = basic input/output system), dynamischen Hauptbibliotheken, Treibern und/oder anderen Komponenten des Computersystems interagieren, um die spezielle Datei ordnungsgemäß zu speichern. Viele unterschiedliche OS's sind im Stand der Technik entwickelt worden, die beispielsweise HP-UX®, Linux™, MS-DOS®, OS/2®, Windows®, Unix™, System 8, MPE/iX, Windows CE® und Palm™ umfassen. An operating system (OS) is included Right the most important program on a computer system is running because the OS is executing everyone else Programs (commonly referred to as "applications" be used). In general, the OS offers one Functionality that the applications can then use. To the For example, an application can run an OS routine (e.g. via a system call) to get a special file save, and the OS can be / Output basic system (BIOS; BIOS = basic input / output system), dynamic main libraries, drivers and / or other components of the computer system interact to the save special file properly. Lots different OS's have been developed in the prior art which, for example, HP-UX®, Linux ™, MS-DOS®, OS / 2®, Windows®, Unix ™, System 8, MPE / iX, Windows CE® and Palm ™ include.

Fig. 1 zeigt ein exemplarisches System 100, das ein OS 101 umfaßt. Wie gezeigt ist, kann das OS 101 solche Aufgaben, wie z. B. ein Erkennen einer Eingabe von der Tastatur 106 und der Maus 104, ein Senden einer Ausgabe an den Anzeigebildschirm 107 und ein Steuern von Peripheriegeräten, wie z. B. einem Plattenlaufwerk 103 und einem Drucker 105, ausführen. In einige OS's sind relative komplexe Funktionen integriert, die einmal nur durch separate Programme, wie z. B. Faxen, Datenverarbeitung, Plattenkompression, und Internetbrowser ausgeführt wurden. Im allgemeinen stellen OS's eine Software-Plattform bereit, auf der andere Programme, z. B. eine Anwendung 102, ausgeführt werden können. Anwendungsprogramme werden im allgemeinen geschrieben, um auf einem speziellen OS ausgeführt zu werden, und daher kann das spezielle OS, das auf einem Computersystem implementiert ist, die Typen von Anwendungen, die auf einem solchen Computersystem ausgeführt werden können, größtenteils vorgeben. Fig. 1 shows an exemplary system 100, the OS 101 comprises a. As shown, the OS 101 can perform such tasks as: B. Detection of an input from the keyboard 106 and the mouse 104 , sending an output to the display screen 107 and control of peripheral devices such as. B. a disk drive 103 and a printer 105 . In some OSs, relatively complex functions are integrated, which can only be done by separate programs, such as. B. faxing, data processing, disk compression, and Internet browser were executed. In general, OS's provide a software platform on which other programs, e.g. B. an application 102 can be executed. Application programs are generally written to run on a particular OS, and therefore the particular OS that is implemented on a computer system can largely dictate the types of applications that can be run on such a computer system.

Die Anwendung 102, die auf einem Computersystem 100 ausgeführt ist, kann von Betriebssystemsroutinen abhängig sein, um Grundaufgaben, wie beispielsweise das Erkennen einer Eingabe von der Tastatur 106 und der Maus 104 sowie das Senden einer Ausgabe an den Anzeigebildschirm 102, auszuführen. Das OS 101 weist Sätze von Routinen zum Ausführen verschiedener Aufgaben (z. B. Operationen auf niedriger Ebene) auf. Betriebssysteme umfassen z. B. im allgemeinen Routinen zum Ausführen solcher Aufgaben, wie beispielsweise Erzeugen eines Verzeichnisses, Öffnen einer Datei, Schließen einer Datei und Speichern einer Datei. Die Anwendung 102 kann bestimmte OS-Routinen aufrufen, um die gewünschten Aufgaben auszuführen, indem ein Systemaufruf vorgenommen wird. Das heißt, daß die Anwendungen OS-Routinen im allgemeinen über Systemaufrufe aufrufen. Ein Benutzer kann mit dem OS 101 auch durch einen Satz von Befehlen interagieren. Zum Beispiel enthält das DOS-Betriebssystem Befehle, wie z. B. COPY (Kopieren) und RENAME (Umbenennen) zum Kopieren von Dateien bzw. Verändern der Namen von Dateien. Die Befehle werden akzeptiert und durch einen Teil des Betriebssystems, der als Befehlsprozessor oder Befehlszeileninterpretierer bezeichnet wird, ausgeführt. Zusätzlich kann eine graphische Benutzerschnittstelle vorgesehen sein, um einem Benutzer zu ermöglichen, Befehle durch Zeigen und Klicken auf Objekte, die z. B. auf dem Anzeigebildschirm erscheinen, einzugeben. The application 102 running on a computer system 100 may depend on operating system routines to perform basic tasks such as recognizing an input from the keyboard 106 and the mouse 104 and sending an output to the display screen 102 . The OS 101 has sets of routines for performing various tasks (e.g., low level operations). Operating systems include e.g. B. Generally routines for performing such tasks as creating a directory, opening a file, closing a file and saving a file. Application 102 can call certain OS routines to perform the desired tasks by making a system call. This means that the applications generally call OS routines via system calls. A user can also interact with the OS 101 through a set of commands. For example, the DOS operating system contains commands such as: B. COPY (copy) and RENAME (rename) for copying files or changing the names of files. The commands are accepted and executed by a part of the operating system called the command processor or command line interpreter. In addition, a graphical user interface can be provided to enable a user to issue commands by pointing and clicking on objects that e.g. B. appear on the display screen.

Neben den oben beschriebenen, können die OS's viele Verantwortungsbereiche aufweisen. Zum Beispiel können die OS's auch die Verantwortung zum Sicherstellen haben, daß unterschiedliche Anwendungen und Benutzer, die zur selben Zeit arbeiten, nicht miteinander interferieren. Die OS's können ferner die Verantwortung für die Sicherheit haben, z. B. zum Sicherstellen, daß unbefugte Benutzer nicht auf das System (oder zumindest auf verbotene Abschnitte des Systems) zugreifen. Zum Beispiel sind "vertrauenswürdige" (sichere) OS's, die Sicherheitsmechanismen in denselben umfassen, im Stand der Technik entwickelt worden, wie z. B. jene, die zum Handhaben und Verarbeiten von klassifizierten regierungstechnischen (z. B. militärischen) Informationen konzipiert sind. Ein Typ eines Sicherheitsmechanismus, der implementiert werden kann, ist ein Prüfen von Betriebssystemsroutinen (die als "Ereignisse" bezeichnet werden können), die durch Anwendungen und/oder Benutzer genutzt werden. Zum Beispiel sammeln die OS's im allgemeinen die Prüfdaten bezüglich der Verwendung einer Betriebssystemsroutine, die über einen Systemaufruf (oder "Syscall"), der durch eine Anwendung vorgenommen wird, aufgerufen wird. Angenommen, daß z. B. eine Anwendung einen Systemaufruf vornimmt, um eine spezielle Datei zu öffnen, so kann ein Prüfprogramm im Betriebssystem solche Prüfdaten für den Systemaufruf, wie Datum und Uhrzeit, als der Systemaufruf vorgenommen wurde, Name der Datei, die geöffnet werden soll, und Ergebnis des Systemaufrufs (z. B. Systemdatei erfolgreich oder erfolglos geöffnet), sammeln. Ein solches Prüfen kann als Teil des Sicherheitsmechanismus ausgeführt werden, der beispielsweise im OS umfaßt ist. Andere Sicherheitsmechanismen können zusätzlich oder anstelle eines solchen Prüfmerkmals implementiert sein. In addition to the ones described above, the OS's can do many Show areas of responsibility. For example, the OS's also have the responsibility to ensure that different applications and users at the same time work, not interfere with each other. The OS's can also have responsibility for security, e.g. B. to ensure that unauthorized users do not access the System (or at least on prohibited sections of the system) access. For example, "trustworthy" (secure) OS's that include security mechanisms in the same State of the art has been developed such. B. those who for handling and processing classified governmental (e.g. military) information are designed. A type of security mechanism that can be implemented is a testing of Operating system routines (referred to as "events" can) used by applications and / or users become. For example, the OS's generally collect the Test data regarding the use of a Operating system routine through a system call (or "syscall") passed through an application is made that is called. Assume that e.g. B. an application makes a system call, to open a special file, a test program such test data in the operating system for the system call, such as the date and time when the system call was made name of the file to be opened and Result of the system call (e.g. system file successful or opened unsuccessfully), collect. Such testing can be considered Part of the security mechanism to be executed is included in the OS, for example. Other security mechanisms can in addition to or instead of such a test feature be implemented.

Speziell umfassen vertrauenswürdige OS's, zu denen einschränkungslos Hewlett-Packard CMW (compartment mode work station = Abteilungsmodusarbeitsstation), Hewlett-Packard Virtual Vault, Sun Trusted Solaris und SCO CMW gehören, im allgemeinen Sicherheitsmechanismen, wie z. B. das Prüfen von zumindest sicherheitsrelevanten Ereignissen. Specifically, trustworthy OS's include those unrestricted Hewlett-Packard CMW (compartment mode work station = departmental mode workstation), Hewlett-Packard Virtual Vault, Sun Trusted Solaris and SCO CMW are owned by general security mechanisms, such as B. testing of at least security-related events.

Wie Fachleuten hinreichend bekannt ist, ist das zentrale Modul eines OS der Betriebssystemkern (Kernel). Im allgemeinen handelt es sich dabei um den Teil des OS, der zuerst geladen wird und sich typischerweise im Hauptspeicher befindet. Typischerweise ist der Betriebssystemkern für solche Aufgaben, wie beispielsweise Speicherverwaltung, Prozeß- und Aufgabenverwaltung und Plattenverwaltung, verantwortlich. Der Betriebssystemkern eines OS's ist häufig für einen Großteil der Sicherheitsmaßnahmen, die durch ein solches OS bereitgestellt werden, verantwortlich. The central one, as is well known to experts Module of an OS the operating system kernel. in the generally this is the part of the OS that comes first is loaded and typically in main memory located. Typically, the kernel is for such tasks as memory management, Process and task management and plate management, responsible. The operating system core of an OS is often for a lot of the security measures by a such OS are provided responsible.

Die Art und Weise, in der Sicherheitsmaßnahmen in einem OS implementiert sind, bereitet einem Systemadministrator häufig Schwierigkeiten/komplexen Aufwand beim Verwalten eines Systems, wobei dazu das Ausführen solcher Aufgaben wie Hinzufügen neuer Anwendungen zum System etc. etc. gehört. Das heißt, daß man sich häufig auf Systemadministratoren verläßt, wenn es um eine ordnungsgemäße Konfiguration von Systembetriebsmitteln und/oder Sicherheitsmechanismen in ordnungsgemäßer/sicherer Weise geht. Zum Beispiel sind die Anwendungen, die elektronische Dienste bilden, im allgemeinen anspruchsvoll und enthalten viele Codezeilen, die häufig einen oder mehrere Programmfehler aufweisen, wodurch die Anwendungen anfälliger für Angriffe werden. Wenn ein elektronischer Dienst im Internet angeboten wird, ist er einer großen Gruppe von potentiellen Angreifern ausgesetzt, die den Dienst nach Schwachstellen sondieren können, und infolge dieser Programmfehler ist bekannt geworden, daß Sicherheitsverletzungen eingetreten sind. Sobald eine Anwendung gefährdet worden ist (z. B. durch einen Pufferüberlaufangriff), kann sie auf mehrere unterschiedliche Weisen durch einen Angreifer genutzt werden, um die Sicherheit des Systems zu verletzen. The way in which security measures in an OS are implemented, prepares a system administrator often difficulties / complex effort in managing a Systems, performing such tasks as Add new applications to the system etc. etc. The means that you often rely on system administrators leaves when it comes to proper configuration of System resources and / or security mechanisms in properly / safely. For example, they are Applications that form electronic services in general sophisticated and contain many lines of code that are common have one or more bugs, causing the Applications become more vulnerable to attack. When a electronic service is offered on the Internet, it is one large group of potential attackers exposed to the be able to probe the service for weaknesses, and as a result of these bugs it has become known that Security breaches have occurred. Once an application has been endangered (e.g. by a Buffer overflow attack), it can be done in several different ways an attacker can be used to protect the security of the System hurt.

Es werden immer mehr Einzelmaschinen verwendet, um mehrere Dienste gleichzeitig (z. B. ISP, ASP, xSP- Dienstebereitstellung) zu hosten, und daher wird es immer wichtiger, daß nicht nur die Sicherheit der Host-Plattform vor anwendungsgefährdenden Angriffen geschützt ist, sondern auch, daß die Anwendungen im Falle eines Angriffs voreinander adäquat geschützt sind. More and more individual machines are being used to make several Services at the same time (e.g. ISP, ASP, xSP- Service delivery), and therefore it always will more important that not only the security of the host platform is protected against application-endangering attacks, but also that the applications in the event of an attack are adequately protected from each other.

Eine der effektivsten Möglichkeiten zum Schutz vor einer Anwendungsgefährdung auf OS-Ebene umfaßt betriebssystem- kern-forcierte- bzw. erzwungene Steuerungen, weil die im Betriebssystemkern implementierten Steuerungen nicht durch eine Anwendung oder einen Benutzer aus dem Benutzerraum ausgeschaltet oder untergraben werden können. Typischerweise sind die Steuerungen bei allen Anwendungen, ungeachtet des Grads der und/oder der gewünschten Sicherheit von jedem einzelnen Anwendungscode, anwendbar. Entsprechend werden die Steuerungen in manchen Fällen evtl. unnotwendigerweise genutzt (sie können bestimmte Anwendungen übermäßig schützen). One of the most effective ways to protect yourself from a Application risk at OS level includes operating system Core-forced or forced controls, because the in Control systems are not implemented by the operating system kernel an application or a user from the user room can be turned off or undermined. The controls are typically irrelevant in all applications the level of security and / or security desired by everyone individual application code, applicable. Be accordingly the controls may be unnecessary in some cases used (they can overuse certain applications protect).

Im allgemeinen können zwei Grundsicherheitsziele identifiziert werden, die auf Systemebene wünschenswert sind, um einen adäquaten Schutz vor Anwendungsgefährdung und deren Auswirkungen zu bieten. Zuerst sollten Anwendungen in höchstmöglichem Maße vor einem Angriff geschützt werden. Zum Beispiel sollten exponierte Schnittstellen zu den Anwendungen so eng wie möglich gehalten werden, und der Zugriff auf solche Schnittstellen sollte gut kontrolliert sein. Zweitens sollte der Umfang des Schadens, den eine gefährdete Anwendung am System anrichten kann, auf das größtmögliche Maß beschränkt sein. In general, there can be two basic security goals that are desirable at the system level to adequate protection against application risks and their Impact. First, applications in be protected as much as possible from an attack. For example, exposed interfaces to the Applications are kept as tight as possible, and the Access to such interfaces should be well controlled his. Second, the amount of damage that a can cause endangered application to the system on which be as limited as possible.

Die vorstehenden beiden Anforderungen können durch die Verwendung einer "Eindämmung" erreicht werden. Im allgemeinen ist eine Anwendung eingedämmt, wenn in derselben strenge Kontrollen dahingehend vorgenommen werden, auf welche Betriebsmitteln sie zugreifen kann und welche Art von Zugriff sie besitzt, auch wenn die Anwendung gefährdet worden ist. Eine Eindämmung schützt eine Anwendung auch vor externen Angriffen und Interferenzen. Daher besitzt die Eindämmungsfunktionalität das Potential, viele der potentiellen Ausbeutungsaktionen eines Angreifers zumindest zu mindern. The above two requirements can be met by the Use of a "containment" can be achieved. In general an application is contained when in the same strict Checks are carried out on which Resources they can access and what type of access it owns even if the application has been compromised. Containment also protects an application from external ones Attacks and interference. Therefore, the Containment functionality the potential, many of the potential At least to mitigate an attacker's exploitation actions.

Die üblichsten Angriffe, die der Gefährdung einer Anwendung folgen, können in groben Zügen als einer von vier Typen, wie folgt kategorisiert werden (obwohl die Konsequenzen eines speziellen Angriffs eine Kombination von einem beliebigen oder allen dieser Typen darstellen können):

  • 1. Mißbrauch eines Privilegs, um direkten Zugriff auf geschützte Systembetriebsmittel zu erlangen. Wenn eine Anwendung mit speziellen Privilegien arbeitet (z. B. eine Anwendung, die als Wurzel auf einem Unix- Standard-Betriebssystem läuft), dann kann ein Angreifer versuchen, dieses Privileg auf unerwünschte Weise zu benutzen. Zum Beispiel könnte der Angreifer dieses Privileg verwenden, um Zugriff auf geschützte operierende Betriebsmittel zu erlangen oder um mit anderen Anwendungen zu interferieren, die auf der gleichen Maschine arbeiten.
  • 2. Untergrabung von anwendungsforcierten Zugriffssteuerungen. Bei dieser Art von Angriff wird ein Zugriff auf legitime Betriebsmittel erlangt (d. h. Betriebsmittel, die durch die Anwendung freigelegt werden sollen), dies jedoch in unerlaubter Weise. Zum Beispiel ist ein Webserver, der eine Zugriffskontrolle auf seinen Inhalt forciert, bevor er diesen anbietet, eine Anwendung, die für diese Art von Angriff anfällig ist. Da der Webserver einen ungesteuerten direkten Zugriff auf den Inhalt aufweist, tut dies auch der Angreifer, der die Kontrolle über den Webserver erlangt hat, in der gleichen Weise.
  • 3. Bereitstellung von falschen entscheidungstragenden Sicherheitsinformationen: Diese Art von Angriff ist gewöhnlich ein indirekter Angriff, bei dem die gefährdete Anwendung, im Gegensatz zum Hauptdienst, üblicherweise ein Unterstützungsdienst (wie z. B. ein Autorisierungsdienst) ist. Der gefährdete Sicherheitsdienst kann dann verwendet werden, um falsche oder gefälschte Informationen zu liefern, wodurch einem Angreifer ermöglicht wird, Zugriff auf den Hauptdienst zu erlangen. Daher handelt es sich hierbei um eine weitere Möglichkeit, mit der ein Angreifer unautorisierten Zugriff auf Betriebsmittel, die durch die Anwendung legitim freigelegt wurden, erlangen kann.
  • 4. Illegale Verwendung von ungeschützten Systembetriebsmitteln. Ein Angreifer erlangt Zugriff auf lokale Betriebsmittel der Maschine, die nicht geschützt sind, aber normalerweise nichtsdestotrotz durch die Anwendung freigelegt werden würden. Typischerweise würden solche lokalen Betriebsmittel dann verwendet werden, um weitere Angriffe einzuleiten. Zum Beispiel könnte ein Angreifer einen Schalenzugriff (bzw. Shell- Zugriff) auf das Host-System erlangen, und von dort aus könnten dann inszenierte Angriffe auf andere Anwendungen in der Maschine oder im Netzwerk eingeleitet werden.
The most common attacks that follow an application's threat can broadly be categorized as one of four types, as follows (although the consequences of a particular attack can be a combination of any or all of these types):
  • 1. Abuse of privilege to gain direct access to protected system resources. If an application works with special privileges (eg an application that is rooted on a standard Unix operating system), an attacker could try to use this privilege in an undesirable way. For example, the attacker could use this privilege to gain access to protected operating resources or to interfere with other applications working on the same machine.
  • 2. Undermining application-driven access controls. This type of attack accesses legitimate resources (that is, resources that are intended to be exposed by the application), but in an unauthorized manner. For example, a web server that enforces access control to its content before offering it is an application susceptible to this type of attack. Since the web server has uncontrolled direct access to the content, the attacker who has gained control of the web server does the same.
  • 3. Providing false decision-making security information: This type of attack is usually an indirect attack in which the application at risk, unlike the main service, is usually a support service (such as an authorization service). The vulnerable security service can then be used to provide false or bogus information, allowing an attacker to gain access to the main service. This is another way that an attacker can gain unauthorized access to resources that have been legitimately exposed by the application.
  • 4. Illegal use of unprotected system resources. An attacker gains access to the machine's local resources that are not protected but would normally still be exposed by the application. Typically, such local resources would then be used to initiate further attacks. For example, an attacker could gain shell access to the host system, and from there staged attacks on other applications in the machine or on the network could be initiated.

Bei einer Eindämmung hat der Mißbrauch eines Privilegs zum Erlangen eines direkten Zugriffs auf geschützte Systembetriebsmittel viel weniger ernsthafte Folgen als ohne Eindämmung, weil, selbst wenn ein Angreifer ein Anwendungsprivileg nutzt, die Betriebsmittel, auf die zugegriffen werden kann, dadurch gebunden sind, was im Eindämmungsbereich der Anwendung zur Verfügung gestellt worden ist. Desgleichen kann im Falle von ungeschützten Betriebsmitteln, die eine Eindämmung verwenden, der Zugriff auf das Netzwerk von einer Anwendung aus blockiert werden oder zumindest sehr streng kontrolliert werden. Im Hinblick auf die Bereitstellung von falschen entscheidungstragenden Sicherheitsinformationen mindert die Eindämmung den potentiellen Schaden, was dadurch bewirkt wird, daß sichergestellt wird, daß der einzige Zugriff auf die Unterstützungsdienste von den legitimen Clients aus erfolgt, d. h. den Anwendungsdiensten, wodurch die Freilegung von Anwendungen für den Angriff eingeschränkt wird. With containment, the abuse of a privilege has to Get direct access to protected System resources a lot less serious consequences than without Containment because even if an attacker is one Application privilege uses the resources that are accessed can be bound by what is in the containment area of the Application has been made available. Similarly can in the case of unprotected equipment that a Use containment to access the network from be blocked from an application or at least very be strictly controlled. In terms of Providing wrong decision-makers Security information mitigates the potential damage, which is done by ensuring that the only access to support services from the legitimate clients from d. H. the application services, thereby exposing applications to the attack is restricted.

Eine Minderung oder Prävention eines Angriffs des zweiten Typs, d. h. einer Untergrabung von anwendungsforcierten Zugriffssteuerungen, wird gewöhnlich auf Anwendungskonzept- oder zumindest auf Konfigurationsebene erreicht. Bei Verwendung einer Eindämmung können jedoch Vorkehrungen getroffen werden, daß der Zugriff auf geschützte Betriebsmittel von einer großen, nicht vertrauenswürdigen Anwendung (z. B. einem Webserver) aus durch eine kleinere, vertrauenswürdigere Anwendung gehen muß. A reduction or prevention of an attack by the second Types, d. H. an undermining of application-forced Access controls, is usually based on application concept or at least reached at configuration level. at However, using containment can take precautions be taken that access to protected resources from a large, untrustworthy application (e.g. a web server) by a smaller, must go to more trustworthy application.

Daher wird durch die Verwendung einer Eindämmung in einem Betriebssystem die Sicherheit der Anwendungen effektiv erhöht und ein möglicher Schaden eingegrenzt, der durch einen Angreifer in dem Fall, daß eine Anwendung gefährdet wird, bewirkt werden kann. Unter Bezugnahme auf Fig. 2 ist eine exemplarische Architektur 200 zum Multidiensthosten auf einem Betriebssystem mit der Eindämmungs-Funktionalität dargestellt. Die Eindämmung wird in dem dargestellten Beispiel verwendet, um sicherzustellen, daß die Anwendungen (die als Dienst 0, Dienst 1, . . ., Dienst N gezeigt sind) voneinander und von kritischen Systembetriebsmitteln getrennt gehalten werden. Eine Anwendung kann nicht mit der Verarbeitung einer anderen Anwendung interferieren oder einen Zugriff auf ihre (möglicherweise sensible) Daten erhalten. Die Eindämmung wird verwendet, um sicherzustellen, daß nur die Schnittstellen (Eingabe und Ausgabe), die eine spezielle Anwendung zur Funktion benötigen, durch das Betriebssystem freigelegt werden, wodurch der Angriffsumfang auf eine spezielle Anwendung und auch der Schadensumfang, der bewirkt werden kann, falls die Anwendung gefährdet werden würde, begrenzt wird. Daher hilft die Eindämmung, die Gesamtintegrität der Host-Plattform zu bewahren. Therefore, using containment in an operating system effectively increases application security and mitigates possible damage that can be done by an attacker in the event an application is compromised. Referring to FIG. 2, an exemplary architecture 200 is illustrated functionality containment for multiservice host on an operating system with the. Containment is used in the illustrated example to ensure that the applications (shown as Service 0, Service 1, ..., Service N) are kept separate from each other and from critical system resources. An application cannot interfere with the processing of another application or gain access to its (possibly sensitive) data. Containment is used to ensure that only the interfaces (input and output) that require a particular application to function are exposed by the operating system, thereby increasing the amount of attack on a particular application and the amount of damage that can be caused if the application would be compromised. Therefore, containment helps maintain the overall integrity of the host platform.

Betriebssystemkern-forcierte Eindämmungsmechanismen in OS's sind seit mehreren Jahren, typischerweise in OS's, die zur Handhabung und Verarbeitung von klassifizierten (militärischen) Informationen konzipiert wurden, verfügbar. Solche OS's werden häufig als "Trusted Operating Systems" (vertrauenswürdige Betriebssysteme) bezeichnet. Die Eindämmungs- Funktionalität wird üblicherweise durch eine Kombination von vorgeschriebenen Zugriffsteuerungen (MAC; MAC = Mandatory Access Controls) und Privilegien erreicht. Die MAC- Schutzschemata forcieren eine spezielle Politik der Zugriffssteuerung für Systembetriebsmittel, wie z. B. Dateien, Prozesse und Netzwerkverbindungen. Diese Politik wird durch den Betriebssystemkern forciert und kann nicht durch einen Benutzer oder eine gefährdete Anwendung ausgeschaltet werden. Operating system core-containing containment mechanisms in OS's have been used for several years, typically in OS's Handling and processing classified (military) information was designed, available. Such OS's are often called "Trusted Operating Systems" (trusted operating systems). The containment Functionality is usually through a combination of prescribed access controls (MAC; MAC = Mandatory Access Controls) and privileges achieved. The MAC Protection schemes enforce a special policy of the Access control for system resources, such as. B. Files, processes and network connections. This policy is forced by the operating system kernel and cannot by a user or a vulnerable application turned off.

Die Komplexität/Schwierigkeit, mit der ein Systemadministrator beim Verwalten eines Systems einschließlich der Verwaltung von Sicherheitsmechanismen, wie z. B. einer Eindämmung, konfrontiert wird, wird im allgemeinen durch die Werkzeuge/Techniken, die einem Systemadministrator zum Verwalten von Sicherheitsmechanismen (z. B. zum Manipulieren von Sicherheitsmechanismuskonfigurationen) zur Verfügung stehen, erhöht. Das heißt, daß ein Systemadministrator häufig mit relativ komplexen und/oder benutzerunfreundlichen Schnittstellen zum Konfigurieren von Systembetriebsmitteln und Sicherheitsmechanismen eines OS interagieren muß. Ferner sind Techniken zum Konfigurieren von Sicherheitsmechanismen im allgemeinen uneffizient, sind für einen Systemadministrator in unerwünschter Weise Zeit- und arbeitsaufwendig, wenn er die Aufgaben ausführt, die zum Konfigurieren (z. B. Manipulieren) von Sicherheitsmechanismen notwendig sind, wie z. B. jenen zum Implementieren einer Eindämmung in einem System. The complexity / difficulty with which a System administrator when managing a system including the Management of security mechanisms, such as B. one Containment, which is generally faced by the Tools / techniques that a system administrator can use to Manage security mechanisms (e.g. for manipulation of security mechanism configurations) standing, increased. That is, a system administrator often with relatively complex and / or user-unfriendly Interfaces for configuring system resources and security mechanisms of an OS must interact. Techniques for configuring Security mechanisms in general are inefficient for you System administrator unwanted time and labor intensive when performing the tasks required to configure (e.g. manipulation) of security mechanisms necessary are, such as B. that to implement containment in one system.

Es ist eine Aufgabe der vorliegenden Erfindung, ein System und Verfahren zum Verwalten von Abteilungen in einem vertrauenswürdigen Betriebssystem mit verbesserten Eigenschaften zu schaffen. It is an object of the present invention, a system and methods for managing departments in one trusted operating system with improved To create properties.

Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 9, ein System gemäß Anspruch 10 und ein computerlesbares Medium gemäß Anspruch 20 gelöst. This object is achieved by a method according to claim 1 or 9, a system according to claim 10 and a Computer-readable medium according to claim 20 solved.

Gemäß einem Ausführungsbeispiel wird ein Verfahren zum Verwalten eines prozessorbasierten Systems offenbart, das das Implementieren von zumindest einer Abteilung zum Aufbewahren von zumindest einem Prozeß und das Bereitstellen von zumindest einem Betriebssystem-Befehlszeilendienstprogramm aufweist, das zum Manipulieren der Abteilungen ausführbar ist. Gemäß einem weiteren Ausführungsbeispiel wird ein System offenbart, das zumindest einen Prozessor aufweist, und ein Betriebssystem, das zumindest eine Abteilung implementiert, der zumindest ein Prozeß, der auf dem System ausgeführt werden kann, zugewiesen werden kann. Das System weist ferner zumindest eine Konfigurationsdatei, die die Abteilungen definiert, und eine Einrichtung zum Ausführen der Verwaltung der Abteilungen auf, ohne zu erfordern, daß ein Benutzer die Konfigurationsdateien, in denen solche Fächer definiert sind, editiert. Ein weiteres Ausführungsbeispiel sieht ein computerlesbares Medium vor, das Instruktionen, die durch einen Prozessor ausgeführt werden können, umfaßt, wobei ein solches computerlesbares Medium eine Bibliothek von Softwarefunktionen zum Verwalten von zumindest einer Abteilung aufweist, die durch ein Betriebssystem implementiert ist. Eine solche Bibliothek von Softwarefunktionen umfaßt zumindest ein Befehlszeilendienstprogramm, das zum Manipulieren der Abteilungen ausgeführt werden kann. According to one embodiment, a method for Managing a processor-based system reveals that Implement at least one department to Retain at least one process and deploy at least one operating system command line utility has that executable to manipulate the departments is. According to a further exemplary embodiment, a System disclosed, which has at least one processor, and an operating system that has at least one department implemented at least one process on the system can be executed, can be assigned. The system points furthermore at least one configuration file which the Departments defined, and a facility to run the Manage departments without requiring a User the configuration files in which such subjects are defined, edited. Another embodiment provides a computer-readable medium that contains instructions, which can be executed by a processor, such a computer readable medium being a library software functions to manage at least one Department that has an operating system is implemented. Such a library of software functions includes at least one command line utility for Manipulating the departments can be done.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen: Preferred embodiments of the present invention are referred to below with reference to the enclosed Drawings explained in more detail. Show it:

Fig. 1 ein exemplarisches Computersystem des Stands der Technik, das ein Betriebssystem umfaßt; Fig. 1 illustrates an exemplary computer system of the prior art, comprising an operating system;

Fig. 2 eine schematische Darstellung einer exemplarischen Architektur zum Multi-Dienst-Hosten auf einem Betriebssystem, das eine Eindämmungsfunktionalität implementiert; Fig. 2 is a schematic illustration of an exemplary architecture for multi-service-hosting on an operating system that implements a mitigation functionality;

Fig. 3 eine exemplarische schematische Darstellung einer OS-Implementierung von Abteilungen; Figure 3 is an exemplary schematic representation of an OS implementation of sections.

Fig. 4 eine schematische Darstellung einer exemplarischen Architektur eines vertrauenswürdigen Linux- Host-Betriebssystems, das Abteilungen implementieren kann, wobei verschiedene Ausführungsbeispiele der vorliegenden Erfindung in einer solchen exemplarischen Architektur implementiert sein können; Is a schematic illustration of an exemplary architecture of a trusted Linux host operating system can implement the sections 4, wherein various embodiments of the present invention may be implemented in such an exemplary architecture.

Fig. 5 ein Beispiel zum Benutzen von Abteilungen in einem OS gemäß der exemplarischen Implementierung von Fig. 4; FIG. 5 shows an example of using departments in an OS according to the exemplary implementation of FIG. 4;

Fig. 6 in schematischen Zügen die Auswirkung der folgenden Regel in einer exemplarischen OS- Implementierung: HOST* → COMPARTMENT x METHOD TCP PRT 80; Fig. 6 in schematic outline the effect of the following rule in an exemplary OS implementation: HOST * → COMPARTMENT x METHOD TCP PRT 80;

Fig. 7 in schematischen Zügen eine exemplarische Konfiguration von Apache und zwei Tomcat Java Vms; FIG. 7 shows a schematic configuration of an exemplary configuration of Apache and two Tomcat Java Vms;

Fig. 8 in schematischen Zügen ein exemplarisches vertrauenswürdiges Gateway-System; Fig. An exemplary trusted in schematic trains 8 gateway system;

Fig. 9 einen exemplarischen Abteilungsverwaltungsfluß eines typischen Verfahrens des Stands der Technik zum Verwalten von Abteilungen durch Editieren einer Konfigurationsdatei und Booten (bzw. Urladen) des Systems; Figure 9 is an exemplary Abteilungsverwaltungsfluß a typical method of the prior art to manage compartments by editing a configuration file and boot (or initialization) of the system.

Fig. 10 einen exemplarischen Abteilungsverwaltungsfluß gemäß zumindest einem Ausführungsbeispiel der vorliegenden Erfindung; FIG. 10 is an exemplary Abteilungsverwaltungsfluß according to at least one embodiment of the present invention;

Fig. 11 einen exemplarischen Betriebsfluß zum Erzeugen einer Abteilung und anschließenden Umbenennen derselben gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; FIG. 11 is an exemplary operational flow for generating a division and subsequent rename the same according to an embodiment of the present invention;

Fig. 12 einen exemplarischen Betriebsfluß zum Wechseln von einer Abteilung zur anderen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und Figure 12 is an exemplary operational flow for switching from one department to another in accordance with an embodiment of the present invention. and

Fig. 13 einen exemplarischen Betriebsfluß, der ein Abteilungsverwaltungs-Dienstprogramm nutzt, um zu einer anderen Abteilung zu wechseln und einen Befehl in derselben gemäß einem Ausführungsbeispiel der vorliegenden Erfindung auszuführen. Fig. 13 shows an exemplary operation flow that utilizes utility department management, in order to switch to another department and execute a command in the same according to an embodiment of the present invention.

Wie vorstehend beschrieben ist, ist eine Eindämmung ein effektiver Sicherheitsmechanismus zum Implementieren in einem System. Wie nachstehend ausführlicher beschrieben ist, kann eine Eindämmungs-Funktionalität in einem System implementiert sein, indem die Abteilungen im System genutzt werden. Im allgemeinen beziehen sich die Abteilungen auf Gruppen von Prozessen oder Teilprozessen (Threads), die auf das Zugreifen auf bestimmte Teilsätze von Systembetriebsmitteln eines Computersystems beschränkt sind. Daher sind die Abteilungen halbisolierte Abschnitte eines Systems. Ein Betriebssystem zum Unterstützen einer Mehrzahl von Prozessen (z. B. Anwendungen) kann beispielsweise auf einem System implementiert sein, wobei zumindest ein Teil der Prozesse mit einer Kennzeichnung oder einem Etikett versehen ist, wobei jede Kennzeichnung oder jedes Etikett eine logisch geschützte Rechenumgebung oder "Abteilung" anzeigt. Jeder Prozeß mit der gleichen Beschriftung oder dem gleichen Etikett kann zur gleichen Abteilung gehören. Bei bestimmten Implementierungen kann die Eindämmungs-Funktionalität durch einen vorgeschriebenen Schutz von Prozessen, Dateien und Netzwerkbetriebsmitteln bereitgestellt sein, wobei das grundsätzliche Konzept auf der Abteilung fußt. Dienste und Prozesse (z. B. Anwendungen) auf dem System können in separaten Abteilungen betrieben werden. Die Prozesse in jeder Abteilung können nur einen direkten Zugriff auf die Betriebsmittel in jener Abteilung haben. Der Zugriff auf andere Betriebsmittel, egal ob lokal oder fern, kann nur über gut kontrollierte Kommunikationsschnittstellen erlaubt werden. Exemplarische Implementierungen von Abteilungen in einem System werden nachstehend ausführlicher beschrieben. As described above, containment is a effective security mechanism to implement in one System. As described in more detail below, containment functionality in one system be implemented using the departments in the system. In general, the departments refer to groups of processes or sub-processes (threads) that are based on the Access certain subsets of system resources of a computer system are limited. Therefore, they are Departments semi-isolated sections of a system. On Operating system to support a variety of processes (e.g. applications) can, for example, on a system be implemented, at least part of the processes is provided with a label or a label, where each label or label is a logical one protected computing environment or "department". Everyone Process with the same label or the same The label can belong to the same department. With certain The containment functionality can be implemented through prescribed protection of processes, files and Network resources are provided, the basic concept based on the department. Services and Processes (e.g. applications) on the system can be carried out in separate departments. The processes in everyone Department can only have direct access to the Have resources in that department. Access to other resources, whether local or remote, can only be accessed via well controlled communication interfaces allowed become. Exemplary implementations of departments in One system is described in more detail below.

Gemäß verschiedenen Ausführungsbeispielen der vorliegenden Erfindung wird eine effiziente und benutzerfreundliche Möglichkeit zur Verwaltung (z. B. Manipulieren) von Abteilungen in einem OS offenbart. Spezieller sind Dienstprogramme, wie z. B. Befehlszeilendienstprogramme, vorgesehen, die ermöglichen, daß Befehle vom Benutzerraum eines OS ausgeführt werden, um die Abteilungen zu verwalten. Gemäß zumindest einem Ausführungsbeispiel sind Befehlszeilendienstprogramme vorgesehen, die ermöglichen, daß Befehle ausgeführt werden, um die Abteilungen und/oder Regeln, die die Eindämmung von solchen Abteilungen definieren, dynamisch zu manipulieren. According to various embodiments of the present Invention becomes efficient and user-friendly Ability to manage (e.g. manipulate) Departments disclosed in an OS. Utilities are more special, such as B. Command line utilities provided the allow commands to be executed from the user space of an OS to manage the departments. According to at least In one embodiment, command line utilities are provided that allow commands to be executed to the departments and / or rules that contain the define such departments to dynamically manipulate.

Für ein besseres Verständnis bezüglich der vorliegenden Erfindung ist es angebracht, daß der Leser die Benutzung von Abteilungen in einem OS versteht. Dementsprechend sind ein exemplarisches OS, das Abteilungen in demselben implementiert, sowie exemplarische Abteilungsanordnungen nachstehend in Verbindung mit Fig. 3-8 beschrieben. Obgleich eine spezifische OS-Architektur und Verfahren zum Implementieren von Abteilungen innerhalb eines solchen OS nachstehend beschrieben sind, wird darauf hingewiesen, daß die beschriebenen OS- und Abteilungsimplementierungen nur als Beispiel dienen sollen, um dem Leser dabei zu helfen, bestimmte Aspekte der vorliegenden Erfindung zu verstehen, und aus diesem Grund soll die vorliegende Erfindung nicht auf die spezifischen OS- und/oder Abteilungsimplementierungen, die nachstehend beschrieben sind, beschränkt sein. Vielmehr sollte sich jedes OS und jedes Verfahren zum Implementieren von Abteilungen, das zum jetzigen Zeitpunkt bekannt ist oder später offenbart wird, im Schutzbereich der vorliegenden Erfindung befinden, der durch die angehängten Ansprüche definiert ist. Nach dem Bereitstellen eines Beispiels von einer OS-Architektur, die Abteilungen implementiert, werden Techniken zum Verwalten (z. B. Manipulieren) solcher Abteilungen beschrieben. Ein Verfahren des Stands der Technik zum Verwalten von Abteilungen durch Editieren einer Konfigurationsdaten und Booten des Systems wird in Verbindung mit Fig. 9 beschrieben. Exemplarische Verfahren zum Verwalten (z. B. Manipulieren) von Abteilungen unter Nutzung von Dienstprogrammen gemäß bestimmter Ausführungsbeispiele der vorliegenden Erfindung werden anschließend in Verbindung mit Fig. 10-13 beschrieben. For a better understanding of the present invention, it is appropriate that the reader understand the use of departments in an OS. Accordingly, an exemplary OS that implements departments therein and exemplary departmental arrangements are described below in connection with FIGS. 3-8. Although a specific OS architecture and methods for implementing departments within such an OS are described below, it is to be understood that the described OS and department implementations are intended to be exemplary only to help the reader understand certain aspects of the present invention Understand, and for this reason, the present invention is not intended to be limited to the specific OS and / or departmental implementations described below. Rather, any OS and method for implementing departments that is currently known or later disclosed should be within the scope of the present invention as defined by the appended claims. After providing an example of an OS architecture that implements departments, techniques for managing (e.g., manipulating) such departments are described. A prior art method of managing departments by editing configuration data and booting the system is described in connection with FIG. 9. Exemplary methods of managing (e.g., manipulating) departments using utilities in accordance with certain embodiments of the present invention are subsequently described in connection with FIGS. 10-13.

I. Exemplarische OS-Architektur und AbteilungsimplementierungI. Exemplary OS architecture and department implementation

Gemäß einem exemplarischen OS, in dem verschiedene Ausführungsbeispiele der vorliegenden Erfindung implementiert sein können, wird eine Eindämmungsfunktionalität mittels eines vorgeschriebenen Schutzes von Prozessen, Dateien und Netzwerkbetriebsmitteln auf Betriebssystemkern-Ebene erreicht. Verschiedene Typen von vorgeschriebenen Steuerungen können genutzt werden, wie z. B. jene von traditionellen vertrauenswürdigen OS's. Das Schlüsselkonzept eines vertrauenswürdigen OS's ist häufig die "Abteilung", und verschiedene Dienste und Prozesse (z. B. Anwendungen) auf einem System können in separaten Abteilungen ausgeführt werden. Unter Bezugnahme auf Fig. 3 ist eine exemplarischen schematische Darstellung einer OS-Implementierung von Abteilungen gezeigt, die ein sehr vereinfachtes Beispiel des Konzepts der Abteilungen liefert. Wie gezeigt ist, kann das System 300 ein OS aufweisen, das auf demselben ausgeführt wird und das zwei Fächer, die als Abteilung A und Abteilung B gezeigt sind, implementiert. In dem Beispiel von Fig. 3 sind die Prozesse X und Y in der Abteilung A enthalten bzw. eingedämmt, und der Prozeß Z ist in der Abteilung B enthalten bzw. eingedämmt. Das System 300 kann verschiedene Betriebsmittel aufweisen, die als Betriebsmittel A, Betriebsmittel B und Betriebsmittel C in Fig. 3 gezeigt sind, und die Abteilungen können implementiert sein, um jene Betriebsmitteln zu bezeichnen, auf die die darin enthaltenen Prozesse zugreifen dürfen. Solche Betriebsmittel A, B und C können Netzwerkschnittstellen, Prozesse, Dateien und/oder andere Typen von Systembetriebsmitteln aufweisen. Gemäß bestimmter Implementierungen kann eine beliebige Anzahl von Systembetriebsmitteln gemäß einer Abteilungszugriffssteuerung organisiert sein. Zum Beispiel können Systembetriebsmittel, die einem TCP/IP-Netzwerkbetrieb, Leittabellen, Leitweg-Caches, einem gemeinsamen Speicher, Nachrichtenwarteschlangen, Semaphoren, einer Prozeß-/Teilprozeß-Handhabung und einer Benutzer-ID-(UID-)Handhabung zugeordnet sind, durch die Nutzung von Abteilungen beschränkt sein. According to an exemplary OS, in which various exemplary embodiments of the present invention can be implemented, containment functionality is achieved by means of prescribed protection of processes, files and network resources at the operating system kernel level. Various types of mandatory controls can be used, such as: B. those of traditional trustworthy OS's. The key concept of a trustworthy OS is often the "department", and different services and processes (e.g. applications) on one system can be carried out in separate departments. Referring to FIG. 3, an exemplary schematic representation of an OS implementation of departments is shown, which provides a very simplified example of the concept of the departments. As shown, system 300 may have an OS running thereon that implements two compartments, shown as Department A and Department B. In the example of FIG. 3, processes X and Y are contained in department A and process Z is contained in department B. System 300 may include various resources, shown as resource A, resource B, and resource C in FIG. 3, and the departments may be implemented to designate those resources that the processes therein may access. Such resources A, B, and C may include network interfaces, processes, files, and / or other types of system resources. According to certain implementations, any number of system resources can be organized according to departmental access control. For example, system resources associated with a TCP / IP network operation, routing tables, routing caches, shared memory, message queues, semaphores, process / thread handling, and user ID (UID) handling can be handled by the Use of departments may be restricted.

Bei dem in Fig. 3 gezeigten Beispiel haben die Prozesse X und Y, die in der Abteilung A enthalten sind, einen Zugriff auf das Betriebsmittel A und das Betriebsmittel B, jedoch nicht auf das Betriebsmittel C. Ferner hat der Prozeß Z, der in der Abteilung B enthalten ist, einen Zugriff auf das Betriebsmittel B und das Betriebsmittel C, jedoch nicht auf das Betriebsmittel A. Folglich können die Fächer als ein Sicherheitsmechanismus genutzt werden, der die Anwendungen vor Angriffen schützt und den Schadensumfang, der von einem gefährdeten Prozeß am System resultieren kann, einschränkt, während ein gefährdeter Prozeß in einer Abteilung seinen Zugriff auf jene Betriebsmittel beschränkt, auf die die Abteilung zugreifen darf. In the example shown in FIG. 3, processes X and Y contained in department A have access to resource A and resource B, but not to resource C. Furthermore, process Z, which is shown in FIG Section B includes access to resource B and resource C, but not to resource A. As a result, the compartments can be used as a security mechanism that protects the applications from attacks and the extent of damage caused by a vulnerable process to the system can result, while an endangered process in a department limits its access to the resources that the department is allowed to access.

Gemäß einer exemplarischen OS-Implementierung können relativ einfache vorgeschriebene Zugriffssteuerungen und eine Prozeßbeschriftung verwendet werden, um das Konzept einer Abteilung zu erzeugen. In der nachstehenden exemplarischen Implementierung eines vertrauenswürdigen OS's wird jedem Prozeß in dem System eine Beschriftung zugewiesen, und die Prozesse mit der gleichen Beschriftung gehören zur gleichen Abteilung. Es werden vorgeschriebene Prüfungen auf Betriebssystemkern-Ebene forciert, um sicherzustellen, daß die Prozesse aus einer Abteilung nicht mit Prozessen aus einer anderen Abteilung interferieren können. Die vorgeschriebenen Zugriffssteuerungen sind in dem Sinne relativ einfach konzipiert, daß die Beschriftungen entweder miteinander übereinstimmen oder dies nicht tun. Ferner besteht bei diesem Beispiel keine hierarchische Anordnung von Beschriftungen in dem System, wie dies in manchen bekannten vertrauenswürdigen Betriebssystemen der Fall ist. Im Gegensatz zu herkömmlichen vertrauenswürdigen OS's werden die Beschriftungen in diesem Beispiel nicht verwendet, um den Zugriff auf das Hauptdateisystem direkt zu steuern. Statt dessen wird ein Dateisystemschutz erreicht, indem ein anderer Abschnitt des Hauptdateisystems jeweils einer Abteilung zugeordnet wird. Jeder solche Abschnitt des Dateisystems ist ein "Chroot" des Hauptdateisystems, und die Prozesse, die in jeder Abteilung arbeiten, haben lediglich Zugriff auf den Abschnitt des Dateisystems, der dieser Abteilung zugeordnet ist. According to an example OS implementation relatively simple mandatory access controls and one Process labeling used to support the concept of a Department. In the example below Everyone will implement a trustworthy OS Process in the system assigned a label, and the Processes with the same label belong to the same Department. There are mandatory tests on Operating system kernel level enforced to ensure that the processes from one department don't use processes can interfere with another department. The prescribed access controls are relative in the sense simply designed the captions either agree with each other or do not. There is also no hierarchical arrangement of Labels in the system, as in some known ones trusted operating systems. in the Contrary to traditional trustworthy OS's, the Labels in this example are not used to identify the Control access to the main file system directly. Instead of file system protection is achieved by a other section of the main file system of a department is assigned. Any such section of the file system is a "chroot" of the main file system, and the processes, who work in each department only have access on the section of the file system that this department assigned.

Der hierin verwendete Begriff "Chroot" bezieht sich auf einen Befehl zum Verändern des aktiven Wurzelverzeichnisses. Das heißt, daß der "Chroot" ein Befehl ist, der ausgeführt wird, um das aktive Wurzelverzeichnis eines Benutzers zu verändern. Zum Beispiel wird in einem typischen Unix-System das Wurzelverzeichnis als "/" angezeigt. Folglich wird der Befehl "cd/" normalerweise ausgeführt, um zum Wurzelverzeichnis des Dateisystems zu wechseln. Der Chroot-Befehl kann ausgeführt werden, um das aktive Wurzelverzeichnis eines Benutzers zu verändern. Zum Beispiel verändert der Befehl "Chroot/home" ein aktives Wurzelverzeichnis eines Benutzers in "/home". Anschließend führt das Ausführen des Befehls "cd/" zu einer Veränderung zum "/home"-Verzeichnis, und nicht zu "/", da "/home" nun das aktive Wurzelverzeichnis des Benutzers ist. Als weiteres Beispiel kann der Chroot-Befehl dazu benutzt werden, um eine spezielle Abteilung als das aktive Wurzelverzeichnis zu spezifizieren. Zum Beispiel ändert der Befehl "Chroot/compt/FOO" das aktive Wurzelverzeichnis in die Abteilung FOO um. Folglich, während das "cd/" ausgeführt wird, um zum aktiven Wurzelverzeichnis zu wechseln (das durch den Chroot-Befehl verändert wird), kann der Chroot-Befehl als ein weiterer Sicherheitsmechanismus benutzt werden. Zum Beispiel kann der Chroot- Befehl benutzt werden, um effektiv zu verhindern, daß ein Benutzer (oder ein Prozeß) aus dem aktiven Wurzelverzeichnis, das durch den Chroot-Befehl spezifiziert ist, entweicht. Das heißt, daß z. B. ein Benutzer (oder Prozeß) nicht aus dem aktiven Wurzelverzeichnis, das durch den Chroot-Befehl (z. B. Abteilung FOO) spezifiziert ist, zum eigentlichen Wurzelverzeichnis ("/") des Systems entweichen kann. Sobald das aktive Verzeichnis eines Benutzers (oder Prozesses) über den Chroot-Befehl geändert worden ist, gilt dieses als gechrootet. Dementsprechend wird die Fähigkeit eines Prozesses, über die Betriebssystemkern-Steuerungen in dieser exemplarische Implementierung aus einer Abteilung zur Wurzel überzugehen, aufgehoben, so daß dem Chroot nicht zu entkommen ist. Diese exemplarische Implementierung liefert die Fähigkeit, zumindest ausgewählte Dateien im Chroot unveränderlich zu machen. The term "chroot" as used herein refers to a command to change the active root directory. That is, the "chroot" is a command that is executed to a user's active root directory change. For example, in a typical Unix system the root directory is displayed as "/". Hence the "Cd /" command normally run to Change root directory of the file system. The chroot command can be run to the active root directory change a user. For example, the Command "Chroot / home" an active root directory User in "/ home". Then executing the Command "cd /" to change to the "/ home" directory, and not to "/", since "/ home" is now the active one Is the user's root directory. As another example, the Chroot command used to make a special Specify department as the active root directory. To the For example, the command "Chroot / compt / FOO" changes the active one Root directory in the FOO department. Consequently, while the "cd /" is running to make it active Change root directory (changed by the chroot command the chroot command can be used as another Security mechanism can be used. For example, the chroot Command can be used to effectively prevent a User (or a process) from the active Root directory specified by the chroot command escapes. That means that e.g. B. a user (or process) not from the active root directory created by the Chroot command (e.g. department FOO) is specified to actual system root directory ("/") escape can. Once a user's active directory (or Process) via which the chroot command has been changed applies this as chrooted. Accordingly, the ability of a process via the operating system kernel controls in this exemplary implementation from one department to go to the root, canceled so that the chroot does not is to escape. This exemplary implementation provides the ability to chroot at least selected files to make unchangeable.

Bei dieser exemplarischen OS-Architektur sind flexible Kommunikationswege zwischen den Abteilungen und den Netzwerkbetriebsmitteln über enge, auf Betriebssystemkern-Ebene gesteuerte Schnittstellen mit TCP/UDP sowie den meisten IPC- Mechanismen vorgesehen. Der Zugriff auf diese Kommunikationsschnittstellen wird durch Regeln bestimmt, die durch den Sicherheitsadministrator auf einer "Pro-Abteilungs"- Grundlage spezifiziert sein kann. Folglich ist es, im Gegensatz zu herkömmlichen vertrauenswürdigen Betriebssystemen, bei dieser exemplarischen Implementierung nicht notwendig, die vorgeschriebenen Zugriffssteuerungen mit einem Privileg oder Ressort bezüglich der Verwendung von vertrauenswürdigen Proxies auf Benutzerebene auszuschalten, um eine Kommunikation zwischen den Abteilungen und den Netzwerkbetriebsmitteln zu ermöglichen. This exemplary OS architecture is flexible Communication channels between the departments and the Network resources over tight, at kernel level controlled interfaces with TCP / UDP and most IPC Mechanisms provided. Access to this Communication interfaces are determined by rules set by the Security administrator on a "per department" basis Basis can be specified. Hence it is in Contrast to traditional trustworthy ones Operating systems, not with this exemplary implementation necessary, the prescribed access controls with a Privilege or department regarding the use of turn off trusted user-level proxies to communication between the departments and the Allow network resources.

Die exemplarische Implementierung sieht ein vertrauenswürdiges OS vor, das eine Eindämmung anbietet, jedoch auch eine ausreichende Flexibilität aufweist, um eine Anwendungsintegration relativ unkompliziert zu gestalten, wodurch die Verwaltungsgesamtkosten und der Aufwand des Verwendens und Betreibens eines vertrauenswürdigen Betriebssystem, der häufig herkömmlichen vertrauenswürdigen OS's zugeordnet ist, verringert wird. Obgleich wiederum ein spezifisches Beispiel von der Architektur und Implementierung, die die Abteilungen nutzen, hierin beschrieben ist, und die eine bevorzugte Architektur und Implementierung bilden, in der Ausführungsbeispiele der vorliegenden Erfindung implementiert werden können, wird darauf hingewiesen, daß jede OS- Architektur und jedes Verfahren zum Implementieren von Abteilungen, die nun bekannt sind (z. B. traditionelle vertrauenswürdige OS's) oder später entdeckt werden, sich innerhalb des Schutzbereichs der vorliegenden Erfindung bewegen sollen, und daß bestimmte Ausführungsbeispiele der vorliegenden Erfindung in jeder solchen OS-Architektur implementiert sein können. The exemplary implementation is clear trusted OS that offers containment, however has sufficient flexibility to To make application integration relatively straightforward, which makes the Total administrative costs and the effort of using and Operating a trusted operating system that is often associated with conventional trusted OSs, is reduced. Although again a specific one Example of the architecture and implementation that the Departments, described herein, and one preferred architecture and implementation form in the Embodiments of the present invention can be implemented, it is pointed out that each OS Architecture and any method of implementing Departments that are now known (e.g. traditional trustworthy OS's) or later discovered yourself within the scope of the present invention should move, and that certain embodiments of the present invention in any such OS architecture can be implemented.

Die OS-Architektur und Implementierung eines spezifischen Beispiels zum Implementieren von Abteilungen wird nun ausführlicher beschrieben. In der nachstehenden Beschreibung wird ein vertrauenswürdiges Linux-OS ausführlich beschrieben, dessen System durch Modifizierung zum Linux-Basis- Betriebssystemkern zum Unterstützen der Eindämmung von Diensten auf Benutzerebene, wie z. B. HTTP-Servern, realisiert ist. Ein Fachmann wird jedoch verstehen, daß die in Verbindung mit einem solchen vertrauenswürdigen Linux-OS beschriebenen Grundsätze auf andere Typen von OS angewendet werden können, um gleiche oder ähnliche Effekte zu erzielen. The OS architecture and implementation of a specific one Examples of how to implement departments will now described in more detail. In the description below becomes a trustworthy Linux OS in detail described, whose system by modification to the Linux base Operating system kernel to help contain User level services such as: B. HTTP servers, is realized. However, one skilled in the art will understand that the in Connect to such a trustworthy Linux OS described principles applied to other types of OS can be used to achieve the same or similar effects achieve.

Unter Bezugnahme auf Fig. 4 ist eine exemplarische Architektur eines vertrauenswürdigen Linux-Host-OS's dargestellt, das Abteilungen implementiert, um eine Eindämmung zu schaffen. Das System 400 umfaßt eine Mehrzahl von Abteilungen. In diesem Beispiel sind eine WEB-Abteilung 401, eine FTP- Abteilung 402 und eine SYSTEM-Abteilung 403 gezeigt. Jede Abteilung kann verschiedenen ausführenden Prozessen oder Teilprozessen zugeordnet sein. Folglich, unter Bezugnahme auf Fig. 4, weist ein Linux-Basis-Betriebssystemkern 400 im allgemeinen eine TCP/IP-Netzwerkbetriebseinrichtung 406, UNIX-Domänensockel 408, eine Zwischenprozeß- Kommunikationseinrichtung 410 (z. B. eine Sys-V-IPC- Einrichtung), ein Dateizugriffsmodul 412 und andere Teilsystem 408 auf. Das vertrauenswürdige Linux-OS weist zusätzlich Betriebssystemkern-Erweiterungen 415 in Form eines Sicherheitsmoduls 421, eines Vorrichtungskonfigurationsmoduls 418, einer Regeldatenbank 416 und Betriebssystemkern- Modulen 422 auf. Wie gezeigt ist, sind zumindest einige der Linux-Betriebssystemkern-Teilsysteme 406, 408, 410, 412 und 414 modifiziert worden, um Aufforderungen an das Sicherheitsmodul 421 auf der Betriebssystemkern-Ebene vorzunehmen. Bei dieser exemplarischen Implementierung nimmt das Sicherheitsmodul 421 Zugriffssteuerungsentscheidungen vor und ist für das Forcieren des Konzepts einer Abteilung verantwortlich, wodurch eine Eindämmung bereitgestellt wird. Eine solche exemplarische OS-Architektur, bei der Ausführungsbeispiele der vorliegenden Erfindung implementiert sein können, wird ferner in der gleichzeitig eingereichten und der gleichen Anmelderin zugewiesenen US-Patentanmeldung mit dem Titel "SYSTEM UND VERFAHREN ZUR VORGESCHRIEBENEN ZUGRIFFSSTEUERUNG AUF EIN DATEISYSTEM", beschrieben, deren Offenbarung hierin durch Bezugnahme aufgenommen worden ist. Referring to Fig. 4, an exemplary architecture of a trusted Linux host OS is shown that implements departments to provide containment. System 400 includes a plurality of departments. In this example, a WEB department 401 , an FTP department 402 and a SYSTEM department 403 are shown. Each department can be assigned to different executing processes or sub-processes. Thus, referring to Figure 4, a Linux base operating system core 400 generally includes a TCP / IP network operating device 406 , UNIX domain socket 408 , an interprocess communication device 410 (e.g., a Sys-V-IPC device) ), a file access module 412 and other subsystem 408 . The trustworthy Linux OS additionally has operating system kernel extensions 415 in the form of a security module 421 , a device configuration module 418 , a rule database 416 and operating system kernel modules 422 . As shown, at least some of the Linux kernel subsystems 406 , 408 , 410 , 412, and 414 have been modified to make requests to the security module 421 at the kernel level. In this exemplary implementation, security module 421 makes access control decisions and is responsible for pushing the concept of a department, thereby providing containment. Such an exemplary OS architecture, in which embodiments of the present invention may be implemented, is further described in the co-pending and assigned to the same assignee, US Patent Application entitled "SYSTEM AND PROCEDURE FOR FILE SYSTEM ACCESS CONTROL", the disclosure of which is incorporated herein by reference.

Das Sicherheitsmodul 421 konsultiert zusätzlich die Regeldatenbank 416, wenn eine Entscheidung getroffen wird. Die Regeldatenbank 416 enthält Informationen über zulässige Kommunikationswege zwischen den Abteilungen, wodurch schmale, gut kontrollierte Schnittstellen in eine und aus einer Abteilung bereitgestellt werden. Folglich sind die Prozesse der Abteilungen auf das Zugreifen auf Systembetriebsmittel gemäß den Regeln, die in der Regeldatenbank 416 gespeichert sind, beschränkt. Die Regeldatenbank 416 kann separate Tabellen für TCP/IP-Netzwerkbetriebsmittelregeln und für Dateisystembetriebsmittelregeln aufweisen. Die verschiedenen Komponenten können an unterschiedlichen Positionen gespeichert sein. Zum Beispiel können die TCP/IP- Betriebsmittelregeln in einem Direktzugriffsspeicher gespeichert sein, während die Dateisystembetriebsmittelregeln auf dem Dateisystem gespeichert sein können. Fig. 4 stellt ebenfalls dar, wie die Betriebssystemkern-Erweiterungen 415 vom Benutzerraum 420 aus über eine Serie von maßgeschneiderten Systemaufrufen verwaltet werden. Wie nachstehend ausführlicher beschrieben ist, können solche maßgeschneiderten Systemaufrufe einige umfassen, um die Regeltabelle 416 zu manipulieren, und andere, um die Prozesse in speziellen Abteilungen zu betreiben und Netzwerkschnittstellen zu konfigurieren. The security module 421 also consults the rules database 416 when a decision is made. The rules database 416 contains information about permitted communication paths between the departments, thereby providing narrow, well-controlled interfaces in and out of a department. As a result, departments' processes of accessing system resources are restricted according to the rules stored in the rules database 416 . The rules database 416 may have separate tables for TCP / IP network resource rules and for file system resource rules. The different components can be stored in different positions. For example, the TCP / IP resource rules may be stored in random access memory, while the file system resource rules may be stored on the file system. Figure 4 also illustrates how the kernel extensions 415 are managed from the user room 420 through a series of bespoke system calls. As described in more detail below, such bespoke system calls may include some to manipulate the rules table 416 and others to operate the processes in special departments and to configure network interfaces.

Wie nachstehend ausführlicher beschrieben ist, kann die Systemabteilung 403 Prozesse umfassen, die die Befehlszeilendienstprogramme 404 vereinfachen, um die Abteilungen oder Regeln, die solchen Abteilungen zugeordnet sind, zu modifizieren. Gemäß verschiedener Ausführungsbeispielen der vorliegenden Erfindung können die Befehlszeilendienstprogramme 404 Befehle zum Verwalten von Abteilungen (z. B. Manipulieren von Abteilungen und/oder Abteilungsregeln) umfassen. Wie in dem exemplarischen System von Fig. 4 gezeigt ist, kann die stabile Speicherungsdatenbank 405 in dem Benutzerraum implementiert sein und umfaßt Informationen, die Abteilungsnamen und eine entsprechende Nummernabbildung für jede Abteilung (z. B. in der Datei "cmap.txt") identifizieren. Folglich können jeder Abteilung benutzerfreundliche Namen zugeordnet werden, und auf jeder Abteilung kann auch eine jeweilige Nummer abgebildet sein, die für eine interne Verarbeitung durch das System 400 verwendet wird. Ferner umfaßt das Sicherheitsmodul 421 vorzugsweise einen Speicher 421A, der den Abteilungsnamen und die Nummernabbildung aufweist, die dem Sicherheitsmodul 421 ermöglichen, die entsprechenden Regeln in der Regeldatenbank 416 zu identifizieren, die auf ein spezielles Abteilung zutreffen, die einen Zugriff auf die Systembetriebsmittel anfordert. As described in more detail below, system department 403 may include processes that simplify command line utilities 404 to modify the departments or rules associated with such departments. In accordance with various embodiments of the present invention, command line utilities 404 may include commands to manage departments (e.g., manipulating departments and / or department rules). As shown in the exemplary system of FIG. 4, stable storage database 405 may be implemented in the user space and includes information identifying department names and a corresponding number map for each department (e.g., in the "cmap.txt" file) , As a result, each department can be assigned user-friendly names, and each department can also have a respective number that is used for internal processing by the system 400 . Furthermore, the security module 421 preferably includes a memory 421 A, which has the department name and number of figure which enable the security module 421, to identify the corresponding rules in the rule database 416 that apply to a specific department, which requests access to the system resources.

Während des Betriebs interagiert jedes der Betriebssystemkern-Module des Systems 400 vorteilhafterweise mit dem Sicherheitsmodul 421. Das Sicherheitsmodul 421 treibt das Abteilungsschema dazu, einen unerlaubten Zugriff auf die Systembetriebsmittel zu verhindern. Speziell nutzt das Sicherheitsmodul 421 das Vorrichtungskonfigurationsmodul 418 und die Regeldatenbank 416, um Abteilungseinschränkungen zu erleichtern. Das Sicherheitsmodul 421 kann bestimmen, welche Betriebsmittel dem System 400 über das Vorrichtungskonfigurationsmodul 418 zur Verfügung stehen. Das Sicherheitsmodul 421 empfängt ferner die Identifizierung einer Abteilung und die Identifizierung eines Systembetriebsmittels, auf das von einer Routine eines Betriebssystemkern-Moduls zugegriffen werden soll. Das Sicherheitsmodul 421 durchsucht die Regeldatenbank 416, um eine zutreffende Regel zu lokalisieren. Das Sicherheitsmodul 421 ermöglicht oder sperrt den Zugriff auf Basis einer zutreffenden Regel oder auf Basis einer Vorgaberegel, wenn keine zutreffende Regel lokalisiert worden ist. During operation, each of the operating system kernel modules of system 400 advantageously interacts with security module 421 . Security module 421 drives the departmental schema to prevent unauthorized access to the system resources. Specifically, security module 421 uses device configuration module 418 and rules database 416 to alleviate departmental restrictions. The security module 421 can determine which resources are available to the system 400 through the device configuration module 418 . Security module 421 also receives department identification and system resource identification to be accessed by an operating system kernel module routine. The security module 421 searches the rules database 416 to locate an applicable rule. The security module 421 enables or blocks access based on an applicable rule or based on a default rule if no applicable rule has been located.

Unter kurzer Bezugnahme auf Fig. 5 ist ein Beispiel der Nutzung von Abteilungen in einem Betriebssystem gemäß einer exemplarischen Implementierung gezeigt. Wie gezeigt ist, können die Systemaufrufbefehle (Syscall-Befehle) 509 genutzt werden, damit ein Benutzer die Regeln in einer Regelmaschine 506 (die im Betriebssystemkern 501 ausgeführt wird) vom Benutzerraum 502 aus manipulieren kann. Ein Programm 507 oder eine Datei 508 können z. B. solche Syscall- Befehle 509 ausführen, um die gewünschten Regeln in der Regelmaschine 506 zu implementieren, um die Eindämmung der Abteilungen zu definieren. Das Beispiel von Fig. 5 umfaßt ferner einen Prozeß 503, der einer speziellen Abteilung zugeordnet ist. Der Prozeß 503 führt einen Code im Benutzerraum 502 aus, bei dem es sich um einen hardwareforcierten Betriebsmodus handelt, der die Operationen des Prozesses 503 einschränkt. Der Prozeß 503 kann einen Code umfassen, der betreibbar ist, um einen Zugriff auf ein geschütztes Betriebsmittel (z. B. Öffnen einer bestimmten Datei) gemäß einem Abteilungsschema zu versuchen, und den Zugriff auf ein spezielles Betriebsmittel anfordern. Das heißt, daß der Prozeß 503 anfordert (z. B. über einen maßgeschneiderten Syscall), einen Kommunikationszugriff 505 auf ein gewünschtes Betriebsmittel zu erhalten. Die Zugriffssteuerungslogik 504 wird im Betriebssystemkern 501 ausgeführt, um auf die Regelmaschine 506 zuzugreifen, um zu bestimmen, ob dem Prozeß 503 der angeforderte Zugriff gewährt werden soll. Spezieller empfängt die Zugriffssteuerungslogik 504 einen Abteilungsidentifizierer oder ein Etikett des Prozesses 503 und nutzt einen solchen Abteilungsidentifizierer, um die Regeldatenbank 506 zu durchsuchen, um zu bestimmen, ob der Abteilung, die dem Prozeß 503 zugeordnet ist, der Zugriff auf das spezielle Betriebsmittel erlaubt ist. Gemäß zumindest einer Implementierung kann eine Hash-Tabelle genutzt werden, um das Nachschlagen einer Regel auszuführen. Abhängig von dem Verwendungszweck des Systems können solche internen Hash-Tabellen so konfiguriert sein, daß die eingebrachten Regeln im Durchschnitt eine Ebene tief in jedem Hash-Protokollbereich sind, was die Regelnachschlageroutinen dazu bringt, sich in der Ordnung von O(1) zu verhalten. Dementsprechend kann das Regelnachschlagen relativ schnell und effizient ausgeführt werden. Abhängig von den Regeln, die für die Abteilung, in der der Prozeß 503 enthalten ist, definiert sind, kann die Zugriffssteuerungslogik 504 einen Kommunikationszugriff 505 gewähren oder einen solchen Kommunikationszugriff auf den Prozeß 503 verweigern. Wenn der Zugriff verweigert wird, überträgt die Zugriffssteuerungslogik 504 die Verarbeitungssteuerung an das Ausnahmehandhabungsmodul 510, das eine Ausnahme (z. B. eine Fehlernachricht) an den Prozeß 503 zurücksendet und/oder den Betrieb des Prozesses 503 einstellt. Referring briefly to FIG. 5, an example of department usage in an operating system according to an exemplary implementation is shown. As shown, the system call commands (syscall commands) 509 can be used so that a user can manipulate the rules in a rule engine 506 (which is executed in the operating system core 501 ) from the user space 502 . A program 507 or a file 508 can e.g. B. Execute such Syscall commands 509 to implement the desired rules in the rule engine 506 to define the containment of the departments. The example of FIG. 5 also includes a process 503 associated with a particular department. Process 503 executes code in user space 502 , which is a hardware enforced operating mode that restricts process 503 operations. Process 503 may include code that is operable to attempt to access a protected resource (e.g., open a particular file) according to a departmental schema and request access to a specific resource. That is, process 503 requests (e.g., via a bespoke syscall) to get communication access 505 to a desired resource. Access control logic 504 is executed in operating system kernel 501 to access rule engine 506 to determine whether process 503 should be granted the requested access. More specifically, access control logic 504 receives a department identifier or tag from process 503 and uses such a department identifier to search rule database 506 to determine whether the department associated with process 503 is allowed access to the particular resource. In accordance with at least one implementation, a hash table can be used to perform a rule lookup. Depending on the purpose of the system, such internal hash tables can be configured such that the rules introduced are on average one level deep in each hash protocol area, which causes the rule lookup routines to behave in the order of O (1). Accordingly, the rule lookup can be performed relatively quickly and efficiently. Depending on the rules defined for the department in which process 503 is included, access control logic 504 may grant or deny communication access 505 to process 503 . If access is denied, access control logic 504 transfers processing control to exception handling module 510 , which sends an exception (e.g., an error message) back to process 503 and / or stops operation of process 503 .

Unter Bezugnahme auf Fig. 4 können verschiedene Benutzerraumdienste in der gezeigten exemplarischen Architektur implementiert werden, für die die Abteilungen genutzt werden können. Die Benutzerraumdienste, wie z. B. die Webserver, die in Fig. 4 gezeigt sind, werden unmodifiziert auf der Plattform betrieben, weisen jedoch eine Abteilungsbeschriftung auf, das ihnen über die Befehlszeilenschnittstelle mit den Sicherheitserweiterungen zugeordnet ist. Das Sicherheitsmodul 421 ist dann für das Anlegen der vorgeschriebenen Zugriffssteuerungen an die Benutzerraumdienste basierend auf ihrer angelegten Abteilungsbeschriftung verantwortlich. Es wird daher darauf hingewiesen, daß die Benutzerraumdienste erhalten werden können, ohne jene Dienste in der gezeigten exemplarischen Implementierung modifizieren zu müssen. Referring to FIG. 4 different user space services can be implemented, for which the departments can be used in the illustrated exemplary architecture. The user space services such as For example, the web servers shown in Figure 4 are operated unmodified on the platform, but have department labels associated with them via the command line interface with the security enhancements. The security module 421 is then responsible for applying the prescribed access controls to the user room services based on their department label. It is therefore noted that the user space services can be obtained without having to modify those services in the exemplary implementation shown.

Die exemplarische Implementierung von Fig. 4 nutzt ein Betriebssystemkern-Modul (z. B. Sicherheitsmodul 421), das als "Ins" bezeichnet werden kann, um maßgeschneiderte Systemaufrufe zu implementieren, die das Einbringen/Löschen von Regeln oder anderen Funktionen, wie z. B. Beschriften von Netzwerkschnittstellen, ermöglicht. Ein solches Ins- Modul implementiert verschiedene Schnittstellen über maßgeschneiderte Systemaufrufe, um folgendes zu ermöglichen:

  • 1. Einen Aufrufprozess, um Abteilungen zu schalten.
  • 2. Einzelne Netzwerkschnittstellen, die einer Abteilungsnummer zugeordnet werden sollen.
  • 3. Dienstprogrammfunktionen, wie z. B. Prozeßauflistung mit Abteilungsnummern und Einloggen einer Aktivität für Sicherheitsprüfungen auf Betriebssystemkern-Ebene.
The exemplary implementation of FIG. 4 uses an operating system kernel module (e.g., security module 421 ), which may be referred to as "Ins", to implement bespoke system calls that involve the insertion / deletion of rules or other functions, such as. B. labeling of network interfaces. Such an Ins module implements various interfaces via customized system calls to enable the following:
  • 1. A call process to switch departments.
  • 2. Individual network interfaces that are to be assigned to a department number.
  • 3. Utility functions, such as. B. Process listing with department numbers and logging in of an activity for security checks at the kernel level.

Gemäß bestimmten Ausführungsbeispielen der vorliegenden Erfindung, die in dieser exemplarischen Architektur implementiert sind, ist der Haupt-Client des Ins-Moduls die tlutils-Sammlung von Befehlszeilendienstprogrammen, die nachstehend ausführlicher beschrieben sind. According to certain embodiments of the present Invention in this exemplary architecture are implemented, the main client of the Ins module is the tlutils collection of command line utilities that are described in more detail below.

Das Ins-Modul implementiert eine Schnittstelle zum Hinzufügen/Löschen von Regeln im Betriebssystemkern über maßgeschneiderte Systemaufrufe. Es führt die Übersetzung zwischen vereinfachten Regeln einer höheren Ebene in primitive Formen aus, die durch die Betriebssystemkern- Nachschlagroutinen besser verständlich sind. (Dieses Modul wird durch die Dienstprogramme auf tlutils-Benutzerebene aufgerufen, um Regeln im Betriebssystemkern zu manipulieren.) The Ins module implements an interface to Add / delete rules in the operating system core via customized system calls. It does the translation between simplified rules of a higher level in primitive Forms that are Lookup routines are easier to understand. (This module is through the tlutils user level utilities called to rules in the kernel manipulate.)

Bei dieser exemplarischen Implementierung sind Modifizierungen an den Linux-Standard-Betriebssystemkern-Quellen vorgenommen worden, um ein Etikett auf verschiedenen Datentypen einzuführen sowie um Zugriffssteuerungsprüfungen hinzuzufügen, die in der Nähe solcher etikettierten Datentypen vorgenommen wurden. Jeder etikettierte Datentyp enthält ein zusätzliches struct-csecinfo-Datenmitglied, das verwendet wird, um eine Abteilungsnummer zu halten. Es besteht die Aussicht, daß die etikettierten Datentypen erweitert werden könnten, um andere Sicherheitsattribute zu halten. Im allgemeinen wird das Hinzufügen dieses Datenmitglieds üblicherweise am äußersten Ende einer Datenstruktur ausgeführt, um Probleme zu vermeiden, die sich auf die allgemein übliche Verfahrweise beziehen, bei der Zeiger zwischen zwei oder mehreren unterschiedlich benannten Strukturen geworfen werden, die mit gemeinsamen Einträgen beginnen. In this exemplary implementation Modifications to the Linux standard operating system kernel sources been made to put a label on different Introduce data types as well as access control checks add those close to such labeled data types were made. Each labeled data type contains one additional struct-csecinfo data member that uses to keep a department number. There is Prospect that the labeled data types will be expanded could to keep other security attributes. in the general is adding this data member usually performed at the very end of a data structure, to avoid problems that affect the general refer to the usual procedure for the pointer between two or several structures with different names that start with common entries.

Der bloße Effekt des Etikettierens einzelner Betriebssystemkern-Betriebsmittel umfaßt ein sehr einfaches Implementieren eines in Abteilungen aufgeteilten Systems, in dem Prozesse und die Daten, die sie erzeugen/verbrauchen, voneinander isoliert sind. Bei dieser exemplarischen Implementierung sollte eine solche Isolierung nicht in dem Sinne strikt gestaltet sein, daß viele verborgene Kanäle existieren. Die Isolierung in dieser exemplarischen Implementierung soll einfach dazu dienen, offensichtliche Formen eines Konflikts und/oder einer Interaktion zwischen logisch unterschiedlichen Gruppen von Prozessen zu schützen. The mere effect of labeling individual ones Operating system kernel resources include a very simple one Implement a departmentalized system in which Processes and the data they generate / consume are isolated from each other. With this exemplary Such isolation should not be implemented in the sense be strictly designed that many hidden channels exist. The isolation in this exemplary Implementation is simply meant to serve obvious forms of an Conflict and / or an interaction between logical to protect different groups of processes.

Bei zumindest einer Implementierung können die Abteilungen vor einer angenommenen Wurzelidentität versiegelt sein. Das heißt, daß einzelne Abteilungen optional als "versiegelt" registriert sein können, um Prozesse in dieser Abteilung vor einem erfolgreichen Aufruf von setuid(0)- und verwandten Systemaufrufen, wie z. B. setuid(0), und auch vor einem Ausführen von SUID-Wurzelbinärziffern zu schützen. Dies kann für Dienste, auf die extern zugegriffen werden kann, und die im allgemeinen für Pufferüberlaufangriffe, die beispielsweise zum Ausführen eines bösartigen Codes führen können, anfällig sind, verwendet werden. Wenn solche Dienste darauf beschränkt sind, anfänglich als ein Pseudobenutzer (Nicht-Wurzel-Benutzer) betrieben zu werden, und wenn die Abteilung, in der er ausgeführt wird, versiegelt ist, dann wird jeder Versuch, die Wurzelidentität entweder durch Pufferüberlaufangriffe und/oder Ausführung von fremden Instruktionen anzunehmen, scheitern. Man beachte, daß jeder vorhandene Prozeß, der als Wurzel betrieben wird, dies weiterhin tun wird. In at least one implementation, the departments can be sealed from an assumed root identity. The means that individual departments can optionally be "sealed" can be registered to processes in this department before a successful call to setuid (0) - and related system calls, such as B. setuid (0), and also before one Protect executing SUID root binary digits. This for services that can be accessed externally, and generally for buffer overflow attacks that for example, run malicious code can be used. If such Services are initially limited to one Pseudo-user (non-root user) to be operated, and if the department in which it is carried out is sealed, then any attempt to root through either Buffer overflow attacks and / or third-party execution Accepting instructions fails. Note that everyone existing process, which is operated as a root, this will continue to do.

Es können verschiedene Typen von Diensten in den Abteilungen implementiert sein. Die Betriebssystemkern- Modifizierungen, die vorstehend beschrieben sind, dienen zum Unterstützen des Hostens von einzelnen Diensten auf Benutzerebene in einer geschützten Abteilung. Daneben werden nun Layout, Position und Konventionen, die beim Hinzufügen oder Entfernen von Diensten in diesem exemplarischen Ausführungsbeispiel der Erfindung verwendet werden, beschrieben. There can be different types of services in the Departments. The operating system kernel Modifications described above are used to support hosting of individual services User level in a protected department. Be next to it now layout, position and conventions when adding or removing services in this exemplary Embodiment of the invention can be used described.

Einzelne Dienste können jeweils einer Abteilung zugewiesen sein. Was jedoch ein Endbenutzer als Dienst ansieht, kann tatsächlich mit der Verwendung von mehreren Abteilungen enden. Ein Beispiel wäre die Verwendung einer Abteilung zum Hosten eines extern zugreifbaren Webservers mit einer schmalen Schnittstelle zu einer anderen Abteilung, die einen vertrauenswürdigen Gateway-Agenten für das Ausführen von CGI-Binärzahlen in ihren eigenen individuellen Abteilungen hostet. In diesem Fall können zumindest drei Abteilungen genutzt werden:

  • - eine für die Web-Serverprozesse;
  • - eine für den vertrauenswürdigen Gateway-Agenten, der die CGI-Binärzahlen ausführt; und
  • - so viele Abteilungen, wie notwendig sind, um jede CGI- Binärzahl ordnungsgemäß zu kategorisieren, während der vertrauenswürdige Gateway die CGI-Binärzahlen in ihren konfigurierten Abteilungen angreift/ausführt.
Individual services can be assigned to a department. However, what an end user sees as a service can actually end up using multiple departments. An example would be to use a department to host an externally accessible web server with a narrow interface to another department that hosts a trusted gateway agent for executing CGI binary numbers in their own individual departments. In this case, at least three departments can be used:
  • - one for the web server processes;
  • one for the trusted gateway agent that executes the CGI binary numbers; and
  • as many departments as are necessary to properly categorize each CGI binary number while the trusted gateway is attacking / executing the CGI binary numbers in their configured departments.

Bei dieser exemplarischen Implementierung hat jede Abteilung einen Namen und befindet sich als eine chroot-fähige Umgebung unter /compt. Die in dieser Implementierung verwendeten Beispielen umfassen:




In this exemplary implementation, each department has a name and is located as a chrooted environment under / compt. The examples used in this implementation include:




Zusätzlich bestehen auch noch die nachstehenden Teilverzeichnisse:

  • 1. /bin - verschiedene Skripten und Befehlszeilendienstprogramme zum Verwalten von Abteilungen können in /bin gemäß bestimmter Implementierungen der vorliegenden Erfindung installiert sein; und
  • 2. /etc/tlinux/rules - Dateien, die Regeln für jede registrierte Abteilung auf dem System enthalten, können in /etc/tlinux/rules gemäß bestimmter Implementierungen der vorliegenden Erfindung positioniert sein.
In addition, the following subdirectories also exist:
  • 1. / bin - various scripts and command line utilities for managing departments can be installed in / bin in accordance with certain implementations of the present invention; and
  • 2. / etc / tlinux / rules - files containing rules for each registered department on the system can be positioned in / etc / tlinux / rules in accordance with certain implementations of the present invention.

Um das allgemeine Starten/Stoppen einer Abteilung in dieser exemplarischen Implementierung zu unterstützen, stimmt jede Abteilung vorzugsweise mit einigen Grundcharakteristika überein:

  • 1. Chroot-fähig sein gemäß ihrer Abteilungsposition /compt/<name>. Es ist jedoch nicht zwingend erforderlich, daß eine Abteilung einen "Chroot" aufweist, um zu starten. Vielmehr ermöglicht dies ein zusätzliches Sicherheitsmerkmal, das nicht in allen Implementierungen der vorliegenden Erfindung erforderlich ist.
  • 2. Liefern von /etc/tlinux/init/<name>/startup und /etc/tlinux/init/<name>/shutdown, um die Abteilung, die durch <name> identifiziert ist, zu starten/stoppen.
  • 3. Startup- (bzw. Start-) und Shutdown- (bzw. Schließ-)Skripten sind zum Einbringen von Regeln, Erzeugen von Leittabellen, Anbringen von Dateisystemen (z. B. /proc) und anderen Pro-Dienst-Initialisierungsschritten verantwortlich.
In order to support the general start / stop of a department in this exemplary implementation, each department preferably matches some basic characteristics:
  • 1. Chroot according to their department position / compt / <name>. However, it is not mandatory for a department to have a "chroot" to start. Rather, this enables an additional security feature that is not required in all implementations of the present invention.
  • 2. Provide / etc / tlinux / init / <name> / startup and / etc / tlinux / init / <name> / shutdown to start / stop the department identified by <name>.
  • 3. Startup (or start) and shutdown (or close) scripts are responsible for introducing rules, creating control tables, attaching file systems (e.g. / proc) and other pro service initialization steps.

Im allgemeinen, wenn die Abteilung extern sichtbar sein soll, sollten die Prozesse in dieser Abteilung nicht vorgabemäßig als Wurzel betrieben werden, und die Abteilung sollte nach der Initialisierung "versiegelt" werden. Manchmal ist dies aufgrund der Art und Weise der Vorläuferanwendung, die integriert wird/mit Ports versehen wird, nicht möglich, wobei es in diesem Fall wünschenswert ist, möglichst viele Fähigkeiten zu entfernen, um zu verhindern, daß die Prozesse aus dem "Chroot-Gefängnis", z. B. cap_mknod, entkommen. Generally when the department will be visible externally the processes in this department should not by default operated as a root, and the department should be "sealed" after initialization. Sometimes this is due to the way the Forerunner application that is integrated / ported does not possible, in which case it is desirable remove as many skills as possible to prevent that the processes from the "Chroot Prison", e.g. B. cap_mknod, escape.

Da die Abteilungen als gechrootete Umgebungen gemäß dem /compt-Verzeichnis existieren können, kann die Anwendungsintegration die üblichen Verfahren voraussetzen, die zum Sicherstellen verwendet werden, daß dieselben in einer gechrooteten Umgebung arbeiten. Ein übliches Verfahren umfaßt die Vorbereitung eines cpio-Archivs einer minimal arbeitenden Abteilung, das eine minimale RPM-Datenbank einer installierten Software enthält. Es ist üblich, die gewünschte Anwendung an oberster Stelle derselben zu installieren, und im Fall von Anwendungen in der Form von RPMs könnten nachstehende Schritte ausgeführt werden:
root@tlinux# chroot/compt/app1
root@tlinux# rpm -install<RPM-package-filename>
root@tlinux# [Konfigurationsdatei nach Bedarf verändern, z. B. httpd.conf]
root@tlinux# [Startup-/Shutdown-Skripten in /compt/appl erzeugen]
Since the departments can exist as chrooted environments according to the / compt directory, application integration can require the usual procedures used to ensure that they operate in a chrooted environment. A common procedure involves preparing a cpio archive of a minimally working department that contains a minimal RPM database of installed software. It is common to install the desired application on top of it, and in the case of applications in the form of RPMs, the following steps could be performed:
root @ tlinux # chroot / compt / app1
root @ tlinux # rpm -install <RPM-package-filename>
root @ tlinux # [Change configuration file as required, e.g. B. httpd.conf]
root @ tlinux # [create startup / shutdown scripts in / compt / appl]

Die letzten beiden Schritte können in die RPM- Installierphase integriert werden. Verringerungen im Plattenraum können durch eine Untersuchung erreicht werden, nämlich durch selektives Deinstallieren von nicht verwendeten Paketen über den rpm-Befehl. Zusätzliche Einträge im /dev-Verzeichnis der Abteilung können nach Bedarf erzeugt werden, jedoch wird normalerweise in den meisten Fällen /dev im wesentlichen allein stehengelassen. Eine weitere Automatisierung kann erreicht werden, indem eine webbasierte Schnittstelle mit dem oben beschriebenen Prozeß bereitgestellt wird, um alle notwendigen Parameter für jeden Typ von Anwendung, die installiert werden soll, bereitzustellen. An den kompilierten Binärzahlen sind im allgemeinen keine Veränderungen notwendig, es sei denn, es ist erforderlich, abteilungsbewußte Varianten solcher Anwendungen zu installieren. The last two steps can be done in the RPM Installation phase can be integrated. Reductions in Disk space can be reached through an examination namely by selectively uninstalling not packages used via the rpm command. Additional entries in The department's / dev directory can be created as needed will, however, will usually be in most cases / dev essentially left alone. Another Automation can be achieved by using a web-based interface with the process described above is provided to all the necessary parameters for each type of application to be installed provide. In general, the compiled binary numbers are no changes necessary unless it is required department-aware variants of such applications to install.

Sobald sich die Regeln an ihrem Platz befinden (z. B. in der Regeldatenbank 416 von Fig. 4), um die Eindämmung von Abteilungen zu definieren, können solche Abteilungen durch das OS zum Ausführen von Sicherheitsprüfungen genutzt werden. Bei dieser exemplarischen Implementierung existiert eine Funktion "cnet_chk_attr( )", die eine Ja/Nein- Sicherheitsprüfung für die Teilsysteme, die im Betriebssystemkern geschützt sind, implementiert. Aufrufe an diese Funktion werden durch die entsprechenden Punkte in den Betriebssystemkernquellen vorgenommen, um das erforderliche abteilungsmäßige Verhalten zu implementieren. Diese Funktion basiert auf dem betroffenen Teilsystem und kann leicht voneinander abweichende Vorgaben oder Regelkonventionen, abhängig vom Teilsystem der Operation, die zu diesem Zeitpunkt abgefragt wird, implementieren. Zum Beispiel implementieren die meisten Teilsysteme eine einfache Partitionierung, wo nur Objekte/Betriebsmittel mit exakt der gleichen Abteilungsnummer einen positiven Rückgabewert ergeben. In bestimmten Fällen kann jedoch die Verwendung einer Nicht-Privileg-Abteilung 0 und/oder einer Platzhalterabteilung - 1L verwendet werden, z. B. Abteilung 0 als ein Vorgabe-"Sandkasten" für unklassifizierte Betriebsmittel/Dienste; eine Platzhalterabteilung für Beaufsichtigungszwecke, wie z. B. Auflisten von Prozessen auf dem Teilsystem vor dem Herunterfahren. Once the rules are in place (e.g., in the rules database 416 of FIG. 4) to define department containment, such departments can be used by the OS to perform security checks. In this exemplary implementation there is a function "cnet_chk_attr ()" which implements a yes / no security check for the subsystems which are protected in the operating system kernel. Calls to this function are made through the appropriate points in the operating system kernel sources to implement the required departmental behavior. This function is based on the subsystem concerned and can implement slightly different specifications or rule conventions, depending on the subsystem of the operation that is being queried at this time. For example, most subsystems implement simple partitioning, where only objects / resources with exactly the same department number result in a positive return value. In certain cases, however, the use of a non-privilege division 0 and / or a placeholder division - 1L can be used, e.g. B. Division 0 as a default "sandpit" for unclassified resources / services; a placeholder department for oversight purposes, such as B. List processes on the subsystem before shutdown.

Wie in dem Beispiel von Fig. 5 gezeigt ist, werden Zugriffssteuerungsprüfungen an entsprechenden Punkten im Betriebssystemkern (durch die Zugriffssteuerungslogik 504) ausgeführt. Spezieller werden in dieser exemplarischen Implementierung solche Zugriffssteuerungsprüfungen durch die Verwendung von Haken für ein dynamisch ladbares Sicherheitsmodul 421 (Fig. 4) ausgeführt, das eine Tabelle von Regeln (Regeldatenbank 416 von Fig. 4) konsultiert, die anzeigt, welche Abteilungen auf die Betriebsmittel einer anderen Abteilung zugreifen dürfen. Dies geschieht auf eine für die arbeitenden Anwendungen transparente Weise. As shown in the example of FIG. 5, access control checks are performed at corresponding points in the operating system kernel (by access control logic 504 ). More specifically, in this exemplary implementation, such access control checks are performed using hooks for a dynamically loadable security module 421 ( FIG. 4) that consults a table of rules (rules database 416 of FIG. 4) that indicates which departments on the resources one other department. This is done in a way that is transparent to the working applications.

Jede Sicherheitsprüfung kann eine Tabelle von Regeln konsultieren. Jede Regel kann folgende Form aufweisen:
Quelle → Bestimmungsverfahren m [attr] [netdev n]
wobei:
Quelle/Ziel folgendes sein kann:
COMPARTMENT (eine benannte Abteilung);
HOST (eine feste IPv4-Adresse);
NETWORK (ein IPv4-Teilnetz);
m: unterstützter Betriebssystemkern-Mechanismus, z. B. tcp, udp, msg (Nachrichtenwarteschlange), shm (gemeinsamer Speicher) etc.;
attr: Attribute, die das Verfahren m weiter qualifizieren; oder
n: eine benannte Netzwerkschnittstelle, falls zutreffend, z. B. eth0.
Each security check can consult a table of rules. Each rule can have the following form:
Source → determination method m [attr] [netdev n]
in which:
Source / target can be the following:
COMPARTMENT (a designated department);
HOST (a fixed IPv4 address);
NETWORK (an IPv4 subnet);
m: supported operating system kernel mechanism, e.g. B. tcp, udp, msg (message queue), shm (shared memory) etc .;
attr: attributes that further qualify the method m; or
n: a named network interface, if applicable, e.g. B. eth0.

Ein Beispiel einer solchen Regel, die erlaubt, daß Prozesse in der Abteilung mit dem Namen "WEB" auf Segmente mit einem gemeinsamen Speicher, z. B. unter Verwendung von shmat/shmdt( ), aus der Abteilung mit dem Namen "CGI" zugreifen dürfen, würde folgendermaßen aussehen:

COMPARTMENT : WEB → COMPARTMENT : CGI METHOD shm
An example of such a rule that allows processes in the department named "WEB" to target segments with shared memory, e.g. For example, using shmat / shmdt () from the department named "CGI" would look like this:

COMPARTMENT: WEB → COMPARTMENT: CGI METHOD shm

Es sind auch bestimmte implizite Regeln vorhanden, die erlauben, daß einige Kommunikationen in einer Abteilung stattfinden, z. B. könnte einem Prozeß erlaubt werden, die Prozeßidentifizierer von Prozessen, die in der gleichen Abteilung residieren, zu sehen. Dies ermöglicht ein Nettominimum der Funktionalität in einer andernfalls unkonfigurierten Abteilung. Eine Ausnahme bildet die Abteilung 0, die relativ unprivilegiert ist und in der mehr Einschränkungen gelten. Die Abteilung 0 kann verwendet werden, um die Teilprozesse auf Betriebssystemkern-Ebene (wie z. B. der Swapper bzw. der Auslagerer) zu hosten bzw. unterzubringen. There are also certain implicit rules that allow some communications in a department take place, e.g. B. could be allowed a process that Process identifier of processes in the same Department reside to see. This enables one Net minimum of functionality in an otherwise unconfigured department. Department 0 is an exception, which is relatively unprivileged and in the more Restrictions apply. Department 0 can be used to the subprocesses at the operating system kernel level (such as the swapper or the outsourcer) or accommodate.

In Ermangelung einer Regel, die es explizit erlaubt, daß ein abteilungsübergreifender Zugriff stattfindet, scheitern all diese Versuche. Der Nettoeffekt der Regeln beinhaltet die Forcierung einer vorgeschriebenen Segmentierung aller Abteilungen, außer jener, denen explizit erlaubt worden ist, auf die Betriebsmittel einer anderen Abteilung zuzugreifen. In the absence of a rule that explicitly allows that cross-departmental access fails all these attempts. The net effect of the rules includes the enforcement of a prescribed segmentation of all Departments except those that have been explicitly allowed is on another department's resources access.

Die Regeln sind von Natur aus richtungsweisend bzw. gerichtet, was den Effekt hat, daß sie mit dem Verbinden- /Akzeptieren-Verhalten der TCP-Sockelverbindungen übereinstimmen. Es wird auf eine Regel hingewiesen, die zum Spezifizieren von zulässigen eingehenden HTTP-Verbindungen verwendet wird, die folgende Form aufweisen:

HOST* → COMPARTMENT X METHOD TCP PORT 80
The rules are inherently directional, which has the effect of matching the connect / accept behavior of the TCP socket connections. Reference is made to a rule that is used to specify permitted incoming HTTP connections that have the following form:

HOST * → COMPARTMENT X METHOD TCP PORT 80

Diese Regel gibt vor, daß nur eingehende TCP-Verbindungen am Port 80, jedoch keine ausgehenden Verbindungen zulässig sein sollen, wie im Beispiel, das in Fig. 6 gezeigt ist, dargestellt ist. Die Direktionalität der Regeln ermöglicht, daß der Rückfluß von Paketen auftreten kann, um die eingehende Verbindung korrekt einzurichten, ohne den ausgehenden Verbindungen zu ermöglichen, stattzufinden. This rule specifies that only incoming TCP connections on port 80, but no outgoing connections should be permitted, as shown in the example shown in FIG. 6. The directionality of the rules allows the backflow of packets to occur to properly set up the incoming connection without allowing the outgoing connections to take place.

Der vorstehend beschriebene Lösungsabsatz weist eine Anzahl von Vorteilen auf. Zum Beispiel ermöglicht er eine komplette Kontrolle über jedes unterstützte Teilsystem und die Fähigkeit, nichtunterstützte, z. B. hardwaregetriebene Karte- zu-Karte-Übertragungen, herauszukompilieren. Ferner sieht dieser Lösungsansatz eine relativ umfangreiche Namensraumpartitionierung vor, ohne die Notwendigkeit, die Benutzerraumbefehle, wie z. B. ps, netstat, route, ipcs etc., zu verändern. Abhängig von der Abteilung, in der sich ein Prozeß derzeit befindet, verändert sich die Liste von sichtbaren Identifizierern gemäß den Vorgaben der Regeln. Beispiele von Namensräumen umfassen eine Prozesstabelle via/proc, SysV-IPC-Betriebsmittelidentifizierer, Active, geschlossene und ruhende Sockel (alle Domänen) und Leittabelleneinträge. The solution paragraph described above has a number of benefits. For example, it enables one complete control over each supported subsystem and Ability to support unsupported, e.g. B. Hardware Driven Card to compile card transfers. Further sees this approach is a relatively extensive one Namespace partitioning before, without the need to User space commands, such as B. ps, netstat, route, ipcs etc., too change. Depending on the department in which one is located Process currently in progress, the list changes from visible identifiers according to the rules. Examples of namespaces include a process table via / proc, SysV-IPC resource identifier, active, closed and dormant pedestals (all domains) and guide table entries.

Es wird darauf hingewiesen, daß das System von Fig. 4 nur als Beispiel dient. Die vorliegende Erfindung ist nicht auf ein spezielles Abteilungs- oder Eindämmungsschema beschränkt. Speziell können die zahlreichen Lösungsansätze benutzt werden, um zu verhindern, daß Prozesse, die einer Abteilung zugeordnet sind, auf Systembetriebsmittel zugreifen. Zum Beispiel kann die Zugriffssteuerung auf der Benutzerebene durch mehrere Verfahren implementiert sein. Ein strace( )-Mechanismus kann benutzt werden, um jeden Systemaufruf eines gegebenen Prozesses zu verfolgen. Der strace( )-Mechanismus untersucht jeden Systemaufruf und seine Argumente. Der strace( )-Mechanismus gibt den Systemaufruf gemäß den Regeln, die in einer Regeldatenbank definiert sind, entweder frei oder sperrt denselben. Es kann auch eine Systemaufrufswicklung (system call wrapping) verwendet werden. Bei der Systemaufrufswicklung untersuchen Umwicklerfunktionen unter Verwendung einer dynamisch verbundenen gemeinsamen Bibliothek Aufrufe und Argumente. Die Umhüllerfunktionen geben ebenfalls entweder Systemaufrufe gemäß den in einer Regeldatenbank definierten Regeln frei oder sperren dieselben. Autorisierungs-Server auf Benutzerebene können genutzt werden, um den Zugriff auf die Systembetriebsmittel zu steuern. Die Autorisierungs-Server auf Benutzerebene können den Zugriff auf die Systembetriebsmittel durch Bereitstellen eines gesteuerten Datenkanals zum Betriebssystemkern steuern. It should be noted that the system of Fig. 4 is only an example. The present invention is not limited to any particular divisional or containment scheme. Specifically, the numerous approaches can be used to prevent processes associated with a department from accessing system resources. For example, user level access control can be implemented by several methods. A strace () mechanism can be used to keep track of every system call of a given process. The strace () mechanism examines each system call and its arguments. The strace () mechanism either releases or locks the system call according to the rules defined in a rules database. System call wrapping can also be used. In system call wrapping, rewinder functions examine calls and arguments using a dynamically linked shared library. The wrapper functions also either release or block system calls according to the rules defined in a rule database. Authorization servers at the user level can be used to control access to system resources. Authorization servers at the user level can control access to system resources by providing a controlled data channel to the kernel of the operating system.

Eine Anwendung der oben beschriebenen OS-Architektur umfaßt die Bereitstellung einer sicheren Web-Server-Plattform mit einer Unterstützung für die eingedämmte Ausführung von willkürlichen CGI-Binärzahlen und mit einer nicht-HTTP- verwandten Verarbeitung (z. B. Java-Servlets), die in separate Abteilungen partitioniert sind, wobei jede das bloße Minimum an Regeln, die zum Betrieb erforderlich sind, aufweist. Dabei handelt es sich hierbei um eine spezifischere Konfiguration als das allgemeine Szenario von:

  • 1. Sicheren Gateway-Systemen, die eine Vielzahl von Diensten, wie z. B. DNS, Sendmail etc., hosten. Die Eindämmung oder die Aufteilung in Abteilungen in solchen Systemen könnte verwendet werden, um das Konfliktpotential zwischen den Diensten zu verringern und die Sichtbarkeit von ausgangsseitigen Hosts auf einer Pro- Dienst-Basis zu steuern.
  • 2. Gehäuft auftretenden Vorderseiten (typischerweise HTTP) gegenüber mehrreihigen Ausgangsseiten einschließlich Zwischenanwendungs-Servern. Die Aufteilung in Abteilungen bei solchen Systemen hat den gewünschten Effekt einer Heraus-Faktorisierung eines möglichst großen Teils eines Codes, auf den durch externe Clients direkt zugegriffen werden kann.
One application of the OS architecture described above includes the provision of a secure web server platform with support for contained execution of arbitrary CGI binary numbers and with non-HTTP-related processing (e.g. Java servlets) that are partitioned into separate compartments, each with the bare minimum of rules required to operate. This is a more specific configuration than the general scenario of:
  • 1. Secure gateway systems that provide a variety of services, such as B. DNS, Sendmail etc., host. Containment or division into such systems could be used to reduce the potential for conflict between services and to control the visibility of outbound hosts on a per-service basis.
  • 2. Frequent front pages (typically HTTP) versus multi-row output pages including inter-application servers. The division into departments in such systems has the desired effect of factoring out as much of the code as possible, which can be accessed directly by external clients.

Unter Bezugnahme auf Fig. 4 kann das System 400 z. B. eine Webserverplattform aufweisen, wobei jeder Webserver in seiner eigenen Abteilung angeordnet sein kann, wie z. B. die Web-Abteilung 401. Die nachstehende Beschreibung dient zur Veranschaulichung, wie die exemplarische Implementierung verwendet werden kann, um eine Einstellung in Abteilungen aufzuteilen, die einen nach außen gerichteten Apache-Web- Server aufweist, der konfiguriert ist, um die Handhabung von Java-Servlets oder das Bedienen von JSP-Dateien zu zwei separaten Instanzen Jakarta/Tomcat zu delegieren, die jeweils in ihrer eigenen Abteilung arbeiten. Per Vorgabe verwendet jedes Abteilung ein gechrootetes Dateisystem, um nicht mit den anderen Dateisystemen zu interferieren. Referring to FIG. 4, system 400 may e.g. B. have a web server platform, each web server can be arranged in its own department, such as. B. the web department 401 . The following description is illustrative of how the exemplary implementation can be used to split a setting into departments that have an outward Apache web server configured to handle Java servlets or to operate JSP - Delegate files to two separate Jakarta / Tomcat instances, each working in its own department. By default, each department uses a chrooted filesystem so as not to interfere with the other filesystems.

Fig. 7 stellt auf schematische Weise die Apache-Prozesse dar, die in einer Abteilung (WEB) residieren. Auf diese Abteilung kann extern unter Verwendung der folgenden Regel zugegriffen werden:

HOST* → COMPARTMENT WEB METHOD TCP PORT 80 NETDEV eth0
Figure 7 schematically illustrates the Apache processes residing in a department (WEB). This department can be accessed externally using the following rule:

HOST * → COMPARTMENT WEB METHOD TCP PORT 80 NETDEV eth0

Das Vorhandensein des NETDEV-Komponente in der Regel spezifiziert die Netzwerkschnittstellen, die Apache verwenden darf. Dies ist beim Einschränken von Apache auf die Verwendung von nur der externen Schnittstelle auf den dualen/Multihome-Gateway-Systemen von Nutzen. Dies soll verhindern, daß eine gefährdete Instanz von Apache verwendet wird, um Angriffe auf ausgangsseitige Netzwerke durch nach innen gerichtete Netzwerkschnittstellen einzuleiten. Die WEB-Abteilung darf mit zwei separaten Instanzen von Jakarta/Tomcat (TOMCAT1 und TOMCAT2) über zwei Regeln kommunizieren, die folgende Form aufweisen:

COMPARTMENT:WEB → COMPARTMENT:TOMCAT1 METHOD TCP PORT 8007

COMPARTMENT:WEB → COMPARTMENT:TOMCAT2 METHOD TCP PORT 8008
The presence of the NETDEV component usually specifies the network interfaces that Apache may use. This is useful when restricting Apache to using only the external interface on the dual / multihome gateway systems. This is to prevent a vulnerable instance of Apache from being used to initiate attacks on outbound networks through inbound network interfaces. The WEB department may communicate with two separate Jakarta / Tomcat instances (TOMCAT1 and TOMCAT2) using two rules, which have the following form:

COMPARTMENT: WEB → COMPARTMENT: TOMCAT1 METHOD TCP PORT 8007

COMPARTMENT: WEB → COMPARTMENT: TOMCAT2 METHOD TCP PORT 8008

Die Servlets in TOMCAT1 dürfen auf einen ausgangsseitigen Host, der Server1 genannt wird, unter Verwendung der nachstehenden Regel zugreifen:

COMPARTMENT:TOMCAT1 → HOST:SERVER1 METHOD TCP . . .
The servlets in TOMCAT1 are allowed to access an outgoing host called Server1 using the following rule:

COMPARTMENT: TOMCAT1 → HOST: SERVER1 METHOD TCP. , ,

TOMCAT2 darf jedoch auf gar keinen ausgangsseitigen Host zugreifen, was durch die Abwesenheit von zusätzlichen Regeln widergespiegelt wird. Der Betriebssystemkern wird jegliche Versuche dieser Art von TOMCAT2 verweigern. Dies ermöglicht die selektive Veränderung der Ansicht eines ausgangsseitigen Netzwerks abhängig davon, welche Dienste gehostet werden, und die Einschränkung der Sichtbarkeit von ausgangsseitigen Hosts auf einer Pro-Abteilungs-Basis. However, TOMCAT2 is not allowed on any output host access what by the absence of additional Rules is reflected. The operating system core is refuse any attempt at this type of TOMCAT2. This enables the selective change of the view of a output network depending on which services are hosted, and the visibility of outbound hosts on a per department basis.

Wertvoll wäre noch der Hinweis, daß die vorstehenden vier Regeln alles sind, was für diese exemplarische Konfiguration notwendig ist. In Ermangelung anderer Regeln können die Servlets, die in Java VM ausgeführt werden, keine ausgehenden Verbindungen initiieren; insbesondere kann sie nicht verwendet werden, um Angriffe auf das interne ausgangsseitige Netzwerk auf der Schnittstelle eth1 einzuleiten. Zusätzlich kann sie weder auf Betriebsmittel von anderen Abteilungen (z. B. gemeinsame Speichersegmente, UNIX- Domänensockel etc.) zugreifen noch direkt durch Fernhosts erreicht werden. In diesem Fall sind vorgeschriebene Einschränkungen bezüglich des Verhaltens von Apache und Jakarta/Tomcat ohne erneutes Kompilieren oder Modifizieren ihrer Quellen verhängt worden. It would also be worth noting that the previous four Rules are all exemplary for this Configuration is necessary. In the absence of other rules, the Servlets that run in Java VM do not initiate outgoing connections; in particular it cannot used to attack the internal initiate output network on the interface eth1. In addition, it cannot access resources from others Departments (e.g. shared memory segments, UNIX Domain bases etc.) still access directly through remote hosts can be achieved. In this case they are mandatory Apache and Jakarta / Tomcat without recompiling or modifying their Sources have been imposed.

Es wird darauf hingewiesen, daß die Abteilungen in einem System des Gateway-Typs (Host mit Zweifach-Schnittstellen, die sowohl mit internen als auch externen Netzwerken verbunden sind) genutzt werden können. Unter Bezugnahme auf Fig. 8 ist ein Gateway-System 800 (das sowohl mit einem internen als auch externen Netzwerk verbunden ist) gezeigt. It is pointed out that the departments can be used in a system of the gateway type (host with dual interfaces, which are connected to both internal and external networks). Referring to FIG. 8, a gateway system 800 (connected to both an internal and external network) is shown.

Das Gateway-System 800 hostet mehrere Typen von Diensten, Dienst0, Dienst1, . . ., DienstN, die jeweils mit einem spezifizierten ausgangsseitigen Host, Host0, Host1, . . ., HostX, HostN, verbunden sind, um seine Funktion, z. B. Wiedergewinnen von Aufzeichnungen aus einer ausgangsseitigen Datenbank, auszuführen. Viele ausgangsseitigen Hosts können jederzeit auf einem internen Netzwerk vorhanden sein (auf die nicht alle durch den gleichen Satz von Diensten zugegriffen werden soll). Es ist wünschenswert, daß, wenn diese Server-Prozesse gefährdet sind, diese nicht verwendet werden können, um andere ausgangsseitige Hosts zu sondieren, die nicht ursprünglich nicht durch die Dienste verwendet werden sollten. Die exemplarische Implementierung schränkt den Schaden, den ein Angreifer anrichten kann, durch Einschränkung der Sichtbarkeit von Hosts auf dem selben Netzwerk ein. The gateway system 800 hosts several types of services, Service0, Service1,. , ., DienstN, each with a specified output-side host, Host0, Host1,. , ., HostX, HostN, are connected to its function, e.g. B. retrieve records from an output database. Many outbound hosts can exist on an internal network at any time (not all of which should be accessed by the same set of services). It is desirable that when these server processes are compromised, they cannot be used to probe other outbound hosts that should not originally be used by the services. The exemplary implementation limits the damage an attacker can do by limiting the visibility of hosts on the same network.

Wie in Fig. 8 gezeigt ist, dürfen Dienst0 und Dienst1 nur auf das Netzwerk Teilnetzl durch die Netzwerk-Schnittstelle eth0 zugreifen. Daher verlaufen die Versuche, auf den Host0/Host1 zuzugreifen, erfolgreich, weil sie Teilnetz1 sind, doch scheitern dann die Versuche, auf Teilnetz2 über eth1 zuzugreifen. Ferner darf der DienstN nur auf HostX auf eth1 zugreifen. Daher scheitert jeder Versuch, durch DienstN auf HostN zuzugreifen, selbst wenn HostN sich auf dem gleichen Teilnetz wie HostX befindet, und jeder Versuch durch DienstN, auf einen beliebigen Host auf Teilnetz1 zuzugreifen, scheitert. Die Einschränkungen können (durch Regeln oder Leittabellen) durch das Teilnetz oder durch den spezifischen Host spezifiziert werden, der wiederum auch durch ein spezifisches Teilnetz qualifiziert werden kann. As shown in Fig. 8, Service0 and Service1 are only allowed to access the network subnet through the network interface eth0. Therefore, attempts to access Host0 / Host1 are successful because they are Subnet1, but then attempts to access Subnet2 through eth1 fail. Furthermore, the serviceN may only access HostX on eth1. Therefore, any attempt to access HostN through ServiceN will fail, even if HostN is on the same subnet as HostX, and any attempt through ServiceN to access any host on Subnet1 will fail. The restrictions can be specified (by rules or guide tables) by the subnet or by the specific host, which in turn can also be qualified by a specific subnet.

Folglich können in der exemplarischen Implementierung, die vorstehend beschrieben ist, Zugriffssteuerungsprüfungen im Betriebssystemkern/Betriebssystem eines Gateway-Systems vorgenommen werden, so daß sie durch die Benutzerraumprozesse nicht umgangen werden können. Wie vorstehend weiter beschrieben ist, kann der Betriebssystemkern (des Gateway- Systems) mit einer Einrichtung zum Anbringen eines Etiketts oder einer Beschriftung an jedem arbeitenden Prozeß/Teilprozeß versehen sein, wobei die Etiketten/Beschriftungen fiktiv anzeigen, zu welcher Abteilung ein Prozeß gehört. Bei bestimmten Implementierungen können solche Etiketten von einem Elternprozess ererbt sein, der ein Kind abzweigt. Daher würde ein Dienst, der eine Gruppe von abgezweigten Kindern aufweist, die zusammenarbeiten, um sich die Arbeitslast zu teilen, wie z. B. eine Gruppe von Slave-Web-Server-Prozessen, die gleichen Etiketten besitzen und in der gleichen Abteilung positioniert sein. Der Systemadministrator kann z. B. Regeln in der folgenden Form spezifizieren:
Abteilung X → Host Y [unter Verwendung der Netzwerkschnittstelle Z] oder
Abteilung X → Teilnetz Y [unter Verwendung der Netzwerkschnittstelle Z]
die Prozessen in einer benannten Abteilung X erlauben, entweder auf einen Host oder ein Teilnetz Y zuzugreifen, was optional durch die Verwendung von nur einer Netzwerkschnittstelle mit der Bezeichnung Z eingeschränkt ist. Solche Regeln dürfen in einer sicheren Konfigurationsdatei auf dem Gateway-System gespeichert und in den Betriebssystemkern/die Betriebssystemseinstellung geladen werden, so daß die Dienste, die dann gestartet werden, arbeiten können. Wenn die Dienste gestartet werden, würde ihre Einstellungssequenz spezifizieren, in welcher Abteilung sie anfangs positioniert werden würden. Bei diesem Ausführungsbeispiel werden die Regeln jedesmal konsultiert, wenn ein Paket von der Abteilung X weggeschickt oder an dieselbe geliefert wird, in dem zusätzliche Sicherheitsprüfungen auferlegt werden, nämlich vorzugsweise im Protokollstapel des Betriebssystemkerns.
Thus, in the exemplary implementation described above, access control checks can be made in the kernel operating system / operating system so that they cannot be bypassed by the user space processes. As further described above, the operating system kernel (of the gateway system) can be provided with a device for attaching a label or a label to each working process / sub-process, the labels / labels fictitiously indicating to which department a process belongs. In certain implementations, such labels can be inherited from a parent process that branches a child. Therefore, a service that has a group of forked children who work together to share the workload, such as B. a group of slave web server processes that have the same labels and are positioned in the same department. The system administrator can e.g. B. Specify rules in the following form:
Department X → Host Y [using the network interface Z] or
Department X → Subnet Y [using the network interface Z]
the processes in a named department X allow access to either a host or a subnet Y, which is optionally restricted by the use of only one network interface called Z. Such rules may be stored in a secure configuration file on the gateway system and loaded into the operating system kernel / operating system setting so that the services that are then started can work. When the services are started, their hiring sequence would specify which department they would initially be positioned in. In this embodiment, the rules are consulted each time a package is sent from or delivered to Department X by imposing additional security checks, preferably in the operating system kernel protocol stack.

Bei bestimmten Implementierungen ist eine separate Leittabelle pro Abteilung vorgesehen. Wie bei der vorstehend beschriebenen Implementierung kann jeder Prozeß ein Etikett oder eine Beschriftung (die er von seinen Eltern geerbt haben kann) besitzen. Prozesse mit bestimmten Bezeichnungen starten mit einem bezeichneten Etikett, das durch einen Systemadministrator konfiguriert wurde. Anstatt Regeln zu spezifizieren, wie in der vorstehenden Implementierung beschrieben ist, kann ein Satz von Konfigurationsdateien vorgesehen sein (einer für jede Abteilung), die die jeweilige Leittabelle für die Abteilung durch Einbringen der gewünschten Leittabelleneinträge konfigurieren. Weil das Gateway-System eine unbenannte Anzahl von Abteilungen enthalten könnte, ist die Leittabelle von jeder Abteilung vorgabenmäßig vorzugsweise leer (d. h. keine Einträge). In certain implementations there is a separate one Guide table provided per department. As with the previous one Implementation described, each process can have a label or a label (which he inherited from his parents can have). Processes with specific names start with a labeled label marked by a System administrator has been configured. Instead of rules too specify as in the above implementation can be a set of configuration files be provided (one for each department) that the respective Guide table for the department by introducing the Configure the desired control table entries. Because that Gateway system an unnamed number of departments could contain is the guidance table of each department by default, preferably empty (i.e. no entries).

Die Verwendung von Leittabellen anstelle von expliziten Regeln kann erreicht werden, weil der Mangel an einem übereinstimmenden Leitweg so interpretiert wird, daß der Fernhost, den man versucht zu erreichen, angeblich unerreichbar ist. Die Leitwege, die tatsächlich übereinstimmen, stehen für die Akzeptanz des Versuchs, auf jenen Fernhost zuzugreifen. Wie bei den Regeln in der ersten exemplarischen Implementierung, die vorstehend beschrieben ist, können die Leitwegeinträge auf einer Pro-Host-Basis (IP-Adressen- Basis) oder einer Pro-Teilnetz-Basis spezifiziert sein. All dies ist erforderlich, um solche Leitwegeinträge auf einer Pro-Abteilungs-Basis zu spezifizieren, um die gleiche Funktionalität wie bei der ersten exemplarischen Implementierung zu erreichen. The use of guide tables instead of explicit ones Rules can be achieved because of the lack of one corresponding route is interpreted so that the Fernhost you are trying to reach, supposedly out of reach is. The routes that actually match are in place for the acceptance of the attempt on that remote host access. As with the rules in the first exemplary Implementation described above can Route entries on a per-host basis (IP address Basis) or a per-subnet basis. Alles this is required to make such route entries on a Specify per department basis to be the same Functionality like the first exemplary To achieve implementation.

II. Abteilungsverwaltung gemäß verschiedenen Ausführungsbeispielen der ErfindungII. Department management according to various Embodiments of the invention

Im vorstehenden wurde ein Überblick über eine exemplarische OS-Architektur zum Implementieren von Abteilungen vorgesehen. Es wird darauf hingewiesen, daß bestimmte Ausführungsbeispiele der vorliegenden Erfindung in einem beliebigen OS und einer Abteilungsarchitektur implementiert sein können, und daher nicht auf die vorstehend beschriebene exemplarische Implementierung beschränkt sind. Above was an overview of an exemplary OS architecture for implementing departments intended. It should be noted that certain Embodiments of the present invention in any OS and a departmental architecture can be implemented and therefore not to the one described above exemplary implementation are limited.

Angesichts der Tatsache, daß die Abteilungen einen wichtigen Sicherheitsmechanismus in vertrauenswürdigen OS's schaffen, ist es wünschenswert, einen effizienten und benutzerfreundlichen Mechanismus zum Verwalten solcher Abteilungen zu besitzen. Zum Beispiel könnte es hin und wieder für einen Benutzer, wie z. B. einen Systemadministrator, wünschenswert sein, Abteilungen zu manipulieren, z. B. eine neue Abteilung hinzuzufügen, eine Abteilung zu entfernen, eine Abteilung umzubenennen etc. Zusätzlich kann es für einen Benutzer wünschenswert sein, Regeln zu manipulieren, die die Eindämmung von Abteilungen definieren. Eine solche Manipulation von Abteilungen und die Manipulation von Regeln, die die Eindämmung solcher Abteilungen definieren, sollen in dem hierin verwendeten Begriff "Abteilungsverwaltung" umfaßt sein. Given that the departments have one important security mechanism in trustworthy OS's create, it is desirable to have an efficient and user-friendly mechanism for managing such departments to own. For example, it could occasionally be used for a user such as B. a system administrator, it would be desirable to manipulate departments, e.g. Legs add a new department, remove a department, renaming a department etc. In addition, it can be used for be desirable for a user to manipulate rules, that define departmental containment. Such Manipulation of departments and the manipulation of Rules that define the containment of such departments, are intended in the term used herein "Department management" should be included.

Bei den traditionellen Verfahren zum Verwalten von Abteilungen existieren verschiedene Probleme. Ein Verfahren des Stands der Technik zum Verwalten von Abteilungen ist in Fig. 9 gezeigt. Die Abteilungen sind traditionell in einer Konfigurationsdatei definiert, die das OS nach dem Booten eines Computersystems nutzt, um die Abteilungen, die in einem solchen OS zur Verfügung stehen, zu bestimmen. Wie in Fig. 9 gezeigt ist, erfordert die Verwaltung von Abteilungen in Systemen des Stands der Technik, z. B. das Manipulieren einer Abteilung, daß ein Benutzer (z. B. Systemadministrator) die Konfigurationsdatei, in der die Abteilungen definiert sind (Schritt 901) editiert. Desgleichen erfordert das Manipulieren von Regeln, die die Eindämmung einer Abteilung definieren, daß ein Benutzer die Konfigurationsdatei editiert, in der solche Regeln vorgesehen sind. Das heißt, daß bei Schritt 902 ein Benutzer einen Texteditor nutzen kann, um eine Konfigurationsdatei so zu betrachten und zu editieren, um die Abteilungen und/oder die Regeln zu manipulieren. There are several problems with traditional departmental management techniques. A prior art method for managing departments is shown in FIG. 9. The departments are traditionally defined in a configuration file that the OS uses after booting a computer system to determine the departments that are available in such an OS. As shown in Fig. 9, the management of departments in prior art systems, e.g. For example, manipulating a department so that a user (e.g. system administrator) edits the configuration file in which the departments are defined (step 901 ). Likewise, manipulating rules that define departmental containment requires that a user edit the configuration file that contains such rules. That is, at step 902, a user can use a text editor to view and edit a configuration file to manipulate the departments and / or the rules.

Selbst um die Konfigurationsdatei zu editieren, muß natürlich zuerst die richtige Konfigurationsdatei bestimmt, in den Systemdateien lokalisiert und zum Editieren geöffnet werden. Sobald die Konfigurationsdatei zum Editieren geöffnet ist, kann der Benutzer die Datei editieren (z. B. Text in die Datei einfügen und/oder entfernen), um die Abteilungen und/oder Regeln zu manipulieren. Zum Beispiel müßte der Benutzer zur Umbenennung einer Abteilung die Konfigurationsdatei durchsuchen, die evtl. eine große Menge von Text aufweist, und die entsprechenden Abschnitte der Konfigurationsdatei editieren, um den Namen einer Abteilung zu verändern. Als weiteres Beispiel zum Hinzufügen einer Abteilung müßte der Benutzer die Konfigurationsdatei editieren, indem er einen entsprechenden Text in dieselbe zum Definieren einer neuen zu erstellenden Abteilung einbringt. Sobald der Benutzer die Konfigurationsdatei editiert, müssen die Editierungen, die an der Konfigurationsdatei vorgenommen wurden, in Schritt 902 gespeichert werden. Damit die an der Konfigurationsdatei vorgenommenen Änderungen innerhalb des Systems angewendet werden können, ist typischerweise ein Booten des Systems erforderlich (Schritt 903). Spezieller greifen die Systeme typischerweise auf die Konfigurationsdatei nach dem Booten zu, und die Veränderungen, die während der Systemlaufzeit an der Konfigurationsdatei vorgenommen wurden, werden nicht im System angewendet, bis es einem Booten unterzogen worden ist. Even to edit the configuration file, the correct configuration file must of course first be determined, localized in the system files and opened for editing. Once the configuration file is open for editing, the user can edit the file (e.g. insert and / or remove text in the file) to manipulate the departments and / or rules. For example, to rename a department, the user would have to search the configuration file, which may have a large amount of text, and edit the appropriate sections of the configuration file to change a department's name. As another example of adding a department, the user would have to edit the configuration file by including appropriate text in it to define a new department to be created. Once the user edits the configuration file, the edits made to the configuration file must be saved in step 902 . In order for the changes made to the configuration file to be applied within the system, a system boot is typically required (step 903 ). More specifically, the systems typically access the configuration file after booting, and the changes made to the configuration file during system runtime are not applied to the system until it is booted.

Das vorstehend beschriebene Verfahren zum Verwalten von Abteilungen ist aus mehreren Gründen problematisch. An erster Stelle erfordert ein solches Abteilungsverwaltungsverfahren des Stands der Technik, daß ein Benutzer eine Konfigurationsdatei editiert. Angesichts der Größe und Menge von Informationen, die in einer solchen Konfigurationsdatei enthalten sein können, ist mit dem ordnungsgemäßen Editieren der Konfigurationsdatei zum Erreichen eines gewünschten Ergebnisses eine umfangreiche Komplexität/Schwierigkeit verbunden. Zusätzlich stellt das Editieren einer Konfigurationsdatei ein uneffizientes Verfahren zum Manipulieren von Abteilungen dar, da ein Benutzer die entsprechende Konfigurationsdatei, die editiert werden soll, bestimmen, die Datei öffnen und die Datei ordnungsgemäß editieren muß (die eine große Menge an Informationen aufweisen kann, die der Benutzer syntaktisch analysieren muß, um sicherzustellen, daß sie ordnungsgemäß editiert worden ist, um das gewünschte Ergebnis zu erreichen). Ferner erfordert ein solches Verfahren des Stands der Technik typischerweise, daß das System gebootet wird, damit die an der Konfigurationsdatei vorgenommenen Veränderungen auf den Betrieb des Systems angewendet werden. Neben der Ineffizienz und unerwünschten Unterbrechung infolge eines solchen System-Bootens, werden beim Editieren der Konfigurationsdatei entstandene Fehler erst entdeckt werden, wenn ein solches Booten ausgeführt worden ist. Ferner, wenn ein in der Konfigurationsdatei anzutreffender Fehler dahingehend fatal ist, daß das System sich nicht mehr booten läßt, dann muß eventuell eine Rettung des Systems ausgeführt werden, indem das gesamte OS wieder aufgeladen wird. The above described method for managing Divisions are problematic for several reasons. At first Position requires such a departmental management process state of the art that a user a Configuration file edited. Given the size and amount of Information contained in such a configuration file can be included is with proper editing the configuration file to achieve a desired one Result in extensive complexity / difficulty connected. In addition, editing one Configuration file an inefficient method of manipulating Departments because a user has the appropriate Determine the configuration file to be edited, the Open the file and edit the file properly (the can contain a large amount of information that the User needs to parse to make sure that it has been properly edited in order to to achieve the desired result). It also requires one Prior art methods typically that System is booted so that the configuration file changes made to the operation of the system be applied. In addition to inefficiency and undesirable Interruption due to such a system boot Errors that occurred when editing the configuration file can only be discovered when such a boot is executed has been. Furthermore, if one in the configuration file error encountered is fatal in that the system can no longer be booted, then you may have to System rescue can be performed by the entire OS is recharged.

Die Ausführungsbeispiele der vorliegenden Erfindung erleichtern die Anforderung des Editierens einer Konfigurationsdatei zum Verwalten von Abteilungen durch Bereitstellen von Dienstprogrammen, die im Benutzerraum eines OS (z. B. Befehlszeilendienstprogramme) genutzt werden, die die Verwaltung von Abteilungen ermöglichen. Gemäß zumindest einem Ausführungsbeispiel sind z. B. Befehlszeilendienstprogramme vorgesehen, die einem Benutzer ermöglichen, Abteilungen durch Ausführen solcher Aufgaben, wie Erzeugen, Umbenennen oder Entfernen von Abteilungen, zu manipulieren. Desgleichen können bei bestimmten Ausführungsbeispielen die Regeln, die die Eindämmung von Abteilungen definieren, über Befehlszeilendienstprogramme manipuliert werden. Zusätzlich ermöglichen die ausgeführten Dienstprogramme gemäß bestimmter Ausführungsbeispiele der vorliegenden Erfindung, daß Abteilungen und Regeln dynamisch manipuliert werden. Das heißt, daß kein System-Booten erforderlich ist, damit die durch die Verwendung der Dienstprogramme angeforderten Aktionen während des Betriebs des Systems angewendet werden. Fig. 10 zeigt einen exemplarischen Abteilungsverwaltungsfluß gemäß zumindest einem Ausführungsbeispiel der vorliegenden Erfindung. Wie gezeigt ist, muß ein Benutzer zum Manipulieren einer Abteilung und/oder einer Regel ein Befehlszeilendienstprogramm in Schritt 1001 ausführen, und die Aktionen, die durch ein solches Dienstprogramm erzeugt werden, werden während des Betriebs des Systems in Schritt 1002 dynamisch angewendet. The embodiments of the present invention facilitate the requirement to edit a configuration file for managing departments by providing utilities that are used in the user space of an OS (e.g. command line utilities) that enable department management. According to at least one embodiment, z. For example, command line utilities are provided that allow a user to manipulate departments by performing such tasks as creating, renaming, or removing departments. Likewise, in certain embodiments, the rules that define departmental containment can be manipulated through command line utilities. In addition, the utilities executed in accordance with certain embodiments of the present invention allow departments and rules to be dynamically manipulated. That is, no system boot is required for the actions requested by using the utilities to be applied while the system is operating. Fig. 10 shows an exemplary Abteilungsverwaltungsfluß according to at least one embodiment of the present invention. As shown, a user to manipulate a department and / or rule must run a command line utility in step 1001 and the actions generated by such a utility are dynamically applied during operation of the system in step 1002 .

Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sind Abteilungsverwaltungs-Dienstprogramme vorgesehen, die eine Anzahl von Befehlszeilenwerkzeugen umfassen, um Abteilungen zu erzeugen, zu verwalten und zu entfernen. Eine exemplarische Liste von Dienstprogrammen, die in zumindest einem Ausführungsbeispiel der vorliegenden Erfindung zur Verfügung steht, sowie ein Überblick über die Funktionalität, die durch jedes Dienstprogramm ausgeführt wird, wird nachstehend bereitgestellt. Es wird darauf hingewiesen, daß sich die Namen der Dienstprogramme in den verschiedenen Ausführungsbeispielen ändern können, ohne ihre Funktionalität zu ändern. Daher ist die vorliegenden Erfindung nicht auf spezifische, nachstehend beschriebene Dienstprogramme beschränkt, sondern vielmehr dienen solche exemplarischen Dienstprogramme als Beispiele, die die Offenbarung wiedergeben, wodurch viele andere Typen von Abteilungsverwaltungs-Dienstprogrammen ermöglicht werden, bei denen es wünschenswert ist, daß sie innerhalb eines gegebenen Systems implementiert werden. According to an embodiment of the present invention Department management utilities are provided that include a number of command line tools to Create, manage and remove departments. A exemplary list of utilities included in at least an embodiment of the present invention Is available, as well as an overview of the Functionality that is performed by each utility provided below. It should be noted that the names of the utilities in different Embodiments can change without their Change functionality. Therefore, the present invention is not to specific utilities described below limited, but rather serve such exemplary Utilities as examples that the revelation play, causing many other types of Department management utilities are enabled where it it is desirable that they be within a given system be implemented.

Wie nachstehend ausführlicher beschrieben ist, ist gemäß den verschiedenen Ausführungsbeispielen der vorliegenden Erfindung eine Folge von Abteilungsverwaltungs- Dienstprogrammen vorgesehen. Gemäß bestimmter Ausführungsbeispiele weisen solche Abteilungsverwaltungs- Dienstprogramme Befehlszeilendienstprogramme auf, die hierin als "tl"-Dienstprogramme bezeichnet werden können (z. B. "tlrules"- und "tlcomp"-Dienstprogramme, die nachstehend beschrieben sind). Verschiedene Beispiele von solchen Dienstprogrammen zum Manipulieren von Abteilungsregeln und zum Manipulieren von Abteilungen gemäß den Ausführungsbeispielen der vorliegenden Erfindung sind weiter unten beschrieben. Es sollte jedoch darauf hingewiesen werden, daß solche Dienstprogramme, obwohl spezifische Dienstprogramme und ihre Funktionalität beschrieben sind, als Beispiele dienen, die die Offenbarung wiedergeben, wodurch viele andere Abteilungsverwaltungs-Dienstprogramme ermöglicht werden, die in ähnlicher Weise implementiert werden können. As described in more detail below, according to the various embodiments of the present Invention a series of departmental administrative Utilities provided. According to certain Embodiments have such departmental management Utilities command line utilities that may be referred to herein as "tl" utilities (e.g. "tlrules" and "tlcomp" utilities, below are described). Different examples of such Department rule manipulation utilities and to manipulate departments according to the Embodiments of the present invention are below described. However, it should be noted that such utilities, although specific utilities and their functionality are described as examples serve that reflect the revelation, whereby many other departmental management utilities that can be implemented in a similar manner.

Exemplarische Dienstprogramme zum Manipulieren von AbteilungsregelnExemplary utilities for manipulating department rules

Gemäß zumindest einem Ausführungsbeispiel der vorliegenden Erfindung sind "tlrules"-Dienstprogramme zum Manipulieren von Abteilungsregeln vorgesehen. Solche "tlrules"- Dienstprogramme können Befehlszeilendienstprogramme zum Hinzufügen, Löschen und Auflisten von Regeln aufweisen. Bei der exemplarischen Implementierung, die vorstehend in Fig. 4 beschrieben ist, können solche "tlrules" als Befehlszeilendienstprogramme 440 implementiert sein, die ausgeführt werden können, um Abteilungsregeln (z. B. in der Regeldatenbank 416) über eine /proc/tlx-Schnittstelle zu manipulieren, die durch ein betriebssystemkernladbares Modul vorgesehen ist. Die Regeln können entweder auf der Befehlszeile eingegeben werden oder aus einer Textdatei gelesen werden. According to at least one embodiment of the present invention, "tlrules" utilities are provided for manipulating departmental rules. Such "tlrules" utilities can include command line utilities for adding, deleting, and listing rules. In the exemplary implementation described above in FIG. 4, such "tlrules" may be implemented as command line utilities 440 that may be executed to maintain departmental rules (e.g., in rules database 416 ) via a / proc / tlx interface to manipulate, which is provided by an operating system core loadable module. The rules can either be entered on the command line or read from a text file.

Gemäß der exemplarischen Implementierung, die vorstehend beschrieben ist, können die Regeln folgendes Format annehmen:
<rule>::= <source>[<port>] → <destination>[<port>]
<method list><netdev>
wenn:
<identifier>= = (<compartment>_<host>_<net>)[<port>]
<compartment>= = "COMPARTMENT"<comp_name>
<host>= = "HOST"<host_name>
<net>= = "NET"<ip_addr><netmask>
<net>= = "NET"<ip_addr>"/"<bits>
<comp_name>= = ein gültiger Name einer Abteilung
<host_name>= = ein bekannter Host-Name oder IP-Adresse
<ip_addr>= = eine IP-Adresse in der Form a.b.c.d
<netmask>= = eine gültige Netzmaske in der Form a.b.c.d
<bits>= = Die Anzahl der äußerst linken Bits in der Netzmaske . . . von 0 bis 31
<method list>= = Eine Liste von kommagetrennten Verfahren (in diesem exemplarischen Ausführungsbeispiel umfassen die unterstützten Verfahren: TCP (Transmission Control Protocol = Übertragungssteuerprotokoll), UDP (User Datagram Protocol = Benutzer-Datagram-Protokoll) und ALL.
According to the exemplary implementation described above, the rules can take the following format:
<rule> :: = <source>[<port>] → <destination>[<port>]
<method list><netdev>
if:
<identifier> = = (<compartment> _ <host> _ <net>) [<port>]
<compartment> = = "COMPARTMENT"<comp_name>
<host> = = "HOST"<host_name>
<net> = = "NET"<ip_addr><netmask>
<net> = = "NET"<ip_addr>"/"<bits>
<comp_name> = = a valid name of a department
<host_name> = = a known host name or IP address
<ip_addr> = = an IP address in the form of abcd
<netmask> = = a valid netmask in the form abcd
<bits> = = The number of leftmost bits in the netmask. , , from 0 to 31
<method list> = = A list of comma-separated methods (in this exemplary embodiment, the supported methods include: TCP (Transmission Control Protocol), UDP (User Datagram Protocol) and ALL.

Ein Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen benutzt werden kann, ist ein Befehlszeilendienstprogramm, das ausgeführt werden kann, um Regeln zum Steuern der Kommunikation (oder des Zugriffs) einer Abteilung mit einem Betriebsmittel (z. B. mit anderen Abteilungen und/oder Netzwerkschnittstellen) einzustellen. Wie vorstehend beschrieben ist, kann ein solches Befehlszeilendienstprogramm gemäß einem Ausführungsbeispiel als "tlrules" bezeichnet werden, und die Verwendung eines solchen Dienstprogramms kann z. B. die Form von "tlrules ,Regelbeschreibung'" annehmen. Die Regeln werden z. B. gemäß einem Ausführungsbeispiel eingestellt, um die Kommunikation von Abteilungen miteinander und mit den Netzwerkschnittstellen zu steuern. Das tlrules-Dienstprogramm kann ausgeführt werden, um solche Aufgaben wie beispielsweise Auflisten aller Regeln, die derzeit auf dem System konfiguriert werden, Laden von Regeln aus einer Datei, Laden von Regeln von der Befehlszeile und Löschen von Regeln, die in einer Datei enthalten sind oder auf der Befehlszeile beispielsweise spezifiziert sind, auszuführen. In der exemplarischen Implementierung, die in Fig. 4 gezeigt ist, rechnen die tlrules- und zugeordneten Befehlszeilendienstprogramme per Vorgabe damit, die Abteilungsabbildungsdatei "cmap.txt" (in der stabilen Speicherung 405) in dem /etc/tlinux/conf- Verzeichnis vorzufinden. A department management utility that can be used to manipulate departments is a command line utility that can be executed to set rules for controlling communication (or access) of a department with a resource (e.g., with other departments and / or Network interfaces). As described above, such a command line utility may be referred to as "tlrules" in one embodiment, and the use of such a utility may e.g. B. take the form of "tlrules, rule description '". The rules are e.g. B. set according to an embodiment to control the communication of departments with each other and with the network interfaces. The tlrules utility can be used to perform such tasks as listing all rules currently configured on the system, loading rules from a file, loading rules from the command line, and deleting rules that are contained in a file or are specified on the command line, for example. In the exemplary implementation shown in FIG. 4, the tlrules and associated command line utilities default to finding the department map file "cmap.txt" (in stable storage 405 ) in the / etc / tlinux / conf directory.

Um eine Regel hinzuzufügen, kann der Benutzer "tlrules - a <filename>" eingeben (um eine Regel aus einer Textdatei zu lesen, wenn <filename> eine Datei ist, die Regeln im vorstehend beschriebenen Format enthält) oder "tlrules - a rule" (um eine Regel in die Befehlszeile einzugeben). Zum Beispiel kann zum Hinzufügen von mehreren Regeln, die in einer Datei enthalten sind, der Befehl "tlrules - a rulefile.txt" ausgeführt werden, wodurch Regeln, die in der "rulefile.txt"-Datei enthalten sind, hinzugefügt werden. Andererseits kann, um eine Regel hinzuzufügen, die der Abteilung "dev" erlaubt, den DNS-Server auf dem Host 192.168.10.3 abzufragen, der folgende Befehl ausgeführt werden:
tlrules - a "COMPARTMENT dev → HOST 192.168.10.3 PORT 53 METHOD udp NETDEV any"
To add a rule, the user can type "tlrules - a <filename>" (to read a rule from a text file if <filename> is a file containing rules in the format described above) or "tlrules - a rule" (to enter a rule on the command line). For example, to add multiple rules contained in a file, the "tlrules - a rulefile.txt" command can be run, thereby adding rules contained in the "rulefile.txt" file. On the other hand, to add a rule that allows the "dev" department to query the DNS server on host 192.168.10.3, the following command can be run:
tlrules - a "COMPARTMENT dev → HOST 192.168.10.3 PORT 53 METHOD udp NETDEV any"

Um eine Regel zu löschen, kann der Benutzer "tlrules - d <filename>" oder "tlrules - d rule" oder "tlrules - d ref" eingeben (in dieser Form kann eine Regel lediglich durch ihre Referenzzahl gelöscht werden, die durch Auflisten der Regel unter Verwendung des Befehls tlrules-1 ausgegeben wird, die Regeln in einem Standardformat mit der Regelreferenz ausgibt, die als Kommentar am Ende von jeder Regel ausgegeben wird). Als ein weiteres Beispiel, um die Regel, die der Abteilung "dev" erlaubt, den DNS-Server auf dem Host 192.168.10.3 abzufragen, wird der folgende Befehl ausgeführt:

tlrules - d "COMPARTMENT dev → HOST 192.168.10.3 PORT 53 METHOD udp NETDEV any"
To delete a rule, the user can enter "tlrules - d <filename>" or "tlrules - d rule" or "tlrules - d ref" (in this form, a rule can only be deleted by its reference number, which can be obtained by listing the Rule is output using the tlrules-1 command, which outputs rules in a standard format with the rule reference output as a comment at the end of each rule). As another example, to query the rule that allows the "dev" department to query the DNS server on host 192.168.10.3, the following command is executed:

tlrules - d "COMPARTMENT dev → HOST 192.168.10.3 PORT 53 METHOD udp NETDEV any"

Als weiteres Beispiel, um alle Regeln in der Datei "rulefile.txt" zu löschen, kann der Befehl "tlrules - d rulefile.txt" ausgeführt werden. As another example, all the rules in the file To delete "rulefile.txt", the command "tlrules - d rulefile.txt ".

In zumindest einem Ausführungsbeispiel bewirken Syntaxfehler oder semantische Fehler, die durch tlrules erfaßt wurden, einen Fehlerbericht, und der Befehl endet unmittelbar, und es werden keine Regeln hinzugefügt oder gelöscht. Wenn eine Textdatei verwendet wird, um die Regeln einzugeben, wird die Zeilenzahl der fehlerhaften Zeile in der Fehlernachricht vorgefunden. In at least one embodiment Syntax errors or semantic errors detected by tlrules an error report, and the command ends immediately, and no rules are added or deleted. If a text file is used to enter the rules the number of lines of the faulty line in the Error message found.

Ein weiteres Befehlszeilendienstprogramm, das durch dieses exemplarische Ausführungsbeispiel der vorliegenden Erfindung vorgesehen ist, ist als "tlutils" bekannt, das eine Schnittstelle mit dem Ins-Betriebssystemkern-Modul (das vorstehend unter Fig. 4 beschrieben ist) vorsieht. Seine wichtigste Funktion ist die Bereitstellung verschiedener Verwaltungsskripte mit der Fähigkeit, Prozesse in einer gegebenen Abteilung zu überspannen und die Abteilungszahl der Schnittstellen einzustellen. Beispiele für diese Verwendung umfassen:

  • 1. "tlnetcfg setdev eth0 0xFFFF0000" - stellt die Abteilungszahl der eth0-Netzwerkschnittstelle auf 0xFFFF0000 ein.
  • 2. "tlsetcomp WEB - p cap_mknod - c /bin/bash" - schaltet zur Abteilungs-WEB um, entfernt die cap_mknod- Fähigkeit und ruft Bash auf.
Another command line utility provided by this exemplary embodiment of the present invention is known as "tlutils" which provides an interface with the Ins operating system kernel module (described above in FIG. 4). Its most important function is to provide various administrative scripts with the ability to span processes in a given department and set the department number of interfaces. Examples of this use include:
  • 1. "tlnetcfg setdev eth0 0xFFFF0000" - sets the department number of the eth0 network interface to 0xFFFF0000.
  • 2. "tlsetcomp WEB - p cap_mknod - c / bin / bash" - switches to the department WEB, removes the cap_mknod capability and calls Bash.

Exemplarische Dienstprogramme zum Manipulieren von AbteilungenExemplary utilities for manipulating departments

Gemäß zumindest einem Ausführungsbeispiel der vorliegenden Erfindung sind die "tlcomp"-Dienstprogramme zum Manipulieren einer Abteilung vorgesehen. Solche "tlcomp"- Dienstprogramme können Befehlszeilendienstprogramme z. B. zum Hinzufügen, Löschen und Umbenennen von Abteilungen aufweisen. Verschiedene spezifische Beispiele von solchen tlcomp-Dienstprogrammen sind nachstehend beschrieben. According to at least one embodiment of the present Invention are the "tlcomp" utilities for Manipulating a department provided. Such "tlcomp" - Utilities can use command line utilities such as: B. for adding, deleting and renaming departments exhibit. Various specific examples of such tlcomp utilities are described below.

Ein erstes Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen verwendet werden kann, ist ein Befehlszeilendienstprogramm zum Hinzufügen/Erzeugen einer neuen Abteilung in einem System. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompadd" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlcompadd [compartment name]" oder "tlcompadd [option flags] [compartment]" annehmen. Bei diesem Beispiel fügt tlcompadd mit einem spezifizierten Abteilungsnamen als Argument eine neue Abteilung mit einem derart spezifizierten Namen dem System hinzu. Spezieller wird die Abteilung mit dem spezifizierten Namen der stabilen Speicherdatenbank (stabile Speicherung 405 von Fig. 4) auf dem System hinzugefügt und liefert eine Referenz im Speicher auf der Betriebssystemkern-Ebene (Speicher 421A von Fig. 4). Bei zumindest einem Ausführungsbeispiel steht die Abteilung, sobald diese über den tlcompadd-Befehl erzeugt worden ist, dem System zur Verwendung sofort zur Verfügung. Folglich können die Abteilungen vom Benutzerraum des OS's dynamisch erzeugt werden, ohne ein Booten des Systems zu erfordern, damit die erzeugten Abteilungen zur Verwendung verfügbar sind. A first department management utility that can be used to manipulate departments is a command line utility for adding / creating a new department in a system. In one embodiment, such a command line utility may be called "tlcompadd" and the use of such a utility may take the form of "tlcompadd [compartment name]" or "tlcompadd [option flags] [compartment]", for example. In this example, tlcompadd adds a new department to the system with a specified department name as an argument. More specifically, the department with the specified name of the stable memory database (stable memory 405 of FIG. 4) is added to the system and provides a reference in memory at the kernel level (memory 421 A of FIG. 4). In at least one embodiment, the department is immediately available to the system for use as soon as it has been created via the tlcompadd command. As a result, the departments can be dynamically created from the user space of the OS without requiring the system to boot so that the created departments are available for use.

Gemäß zumindest einem Ausführungsbeispiel kann der Abteilungsname in allen alphanumerischen Zeichen (A-Z und 0-9) einen Bindestrich (-) und Unterstreichungsstriche (_) aufweisen. Der Abteilungsname, der durch den Benutzer spezifiziert wird, liefert eine benutzerfreundliche Darstellung der Abteilung. Wie jedoch in der exemplarischen Implementierung von Fig. 4 beschrieben ist, wird in zumindest einem Ausführungsbeispiel eine interne Datenbank sowohl im Speicher (z. B. Speicher 421A in Fig. 4) als auch der stabilen Speicherung bewahrt, die den benutzerfreundlichen Namen auf eine Zahl abbildet, die die Abteilung identifiziert (z. B. eine Textdatei "cmap.txt" 405 in Fig. 4). In accordance with at least one embodiment, the department name can have a hyphen (-) and underscore (_) in all alphanumeric characters (AZ and 0-9). The department name specified by the user provides a user-friendly representation of the department. However, as described in the exemplary implementation of FIG. 4, in at least one embodiment, an internal database is maintained both in memory (e.g., memory 421 A in FIG. 4) and stable storage that maps the user-friendly name to one Maps number that identifies the department (e.g., a text file "cmap.txt" 405 in Fig. 4).

Bei der Implementierung in einer OS-Architektur, wie jener, die vorstehend beschrieben ist, kann es von Vorteil sein, bestimmte Abteilungen in einem Chroot-Dateisystem zu erzeugen. Folglich kann bei zumindest einem Ausführungsbeispiel, neben dem Erzeugen einer Abteilung mit einem spezifischen Abteilungsnamen, ein Argument (oder ein Optionsflag) vorgesehen sein, das ein Chroot-Dateisystem und Initialisierungsskripte für die Abteilungen erzeugt. Der Zweck hiervon ist, daß es dahingehend eine zusätzliche Sicherheitsschicht liefert, daß ein Prozeß (z. B. eine Anwendung), der in einer Abteilung abläuft, in einem Chroot-Bereich des Dateisystems ablaufen kann, wodurch alles außerhalb des Chroot- Bereichs des Dateisystems für die Prozesse in der Abteilung nicht verfügbar ist. Initialisierungsskripte ermöglichen das Starten von Prozessen in der Abteilung (für eine ausführlichere Erklärung siehe tlcompstart unten). When implemented in an OS architecture like that, described above, it may be advantageous certain departments in a chroot filesystem produce. Consequently, in at least one embodiment, in addition to creating a department with a specific one Department names, an argument (or an option flag) be provided that a chroot filesystem and Initialization scripts generated for the departments. The purpose of this is that there is an additional layer of security in that provides that a process (e.g. an application) that is in a department runs in a chroot area of the File system can run, which means everything outside the chroot Area of the file system for the processes in the department not available. Enable initialization scripts starting processes in the department (for a see tlcompstart below for a more detailed explanation).

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ist ein Befehlszeilendienstprogramm zum Umbenennen einer existierenden bestehenden Abteilung. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompren" genannt werden, und die Verwendung eines solchen Dienstprogramms kann z. B. die Form von "tlcompren [current name] [new name]" annehmen. In diesem Beispiel benennt tlcompren, das einen spezifizierten aktuellen Abteilungsnamen und einen neuen Abteilungsnamen als Argumente aufweist, die Abteilung, die ein "Aktueller-Name"-Argument aufweist, in ein "Neuer-Name"-Argument um. Spezieller bleibt gemäß zumindest einem Ausführungsbeispiel, die interne Zahl, die die Abteilung darstellt, die gleiche, während der benutzerfreundliche Name der Abteilung verändert wird. Wenn die Abteilung, die umbenannt wird, ein Chroot-Dateisystem und Initialisierungsdateien aufweist, werden diese ebenfalls bei Bedarf in einen "neuen Namen" umbenannt. Bei zumindest einem Ausführungsbeispiel handelt es sich beim Umbenennen einer Abteilung um einen dynamischen Prozeß, so daß nach dem Ausführen des tlcompren-Befehls, unmittelbar Bezugnahmen zu dem "neuen Namen" hergestellt werden können. Another departmental management utility designed for Manipulating departments can be used is a Command line utility to rename a existing existing department. According to one Embodiment can do such a command line utility Be called "tlcompren", and the use of such Utility can e.g. B. the form of "tlcompren [current name] [new name] ". Named in this example tlcompren that has a specified current Has department names and a new department name as arguments, the department that has a "current name" argument into a "new name" argument. More specifically remains in accordance at least one embodiment, the internal number that the department represents the same during the user friendly name of the department is changed. If the Department that is renamed a chroot filesystem and Has initialization files, these are also included Renamed to a "new name" as required. At least one embodiment is renaming a department around a dynamic process, so that after the Executing the tlcompren command, immediate references to the "new name" can be made.

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ist ein Befehlszeilendienstprogramm zum Entfernen einer bestehenden Abteilung aus dem System. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcomprm" genannt werden, und die Verwendung eines solchen Dienstprogramms kann z. B. die Form von "tlcomprm [option flags] [compartment name]" annehmen. In diesem Beispiel entfernt tlcomprm, das einen spezifizierten Abteilungsnamen aufweist, die spezifizierte Abteilung aus dem System. Gemäß zumindest einem Ausführungsbeispiel kann ein optionales Flag enthalten sein, um zu spezifizieren, daß alle Chroot- Dateien und Initialisierungsdateien für eine solche Abteilung ebenfalls entfernt werden. Vorzugsweise entfernt dieser Befehl sowohl den Speicher auf Betriebssystemkern-Ebene als auch die stabilen Speicherungsbezugnahmen auf eine Abteilung. Zusätzlich ist bei zumindest einem Ausführungsbeispiel die Entfernung einer Abteilung ein dynamischer Prozeß, so daß nach dem Ausführen des tlcomprm-Befehls der Name der entfernten Abteilung wieder verwendet werden kann (z. B. beim Hinzufügen einer neuen Abteilung mit einem solchen Namen), falls dies gewünscht wird. Another departmental management utility designed for Manipulating departments can be used is a Command line utility to remove an existing one Department out of the system. According to one embodiment can such a command line utility "tlcomprm" be called, and the use of such Utility can e.g. B. the form of "tlcomprm [option flags] Accept [compartment name] ". Removed in this example tlcomprm, which is a specified department name has the specified department from the system. According to at least one embodiment can be an optional Flag to specify that all chroot Files and initialization files for such Department can also be removed. Preferably removed this command both memory at the kernel level as well as the stable storage references to one Department. In addition, at least one Embodiment the removal of a department a dynamic Process so that after executing the tlcomprm command the Name of the removed department can be reused (e.g. when adding a new department with a such names) if desired.

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen benutzt werden kann, ist ein Befehlszeilendienstprogramm zum Schalten von einer aktuellen Abteilung zu einer Bestimmungsabteilung. Folglich, wenn sich ein Benutzer (z. B. Systemadministrator) derzeit in einer speziellen Abteilung aufhält, kann der Benutzer ein solches Befehlszeilendienstprogramm nutzen, um zu einer anderen "Bestimmungs"-Abteilung zu schalten. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlsetcomp" genannt werden, und die Verwendung eines solchen Dienstprogramms kann z. B. die Form von "tlsetcomp [destination compartment] [option flags] [command to execute]" annehmen. Bei diesem Beispiel schaltet tlsetcomp, das einen Bestimmungsabteilungsnamen aufweist, den Einlogg- Prozeß des Benutzers von einer aktuellen Abteilung zu einer Bestimmungsabteilung. Vorgabemäßig schaltet die Einloggschale des Benutzers bei einer Ausführung in der "Bestimmungsabteilung" und ohne Optionen einfach zur neuen Abteilung um. Optional kann ein Argument, wie z. B. -p, enthalten sein, um einige Fähigkeiten für beispielsweise die "Bestimmungsabteilung" fallenzulassen oder hinzuzufügen. Beispielsweise kann der Befehl "tlsetcomp [destination compartment] -p - chown" dazu benutzt werden, um den Einlogg- Prozeß eines Benutzers von einer aktuellen Abteilung zu einer Bestimmungsabteilung zu schalten, jedoch kann die Bestimmungsabteilung nicht den "chown"-Befehl ausführen, um die Eigentümerschaft von Dateien zu verändern. Gemäß zumindest einem Ausführungsbeispiel umfassen die zum Fallenlassen von Fähigkeiten zur Verfügung stehenden Optionen jene, die sich üblicherweise in der Linux/Unix-Datei "capabilities.h." befinden. Another departmental management utility designed for Manipulating departments can be used is a Command line utility to switch one current department to an identification department. Hence if a user (e.g. system administrator) is currently in a special department, the user can use such a command line utility to become a other "destination" department. According to one Embodiment can Command line utility can be called "tlsetcomp" and use a such a utility can e.g. B. the form of "tlsetcomp [destination compartment] [option flags] [command to execute] ". In this example, tlsetcomp switches the has a destination department name that logs in Process of the user from a current department to one Determination Division. By default, the User login shell when running in the "Determination department" and without options simply to the new one Department around. Optionally, an argument such as B. -p, be included to some skills for example Drop or add "Destination Department". For example, the command "tlsetcomp [destination compartment] -p - chown "can be used to Process of a user from a current department a determination department, but the Determination department does not execute the "chown" command change the ownership of files. According to at least one embodiment include the Dropping skills available options those which is usually in the Linux / Unix file "Capabilities.h." are located.

Ferner kann der tlsetcomp-Befehl verwendet werden, um sowohl Abteilungen zu schalten als auch einen Befehl in der Bestimmungsabteilung auszuführen. Zum Beispiel kann der Befehl "tlsetcomp [destination compartment] -c/bin/ps-ef" dazu benutzt werden, um zur Bestimmungsabteilung zu schalten und den ps-Befehl auszuführen, um alle Prozesse in der "Bestimmungsabteilung" aufzulisten. The tlsetcomp command can also be used to to switch departments as well as a command in the Identification department. For example, the Tlsetcomp [destination compartment] -c / bin / ps-ef command to be used to switch to the identification department and execute the ps command to run all processes in the List "Destination Department".

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen benutzt werden kann, ist ein Befehlszeilendienstprogramm, das ausgeführt werden kann, um die aktuelle Abteilung, in der der Einlogg-Prozeß des Benutzers enthalten ist, anzuzeigen. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlgetcomp" genannt werden, das die aktuelle Abteilung, in der sich die Einlogg-Schale des Benutzers befindet, anzeigt. Folglich kann ein Benutzer z. B. den tlgetcomp- Befehl ausführen, um die Abteilung anzuzeigen, in der sich die Einlogg-Schale des Benutzers derzeit befindet. Der Benutzer kann dann den tlsetcomp-Befehl benutzen, um zu einer anderen Abteilung zu wechseln, die, wenn der tlgetcomp- Befehl anschließend ausgeführt wird, die neue Abteilung anzeigt, auf die der Benutzer umgeschaltet hat. Another departmental management utility designed for Manipulating departments can be used is a Command line utility that can be run to the current department in which the login process of the User is included. According to one Embodiment can do such a command line utility be called "tlgetcomp", which is the current department in which is the user's login shell displays. Consequently, a user can e.g. B. the tlgetcomp- Execute command to display the department in which the user's login shell is currently located. The User can then use the tlsetcomp command to go to a to switch to another department if the tlgetcomp- Command then runs the new department the user has switched to.

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen verwendet werden kann, ist ein Befehlszeilendienstprogramm zum Ausführen eines Startskripts einer Abteilung. Ein solches Abteilungs-Startskript kann zumindest einige der folgenden Aufgaben initiieren:

  • 1. Starten eines abteilungsspezifischen Prozesses, wie z. B. eines Webservers;
  • 2. Laden der Kommunikationsregeln, die für die Abteilung spezifisch sind;
  • 3. Konfigurieren von Dateisystem-Schutzregeln, die für die Abteilung spezifisch sind; und
  • 4. Versiegeln der Abteilung, um die Ausführung von suid- Skripten oder den Übergang zur Wurzel von Nichtwurzelprozessen in der Abteilung zu stoppen.
Another department management utility that can be used to manipulate departments is a command line utility for executing a department startup script. Such a department start script can initiate at least some of the following tasks:
  • 1. Start a department-specific process, such as B. a web server;
  • 2. Load communication rules that are specific to the department;
  • 3. Configure file system protection rules specific to the department; and
  • 4. Seal the department to stop the execution of suid scripts or the transition to the root of non-root processes in the department.

Wie vorstehend beschrieben ist, lautet gemäß einem Ausführungsbeispiel eine solche Position des Startskripts für eine Abteilung: /etc/tlinux/init/<compartment name>/startup. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm zum Initiieren eines Startskripts einer Abteilung "tlcompstart" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlcompstart [compartment name]" annehmen. Zum Beispiel führt der Befehl "tlcompstart web" das Startskript für die "Web"-Abteilung aus, das zum Chroot-Bereich des Dateisystems für die Abteilung "Web" schalten kann und dann die Prozesse, die Webseiten liefern, startet. As described above, according to one Embodiment such a position of the start script for a department: / etc / tlinux / init / <compartment name> / startup. According to one embodiment, such Command line utility to initiate a startup script a department called "tlcompstart", and the Using such a utility can, for example Take the form "tlcompstart [compartment name]". To the For example, the command "tlcompstart web" runs the start script for the "web" department that goes to the chroot area of the File system for the department "Web" can switch and then the processes that deliver websites start up.

Desgleichen ist ein Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ein Befehlszeilendienstprogramm, das ein Abschalt-Skript zum Abschalten einer Abteilung ausführt. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompstop" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlcompstop [compartment name]" annehmen. Das Dienstprogramm tlcompstop kehrt typischerweise den oben beschriebenen tlcompstart-Befehl um. Zum Beispiel kann tlcompstop eine oder mehrere der nachstehenden Aufgaben initiieren:

  • 1. Entsiegeln der Abteilung;
  • 2. Entladen der Dateisystemregeln;
  • 3. Entfernen der Kommunikationsregeln; und
  • 4. Stoppen des anwendungsspezifischen Prozesses, wie z. B. eines Webservers.
Likewise, a department management utility that can be used to manipulate departments is a command line utility that executes a shutdown script to shutdown a department. In one embodiment, such a command line utility may be called "tlcompstop", and the use of such a utility may take the form of "tlcompstop [compartment name]", for example. The tlcompstop utility typically reverses the tlcompstart command described above. For example, tlcompstop can initiate one or more of the following tasks:
  • 1. Unseal the department;
  • 2. Unload the file system rules;
  • 3. Remove the communication rules; and
  • 4. Stop the application-specific process, such as B. a web server.

Wie vorstehend beschrieben ist, lautet gemäß zumindest einem Ausführungsbeispiel eine solche Position des Abschalt- Skripts für eine Abteilung: /etc/tlinux/init/<compartment name>/shutdown. Die oben beschriebenen Start- und Abschalt- Skripte können einen Text und bestimmte Befehle, die Befehle umfassen, die Teil der Abteilungsdienstprogramme sind, wie z. B. tlrules, aufweisen. As described above, according to at least an embodiment such a position of the shutdown Scripts for a department: / etc / tlinux / init / <compartment name> / shutdown. The start and shutdown Scripts can contain text and certain commands Include commands that are part of the department utilities, such as B. tlrules.

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen verwendet werden kann, ist ein Befehlszeilendienstprogramm, das ausgeführt werden kann, um alle Abteilungen, die derzeit in einem System enthalten sind, aufzulisten. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompstat." genannt werden. Desgleichen kann ein Abteilungsverwaltungs- Dienstprogramm vorgesehen sein, das ausgeführt werden kann, um alle Prozesse, die auf dem System arbeiten (oder ausgeführt werden), und den Namen der Abteilung aufzulisten, in der jede Abteilung ausgeführt wird. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlprocstat." genannt werden. Another departmental management utility designed for Manipulating departments can be used is a Command line utility that can be run to all departments currently contained in one system are to be listed. According to one embodiment, a such command line utility "tlcompstat." called become. Similarly, a departmental administration Utility can be provided that can be run to all processes that work on the system (or ) and list the name of the department in which every department is running. According to one Embodiment can do such a command line utility "Tlprocstat." to be named.

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ist ein Befehlszeilendienstprogramm, das ausführbar ist, um eine Abteilung zu versiegeln. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompseal" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlcompseal [compartment name]" annehmen. Dieses Dienstprogramm liefert ein zusätzliches Sicherheitsmerkmal. Durch das Versiegeln einer Abteilung wird die Fähigkeit für Prozesse in der Abteilung, zu einer Wurzel überzugehen (z. B. "su-root") oder suid- Programme oder Skripten auszuführen, gesperrt. Der Befehl "tlcompseal web" versiegelt z. B. die Web-Abteilung, so daß kein Prozeß, der in derselben ausgeführt wird, zu einer Wurzel übergehen kann. Another departmental management utility designed for Manipulating departments can be used is a Command line utility executable to a Seal department. According to one embodiment can such a command line utility "tlcompseal" be called, and the use of such For example, utility can take the form "tlcompseal Accept [compartment name] ". This utility delivers additional security feature. By sealing one Department becomes the ability for processes in the department to go to a root (e.g. "su-root") or suid- Execute programs or scripts, locked. The command "tlcompseal web" seals z. B. the web department, so that no process carried out in it to one Root can pass over.

Andererseits kann ein Dienstprogramm vorgesehen sein, um eine Abteilung zu entsiegeln. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlcompunseal" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlcompunseal [compartment name]" annehmen. Dieses Dienstprogramm wird ausgeführt, um eine versiegelte Abteilung zu entsiegeln, um den Übergang zu einer Wurzel (z. B. "su root") und die Ausführung von suid-Programmen oder Skripten zu erlauben, wenn dies die Dateisystem-Zugriffssteuerungslisten (ACLs; ACL = access control list) erlauben. On the other hand, a utility program can be provided to to unseal a department. According to one Embodiment can do such a command line utility Be called "tlcompunseal" and the use of such For example, utility can take the form "tlcompunseal [compartment name] ". This utility will executed to unseal a sealed department the transition to a root (eg "su root") and the Allow suid programs or scripts to run when this is the file system access control lists (ACLs; ACL = access control list).

Noch ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ist ein Befehlszeilendienstprogramm, das ausgeführt werden kann, um eine Eingabedatei, die einen Abteilungsnamen und eine Nummernabbildung im OS enthält, zu laden. Gemäß einem Ausführungsbeispiel kann ein solches Befehlszeilendienstprogramm "tlregcompas" genannt werden, und die Verwendung eines solchen Dienstprogramms kann beispielsweise die Form "tlregcompas [file name]" annehmen. Dieser Befehl kann beispielsweise beim System-Booten verwendet werden. Bei einem Ausführungsbeispiel sind z. B. alle Abteilungen im Betriebssystemkern-Ebenen-Speicher und in einer stabilen Speicherung in einer Datei gespeichert. Wenn das System bootet, kann der tlregcompas-Befehl verwendet werden, um die stabilen Speicherungseinträge in den Speicher zu laden. Yet another department management utility, the can be used to manipulate departments a command line utility that will run can to an input file that has a department name and contains a number mapping in the OS. According to one Embodiment can Command line utility can be called "tlregcompas" and use Such a utility can take the form, for example Accept "tlregcompas [file name]". This command can can be used for example during system booting. At a Embodiment are e.g. B. all departments in Operating system kernel level storage and in a stable Storage saved in a file. If the system boots, the tlregcompas command can be used to load the stable storage entries into memory.

Bei zumindest einem Ausführungsbeispiel verursachen alle Syntaxfehler oder semantischen Fehler, die durch tlcomp erfaßt werden, einen Fehlerbericht, und der Befehl wird sofort eingestellt, und keine Abteilungen werden manipuliert (z. B. hinzugefügt oder gelöscht). In at least one embodiment, they all cause Syntax errors or semantic errors caused by tlcomp be detected, an error report, and the command will hired immediately and no departments are manipulated (e.g. added or deleted).

Verschiedene Dienstprogramme, die Beispiele von verschiedenen Befehlszeilendienstprogrammen umfassen, sind vorstehend beschrieben, die durch ein OS gemäß verschiedener Ausführungsbeispiele der vorliegenden Erfindung verfügbar sein können. Dementsprechend ermöglichen verschiedene Ausführungsbeispiele der vorliegenden Erfindung, daß die Abteilungsverwaltung (z. B. Manipulation von Regeln und/oder Abteilungen) vom Benutzerraum aus in effizienter und benutzerfreundlicher Weise ausgeführt werden kann. Ein Benutzer muß z. B. keine Konfigurationsdatei editieren, in der solche Regeln und/oder Abteilungen definiert sind, sondern kann statt dessen Befehlszeilendienstprogramme ausführen, um eine gewünschte Verwaltungsaktion (z. B. Hinzufügen oder Löschen einer Regel und/oder Abteilung) auszuführen. Es wird ebenfalls darauf hingewiesen, daß weitere Abteilungsverwaltungs-Dienstprogramme neben jenen, die vorstehend beschrieben sind, in bestimmten Ausführungsbeispielen der vorliegenden Erfindung enthalten sein können. Neben jenen Befehlszeilendienstprogrammen, die vorstehend zum Manipulieren von Abteilungen beschrieben sind, können beispielsweise Befehlszeilendienstprogramme zum Ausführen einer solchen Manipulation, wie z. B. Umskalieren einer existierenden Abteilung, Hinzufügen eines Prozesses zu einer Abteilung und Entfernen eines Prozesses aus einer Abteilung, vorgesehen sein. Various utilities, the examples of various command line utilities are above described by an OS according to various Embodiments of the present invention may be available can. Accordingly, various allow Embodiments of the present invention that the Department management (e.g. manipulation of rules and / or Departments) from the user room in more efficient and can be run in a user-friendly manner. One user z. B. do not edit a configuration file in the such rules and / or departments are defined, but can run command line utilities instead, a desired administrative action (e.g. add or Delete a rule and / or department). It it is also pointed out that further Department management utilities in addition to those mentioned above are described in certain embodiments of the present invention may be included. Besides those Command line utilities that are featured above Manipulating departments are described for example command line utilities to run a such manipulation, such as. B. rescaling one existing department, adding a process to a Department and removing a process from a department, be provided.

Neben dem Ermöglichen eines effizienten und benutzerfreundlichen Verfahrens zum Verwalten von Abteilungen, können in bestimmten Ausführungsbeispielen Fehlerpräventionsprüfungen durch die Abteilungsverwaltungs-Dienstprogramme vorgenommen werden, um einem Benutzer dabei zu helfen, Fehler zu vermeiden, mit denen er ansonsten während des Ausführens der Abteilungsverwaltung konfrontiert wäre. Traditionell muß ein Benutzer z. B. eine Konfiguration editieren, um eine Abteilung in einem System hinzuzufügen. Wenn der Benutzer in der Konfigurationsdatei einen Fehler macht, wie z. B. Duplizieren eines Abteilungsnamens (d. h. Benennen der neu hinzugefügten Abteilung wie eine bereits existierende Abteilung), wird ein solcher Fehler dem Benutzer nicht angezeigt. Ferner werden die an einer Konfigurationsdatei in Systemen des Stands der Technik vorgenommenen Veränderungen typischerweise erst wirksam, nachdem das System gebootet worden ist. Folglich kann der Benutzer den Fehler erst nach einem Booten des Systems entdecken, oder alternativ kann der Fehler dahingehend fatal sein, daß sich das System nicht booten läßt, was erfordert, daß das Betriebssystem auf dem System neu installiert werden muß. In addition to enabling an efficient and user-friendly procedure for managing departments, can in certain embodiments error prevention checks made by the departmental management utilities to help a user make mistakes avoid using it otherwise while executing the Department management would face. Traditionally must a user e.g. B. edit a configuration to a Add department in a system. If the user makes a mistake in the configuration file, e.g. B. Duplicate a department name (i.e., rename the department added department like an existing one Department), such an error will not the user displayed. Furthermore, the in a configuration file in Prior art systems changes typically only effective after the system boots has been. Consequently, the user can only post the error discover a boot of the system, or alternatively can the error can be fatal in that the system does not boot what requires the operating system must be reinstalled on the system.

Beispiele von Fehlerpräventionsprüfungen, die durch die Abteilungsverwaltungs-Dienstprogramme in bestimmten Ausführungsbeispielen der vorliegenden Erfindung ausgeführt werden können, umfassen beispielsweise die Überprüfung nach einer Duplizierung des Abteilungsnamens und die Überprüfung, daß ausreichend Speicher vorhanden ist. Obgleich diese exemplarischen Fehlerpräventionsprüfungen nachstehend ausführlicher beschrieben sind, wird darauf hingewiesen, daß zur Unterstützung des Benutzers viele andere Typen von Fehlerpräventionsprüfungen durch die Abteilungsverwaltungs- Dienstprogramme in verschiedenen Ausführungsbeispielen ausgeführt werden können. Bei einem Ausführungsbeispiel wird die Duplizierung des Abteilungsnamens durch ein Dienstprogramm überprüft (z. B. die tlcompadd- oder tlcompren- Dienstprogramme), das "Ins" aufruft, um zu verifizieren, daß ein Name nicht schon bereits im "Ins"-Sicherheitsmodul existiert. Zusätzlich kann das gerade ausgeführte Dienstprogramm beim Hinzufügen einer neuen Abteilung (z. B. mit dem tlcompadd-Befehl) eine Prüfung ausführen, um sicherzustellen, daß ausreichend Speicher vorhanden ist, um dem "Ins"-Sicherheitsmodul die neue Namens- und Nummernabbildung hinzuzufügen. Examples of error prevention checks by the Department management utilities in certain Embodiments of the present invention executed can include, for example, the review of a duplication of the department name and the Check that there is enough memory. Although these exemplary error prevention tests below are described in more detail, that to support the user many other types of Error Prevention Checks by the Departmental Management Utilities in various embodiments can be executed. In one embodiment the duplication of the department name by a Utility checked (e.g. the tlcompadd or tlcompren- Utilities) that calls Ins to verify that a name is not already in the "Ins" security module exist. In addition, the one just performed Utility when adding a new department (e.g. with the tlcompadd command) to check ensure that there is sufficient memory to store the "Ins" security module the new name and Add number mapping.

Als eine Sicherheitsprüfung dürfen nur Benutzer mit einer ordnungsgemäßen Erlaubnis alle oder den gesamten Teil der oben beschriebenen Abteilungsverwaltungs-Dienstprogramme (z. B. zum Manipulieren von Regeln und/oder Abteilungen) ausführen. Gemäß zumindest einem Ausführungsbeispiel hat der Benutzer die Erlaubnis, solche Abteilungsverwaltungs- Dienstprogramme wie Hinzufügen einer Abteilung etc. auszuführen, wenn sich der Benutzer in der Wurzel auf dem System befindet und ein für die Benutzer-ID gesetztes oder eingestelltes "admin-Bit"-Satz aufweist. Das admin bit ist ein spezielles Bit, das innerhalb des Einlogg-Prozesses des Benutzers eingestellt wird. Das Bit kann nur durch Einloggen durch sichere Kanäle, die gesteuert werden, erhalten werden. Solche sicheren Kanäle sind über eine sichere Schalenverbindung "SSH" (SSH = secure shell) oder durch physisches Einloggen an der Konsole der Maschine enthalten. As a security check, only users with a proper permission all or all of the Department management utilities described above (e.g. to manipulate rules and / or departments) To run. According to at least one embodiment the user permission to use such departmental Utilities such as adding a department etc. execute when the user is at the root of the system and a or set for the user ID has set "admin bit" set. The admin bit is a special bit that is part of the login process of the User is set. The bit can only be done by logging in through secure channels that are controlled become. Such secure channels are through a secure one Shell connection "SSH" (SSH = secure shell) or by physical Log in to the machine's console included.

Verschiedene Ausführungsbeispiele der vorliegenden Erfindung verbessern die Effizienz der Abteilungsverwaltung weiter, indem sie ermöglichen, daß Regeln und/oder Abteilungen dynamisch manipuliert werden können (wie vorstehend beschrieben ist), ohne ein Booten des Systems zu erfordern, damit die Aktionen, die über die Dienstprogramme ergriffen wurden, im System wirksam werden. Wie vorstehend bei Fig. 9 beschrieben ist, erfordern Systeme des Stands der Technik im allgemeinen, daß ein Benutzer eine Konfigurationsdatei editiert, um die Abteilungen und/oder Abteilungsregeln zu manipulieren, und das System muß typischerweise gebootet werden, bevor die Veränderungen, die an der Konfigurationsdatei vorgenommen wurden, im System wirksam werden. Verschiedene Ausführungsbeispiele der vorliegenden Erfindung ermöglichen, daß Dienstprogramme genutzt werden können, um Abteilungen und/oder Abteilungsregeln zu manipulieren, und zwar auf eine dynamische Weise, die kein Booten des Systems erfordert, damit eine solche Manipulation im System wirksam werden kann. Various embodiments of the present invention further improve the efficiency of department management by allowing rules and / or departments to be dynamically manipulated (as described above) without requiring the system to boot, thereby reducing the actions taken through the utilities have become effective in the system. As described above in Fig. 9, prior art systems generally require a user to edit a configuration file to manipulate departments and / or department rules, and the system typically must be booted before the changes made to the Configuration file have been made to take effect in the system. Various embodiments of the present invention enable utilities to be used to manipulate departments and / or departmental rules in a dynamic manner that does not require system booting for such manipulation to take effect in the system.

Bei zumindest einem Ausführungsbeispiel weist eine Konfigurationsdatei beispielsweise einen Text (z. B. Befehle etc.) auf, der Einzelheiten liefert, die dem System ermöglichen, mit der richtigen Anzahl von Abteilungen gebootet zu werden. Das heißt, daß die Konfigurationsdatei als eine Referenzbezugnahme auf ein Booten des Systems hin genutzt wird, um dem System zu ermöglichen, die Abteilungen, die auf demselben existieren, zu identifizieren. Wenn während der Systemlaufzeit ein Benutzer ein Abteilungsverwaltungs- Dienstprogramm benutzt, um eine neue Abteilung hinzuzufügen (z. B. wenn er das oben beschriebene tlcompadd- Befehlszeilendienstprogramm verwendet), wird ein solches Dienstprogramm ausgeführt, um die Nummer, die die neue Abteilung darstellt, automatisch zu erzeugen, und es speichert eine solche Nummer sowie den benutzerfreundlichen Namen der Abteilung in dem Speicher 421A (von Fig. 4) ab. An diesem Punkt ist ein Benutzer mit der korrekten Erlaubnis sofort in der Lage, die Abteilung dem Namen nach abzufragen und kann Regeln für eine solche Abteilung hinzufügen. Das Dienstprogramm kann auch die Konfigurationsdatei aktualisieren, um eine solche Abteilungsmanipulation (z. B. das Hinzufügen einer neuen Abteilung) zu reflektieren, so daß es, wenn das System gebootet werden sollte, den richtigen Zustand der Abteilungen erkennen würde, wodurch die Manipulation(en), die seit dem vorangegangen Booten vorgenommen wurden, reflektiert werden. Desgleichen können Abteilungsregeln in einer dynamischen Weise manipuliert werden. Die Abteilungsregeln können z. B. über den oben beschriebenen "tlrules"-Befehl hinzugefügt werden, der ausgeführt werden kann, um die gewünschte Regel für eine Abteilung zur Regeldatenbank 416 (Fig. 4) hinzuzufügen, und eine derart hinzugefügte Regel wird daher unmittelbar wirksam werden. Nachdem eine Zugriffsanforderung nach dem Hinzufügen einer Regel über den "tlrules"-Befehl empfangen wurde, greift z. B. das Sicherheitsmodul 421 auf die Regeldatenbank 416 zu, die die neu hinzugefügte Regel umfaßt, die genutzt werden kann, um zu bestimmen, ob der Zugriff für die anfordernde Abteilung erlaubt ist. Daher sind die Dienstprogramme vorzugsweise ausführbar, um ein dynamisches Verhalten der Abteilungsmanipulationsaktionen zu ermöglichen, ohne daß das System gebootet werden muß. For example, in at least one embodiment, a configuration file includes text (e.g., commands, etc.) that provides details that allow the system to boot with the correct number of departments. That is, the configuration file is used as a reference to booting the system to enable the system to identify the departments that exist on it. If, during system runtime, a user uses a department management utility to add a new department (e.g., using the tlcompadd command line utility described above), such a utility is run to the number representing the new department automatically and stores such a number and the user-friendly name of the department in memory 421 A (of FIG. 4). At this point, a user with the correct permission is immediately able to query the department by name and can add rules for such department. The utility can also update the configuration file to reflect such departmental manipulation (e.g. adding a new department) so that if the system were to be booted it would recognize the correct state of the departments, thereby reducing the manipulation (s ) that have been made since the previous boot are reflected. Similarly, departmental rules can be manipulated in a dynamic manner. The department rules can e.g. B. added via the "tlrules" command described above, which can be executed to add the desired rule for a department to the rule database 416 ( FIG. 4), and such a rule added will therefore take immediate effect. After an access request has been received via the "tlrules" command after adding a rule, e.g. For example, security module 421 approaches rule database 416 , which includes the newly added rule that can be used to determine whether access is allowed for the requesting department. Therefore, the utilities are preferably executable to enable dynamic behavior of the department manipulation actions without the need to boot the system.

Unter Bezugnahme auf Fig. 11 ist ein exemplarisches Arbeitsflußdiagramm zum Erzeugen einer Abteilung und anschließenden Umbenennen desselben gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dargestellt. Im Operationsblock 1101 wird der Befehl "tlcompadd comp" ausgeführt, um eine neue Abteilung mit dem Namen "comp." hinzuzufügen. Wie vorstehend beschrieben ist, umfaßt der Effekt des Ausführens dieses Befehls gemäß zumindest einem Ausführungsbeispiel die Erzeugung einer Nummer, die intern verwendet wird, um auf die neue Abteilung mit dem Namen "comp." Bezug zu nehmen. Bei zumindest einem Ausführungsbeispiel werden die Abteilung "comp" und ihre erzeugte Nummer in einer Konfigurationsdatei gespeichert und in den Betriebssystemkern-Ebenen-Speicher des Systems kopiert, um die neue Abteilung auf dynamische Weise verfügbar zu machen. Referring to FIG. 11, an exemplary work flow diagram for creating and then renaming a department according to an embodiment of the present invention is shown. In operation block 1101 , the "tlcompadd comp" command is executed to create a new department called "comp." add. As described above, according to at least one embodiment, the effect of executing this command comprises generating a number that is used internally to refer to the new department named "comp." To refer. In at least one embodiment, the department "comp" and its generated number are stored in a configuration file and copied to the system kernel level memory to make the new department available in a dynamic manner.

Anschließend wird im Block 1102 dieses Beispiels der Befehl "tlcompren comp comp2" ausgeführt, um die Abteilung "comp" in "comp2" umzubenennen. Gemäß zumindest einem Ausführungsbeispiel wird durch das Umbenennen einer Abteilung der Name in der Konfigurationsdatei und die Name-auf-Nummer- Abbildung im Betriebssystemkern-Ebenen-Speicher verändert. The command "tlcompren comp comp2" is then carried out in block 1102 of this example in order to rename the department "comp" to "comp2". In accordance with at least one exemplary embodiment, renaming a department changes the name in the configuration file and the name-to-number mapping in the operating system kernel level memory.

Unter Bezugnahme auf Fig. 12 ist ein weiteres exemplarisches Arbeitsflußdiagramm vorgesehen, das ein Beispiel des Wechselns eines Einlogg-Prozesses eines Benutzers von einer Abteilung zu einer anderen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung liefert. In dem Beispiel von Fig. 12 wird der Operationsblock 1201 zuerst ausgeführt, in dem der Befehl "tlgetcomp" ausgeführt wird. Der Befehl "tlgetcomp" wird ausgeführt, um die aktuelle Abteilung anzuzeigen, das bei diesem Beispiel als "System" zurückgesendet wird. Im Block 1202 wird der Befehl "tlsetcomp web" ausgeführt, um von der "System"-Abteilung zur "Web"- Abteilung zu wechseln. Es wird darauf hingewiesen, daß für den tatsächlichen Erfolg eines solchen Wechsels von der "System"-Abteilung zur "Web"-Abteilung die "Web"-Abteilung auf dem System existieren muß (z. B. zuvor über den tlcompadd-Befehl hinzugefügt worden ist). Gemäß zumindest einem Ausführungsbeispiel ist in einer Prozeßstruktur ein Feld enthalten, das die Abteilung darstellt, zu dem der Prozeß gehört (oder in der er eingedämmt ist). Wenn sich ein Benutzer beispielsweise per Vorgabe in einem Linux-System an der Konsole einloggt, weist die Einlogg-Prozeßstruktur des Benutzers ein zusätzliches Feld mit der Bezeichnung "dev" auf (d. h. Abteilung "dev"). Wenn der Benutzer dann einen Web-Daemon startet, wird dabei ebenfalls das Feld in der Prozeßstruktur die Bezeichnung "dev" aufweisen, da es ein Kindprozeß ist, der durch den Einlogg-Prozeß des Benutzers hervorgebracht worden ist. Bei zumindest einem Ausführungsbeispiel nutzt die Zugriffssteuerung den Namen, der in der Abteilung vorgesehen ist, die das Feld der Prozeßstruktur identifiziert. Wenn beispielsweise ein Syscall von einem Prozeß mit einem Abteilungsidentifizierer von "dev" empfangen wird, wird ein Nachschlagvorgang durch das Sicherheitsmodul 421 ausgeführt, um zu bestätigen, ob "dev" den angeforderten Syscall ausführen darf. Wenn der Benutzer den tlsetcomp ausführt, wird der abteilungsidentifizierende Name im Prozeß dynamisch verändert, und die Regeln werden dann an die Abteilung angelegt. Referring to FIG. 12, another exemplary work flow diagram is provided that provides an example of switching a user's login process from one department to another in accordance with an embodiment of the present invention. In the example of FIG. 12, operation block 1201 is executed first by executing the "tlgetcomp" command. The "tlgetcomp" command is executed to display the current department, which in this example is returned as "system". At block 1202 , the "tlsetcomp web" command is executed to switch from the "System" department to the "Web" department. It is pointed out that for the actual success of such a switch from the "system" department to the "web" department, the "web" department must exist on the system (e.g. added previously via the tlcompadd command is). In accordance with at least one embodiment, a process structure includes a field that represents the department to which the process belongs (or in which it is contained). For example, if a user logs on to the console by default in a Linux system, the log-in process structure of the user has an additional field called "dev" (ie department "dev"). When the user then starts a web daemon, the field in the process structure will also have the designation "dev", since it is a child process that was created by the user logging in process. In at least one embodiment, the access control uses the name provided in the department that identifies the field of the process structure. For example, when a syscall is received by a process with a department identifier of "dev", a lookup is performed by security module 421 to confirm whether "dev" is allowed to perform the requested syscall. When the user runs tlsetcomp, the department-identifying name is changed dynamically in the process, and the rules are then applied to the department.

Ferner tritt bei zumindest einem Ausführungsbeispiel der Wechsel von einer Abteilung zu einer anderen Abteilung infolge des ausgeführten Befehlszeilendienstprogramms (z. B. "tlsetcomp") in einer Weise auf, die für den Benutzer/die Anwendung, der/die ein solches Befehlszeilendienstprogramm benutzte, transparent ist. Gemäß zumindest einem Ausführungsbeispiel tritt ein solcher Wechsel von Abteilungen dynamisch auf, so daß, wenn der Befehl "tlgetcomp" erneut im Block 1203 ausgeführt wird, der Abteilungsname "web" als die aktuelle Abteilung angezeigt wird. Daher bestätigt der "tlgetcomp"-Befehl, der im Block 1203 ausgeführt wurde, daß die aktuelle Abteilung nun "web" und nicht "System" lautet. Furthermore, in at least one embodiment, the switch from one department to another department as a result of the command line utility (e.g., "tlsetcomp") executed occurs in a manner that is transparent to the user / application using such a command line utility is. In accordance with at least one embodiment, such a change of departments occurs dynamically so that when the "tlgetcomp" command is executed again in block 1203 , the department name "web" is displayed as the current department. Therefore, the "tlgetcomp" command executed in block 1203 confirms that the current department is now "web" and not "system".

Als ein weiteres Beispiel ist in Fig. 13 ein anderes exemplarisches Arbeitsflußdiagramm vorgesehen, das ein Beispiel zur Nutzung eines Abteilungsverwaltungs-Dienstprogramms vorsieht, um zu einem anderen Abteilung zu wechseln und darin einen Befehl auszuführen. Hin und wieder kann es wünschenswert sein, die Ausführung eines Prozesses in einer Abteilung von einer anderen Abteilung aus zu initiieren. Zum Beispiel kann ein Webserver in einem System enthalten ist, der innerhalb der "Web"-Abteilung ausgeführt werden sollte, wobei sich jedoch der Einlogg-Prozeß des Benutzers momentan in der "System"-Abteilung befinden kann. Im Gegensatz zu einem Wechsel in die Web-Abteilung, um den Webserver zu starten, ist es eventuell effizienter, dem Benutzer zu ermöglichen, den Webserver in der Web-Abteilung von der System-Abteilung aus zu initiieren. Daher sieht zumindest ein Ausführungsbeispiel der vorliegenden Erfindung einen Befehl vor, der benutzt werden kann, um von einer ersten Abteilung zu einer zweiten Abteilung wirksam zu wechseln, einen gewünschten Befehl in der zweiten Abteilung auszuführen und zur ersten Abteilung zurückzukehren. As another example, another exemplary work flow diagram is provided in FIG. 13 that provides an example of using a department management utility to switch to another department and execute a command therein. From time to time, it may be desirable to initiate the execution of a process in one department from another department. For example, a web server may be included in a system that should be running within the "web" department, but the user's login process may currently be in the "system" department. Unlike switching to the web department to start the web server, it may be more efficient to allow the user to initiate the web server in the web department from the system department. Therefore, at least one embodiment of the present invention provides a command that can be used to effectively move from a first department to a second department, execute a desired command in the second department, and return to the first department.

Bei dem Beispiel von Fig. 13 wird der Arbeitsblock 1301 zuerst ausgeführt, in dem der Befehl "tlgetcomp" ausgeführt wird. Der Befehl "tlgetcomp" wird ausgeführt, um die aktuelle Abteilung anzuzeigen, die in diesem Beispiel als "System" zurückgesendet wird. Daher lautet die aktuelle Abteilung des Einlogg-Prozesses "System" (z. B. weist der Einlogg-Prozeß des Benutzers ein Etikett mit der Beschriftung "System" auf). Im Block 1302 wird der Befehl "tlsetcomp web -c/bin/httpd - start" ausgeführt. Der Befehl von Block 1302 wird ausgeführt, um von der "System"-Abteilung zur "Web"- Abteilung zu wechseln, den Befehl auszuführen, um den Webserver-Daemon zu starten, wobei dann tlsetcomp endet und dabei den Webserver-Daemon in der Web-Abteilung arbeitend hinterläßt. Gemäß zumindest einem Ausführungsbeispiel wird der "tlsetcomp"-Befehl in der "System"-Abteilung ausgeführt, um einen Kinderprozeß (den Web-Daemon) zu initiieren, jedoch ändert er kurz davor die Beschriftung in der Prozeßstruktur von "System" in "Web", um den Web-Daemon als ein Kind in der Web-Abteilung zu starten. Anschließend kehrt er zum "System" zurück, bevor der "tlsetcomp"-Befehl beendet wird. Daher wird, wenn der Befehl "tlgetcomp" erneut im Block 1303 ausgeführt wird, der Abteilungsname "System" als die aktuelle Abteilung angezeigt. In the example of FIG. 13, work block 1301 is executed first by executing the "tlgetcomp" command. The "tlgetcomp" command is executed to display the current department, which in this example is returned as "system". Therefore, the current department of the login process is "System" (for example, the user's login process has a label that reads "System"). In block 1302 , the command "tlsetcomp web -c / bin / httpd - start" is executed. The command from block 1302 is executed to switch from the "System" department to the "Web" department, to execute the command to start the web server daemon, whereupon tlsetcomp ends and the web server daemon on the web Department leaves working. In accordance with at least one embodiment, the "tlsetcomp" command is executed in the "System" department to initiate a child process (the web daemon), but shortly before it changes the label in the process structure from "System" to "Web" to start the web daemon as a child in the web department. It then returns to the "system" before the "tlsetcomp" command is terminated. Therefore, when the "tlgetcomp" command is executed again in block 1303 , the department name "System" is displayed as the current department.

Claims (24)

1. Verfahren zum Verwalten eines prozessorbasierten Systems (400), wobei das Verfahren folgende Schritte aufweist:
Implementieren von zumindest einer Abteilung (401) zum Eindämmen von zumindest einem Prozeß, der auf dem prozessorbasierten System ausführbar ist; und
Bereitstellen von zumindest eine Betriebssystem- Befehlszeilendiensteinrichtung (404), die ausführbar ist, um die zumindest eine Abteilung (401) zu manipulieren.
1. A method for managing a processor-based system ( 400 ), the method comprising the following steps:
Implementing at least one department ( 401 ) to contain at least one process executable on the processor-based system; and
Providing at least one operating system command line service facility ( 404 ) that is executable to manipulate the at least one department ( 401 ).
2. Verfahren gemäß Anspruch 1, bei dem die zumindest eine Abteilung (401) definiert, ob dem zumindest einen Prozeß, der darin eingedämmt ist, Zugriff auf spezielle Systembetriebsmittel ermöglicht wird. 2. The method of claim 1, wherein the at least one department ( 401 ) defines whether the at least one process contained therein is allowed access to special system resources. 3. Verfahren gemäß Anspruch 1 oder 2, bei dem der zumindest eine Prozeß etikettiert ist, um die Abteilung (401), in der er eingedämmt ist, zu identifizieren. 3. The method of claim 1 or 2, wherein the at least one process is labeled to identify the department ( 401 ) in which it is contained. 4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) ausführbar ist, um die zumindest eine Abteilung (401) zu manipulieren, zumindest eine Befehlszeilendiensteinrichtung (404) aufweist, die ausführbar ist, um zumindest einen Typ von Abteilungsmanipulation auszuführen, der aus der Gruppe ausgewählt wurde, die aus folgenden Schritten besteht:
Hinzufügen einer neuen Abteilung (401), Umbenennen einer existierenden Abteilung, Entfernen einer existierenden Abteilung, Umskalieren einer existierenden Abteilung, Hinzufügen eines Prozesses zu einer Abteilung und Entfernen eines Prozesses aus einer Abteilung.
4. The method according to any one of claims 1 to 3, wherein the at least one command line service device ( 404 ) is executable to manipulate the at least one department ( 401 ) comprises at least one command line service device ( 404 ) that is executable to at least one type of departmental manipulation selected from the group consisting of the following steps:
Adding a New Department ( 401 ), Renaming an Existing Department, Removing an Existing Department, Rescaling an Existing Department, Adding a Process to a Department, and Removing a Process from a Department.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem der Schritt des Implementierens folgenden Schritt aufweist:
Definieren der zumindest einen Abteilung (401) in zumindest einer Konfigurationsdatei.
5. The method according to any one of claims 1 to 4, wherein the step of implementing comprises the following step:
Define the at least one department ( 401 ) in at least one configuration file.
6. Verfahren gemäß Anspruch 5, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) ausführbar ist, um die zumindest eine Abteilung (401) zu manipulieren, ohne zu erfordern, daß ein Benutzer die zumindest eine Konfigurationsdatei editiert. 6. The method of claim 5, wherein the at least one command line service facility ( 404 ) is executable to manipulate the at least one department ( 401 ) without requiring a user to edit the at least one configuration file. 7. Verfahren gemäß einem der Ansprüche 1 bis 6, bei dem der Schritt des Implementierens folgenden Schritt aufweist:
Bereitstellen von zumindest einer Regel, die die Eindämmung von der zumindest einen Abteilung (401) definiert in zumindest einer Konfigurationsdatei.
7. The method according to any one of claims 1 to 6, wherein the step of implementing comprises the following step:
Providing at least one rule that defines containment by the at least one department ( 401 ) in at least one configuration file.
8. Verfahren gemäß Anspruch 7, das ferner den folgenden Schritt aufweist:
Bereitstellen von zumindest einer Befehlszeilendiensteinrichtung (404), das ausführbar ist, um die zumindest eine Regel zu manipulieren.
8. The method of claim 7, further comprising the step of:
Providing at least one command line service facility ( 404 ) executable to manipulate the at least one rule.
9. Verfahren gemäß Anspruch 8, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404), die ausführbar ist, um die zumindest eine Regel zu manipulieren, zumindest eine Befehlszeilendiensteinrichtung aufweist, das ausführbar ist, um den zumindest einen Typ von Regelmanipulation auszuführen, der aus der Gruppe ausgewählt ist, die aus folgenden Schritten besteht:
Hinzufügen einer neuen Regel für eine spezielle Abteilung (401), Entfernen einer bestehenden Regel für eine spezielle Abteilung und Auflisten aller Regeln für eine spezielle Abteilung.
The method of claim 8, wherein the at least one command line service device ( 404 ) executable to manipulate the at least one rule comprises at least one command line service device executable to perform the at least one type of rule manipulation resulting from the Group is selected, which consists of the following steps:
Add a new rule for a special department ( 401 ), remove an existing rule for a special department and list all rules for a special department.
10. System, das folgende Merkmale aufweist:
zumindest einen Prozessor;
ein Betriebssystem, das zumindest eine Abteilung (401) implementiert, der zumindest ein Prozeß, der auf dem System ausführbar ist, zugeordnet werden kann;
zumindest eine Konfigurationsdatei, die die zumindest eine Abteilung (401) definiert; und
eine Einrichtung zum Ausführen einer Verwaltung der zumindest einen Abteilung (401), ohne zu erfordern, daß der Benutzer die zumindest eine Konfigurationsdatei editieren muß, in der die zumindest eine Abteilung definiert ist.
10. System with the following features:
at least one processor;
an operating system that implements at least one department ( 401 ) that can be associated with at least one process executable on the system;
at least one configuration file defining the at least one department ( 401 ); and
means for performing management of the at least one department ( 401 ) without requiring the user to edit the at least one configuration file in which the at least one department is defined.
11. System gemäß Anspruch 10, bei dem die Einrichtung zum Ausführen der Verwaltung der zumindest einen Abteilung (401) ferner ermöglicht, daß Verwaltungsaktionen, die über die Einrichtung zum Ausführen der Verwaltung gestartet werden, dynamisch ausgeführt werden, ohne zu erfordern, daß das System umgebootet werden muß, damit die Verwaltungsaktionen in dem System wirksam werden. 11. The system of claim 10, wherein the means for performing administration of the at least one department ( 401 ) further enables administrative actions initiated through the means for performing administration to be performed dynamically without requiring the system must be rebooted for the administrative actions to take effect in the system. 12. System gemäß Anspruch 10 oder 11, bei dem der Schritt des Ausführens der Verwaltung der zumindest einen Abteilung den Schritt des Manipulierens der zumindest einen Abteilung aufweist. 12. The system of claim 10 or 11, wherein the step performing management of the at least one Department the step of manipulating the least has a department. 13. System gemäß Anspruch 12, bei dem der Schritt des Manipulierens der zumindest einen Abteilung (401) zumindest einen Typ von Manipulation umfaßt, der aus der Gruppe der folgenden Schritte ausgewählt wurde:
Hinzufügen einer neuen Abteilung, Umbenennen einer existierenden Abteilung und Entfernen einer existierenden Abteilung, Umskalieren einer existierenden Abteilung, Hinzufügen eines Prozesses zu einer Abteilung und Entfernen eines Prozesses aus einer Abteilung.
13. The system of claim 12, wherein the step of manipulating the at least one compartment ( 401 ) comprises at least one type of manipulation selected from the group of the following steps:
Add a new department, rename an existing department and remove an existing department, rescale an existing department, add a process to a department and remove a process from a department.
14. System gemäß Anspruch 12 oder 13, bei dem die Einrichtung zum Ausführen der Verwaltung der zumindest einen Abteilung (402) ferner ermöglicht, daß die Manipulation der zumindest einen Abteilung (401) dynamisch ausgeführt werden kann, ohne zu erfordern, daß das System umgebootet werden muß, damit die Abteilungsmanipulation in dem System wirksam wird. The system of claim 12 or 13, wherein the means for performing management of the at least one department ( 402 ) further enables manipulation of the at least one department ( 401 ) to be performed dynamically without requiring the system to be rebooted must be done for the department manipulation to take effect in the system. 15. System gemäß einem der Ansprüche 10 bis 14, bei dem der Schritt des Ausführens der Verwaltung der zumindest einen Abteilung (401) den Schritt des Umschaltens von einer ersten Abteilung zu einer zweiten Abteilung aufweist. The system of any of claims 10 to 14, wherein the step of performing management of the at least one department ( 401 ) includes the step of switching from a first department to a second department. 16. System gemäß einem der Ansprüche 10 bis 15, das ferner folgendes Merkmal aufweist:
zumindest eine Konfigurationsdatei, die zumindest eine Regel umfaßt, die eine Eindämmung der zumindest einen Abteilung (401) definiert.
16. The system according to any one of claims 10 to 15, further comprising:
at least one configuration file comprising at least one rule defining containment of the at least one department ( 401 ).
17. System gemäß Anspruch 16, bei dem der Schritt des Ausführens der Verwaltung der zumindest einen Abteilung (401) den Schritt des Manipulierens der zumindest einen Regel aufweist. 17. The system of claim 16, wherein the step of performing management of the at least one department ( 401 ) comprises the step of manipulating the at least one rule. 18. System gemäß Anspruch 17, bei dem der Schritt des Manipulierens der zumindest einen Regel zumindest einen Typ von Manipulation aufweist, der aus der Gruppe der folgenden Schritte ausgewählt ist:
Hinzufügen einer neuen Regel für eine spezielle Abteilung (401), Entfernen einer existierenden Regel für eine spezielle Abteilung und Auflisten aller Regeln für eine spezielle Abteilung.
18. The system of claim 17, wherein the step of manipulating the at least one rule comprises at least one type of manipulation selected from the group of the following steps:
Add a new rule for a special department ( 401 ), remove an existing rule for a special department and list all rules for a special department.
19. System gemäß einem der Ansprüche 10 bis 18, bei dem die Einrichtung zum Ausführen der Verwaltung zumindest einen Betriebssystem-Befehlszeilendiensteinrichtung (404) aufweist, die ausführbar ist, um die zumindest eine Abteilung (401) zu verwalten. 19. The system of any one of claims 10 to 18, wherein the means for performing management comprises at least one operating system command line service means ( 404 ) executable to manage the at least one department ( 401 ). 20. Computerlesbares Medium, das Instruktionen umfaßt, die durch einen Prozessor ausführbar sind, wobei das computerlesbare Medium folgende Merkmale aufweist:
eine Bibliothek von Softwarefunktionen zum Verwalten von zumindest einer Abteilung (401), die durch ein Betriebssystem implementiert ist, wobei zumindest ein Prozeß der zumindest einen Abteilung zugeordnet werden kann und die zumindest eine Abteilung eine Zugreifbarkeit auf Betriebsmittel für den zumindest einen Prozeß, der denselben zugeordnet ist, definiert; und
wobei die Bibliothek von Softwarefunktionen zumindest eine Befehlszeilendiensteinrichtung (404) umfaßt, das ausführbar ist, um die zumindest eine Abteilung (401) zu manipulieren.
20. A computer readable medium comprising instructions that can be executed by a processor, the computer readable medium having the following features:
a library of software functions for managing at least one department ( 401 ) implemented by an operating system, wherein at least one process can be assigned to the at least one department and the at least one department has accessibility to resources for the at least one process that is assigned to it is defined; and
wherein the library of software functions includes at least one command line service facility ( 404 ) executable to manipulate the at least one department ( 401 ).
21. Computerlesbares Medium gemäß Anspruch 20, bei dem zumindest eine Befehlszeilendiensteinrichtung (404), die ausführbar ist, um die zumindest eine Abteilung zu manipulieren, zumindest einen Typ von Manipulation umfaßt, der aus der Gruppe der folgenden Schritte ausgewählt ist:
Hinzufügen einer neuen Abteilung, Umbenennen einer existierenden Abteilung, Entfernen einer existierenden Abteilung, Umskalieren einer existierenden Abteilung, Hinzufügen eines Prozesses zu einer Abteilung und Entfernen eines Prozesses aus einer Abteilung.
The computer readable medium of claim 20, wherein at least one command line service device ( 404 ) executable to manipulate the at least one department comprises at least one type of manipulation selected from the group of the following steps:
Add a new department, rename an existing department, remove an existing department, rescale an existing department, add a process to a department and remove a process from a department.
22. Computerlesbares Medium gemäß Anspruch 20 oder 21, bei dem die zumindest eine Konfigurationsdatei auf einem System implementiert ist, um die zumindest eine Abteilung zu definieren. 22. Computer-readable medium according to claim 20 or 21, which has at least one configuration file on one System is implemented to at least one Define department. 23. Computerlesbares Medium gemäß Anspruch 22, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) ausführbar ist, um die zumindest eine Abteilung (401) zu manipulieren, ohne zu erfordern, daß ein Benutzer die zumindest eine Konfigurationsdatei editieren muß. The computer readable medium of claim 22, wherein the at least one command line service facility ( 404 ) is executable to manipulate the at least one department ( 401 ) without requiring a user to edit the at least one configuration file. 24. Computerlesbares Medium gemäß einem der Ansprüche 20 bis 23, bei dem zumindest eine Regel implementiert ist, um die Zugreifbarkeit auf Betriebsmittel, die für die zumindest eine Abteilung (401) erlaubt sind, zu definieren, und bei dem die Bibliothek von Softwarefunktionen ferner zumindest ein Befehlszeilendienstprogramm (404) umfaßt, das ausführbar ist, um die zumindest eine Regel zu manipulieren. 24. Computer-readable medium according to one of claims 20 to 23, in which at least one rule is implemented in order to define the accessibility to resources which are permitted for the at least one department ( 401 ), and in which the library of software functions furthermore at least a command line utility ( 404 ) executable to manipulate the at least one rule.
DE10229114A 2001-06-29 2002-06-28 System and method for managing departments in a trusted operating system Expired - Fee Related DE10229114B4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/896,385 US20030014466A1 (en) 2001-06-29 2001-06-29 System and method for management of compartments in a trusted operating system
US09/896,385 2001-06-29
DE10262161 2002-06-28

Publications (2)

Publication Number Publication Date
DE10229114A1 true DE10229114A1 (en) 2003-01-23
DE10229114B4 DE10229114B4 (en) 2006-03-30

Family

ID=36013603

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10229114A Expired - Fee Related DE10229114B4 (en) 2001-06-29 2002-06-28 System and method for managing departments in a trusted operating system

Country Status (1)

Country Link
DE (1) DE10229114B4 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128995A (en) * 1990-07-23 1992-07-07 International Business Machines Corp. Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system

Also Published As

Publication number Publication date
DE10229114B4 (en) 2006-03-30

Similar Documents

Publication Publication Date Title
DE69531112T2 (en) MECHANISM FOR LINKING FILES ON AN EMULATED SYSTEM WITH THE CENTRAL SYSTEM FOR ACCESS BY EMULATED SYSTEM USERS
DE112012003988B4 (en) Protect a virtual guest&#39;s memory
DE10195999B3 (en) A computer system comprising a memory controller, included in a chipset, for controlling accesses to an isolated memory for an isolated implementation
DE69731714T2 (en) Dynamic service classes for an international cryptographic structure
DE102011103218B4 (en) Systems, methods and devices for virtualizing TPM accesses
Acharya et al. {MAPbox}: Using Parameterized Behavior Classes to Confine Untrusted Applications
DE112005003340B4 (en) Mechanism for determining the trustworthiness of out-of-band management agents
DE60006217T2 (en) TECHNIQUES FOR GRANTING ACCESS THROUGH A CONTEXT LOCK IN A DEVICE WITH A SMALL SPACE REQUIRED USING AN ENTRY POINT OBJECT
DE60123672T2 (en) COMPUTER SYSTEM PROTECTION
DE102018115489A1 (en) KRYPTO-FORGIVEN RIGHTS FOR ISOLATION
DE102018123710A1 (en) Cryptographic storage ownership table for a secure public cloud
DE60010433T2 (en) METHOD FOR IMPLEMENTING SECURITY REQUIREMENTS IN A SMALL DEVICE USING A CONTEXT LOCK
DE112020000223B4 (en) STORAGE SHARING BETWEEN A SECURE DOMAIN AND A NON- SECURE ENTITY
DE112020000303T5 (en) TESTING MEMORY PROTECTION HARDWARE IN A SECURE VIRTUAL MACHINE ENVIRONMENT
DE60304005T2 (en) Change of load addresses of executable program modules
DE112020000280T5 (en) TRANSPARENT INTERPRETATION OF GUEST COMMANDS IN A SECURE VIRTUAL MACHINE ENVIRONMENT
DE112020000285T5 (en) Program interruptions for page import / export
CN110012016A (en) Mix the method and system of resources accessing control in cloud environment
DE112020000286T5 (en) SECURE IN / OUT WITH PAGE CHANGE DETECTION
WO2003025758A2 (en) Device and method for establishing a security policy in a distributed system
DE10229114B4 (en) System and method for managing departments in a trusted operating system
DE112022003818T5 (en) DELAYED RECLAIM OF SECURE GUEST RESOURCES
DE102021122507A1 (en) PROVIDE ISOLATED CONTAINERS TO PROCESS USER REQUESTS
DE60211900T2 (en) METHOD AND DEVICE FOR STORING SAFE DATA ENTRY AND DATA OUTPUT
DE112021005119T5 (en) ACCESSING SOFTWARE THROUGH HETEROGENE ENCRYPTION

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8172 Supplementary division/partition in:

Ref document number: 10262161

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 10262161

Country of ref document: DE

Kind code of ref document: P

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee