DE10229114B4 - System and method for managing departments in a trusted operating system - Google Patents

System and method for managing departments in a trusted operating system Download PDF

Info

Publication number
DE10229114B4
DE10229114B4 DE10229114A DE10229114A DE10229114B4 DE 10229114 B4 DE10229114 B4 DE 10229114B4 DE 10229114 A DE10229114 A DE 10229114A DE 10229114 A DE10229114 A DE 10229114A DE 10229114 B4 DE10229114 B4 DE 10229114B4
Authority
DE
Germany
Prior art keywords
department
departments
rules
command
resources
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.)
Expired - Fee Related
Application number
DE10229114A
Other languages
German (de)
Other versions
DE10229114A1 (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 Development Co LP
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 Development Co LP filed Critical Hewlett Packard Development Co LP
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

Verfahren zum Verwalten eines prozessorbasierten Systems (400), wobei das System durch Etikettieren einzelner Betriebssystemkern-Betriebsmittel in mehrere Abteilungen (401, 402, 403), die in zumindest einer Konfigurationsdatei definiert sind, aufgeteilt wird, wobei die Abteilungen (401, 402, 403) jene Betriebsmittel bezeichnen, auf die in den Abteilungen enthaltene Prozesse zugreifen dürfen, wobei die Betriebsmittel Netzwerkschnittstellen und/oder Prozesse aufweisen, wobei die in den Abteilungen (401, 402, 403) enthaltenen Prozesse auf das Zugreifen auf Systembetriebsmittel gemäß den Regeln, die in einer Regeldatenbank (416) gespeichert sind, beschränkt sind, wobei das Verfahren den Schritt des Bereitstellens von zumindest einem Dienstprogramm (404) aufweist, das ausführbar ist, um zumindest eine Abteilung (401, 402, 403) zu verwalten.method for managing a processor-based system (400), wherein the System by labeling individual kernel resources into several departments (401, 402, 403) that are in at least one configuration file are defined, the departments (401, 402, 403) designate those resources on which in departments are allowed to access contained processes, where the resources are network interfaces and / or processes having, in the compartments (401, 402, 403) contained Processes for accessing system resources according to the rules, that are stored in a rulebase (416) are restricted, the method comprising the step of providing at least a utility (404) executable to at least one To manage department (401, 402, 403).

Figure 00000001
Figure 00000001

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 The present invention relates generally to computer containment and more specific to a system and procedure that involves an administration of Enable departments in an 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 OSs sind im Stand der Technik entwickelt worden, die beispielsweise HP-UX®, LinuxTM, MS-DOS®, OS/2®, Windows®, UnixTM, System 8, MPE/iX, Windows CE® und PalmTM umfassen.An operating system (OS) is rightfully the most important program that runs on a computer system because the OS is used in running all other programs (commonly referred to as "applications") For example, an application may call an OS routine (eg, via a system call) to store a particular file, and the OS may communicate with the input / output chassis (BIOS BIOS = basic input / output system), dynamic main libraries, drivers, and / or other components of the computer system to properly store the particular file Many different OSs have been developed in the art, such as HP- UX® , Linux TM , MS- DOS® , OS / , Windows® , Unix , System 8, MPE / iX, Windows CE® and Palm .

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 OSs sind relative komplexe Funktionen integriert, die einmal nur durch separate Programme, wie z. B. Faxen, Datenverarbeitung, Plattenkompression, und Inter netbrowser ausgeführt wurden. Im allgemeinen stellen OSs 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. 1 shows an exemplary system 100 that is an OS 101 includes. As shown, the OS 101 such tasks, such. B. recognizing an input from the keyboard 106 and the mouse 104 , sending an output to the display screen 107 and controlling peripheral devices, such as A disk drive 103 and a printer 105 , To run. Some OSs have relatively complex functions built in; Fax, Data Processing, Disk Compression, and Internet Browser. In general, OSs provide a software platform on which other programs, e.g. B. an application 102 , can be performed. Application programs are generally written to be executed on a particular OS and, therefore, the particular OS 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 working on a computer system 100 may be dependent on operating system routines to perform basic tasks, such as recognizing input from the keyboard 106 and the mouse 104 and sending an output to the display screen 102 to execute. The OS 101 has sets of routines for performing various tasks (eg, low-level operations). Operating systems include z. For example, in general, routines for performing such tasks as creating a directory, opening a file, closing a file, and saving a file. The application 102 can call certain OS routines to perform the desired tasks by making a system call. That is, the applications generally invoke OS routines through system calls. A user can work with the OS 101 also interact through a set of commands. For example, the DOS operating system includes commands such as: COPY and RENAME for copying files or changing the names of files. The commands are accepted and executed by a part of the operating system called a command processor or command line interpreter. In addition, a graphical user interface may be provided to allow a user to issue commands by pointing and clicking on objects that are e.g. B. appear on the display screen to enter.

Neben den oben beschriebenen, können die OSs viele Verantwortungsbereiche aufweisen. Zum Beispiel können die OSs auch die Verantwortung zum Sicherstellen haben, daß unterschiedliche Anwendungen und Benutzer, die zur selben Zeit arbeiten, nicht miteinander interferieren. Die OSs 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) OSs, 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 OSs 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 those described above, the OSs can have many responsibilities. For example, the OSs may also have the responsibility of ensuring that different applications and users operating at the same time do not interfere with each other. The OSs may also be responsible for security, such as: To ensure that unauthorized users are not accessing the system (or at least forbidden portions of the system). For example, "trusted" (secure) OSs that include security mechanisms therein have been developed in the art, such as those designed to handle and process classified governmental (e.g., military) information. One type of security mechanism that may be implemented is testing operating system routines (which may be referred to as "events") used by applications and / or users. For example, the OSs generally collect the audit data relating to the use of an operating system routine called via a system call (or "syscall") made by an application. For example, assume that an application makes a system call To open a special file, a test program in the operating system can use such check data for the system call, such as the date and time when the system call was made, the name of the file to be opened, and the result of the system call (eg, system file successful or Such checking may be carried out as part of the security mechanism included in the OS, for example, Other security mechanisms may be in addition to or in lieu of such Be implemented test characteristic.

Speziell umfassen vertrauenswürdige OSs, 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.specially include trusted OSs, including those without limitation Hewlett-Packard CMW (compartment mode work station), Hewlett-Packard's Virtual Vault, Sun Trusted Solaris, and SCO CMW belong, in general Security mechanisms, such. B. checking at least safety-relevant 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 OSs ist häufig für einen Großteil der Sicherheitsmaßnahmen, die durch ein solches OS bereitgestellt werden, verantwortlich.As As is well known to those skilled in the art, the central module is one OS of the kernel. In general, it is this is the part of the OS that loads first and is typically in the Main memory is located. Typically, the operating system kernel for such Tasks such as memory management, process and task management and disk management, responsible. The operating system kernel of a OSs are common for one large part the security measures, which are provided by such an OS, 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 are implemented in an OS are often a system administrator's troubles / complexities Effort in managing a system, in addition to the execution of such Tasks like adding new applications to the system etc. etc. belongs. That means you often get up System administrators leaves when it's about a proper configuration of system resources and / or security mechanisms in proper / secure Way goes. For example, the applications are electronic Services are generally demanding and contain many Lines of code that are common have one or more bugs, causing the applications vulnerable for attacks become. If an electronic service is offered on the internet, he is a big one Group of potential attackers exposed to the service Can probe vulnerabilities and as a result of these bugs it has become known that security breaches occurred. Once an application has been compromised (eg by a buffer overflow attack), It can be done in several different ways by an attacker used to violate the security of the system.

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.It More and more single machines are used to provide multiple services to host at the same time (eg ISP, ASP, xSP service provisioning), and therefore it is becoming more and more important that not only safety the host platform is protected from exploitable 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 betriebssystemkern-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).A the most effective ways to protect against an OS threat, operating system core-enforced or forced controls because they are implemented in the kernel Controls not by an application or a user from the User room can be turned off or undermined. typically, are the controls in all applications, regardless of the grade the and / or the desired Security of every single application code, applicable. Corresponding In some cases, the controls may become unnecessary used (they can over-protect certain applications).

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 the general can two basic security objectives are identified at the system level desirable are an adequate one Protection against application hazard and their effects. First, applications should be in highest possible Dimensions protected from attack become. For example, exposed interfaces to the applications should be as close as possible should be kept, and access to such interfaces should be well controlled. Second, the extent of the damage, an endangered application on the system can be limited to the greatest possible extent.

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 achieved by using a "containment". In general, an application is contained when strict in the same Checks are made as to which equipment she can access and what kind of access she has, too if the application is compromised has been. A containment protects an application also against external attacks and interference. Therefore the containment functionality has the potential many of the potential exploitation actions of an attacker, at least to reduce.

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 endanger an application can be broadly categorized as one of four types, as follows (although the consequences of a specific 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 (for example, an application that runs as root on a Unix standard operating system), then an attacker can try to get that privilege unwanted Way to use. For example, the attacker could use this privilege to gain access to protected operating resources or to interfere with other applications that operate on the same machine.
  • 2. Underride application-enforced access controls. This type of attack will gain access to legitimate resources (ie resources that are to be exposed by the application), but in an unauthorized manner. For example, a web server that forces access control to its content before offering it is an application that is vulnerable to this type of attack. Since the web server has uncontrolled direct access to the content, so does the attacker who has gained control of the web server in the same way.
  • 3. Providing Wrong Decision-Making Security Information: This type of attack is usually an indirect attack in which the vulnerable application, unlike the main service, is typically a support service (such as an authorization service). The compromised security service can then be used to provide false or forged information, allowing an attacker to gain access to the main service. Therefore, this is another way 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 local resources of the machine that are not protected but would normally be exposed by the application nonetheless. 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 then staged attacks on other applications in the machine or on the network could then 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 Bereitstel lung 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.at a containment has the abuse a privilege to gain direct access to protected system resources much less serious consequences than without containment because, even if one Attacker exploits an application privilege, the resources, on which can be accessed, are bound by what is in the containment area the application available has been made. Similarly, in the case of unprotected equipment, the one containment use access to the network from an application be blocked or at least very strictly controlled. With regard to the provision of wrong decision makers Safety information mitigates the potential damage, what is done by ensuring that will that the only access to the support services from the legitimate clients, d. H. the application services, which limits the exposure of applications to the attack.

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 an attack of the second type, d. H. an undercutting of application-enforced Access controls usually become on application concept or reached at least at configuration level. When using a containment can However, precautions must be taken to ensure that access to protected resources from a big, untrusted Application (for example, a web server) out by a smaller, more trustworthy one Application must go.

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 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, the use of containment in an operating system effectively increases the security of the applications and limits potential harm that can be caused by an attacker in the event that an application is compromised. With reference to 2 is an exemplary architecture 200 to the multi-service host on an operating system with the mitigation functionality shown. 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 can not interfere with the processing of another application or gain access to its (possibly sensitive) data. The containment is used to ensure that only the interfaces (input and output) that require a particular application to function are uncovered by the operating system, reducing the amount of attack on a particular application and also the extent of damage that can be done if the application would be compromised. Therefore, the containment helps to preserve the overall integrity of the host platform.

Betriebssystemkern-forcierte Eindämmungsmechanismen in OSs sind seit mehreren Jahren, typischerweise in OSs, die zur Handhabung und Verarbeitung von klassifizierten (militärischen) Informationen konzipiert wurden, verfügbar. Solche OSs 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.OS kernel-enforced mitigation mechanisms in OSs have been available for several years, typically in OSs designed to handle and process classified (military) information. Such OSs are often referred to as "trusted operating systems." The mitigation functionality is usually achieved through a combination of Mandatory Access Controls (MAC) and privileges, and the MAC protection schemes enforce a special policy System resource access control, such as files, processes, and network connections, is enforced by the kernel of the operating system can not be turned off by a user or a vulnerable application.

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 can manage a system including the Management of security mechanisms, such as As a containment, faced In general, it is through the tools / techniques that one gets System administrator to manage security mechanisms (e.g. For manipulating security mechanism configurations) disposal stand, increased. This means, the existence System administrator frequently with relatively complex and / or user-unfriendly interfaces for configuring system resources and security mechanisms an OS must interact. There are also techniques for configuring security mechanisms generally inefficient, are for a system administrator in unwanted Time consuming and labor intensive in performing the tasks that for configuring (eg manipulating) security mechanisms necessary, such. For example, those for implementing containment in a system.

Ein vertrauenswürdiges Betriebssystem, das als KeyKOS bzw. KeySAFE bezeichnet wird und das Abteilungen verwendet, ist bei „The KeyKOS/KeySAFE System Design; SED009-01; Agorics, Inc., CA, March 1989, Seiten 1 bis 21 beschrieben.One trustworthy Operating system called KeyKOS or KeySAFE and The departments used is at "The KeyKOS / KeySAFE System Design; SED009-01; Agorics, Inc., CA, March 1989, pages 1 to 21 described.

Aus dem Betriebssystem UNIX ist ferner ein Befehl „chmod" bekannt, durch den ein Zugriffsmodus einer Datei oder eines Verzeichnisses geändert werden kann.Out The UNIX operating system is also aware of a "chmod" command through which an access mode a file or directory can be changed.

Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein System zu schaffen, die ein einfaches und problemloses Verwalten von Abteilungen in einem vertrauenswürdigen Betriebssystem ermöglichen.It is an object of the present invention, a method and a To create a system that allows easy and trouble-free management enable departments in a trusted operating system.

Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und ein System gemäß Anspruch 7 gelöst.These The object is achieved by a method according to claim 1 and a system according to claim 7 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 implemen tiert ist. Eine solche Bibliothek von Softwarefunktionen umfaßt zumindest ein Befehlszeilendienstprogramm, das zum Manipulieren der Abteilungen ausgeführt werden kann.According to one embodiment becomes a method for managing a processor-based system discloses implementing at least one department for storing at least one process and providing has at least one operating system command line utility, which is executable for manipulating the departments. According to one another embodiment discloses a system having at least one processor, and an operating system that implements at least one department, the at least one process running on the system can be assigned. The system also has at least a configuration file that defines the departments, and a Device to run the administration of the departments on without requiring a user the configuration files in which such compartments are defined are edited. Another embodiment provides a computer-readable medium containing instructions through running a processor can be included, wherein such a computer-readable medium is a library of software functions for managing at least one department by an operating system is implemented. Such a library of Software features includes at least one command-line utility that can be manipulated of the departments can be.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:preferred embodiments The present invention will be described below with reference to FIG the enclosed drawings closer explained. Show it:

1 ein exemplarisches Computersystem des Stands der Technik, das ein Betriebssystem umfaßt; 1 an exemplary prior art computer system that includes an operating system;

2 eine schematische Darstellung einer exemplarischen Architektur zum Multi-Dienst-Hosten auf einem Betriebssystem, das eine Eindämmungsfunktionalität implementiert; 2 a schematic representation of an exemplary multi-service hosting architecture on an operating system implementing containment functionality;

3 eine exemplarische schematische Darstellung einer OS-Implementierung von Abteilungen; 3 an exemplary schematic representation of an OS implementation of departments;

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; 4 a schematic representation of an exemplary architecture of a trusted Linux host operating system that can implement departments, wherein various embodiments of the present invention can be implemented in such an exemplary architecture;

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

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

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

8 in schematischen Zügen ein exemplarisches vertrauenswürdiges Gateway-System; 8th schematically an exemplary trusted gateway system;

9 einen exemplarischen Abteilungsverwaltungsfluß eines typischen Verfahrens des Stands der Technik zum Verwalten von Abteilungen durch Editieren ei ner Konfigurationsdatei und Booten (bzw. Urladen) des Systems; 9 an exemplary departmental management flow of a typical prior art method for managing departments by editing a configuration file and booting the system;

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

11 einen exemplarischen Betriebsfluß zum Erzeugen einer Abteilung und anschließenden Umbenennen derselben gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 11 an exemplary operational flow for creating a department and then renaming it according to an embodiment of the present invention;

12 einen exemplarischen Betriebsfluß zum Wechseln von einer Abteilung zur anderen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und 12 an exemplary operation flow for switching from one department to another according to an embodiment of the present invention; and

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. 13 an exemplary operational flow that uses a departmental management utility 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 As described above, containment is an effective safety mechanism to implement in a system. As more fully explained below can be a containment functionality in one System implemented by the departments used in the system become. In general, the departments refer to groups of processes or threads that rely on accessing to specific subsets are limited by system resources of a computer system. Therefore, the departments are semi-isolated sections of a system. An operating system to support a For example, a plurality of processes (eg, applications) may be implemented be implemented in a system, wherein at least a part of the processes is provided with a label or a label, each one Labeling or each label a logically protected computing environment or "department." Each process with the same label or same label may be same Department belong. In certain implementations, the mitigation functionality may be through a mandatory protection of processes, files and network resources be provided, with the basic concept on the department based. Services and processes (such as applications) on the system can be found in separate departments. The processes in each department can only a direct access to the resources in that department to have. Access to other resources, whether local or TV, can only over well-controlled communication interfaces are allowed. exemplary Implementations of departments in a system are described below in more detail described.

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 different embodiments The present invention will be an efficient and user-friendly possibility for managing (eg manipulating) departments in an OS disclosed. More specifically, utilities such. For example, command-line utilities, provided that allow that commands executed by the user room of an OS to manage the departments. According to at least one embodiment command-line utilities are provided that allow that commands are executed to the departments and / or rules that contain such departments define, 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 38 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, be stimmte 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 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 1013 beschrieben.For a better understanding of the present invention, it is appropriate for the reader to understand the use of departments in an OS. Accordingly, an exemplary OS implementing departments therein as well as exemplary departmental arrangements are described below 3 - 8th described. Although a specific OS architecture and methods for implementing divisions within such an OS are described below, it is to be understood that the described OS and departmental implementations are intended to be exemplary only to the reader to help understand certain aspects of the present invention, and for that reason, the present invention should not be limited to the specific OS and / or departmental implementations described below. Rather, any OS and method for implementing departments that is 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 implementing departments, techniques for managing (eg, manipulating) such departments are described. A prior art method for managing departments by editing a configuration data and booting the system is described in connection with 9 described. Exemplary methods for managing (e.g., manipulating) departments using utilities in accordance with certain embodiments of the present invention will be described below 10 - 13 described.

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 OSs. Das Schlüsselkonzept eines vertrauenswürdigen OSs 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 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 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 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 embodiments of the present invention may be implemented, containment functionality is achieved by means of a prescribed protection of kernel-level processes, files, and network resources. Different types of prescribed controls can be used, such as: For example, those of traditional trusted OSs. The key concept of a trusted OS is often the "department," and various services and processes (eg, applications) on a system can be executed in separate departments 3 Figure 2 shows an exemplary schematic representation of an OS implementation of departments that provides a very simplified example of the concept of the departments. As shown, the system can 300 have an OS running on it and implementing two compartments shown as Department A and Division B. In the example of 3 the processes X and Y are contained in the department A, and the process Z is contained in the department B, respectively, contained. The system 300 can have various resources, which can be used as equipment A, equipment B and equipment C in 3 and the departments may be implemented to designate the resources that the processes contained therein are allowed to access. Such resources A, B and C may include network interfaces, processes, files and / or other types of system resources. According to particular implementations, any number of system resources may be organized in accordance with a department access control. For example, system resources associated with TCP / IP networking, routing tables, route caches, shared memory, message queues, semaphores, process / subprocess handling, and user ID (UID) handling may be provided by the Use of departments be limited.

Bei dem in 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.At the in 3 In the example shown, the processes X and Y contained in the section A have access to the resource A and the resource B, but not to the resource C. Further, the process Z included in the department B has a Access to resource B and resource C, but not resource A. Thus, the bins can be used as a security mechanism that protects the applications from attack and limits the amount of damage that can result to a system at risk during a compromised process an endangered process in a department limits its access to those 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 OSs 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 OSs 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 one Exemplary OS implementation can be relatively simple prescribed Access controls and a process label are used to create the concept of a department. In the following An example implementation of a trusted OS will be described in each process System assigned a label, and the processes with the same Include caption to the same department. There are mandatory tests on Kernel level enforced to ensure that the processes from one department not with processes from another department can interfere. The prescribed access controls are relative in the sense simply designed that Labels either match or not do. Further, in this example, there is no hierarchical arrangement of labels in the system, as in some known trusted Operating systems is the case. Unlike traditional ones trusted OSs do not use the labels in this example, to directly control access to the main file system. Instead of its a file system protection is achieved by another section of the main file system is assigned to each department. Everyone 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 to the Section of the file system associated with this department.

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 Be fehl „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 zelverzeichnisses. That is, the "chroot" is a command that is executed to modify a user's active root directory, for example, in a typical Unix system, the root directory is displayed as "/". Thus, the command "cd /" is normally executed to go to the root directory of the file system The chroot command can be executed to change a user's active root directory For example, the command "chroot / home" changes an active root directory Then, executing the cd / command causes the "/ home" directory to be modified rather than "/" because "/ home" is now the user's active root directory In another example, the chroot instruction can be used to specify a particular section as the active root directory For example, the command "chroot / compt / FOO" changes the active root directory to the section FOO. Thus, while the "cd /" is being executed to switch to the active root directory (which is changed by the chroot command), the chroot command may be used as another security mechanism, for example, the chroot command may be used. to effectively prevent a user (or process) from escaping from the active root directory specified by the chroot command, that is, for example, that a user (or process) is not from the active root directory specified by the chroot command (eg, section FOO) can escape to the actual root directory ("/") of the system. Once the active directory of a user (or process) has been changed via the chroot command, this is considered to be chrooted. Accordingly, the ability of a process to transition from root to root via the kernel controls in this exemplary implementation is removed so that the chroot can not escape. This exemplary implementation provides the ability to make at least selected files in the chroot immutable.

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 Ge gensatz 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.at These exemplary OS architectures are flexible ways of communication between the departments and the network resources over close, kernel-level interfaces with TCP / UDP as well as most IPC mechanisms intended. Access to these communication interfaces will be determined by rules established by the security administrator a "per department" basis may be specified it is, in contrast to conventional ones trusted Operating systems, not in this exemplary implementation necessary, the mandatory access controls with a privilege or department regarding the use of trusted Turn off proxies at the user level to prevent communication between the departments and 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 OSs 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 OSs) 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 sees a trusted OS before that, a containment offers, but also has sufficient flexibility, to make application integration relatively straightforward, thereby reducing the overall administrative costs and the expense of using and running a trusted one Operating system, often usual trusted OSs is reduced. Although again a specific Example of the architecture and implementation that the departments use, described herein, and the one preferred architecture and implementation, in the embodiments of the present invention Invention can be implemented It is noted that each OS architecture and Any method for implementing departments, now known are discovered (for example, traditional trusted OSs) or later are within the scope of the present invention to move, and that certain embodiments of the present invention implemented in any such OS architecture could be.

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 example to implement departments will now be described in more detail. In the The following description describes in detail a trusted Linux OS. its system by modification to the Linux-based kernel for Support the containment of user-level services, such as As HTTP servers realized is. One skilled in the art will understand, however, that in connection with a such trustworthy Linux OS described principles to other types of OS can be applied to the same or similar effects to achieve.

Unter Bezugnahme auf 4 ist eine exemplarische Architektur eines vertrauenswürdigen Linux-Host-OSs 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 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.With reference to 4 Figure 2 illustrates an exemplary architecture of a trusted Linux host OS that implements departments to mitigate. The system 400 includes a plurality of compartments. In this example are a WEB department 401 , an FTP department 402 and a SYSTEM department 403 shown. Each department can be assigned to different executing processes or sub-processes. Consequently, with reference to 4 , indicates a Linux base operating system kernel 400 generally a TCP / IP network device 406 , UNIX domain socket 408 , an intermediate process communication device 410 (eg a Sys V IPC device), a file access module 412 and other subsystem 408 on. The trusted Linux OS also has operating system core extensions 415 in the form of a security module 421 , a device configuration module 418 , a rules database 416 and kernel modules 422 on. As shown, at least some of the Linux kernel subsystems are 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, the security module takes 421 Authorize access control decisions and is responsible for promoting the concept of a department, thereby providing containment.

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. 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 additionally consult the rule database 416 when a decision is made. The rule database 416 Contains information about permissible communication paths between departments, providing narrow, well-controlled interfaces to and from a department. Consequently, the processes of the departments are to access system resources according to the rules set out in the rules database 416 are stored, limited. The rule database 416 may have separate tables for TCP / IP network resource rules and for file system resource rules. The various 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 policies may be stored on the file system. 4 also illustrates how the kernel extensions 415 from the user room 420 be managed through a series of customized system calls. As described in more detail below, such customized system calls may include some to the rule table 416 to manipulate, 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 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") identifizie ren. 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, the system department 403 Processes include the command-line utilities 404 to modify the departments or rules assigned to such departments. According to various embodiments of the present invention, the command line utilities 404 Commands for managing departments (e.g., manipulating departments and / or departmental rules) include. As in the exemplary system of 4 shown is the stable storage database 405 can be implemented in the user space and includes information identifying department names and a corresponding number map for each department (e.g., in the file "cmap.txt"). Thus, each department can be assigned user friendly names, and also on each department a respective number may be mapped for internal processing by the system 400 is used. Furthermore, the security module includes 421 preferably a memory 421A that has the department name and the number mapping that is the security module 421 enable the appropriate rules in the rulebase 416 identify that apply to a specific department requesting 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 the system interacts 400 advantageously with the security module 421 , The security module 421 drives the departmental scheme to prevent unauthorized access to the system resources. Specially uses the security module 421 the device configuration module 418 and the rules database 416 to facilitate departmental restrictions. The security module 421 can determine what resources the system 400 via the device configuration module 418 be available. The security module 421 also receives the identification of a department and the identification of a system resource to be accessed by a routine of an operating system kernel module. The security module 421 searches the rulebase 416 to locate an applicable rule. The security module 421 Enables or disables access based on an applicable rule or on a default rule if no applicable rule has been located.

Unter kurzer Bezugnahme auf 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 Pro gramm 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 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 betreibar 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 Zugriffsteuerungslogik 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.With brief reference to 5 For example, an example of the use of departments in an operating system according to an example implementation is shown. As shown, the system call commands (syscall commands) 509 be used to allow a user the rules in a rule machine 506 (in the kernel 501 is executed) from the user room 502 from manipulating. A program 507 or a file 508 can z. For example, such syscall commands 509 Run to the desired rules in the rule machine 506 to implement, to define the containment of the departments. The example of 5 also includes a process 503 which is assigned to a special department. The process 503 carries a code in the user space 502 which is a hardware-enforced mode of operation that controls the operations of the process 503 limits. The process 503 may include code operable to attempt access to a protected resource (eg, opening a particular file) in accordance with a departmental scheme and request access to a particular resource. That means the process 503 requests (eg via a customized syscall), a communication access 505 to obtain a desired resource. The access control logic 504 is in the kernel 501 running to the rule machine 506 access to determine whether the process 503 the requested access should be granted. More specifically, the access control logic receives 504 a department identifier or a label of the process 503 and uses such a department identifier to the rulebase 506 to search to determine if the department, the process 503 is assigned, the access to the special equipment is allowed. In accordance with at least one implementation, a hash table may be used to perform the lookup of a rule. Depending on the purpose of the system, such internal hash tables may be configured such that the introduced rules are on average one level deep in each hash log area, causing the rule lookup routines to behave in the order of O (1). Accordingly, rule lookup can be performed relatively quickly and efficiently. Depending on the rules that apply to the department in which the process 503 is defined, the access control logic can 504 a communication access 505 grant or such communication access to the process 503 deny. If access is denied, the access control logic transfers 504 the processing control to the exception handling module 510 That's an exception (for example, an error message) to the process 503 returns and / or the operation of the process 503 established.

Unter Bezugnahme auf 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 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.With reference to 4 For example, various user room services may be implemented in the exemplary architecture shown, for which the departments may be used. The user room services, such as For example, the web servers running in 4 are operated unmodified on the platform, but have a departmental label associated with them via the command line interface with the security extensions. The security module 421 is then responsible for creating the mandatory access controls to the user room services based on their created departmental label. It is therefore understood that the user space services may be obtained without having to modify those services in the exemplary implementation shown.

Die exemplarische Implementierung von 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 4 uses an operating system kernel module (eg security module 421 ), which may be referred to as "ins", to implement customized system calls that allow for the insertion / deletion of rules or other functions, such as labeling of network interfaces Such ins module implements various interfaces via customized system calls to enable:
  • 1. A call process to switch departments.
  • 2. Individual network interfaces to be assigned to a department number.
  • 3. Utility functions, such as For example, process listing with department numbers and logging in 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 described in this exemplary architecture are implemented, the main client of the ins module is the tlutils collection command-line utilities, which are discussed in more detail below are described.

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 kernel about customized System calls. It leads the translation between simplified rules of a higher level in primitive forms which are better understood by the kernel lookup routines. (This module is provided by the utilities at tlutils user level called to manipulate rules in the kernel.)

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.at These exemplary implementation are modifications to the Linux standard kernel sources have been made to a label on different data types. as well as to add access control checks that near such tagged data types were made. Each tagged Contains data type an additional struct-csecinfo data member used to hold a department number to keep. There is a chance that the tagged data types could be extended to keep other security attributes. In general, that will Add this data member usually at the extreme Executed at the end of a data structure, To avoid problems that are based on the usual procedure refer to the pointer between two or more differently named Structures that begin 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 kernel resources involves a very simple implementation of a partitioned system in which processes and the data they generate / consume are isolated from each other. In this exemplary implementation, such isolation should not be strictly designed in the sense that many hidden channels exist. The isolation in this exemplary implementation is simply to serve as an obvious form of conflict and / or conflict to protect an interaction between logically distinct 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.at At least one implementation can be done before a department assumed root identity be sealed. This means, that individual Departments may optionally be registered as "sealed" can, to process in this department before a successful call from setuid (0) and related system calls, such as: Setuid (0), and also before a run of SUID root binary numbers to protect. This can be for services, which can be accessed externally, and generally for buffer overflow attacks, for example, to execute a malicious one Codes lead can, susceptible are to be used. If such services are limited to initially to be operated as a pseudo-user (non-root user), and if the department in which it is carried out is sealed, then Any attempt will be to root identity through either buffer overflow attacks and / or execution to accept stranger instructions fail. Note that everyone existing process, which is operated as a root will continue to do so.

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.It can implemented different types of services in the departments be. The kernel modifications, which are described above, serve to support the Hosting individual services at the user level in a secure department. Next to it are layout, position and conventions, which when adding or Remove services in this exemplary embodiment of the invention are 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 each be assigned to a department. However, what an end user considers to be a service can actually end up using multiple departments. An example would be the use of a department to host an externally accessible web server with a narrow interface to another department hosting 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 executing the CGI binary numbers; and
  • - As many departments as necessary to properly categorize each CGI binary, while the trusted gateway attacks / executes the CGI binary numbers in its 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:

Figure 00270001
Figure 00280001
In this exemplary implementation, each department has a name and is classified as a chroot-enabled environment. The examples used in this implementation include:
Figure 00270001
Figure 00280001

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, there are also the following subdirectories:
  • 1. / bin - various scripts and command line utilities for managing departments may be installed in / bin in accordance with particular implementations of the present invention; and
  • 2. / etc / tlinux / rules - Files containing rules for each registered department on the system may be located in / etc / tlinux / rules according to 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 generally start / stop a department in this exemplary implementation Each department prefers to agree with some basic characteristics:
  • 1. Being chroot-capable according to your department position / compt / <name>. However, it is not mandatory for a department to have a "chroot" to start, rather it provides an additional security feature that is not required in all implementations of the present invention.
  • 2. Supply / etc / tlinux / init / <name> / startup and / etc / tlinux / init / <name> / shutdown to start / stop the department identified by <name>.
  • 3. Startup (or startup) and shutdown (or closing) scripts are responsible for introducing rules, creating routing tables, attaching file systems (eg, / 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.in the general, if the department should be externally visible, should the processes in this department are not operated by default as root, and the department should be "sealed" after initialization, sometimes This is because of the way the precursor application is integrated In this case, it is not possible to / will be provided with ports desirable is, if possible many skills in order to prevent the processes from the "chroot prison", for example, 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/app1 erzeugen] Because the departments may exist as chrooted environments according to the / compt directory, application integration may require the usual methods used to ensure that they operate in a chrooted environment. One common method involves preparing a cpio archive of a minimally-operating department that contains a minimal RPM database of installed software. It is common practice 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 needed, eg. Httpd.conf] root @ tlinux # [Generate startup / shutdown scripts in / compt / app1]

Die letzten beiden Schritte können in die RPM-Installierphase integriert werden. Verringerungen im Plat tenraum 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 into the RPM installation phase to get integrated. Reductions in platinum space can be caused by an investigation can be achieved, namely by selective uninstalling from unused packages over the rpm command. additional Posts in the / dev directory of the department can be created as needed, however, in most cases, / dev is essentially left alone. Further automation can be achieved by using a web-based Interface with the process described above is provided to all necessary parameters for to provide any type of application to be installed. At the compiled binary numbers are generally no changes necessary, unless it is necessary, department-conscious variants to install such applications.

Sobald sich die Regeln an ihrem Platz befinden (z. B. in der Regeldatenbank 416 von 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 Beaufsichti gungszwecke, wie z. B. Auflisten von Prozessen auf dem Teilsystem vor dem Herunterfahren.Once the rules are in place (for example, in the rulebase 416 from 4 ), to define the containment of departments, such departments can be used by the OS to perform security checks. In this exemplary implementation, there exists a function "cnet_chk_attr ()" that implements a yes / no security check for the subsystems that are protected in the operating system kernel .. Calls to this function are made by the appropriate points in the kernel sources to provide the required departmental This feature is based on the affected subsystem and can easily implement divergent constraints or rule conventions, depending on the subsystem of the operation being queried at that time, for example, most subsystems implement simple partitioning where only objects / resources However, in certain cases, the use of a non-privileged department 0 and / or a wildcard department - 1L may be used, for example, department 0 as a default "sandbox" for unclassified assimilated resources / services; a placeholder department for Beaufsichti purposes, such. B. List processes on the subsystem before shutting down.

Wie in dem Beispiel von 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 (4) ausgeführt, das eine Tabelle von Regeln (Regeldatenbank 416 von 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 in the example of 5 are shown, access control checks at appropriate points in the operating system kernel (through the access control logic 504 ). More specifically, in this exemplary implementation, such access control checks will be through the use of hooks for a dynamically loadable security module 421 ( 4 ) that runs a table of rules (rulebase 416 from 4 ), which indicates which departments on the resources of another Ab allowed to share. This is done in a transparent manner for 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.
Every security check can consult a table of rules. Each rule can take the following form:
Source → Determination method m [attr] [netdev n]
in which:
Source / destination can be:
COMPARTMENT (a designated department);
HOST (a fixed IPv4 address);
NETWORK (an IPv4 subnet);
m:
supported kernel mechanism, eg. 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. Eg 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 access shared memory segments, eg, using shmat / shmdt (), from the department named "CGI." allowed, 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.It There are also certain implicit rules that allow some Communications take place in a department, e.g. B. could one Process allowed become the process identifiers of processes resident in the same department. this makes possible a net minimum of functionality in an otherwise unconfigured one Department. An exception is the department 0, which is relatively unprivileged is and in the more restrictions be valid. The department 0 can be used to control the sub-processes at operating system kernel level (such as the swapper or the outsourcer) to host 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 Lack of a rule that explicitly allows a cross-departmental Access takes place, all these attempts fail. The net effect The rules involve the promotion of mandatory segmentation all departments except those who have been explicitly allowed on the resources to access another department.

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 directive, which has the effect of being consistent with the connect / accept behavior of the TCP socket connections. A rule is used to specify allowed HTTP inbound 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 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 allowed, as in the example in 6 is shown is shown. The directionality of the rules allows the backflow of packets to occur to properly establish 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.Of the above-described solution paragraph has a number of advantages. For example, he allows a complete control over each supported Subsystem and the ability to unsupported, z. B. hardware-driven card-to-card transfers, herauszukompilieren. Furthermore, this approach sees a relatively extensive Namespace repartition before, without the need for user space commands, such as Ps, netstat, route, ipcs etc., to change. Depending on the department, in which is currently a process located, changed the list of visible identifiers according to the specifications the rules. Examples of namespaces include a process table via / proc, SysV IPC resource identifier, Active, closed and dormant pedestals (all domains) and routing table entries.

Es wird darauf hingewiesen, daß das System von 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 4 just as an example. The present invention is not limited to any particular department or containment scheme. Specifically, the numerous approaches can be used to prevent processes associated with a department from accessing system resources. For example, access control at the user level may be implemented by several methods. A strace () mechanism can be used to track every system call of a given process. The strace () mechanism examines each system call and its arguments. The strace () mechanism returns the system call according to the rules set in a Rulebase are defined, either free or disabling the same. It is also possible to use a system call wrapping. In system call wrap, wrapper functions examine calls and arguments using a dynamically linked shared library. The wrapper functions also either enable or disable system calls according to the rules defined in a rule database. User-level authorization servers can be used to control access to system resources. The user-level authorization servers may control access to the system resources by providing a controlled data channel to the operating system kernel.

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 mehreihigen 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 involves providing a secure Web server platform with support for the containment of arbitrary CGI binary numbers and non-HTTP-related processing (e.g., Java servlets) are partitioned into separate compartments, each having the bare minimum of rules required for operation. 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. The containment or division into departments in such systems could be used to reduce the conflict potential between the services and to control the visibility of output-side hosts on a per-service basis.
  • 2. Increased fronts (typically HTTP) over multi-tiered outbound pages including inter-application servers. The division into departments in such systems has the desired effect of factoring out as much of a code as possible, which can be directly accessed by external clients.

Unter Bezugnahme auf 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.With reference to 4 can the system 400 z. B. have a web server platform, each web server can be arranged in its own department, such. For example, the web department 401 , The following description serves to illustrate how the exemplary implementation can be used to partition a setting into divisions comprising an outbound Apache web server configured to handle Java servlets or to operate JSP To delegate files to two separate instances Jakarta / Tomcat, each working in their own department. By default, each department uses a chrooted file system so as not to interfere with the other file systems.

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
7 Schematic represents the Apache processes that reside in a department (WEB). This section 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 typically 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 output-side networks through inbound network interfaces. The WEB department is allowed to communicate with two separate instances of Jakarta / Tomcat (TOMCAT1 and TOMCAT2) via two rules that 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 may access an output host named 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.TOMCAT2 however, may not access any output host, which through the absence of additional Rules are reflected. The kernel will be any Try to deny this type of TOMCAT2. This allows the selective change the view of an output-side network depending on which services be hosted, and the restriction 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 valuable to note that the above four rules are all that is necessary for this exemplary configuration. In the absence of other rules, the servlets running in Java VM can not initiate outbound connections; in particular, it can not be used to initiate attacks on the internal output network on the eth1 interface. In addition, it can not access resources from other departments (for example, shared memory segments, UNIX domains socket etc.) can still be accessed directly by remote hosts. In this case, mandatory restrictions on the behavior of Apache and Jakarta / Tomcat have been imposed without recompiling or modifying their sources.

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 8 ist ein Gateway-System 800 (das sowohl mit einem internen als auch externen Netzwerk verbunden ist) gezeigt.It should be noted that the departments can be used in a gateway-type system (dual-interface host connected to both internal and external networks). With reference to 8th is a gateway system 800 (which is connected to both an internal and external network).

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, ..., ServiceN, each connected to a specified output host, Host0, Host1, ..., HostX, HostN, to perform its function, e.g. B. recovering records from an output-side database. Many output-side hosts can be present on an internal network at any given time (not all of them should be accessed by the same set of services). It is desirable that if these server processes are compromised, they can not be used to probe other output-side hosts that should not originally be used by the services. The exemplary implementation limits the damage that an attacker can do by limiting the visibility of hosts on the same network.

Wie in 8 gezeigt ist, dürfen Dienst0 und Dienst1 nur auf das Netzwerk Teilnetz1 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 in 8th 2, service0 and service1 are only allowed to access the network subnet1 through the network interface eth0. Therefore, attempts to access Host0 / Host1 succeed because they are Subnet1, but then attempts to access Subnet2 via eth1 fail. Further, the service N is only allowed to access eth1 on HostX. Therefore, any attempt to access HostN through ServiceN will fail even if HostN is on the same subnet as HostX, and any attempt by Service N to access any host on Subnet1 will fail. The constraints can be specified (by rules or routing tables) by the subnet or by the specific host, which in turn can 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 Netzwerk schnittstelle Z] oder
Abteilung X → Teilnetz Y [unter Verwendung der Netzwerk schnittstelle 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 may be made in the operating system kernel / operating system of a gateway system so that they can not be bypassed by the user space processes. As further described above, the operating system kernel (the gateway system) may be provided with means for affixing a label or label to each working process / thread, the tags / tags fictively indicating to which bin a process belongs. In certain implementations, such labels may be inherited from a parent process that branches a child. Therefore, a service that has a group of diverted children working together to share the workload, such A group of slave web server processes that have the same labels and are positioned in the same department. The system administrator can, for. 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 named Z. Such rules may be stored in a secure configuration file on the gateway system and loaded into the kernel / operating system setting so that the services that are then started can work. When the services are started, their hiring sequence would specify in which department they would initially be positioned. In this embodiment, the rules are consulted each time a packet is dispatched from or delivered to the department X where additional security checks are imposed, preferably in the protocol stack of the operating system kernel.

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).at Certain implementations is a separate routing table per department intended. As in the implementation described above every process can Label or a caption (which he inherited from his parents can have). Start processes with specific names with a designated label by a system administrator has been configured. Instead of specifying rules, as in the above implementation, a set of Configuration files may be provided (one for each department) that the respective guidance table for Configure the department by entering the desired routing table entries. Because the gateway system contains an unnamed number of departments could, the guide table of each department is by default preferably empty (ie 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 routing tables instead of explicit rules be achieved because of the lack of a consistent route so is interpreted that the Remote host trying to reach, supposedly out of reach is. The routes that actually match stand for the acceptance of the attempt to access those remote hosts. As in the rules in the first exemplary implementation, the above is described the route entries on a per-host basis (IP address basis) or per subnet basis be specified. All this is required to make such routing entries on one Pro departmental base to specify the same functionality as at to achieve the first exemplary implementation.

II. Abteilungsverwaltung gemäß verschiedenen Ausführungsbeispielen der ErfindungII. Departmental Administration according to different embodiments the invention

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

Angesichts der Tatsache, daß die Abteilungen einen wichtigen Sicherheitsmechanismus in vertrauenswürdigen OSs 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.in view of the fact that the Departments are an important security mechanism in trusted OSs create, it is desirable an efficient and user-friendly mechanism for managing to own such departments. For example, it could be for one now and then Users, such as As a system administrator, be desirable departments to manipulate, for. For example, to add a new department, one Removing department, renaming a department etc. Additionally it for a user desirable be to manipulate rules that define the containment of departments. Such manipulation of departments and the manipulation of Rules that containment of such departments are intended to be used as used herein Term "departmental administration" includes.

Bei den traditionellen Verfahren zum Verwalten von Abteilungen existieren verschiedene Probleme. Ein Verfahren des Stands der Technik zum Verwalten von Abteilungen ist in 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 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 methods of managing departments. One prior art method for managing departments is in 9 shown. Traditionally, the departments are 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 in 9 requires management of departments in prior art systems, e.g. For example, manipulating a department that a user (eg, system administrator) the configuration file in which the departments are defined (step 901 ) edited. Likewise, manipulating rules that define containment of a department requires that a user edit the configuration file in which such rules are provided. That is, at step 902 a user may 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.Of course, even to edit the configuration file, the correct configuration file must first be determined, located in the system files, and opened for editing. Once the configuration file is open for editing, the user may edit the file (eg, 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 the name of a department. As another example of adding a department, the user would have to edit the configuration file by inserting a corresponding text therein for defining a new department to be created. Once the user edits the configuration file, the edits made to the configuration file must be made in step 902 get saved. In order for the changes made to the configuration file to be applied within the system, it is typically necessary to boot the system (step 903 ). More specifically, the systems typically access the configuration file after booting, and the changes made to the configuration file during the system runtime are not applied to the system until it has been booted.

Das vorstehend beschriebene Verfahren zum Verwalten von Abteilungen ist aus mehreren Gründen problematisch. An erster Stelle erfordert ein solches Abteilungverwaltungsverfahren 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 Er gebnisses 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 method described above for managing departments is problematic for several reasons. In the first place, such a prior art departmental management method requires a user to edit a configuration file. Given the size and amount of information that may be included in such a configuration file, the proper editing of the configuration file to achieve a desired result involves considerable complexity / difficulty. In addition, editing a configuration file is an inefficient method of manipulating departments, since a user must determine the appropriate configuration file to be edited, open the file, and properly edit the file (which contains a large amount of information N, which the user must parse to ensure that it has been properly edited to achieve the desired result). Further, such a prior art technique typically requires that the system be booted in order for the changes made to the configuration file to be applied to the operation of the system. In addition to the inefficiency and unwanted interruption due to such system booting, errors that result from editing the configuration file will not be discovered until such booting has been performed. Further, if an error encountered in the configuration file is fatal in that the system can not be booted, then eventually a rescue of the system must be performed by recharging the entire OS.

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. 10 zeigt einen exemplarischen Abteilungaverwaltungsfluß 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.Embodiments of the present invention facilitate the requirement of editing 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 departmental administration. 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 containment of departments may be manipulated via command line utilities. Additionally, in accordance with certain embodiments of the present invention, the executed utilities allow departments and rules to be dynamically manipulated. That is, no system boot is required to apply the actions requested by using the utilities during system operation. 10 FIG. 12 shows an exemplary departmental management flow according to at least one embodiment of the present invention. As shown, to manipulate a department and / or rule, a user must have a command-line utility in step 1001 and the actions generated by such a utility will be in step during operation of the system 1002 dynamically applied.

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 one embodiment The present invention is departmental management utilities provided that include a number of command line tools, to create, manage and remove departments. A exemplary list of utilities used in at least one embodiment The present invention is available, as well as an overview of the functionality which is executed by each utility will be explained below provided. It should be noted that the names of the utilities in the various embodiments can change without their functionality to change. Therefore, the present invention is not limited to specific ones, below described but rather serve such exemplary utilities as examples illustrating the revelation rendering many other types of departmental administration utilities allows where it is desirable is, that you be implemented within a given system.

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 in more detail below is described according to the various Embodiments of present invention a sequence of departmental administration utilities intended. According to certain embodiments Such departmental administration utilities have command-line utilities referred to herein as "tl" utilities can be designated (eg, "tlrules" and "tlcomp" utilities, which are described below). Various examples of such Utilities for manipulating departmental rules and manipulating of departments according to the embodiments of the present invention are described below. It should However, it should be noted that such utilities, though specific utilities and their functionality are to serve as examples that reflect the revelation many other departmental administration utilities are enabled in similar Way can be implemented.

Exemplarische Dienstprogramme zum Manipulieren von Abteilungsregelnexemplary Utilities for manipulating departmental 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 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.In accordance with at least one embodiment of the present invention, "tlrules" utilities are provided for manipulating departmental rules Such "tlrules" utilities may include command-line utilities for adding, deleting, and listing rules. In the exemplary implementation described in above 4 such "tlrules" can be used as command line utilities 440 be implemented, which can be executed to departmental rules (for example, in the rulebase 416 ) via a / proc / tlx interface provided by a kernel 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 may 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: Transmission Control Protocol (TCP), User Datagram Protocol (UDP), 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 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 departmental management utility that can be used to manipulate departments is a command-line utility that can be executed to provide rules for controlling the communication (or access) of a department with a resource (e.g., 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 take the form of, for example, "rules, rule description". The rules are z. For example, according to one embodiment, set to control the communication of departments with each other and with the network interfaces. The tlrules utility can be run to perform such tasks as listing all the rules currently being configured on the system, loading rules from a file, loading rules from the command line, and deleting rules contained in a file For example, on the command line are specified to execute. In the exemplary implementation that is in 4 By default, the tlrules and associated command-line utilities compute 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 in the command line). For example, to add multiple rules contained in a file, the "tlrules - a rulefile.txt" command can be executed, adding rules contained in the "rulefile.txt" file. On the other hand, to add a rule that allows the department "dev" to query the DNS server on the host 192.168.10.3, the following command can be executed:
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 found by listing the Rule is issued using the tlrules-1 command, which returns rules in a standard format with the rule reference issued as a comment at the end of each rule). As another example, the rule that allows the dev department to To query the DNS server on the 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.When another example to delete all rules in the file "rulefile.txt" can the command "tlrules - d rulefile.txt" is executed.

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 cause syntax errors or semantic errors caused by tlrules detected have 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, it will the number of lines of the faulty line found in the error message.

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 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 The present invention is known as "tlutils", which interfaces with the Ins operating system kernel module (the above 4 is described). Its most important function is the provision of various administrative scripts with the ability to span processes in a given department and to set the departmental 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.At least an embodiment In the present invention, the "tlcomp" utilities are for manipulating a Department provided. Such "tlcomp" utilities can be command-line utilities z. For adding, Clear and rename departments. 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 4) auf dem System hinzugefügt und liefert eine Referenz im Speicher auf der Betriebssystemkern-Ebene (Speicher 421A von 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 OSs dynamisch erzeugt werden, ohne ein Booten des Systems zu erfordern, damit die erzeugten Abteilungen zur Verwendung verfügbar sind.A first departmental management utility that can be used to manipulate departments is a command-line utility for adding / creating a new department in a system. According to one embodiment, such a command-line utility may be called "tlcompadd", and the use of such a utility may take the form of, for example, "tlcompadd [compartment name]" or "tlcompadd [option flags] [compartment]." In this example, tlcompadd adds a specified department names as argument add a new department with such a specified name to the system, more specifically the department with the specified name of stable storage database (stable storage 405 from 4 ) on the system and provides a reference in memory at the kernel level (memory 421A from 4 ). In at least one embodiment, once the department has been generated via the tlcompadd command, it is immediately available to the system for use. As a result, the divisions can be dynamically generated by the user space of the OS without requiring booting of the system to make the generated divisions 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 4 beschrieben ist, wird in zumindest einem Ausführungsbeispiel eine interne Datenbank sowohl im Speicher (z. B. Speicher 421A in 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 4).According to at least one embodiment, the department name may include a hyphen (-) and an underscore (_) in all alphanumeric characters (A - Z and 0 - 9). The department name specified by the user provides a user-friendly presentation of the department. However, as in the exemplary implementation of 4 In at least one embodiment, an internal database is stored both in memory (eg memory 421A in 4 ) and stable storage that maps the user-friendly name to a number that identifies the department (eg, a text file "cmap.txt"). 405 in 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).at implementation in an OS architecture, such as the one above described, it may be beneficial to certain departments in a chroot file system. Consequently, at least an embodiment, besides creating a department with a specific department name, an argument (or option flag) that is a chroot file system and initialization scripts for the departments created. The purpose of this is that it is to that effect an additional Security layer provides that Process (e.g. B. an application), which runs in a department, in a chroot area of the File system can run, making everything outside the chroot area of the file system for the Processes in the department is not available. init enable Starting processes in the department (for a more detailed explanation, see tlcompstart below).

Ein weiteres Abteilungsverwaltungs-Dienstprogramm, das zum Manipulieren von Abteilungen genutzt werden kann, ist ein Befehlszeilendienstprogramm zum Umbenennen einer existie renden 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 that can be used to manipulate departments is a command-line utility for renaming an existing existing department. According to one embodiment, such a command line utility may be called "tlcompren", and the use of such a utility may take the form of, for example, "tlcompren [current name] [new name]". In this example, tlcompren, which has a specified current department name and a new department name as arguments, renames the department that has a "current name" argument to a "new name" argument. More specifically, in accordance with at least one embodiment, the internal number representing the department remains the same, while changing the user-friendly name of the department. If the department being renamed has a chroot file system and initialization files, these are also renamed to a "new name" if necessary In at least one embodiment, renaming a section is a dynamic process so that after execution of the telcompren command, direct 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 Pro zeß, 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.One another departmental administration utility for manipulating can be used by departments is a command-line utility to remove an existing department from the system. According to one embodiment Such a command-line utility can be called "tlcomprm" and its use such a utility can, for. B. the form of "tlcomprm [option flags] [compartment name] "in this example tlcomprm, which has a specified department name, the specified department from the system. According to at least one embodiment An optional flag may be included to specify that all chroot files and initialization files for one such department also be removed. Preferably removed this command both memory at kernel level as also the stable storage references to a department. Additionally is at at least one embodiment the removal of a compartment is a dynamic process, so that after the To run the tlcomprm command uses the remote department name again can be (eg when adding a new department with such a name), 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.One another departmental administration utility for manipulating of Departments is a command-line utility for switching from a current department to a destination department. Consequently, if a user (for example, system administrator) is currently in a special department, the user can do such Use the command-line utility to switch to another "destination" policy. According to one embodiment Such a command-line utility can be called "tlsetcomp" and its use such a utility can, for. For example, the form of "tlsetcomp [destination compartment] [option flags] [command to execute] " For example, tlsetcomp switches a destination department name comprising the login process of the user from a current department to a destination department. By default, switches the log-in shell of the user when running in the "determination department" and without options Just move to the new department. Optionally, an argument such as z. For example, -p may be included to drop some capabilities for, for example, the "determination department" or add. For example, the command "tlsetcomp [destination compartment] -p - chown "to be used to the login process of a User from a current department to a destination department However, the determination department can not execute the "chown" command to switch the ownership to change files. At least an embodiment include the options available for dropping abilities those who are usually in the Linux / Unix "capabilities.h." file.

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.Further The tlsetcomp command can be used to both departments to switch as well as to execute a command in the destination department. To the For example, the command "tlsetcomp [destination compartment] -c / bin / ps-ef "can be used to go to the destination department to switch and execute the ps command to list all the processes in the "determination section".

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 „tlsetcomp" 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.One another departmental administration utility for manipulating can be used by departments is a command-line utility, that's done can be to the current department, in the user's login process is included. According to one embodiment such a command-line utility can be called "tlsetcomp", which is the current department, where the login log of the user is located. Consequently, a user z. For example, to run the tlgetcomp command to display the department, where the user's login shell is currently located. Of the User can then use the tlsetcomp command to move to another To switch to the new department when the tlgetcomp command is subsequently executed indicates that 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 departmental management utility that can be used to manipulate departments is a command-line utility for executing a startup script of a department. Such a departmental startup script can initiate at least some of the following tasks:
  • 1. Start a department-specific process, such. A web server;
  • 2. Loading the communication rules that are specific to the department;
  • 3. Configure file system protection rules that are 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 location of the startup script for a department is / etc / tlinux / init / <compartment name> / startup. According to one embodiment, such a command line utility may be used to initiate a startup script of a partition "tlcomp For example, the use of such a utility may take the form of "tlcompstart [compartment name]". For example, the command "tlcompstart web" executes the start script for the "web" department, which can switch to the chroot area of the file system for the department "web" and then start the processes that provide web pages.

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 departmental management utility that can be used to manipulate departments is a command-line utility that executes a shutdown script to shut down a department. According to one embodiment, such a command-line utility may be called "tlcompstop" and the use of such a utility may take the form "tlcompstop [compartment name]", for example. The utility tlcompstop typically reverses the tlcompstart command described above. For example, tlcompstop can initiate one or more of the following tasks:
  • 1. unsealing the department;
  • 2. unload the file system rules;
  • 3. removing the communication rules; and
  • 4. Stop the application-specific process, such as 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 is according to at least one embodiment such a shutdown script location for a department: / etc / tlinux / init / <compartment name> / shutdown. The above Startup and shutdown scripts described above can be text and specific Commands that include commands that are part of the departmental utilities are, such. B. tlrules have.

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 „tlcompseat." 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.One another departmental administration utility for manipulating can be used by departments is a command-line utility, that's done can be to all departments currently included in a system are to list. According to one embodiment Such a command-line utility can be called "tlcompseat." Likewise, a departmental management utility may be provided which accomplished can be used to all processes that work on the system (or accomplished ), and to list the name of the department in which each department is performed. According to one embodiment such a command-line utility can be called "tlprocstat."

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.One another departmental administration utility for manipulating can be used by departments is a command-line utility, the executable is to seal a department. According to one embodiment such a command-line utility can be called "tlcompseal" and the use of such a utility may be, for example the form "tlcompseal [compartment name] "accept. This utility provides an additional security feature. By sealing a department, the ability for processes in the department, to go to a root (eg "su-root") or suid programs or scripts perform, blocked. The command "tlcompseal web "sealed z. B. the web department, so that no Process, which is executed in the same becomes, can go to a root.

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 may be provided to unseal a department. According to one embodiment such a command-line utility can be called "tlcompunseal", and the use of such a utility may, for example the form "tlcompunseal [compartment name] "accept. This utility is run to a sealed department to unseal the transition to a root (eg "su root ") and the execution of to allow suid programs or scripts if 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 departmental administration utility for manipulating can be used by departments is a command-line utility, that's done can be an input file that has a department name and contains a number mapping in the OS, to load. According to one embodiment such a command-line utility can be called "tregregs", and the use of such a utility may be, for example the form "tlregcompas [file name] "accept. For example, this command can be used during system boot. In one embodiment are z. For example, all departments in kernel level memory and stored in a stable storage 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, all syntax errors or semantic errors cause which are detected by tlcomp will report an error, and the command will be set immediately and no departments will be manipulated (eg added or deleted).

Verschiedene Dienstprogramme, die Beispiele von verschiedenen Befehlszeilendienstprogrammen umfassen, sind vorstehend beschrieben, die durch ein OS gemäß verschiedener Ausfüh rungsbeispiele 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 that include examples of various command-line utilities, are described above, which by an OS according to various Ausfüh approximately examples of the present invention available could be. Accordingly allow various embodiments the present invention, that the Department management (eg manipulation of rules and / or departments) from the user room in an efficient and user-friendly way accomplished can be. A user must, for. B. edit any configuration file in which such rules and / or Departments are defined, but instead can use command-line utilities To run, to a desired Administrative action (for example, Add or delete a rule and / or department). It is also pointed out that more Departmental Administration Utilities in addition to those listed above are described in certain embodiments of the present invention Invention may be included. Beside those command-line utilities that are predisposed to manipulate For example, commands can be used by command-line utilities to run such manipulation, such. B. rescaling an existing one Department, Add a process to a department and remove 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ß.Next enabling an efficient and easy-to-use method of administration of departments, can in certain embodiments Error prevention checks by the departmental administration utilities are made to helping a user to avoid mistakes with which he otherwise during of performing departmental administration. Traditionally, a user has to z. For example, edit a configuration to a department in a system add. If the user makes a mistake in the configuration file, such as B. Duplicating a department name (i.e., naming the department name) newly added Department as an already existing department), becomes such one Error not displayed to the user. Furthermore, the at a Configuration file made in systems of the prior art Changes typically only after the system has been booted. Consequently, can the user does not discover the error until after booting the system, or alternatively, the error may be fatal in that the System does not boot, what requires that 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 „lns" 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 „lns"-Sicherheitsmodul die neue Namens- und Nummernabbildung hinzuzufügen.Examples of error prevention tests, those defined by the departmental administration utilities in certain embodiments of the present invention for example, checking for Duplicate the department name and check that there is enough memory is. Although these exemplary error prevention tests are described in more detail below It should be noted that in support of the Many other types of error prevention checks by the departmental administration utilities in various embodiments accomplished can be. In one embodiment the duplication of the department name is checked by a utility (eg the tlcompadd or tlcompren utilities), that invokes "lns" to verify the existence Name not already in the "ins" security module exist. additionally can do that Utility when adding Check a new department (for example, with the tlcompadd command) to check ensure that sufficient There is memory available to give the "lns" security module the new name and password Add number image.

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.When a safety check allowed to only users with a proper permission all or the whole Part of the departmental administration utilities described above (eg for manipulating rules and / or departments). At least an embodiment the user has permission to use such departmental administration utilities Add to carry out a department, etc., if the user is located in the root on the system and on for the User ID has set or set "admin bit" set The admin bit is on special bit, that within the user's login process is set. The bit can only be accessed by logging in through secure Channels, which are controlled to be obtained. Such secure channels are over one secure shell connection "SSH" (SSH = secure shell) or by physically logging into the console of the machine.

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 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 enhance the efficiency of departmental management by allowing rules and / or departments to be dynamically manipulated (as described above) without requiring booting of the system so that the actions taken via the utilities became effective in the system. As above at 9 Generally, prior art systems require a user to edit a configuration file to manipulate the departments and / or departmental rules, and the system must be typi It may be necessary to boot before the changes made to the configuration file take effect in the system. Various embodiments of the present invention allow utility programs to be used to manipulate departments and / or departmental rules in a dynamic manner that does not require booting of the system 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 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 (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 (eg, 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 reference to booting the system to allow the system to identify the departments that exist on it. If during the system runtime a user uses a departmental administration utility to add a new department (e.g., when using the tlcompadd command-line utility described above), such a utility will run automatically to automatically identify the number that represents the new department and stores such a number as well as the user-friendly name of the department in the memory 421A (from 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 a department. The utility may also update the configuration file to reflect such departmental manipulation (eg, adding a new department) so that if the system was to be booted, it would detect the proper state of the departments, thereby reducing the tampering (s) ) that have been made since the previous boot. Similarly, departmental rules can be manipulated in a dynamic manner. The departmental rules can z. For example, via the "tlrules" command described above, which can be executed to set the desired rule for a department to the rulebase 416 ( 4 ), and such a rule added will therefore be immediately effective. For example, after receiving an access request after adding a rule through the "tlrules" command, the security module takes action 421 to the rule database 416 to which includes the newly added rule that can be used to determine whether access is allowed to the requesting department. Therefore, the utilities are preferably executable to enable dynamic behavior of the departmental manipulation actions without having to boot the system.

Unter Bezugnahme auf 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" ausge fü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.With reference to 11 FIG. 12 is an exemplary work flow diagram for creating a department and then renaming it according to an embodiment of the present invention. In the operation block 1101 executes the "tlcompadd comp" command to create a new department named "comp." add. As described above, the effect of executing this command in accordance with at least one embodiment includes generating a number that is internally used to refer to the new department named "comp." In at least one embodiment, the department " comp "and its generated number are stored in a configuration file and copied to the operating system kernel level memory of the system to dynamically make the new department available.

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.Subsequently, in the block 1102 In this example, the command "tlcompren comp comp2" is executed to rename the comp section "comp" to "comp2." According to at least one embodiment, renaming a section names the configuration file and name-by-number mapping in the operating system kernel. Layer memory changed.

Unter Bezugnahme auf 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 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 „tlgetcomp 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 Be nutzer 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.With reference to 12 Another exemplary workflow chart is provided that provides an example of switching a user's login process from one department to another according to one embodiment of the present invention. In the example of 12 becomes the operation block 1201 executed first by running the "tlgetcomp" command The "tlgetcomp" command is executed to display the current department, which in this example is sent back as "system" 1202 the "tlgetcomp web" command is executed to switch from the "system" section to the "web" section It should be noted that for the actual success of such a change from the "system" section to the "web" Department, the "Web" department must exist on the system (eg, previously added via the tlcompadd command). In accordance with at least one embodiment, a field is included in a process structure representing the department to which the process belongs (or is contained). For example, if a user logs in to the console by default in a Linux system, the user's login process structure has an additional field named "dev" (ie, department "dev"). When the user then launches a web daemon, the field in the process tree will also be called "dev" because it is a child process spawned by the user's login process Access control 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 look-up operation is made by the security module 421 executed to confirm whether "dev" is allowed to execute the requested syscall When the user executes the tlsetcomp, the department identifying name is dynamically changed 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.Further, in at least one embodiment, the change from one department to another department occurs as a result of the executed command-line utility (eg, "tlsetcomp") in a manner transparent to the user / application using such a command-line utility In accordance with at least one embodiment, such a change of departments occurs dynamically, such that when the "tlgetcomp" command is again in the block 1203 Therefore, the "tlgetcomp" command in the block confirms that the department name "web" is displayed as the current department 1203 it was executed that the current department is now "web" and not "system".

Als ein weiteres Beispiel ist in 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 is in 13 Another exemplary workflow chart is provided that provides an example of using a departmental 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 executed within the "web" department, but the user's login process may currently reside in the "system" department. Unlike a change 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. Thus, at least one embodiment of the present invention provides a command that can be used to effectively switch 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 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 13 becomes the workblock 1301 first executed by running the "tlgetcomp" command The "tlgetcomp" command is executed to display the current department, which in this example is returned as a "system", so the current section of the login process is "system" (For example, the user's login process has a label labeled "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" section to the "Web" section, to execute the command to start the Web server daemon, and then ends tlsetcomp, leaving the Web server daemon working in the Web department. 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 caption in the process tree from "system" to "web" to start the web daemon as a child in the web department. It then returns to the "system" before exiting the "tlsetcomp" command. Therefore, if the "tlgetcomp" command is again in the block 1303 running, the department name "System" is displayed as the current department.

Claims (14)

Verfahren zum Verwalten eines prozessorbasierten Systems (400), wobei das System durch Etikettieren einzelner Betriebssystemkern-Betriebsmittel in mehrere Abteilungen (401, 402, 403), die in zumindest einer Konfigurationsdatei definiert sind, aufgeteilt wird, wobei die Abteilungen (401, 402, 403) jene Betriebsmittel bezeichnen, auf die in den Abteilungen enthaltene Prozesse zugreifen dürfen, wobei die Betriebsmittel Netzwerkschnittstellen und/oder Prozesse aufweisen, wobei die in den Abteilungen (401, 402, 403) enthaltenen Prozesse auf das Zugreifen auf Systembetriebsmittel gemäß den Regeln, die in einer Regeldatenbank (416) gespeichert sind, beschränkt sind, wobei das Verfahren den Schritt des Bereitstellens von zumindest einem Dienstprogramm (404) aufweist, das ausführbar ist, um zumindest eine Abteilung (401, 402, 403) zu verwalten.Method for managing a processor-based system ( 400 ), whereby the system can be divided into several departments by labeling individual operating system kernels ( 401 . 402 . 403 ) defined in at least one configuration file, the departments ( 401 . 402 . 403 ) designate those resources which are allowed to access processes contained in the departments, where the resources have network interfaces and / or processes, and those in the departments ( 401 . 402 . 403 ) accessing system resources according to the rules set out in a rules database ( 416 ), the method comprising the step of providing at least one utility ( 404 ) executable to at least one department ( 401 . 402 . 403 ) manage. Verfahren gemäß Anspruch 1, bei dem das zumindest eine Dienstprogramm zumindest eine Befehlszeilendiensteinrichtung aufweist.Method according to claim 1, wherein the at least one utility at least one command line service device having. Verfahren gemäß Anspruch 2, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) 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, 402, 403), 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.Method according to Claim 2, in which the at least one command line service device ( 404 ) is executable to perform at least one type of departmental manipulation selected from the group consisting of the following steps: adding a new department ( 401 . 402 . 403 ), 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. Verfahren gemäß Anspruch 2 oder 3, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) ausführbar ist, um die zumindest eine Abteilung (401, 402, 403) zu manipulieren, ohne zu erfordern, daß ein Benutzer die zumindest eine Konfigurationsdatei editiert.Method according to Claim 2 or 3, in which the at least one command line service device ( 404 ) is executable to the at least one department ( 401 . 402 . 403 ) without requiring a user to edit the at least one configuration file. Verfahren gemäß einem der Ansprüche 1 bis 4, das ferner den folgenden Schritt aufweist: Bereitstellen von zumindest einer Befehlszeilendiensteinrichtung (404), die ausführbar ist, um die zumindest eine Regel zu manipulieren.Method according to one of claims 1 to 4, further comprising the following step: providing at least one command line service device ( 404 ) that is executable to manipulate the at least one rule. Verfahren gemäß Anspruch 5, bei dem die zumindest eine Befehlszeilendiensteinrichtung (404) 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, 402, 403), Entfernen einer bestehenden Regel für eine spezielle Abteilung und Auflisten aller Regeln für eine spezielle Abteilung.Method according to Claim 5, in which the at least one command line service device ( 404 ) is executable to perform the at least one type of rule manipulation selected from the group consisting of the following steps: adding a new rule for a specific department ( 401 . 402 . 403 ), Removing an existing rule for a specific department and listing all rules for a specific department. System zum Durchführen eines Verfahrens nach Anspruch 1, das folgende Merkmale aufweist: zumindest einen Prozessor; ein Betriebssystem, das durch Etikettieren einzelner Betriebssystemkern-Betriebsmittel in Abteilungen (401, 402, 403), die in zumindest einer Konfigurationsdatei definiert sind, aufgeteilt wird, wobei die Abteilungen (401, 402, 403) jene Betriebsmittel bezeichnen, auf die in den Abteilungen enthaltene Prozesse zugreifen dürfen, wobei die Betriebsmittel Netzwerkschnittstellen und/oder Prozesse aufweisen, wobei die in den Ab teilungen (401, 402, 403) enthaltenen Prozesse auf das Zugreifen auf Systembetriebsmittel gemäß den Regeln, die in einer Regeldatenbank (416) gespeichert sind, beschränkt sind; und eine Einrichtung zum Ausführen einer Verwaltung der zumindest einen Abteilung (401, 402, 403), ohne zu erfordern, daß der Benutzer die zumindest eine Konfigurationsdatei editieren muß.A system for carrying out a method according to claim 1, comprising: at least one processor; an operating system that can be deployed by labeling individual kernel resources in departments ( 401 . 402 . 403 ) defined in at least one configuration file, the departments ( 401 . 402 . 403 ) designate those resources which are allowed to access the processes contained in the departments, the resources having network interfaces and / or processes, whereas those in the divisions ( 401 . 402 . 403 ) accessing system resources according to the rules set out in a rules database ( 416 ) are limited; and means for executing administration of the at least one department ( 401 . 402 . 403 ) without requiring the user to edit the at least one configuration file. System gemäß Anspruch 7, bei dem die Einrichtung zum Ausführen der Verwaltung der zumindest einen Abteilung (401, 402, 403) 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.A system according to claim 7, wherein the means for performing the management of the at least one department ( 401 . 402 . 403 ) also allows administrative actions that are started via the means for executing the administration to be performed dynamically without requiring that the system be rewritten for the management actions to take effect in the system. System gemäß Anspruch 7 oder 8, bei dem der Schritt des Verwaltens der zumindest einen Abteilung (401, 402, 403) 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.A system according to claim 7 or 8, wherein the step of managing the at least one department ( 401 . 402 . 403 ) includes at least one type of manipulation selected from the group of the following steps: adding a new department, renaming an existing department and removing an existing department, rescaling an existing department, adding a process to a department, and removing a process from one Department. System gemäß einem der Ansprüche 7 bis 9, bei dem der Schritt des Ausführens der Verwaltung der zumindest einen Abteilung (401, 402, 403) den Schritt des Umschaltens von einer ersten Abteilung zu einer zweiten Abteilung aufweist.A system according to any one of claims 7 to 9, wherein the step of carrying out the administration of the at least one department ( 401 . 402 . 403 ) comprises the step of switching from a first department to a second department. System gemäß Anspruch 10, bei dem der Schritt des Ausführens der Verwaltung der zumindest einen Abteilung (401, 402, 403) den Schritt des Manipulierens zumindest einer der Regeln aufweist.A system according to claim 10, wherein the step of carrying out the administration of the at least one department ( 401 . 402 . 403 ) comprises the step of manipulating at least one of the rules. System gemäß Anspruch 11, 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, 402, 403), Entfernen einer existierenden Regel für eine spezielle Abteilung und Auflisten aller Regeln für eine spezielle Abteilung.The system of claim 11, 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: adding a new rule for a particular department ( 401 . 402 . 403 ), Removing an existing rule for a specific department and listing all the rules for a specific department. System gemäß einem der Ansprüche 7 bis 12, 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, 402, 403) zu verwalten.A system according to any of claims 7 to 12, wherein the means for executing the management comprises at least one operating system command line service ( 404 ) that is executable to the at least one department ( 401 . 402 . 403 ) manage. Computerlesbares Medium, auf dem ein Computerprogrammcode gespeichert ist, der ein Verfahren nach einem der Ansprüche 1 bis 6 ausführt, wenn er auf einem Computer ausgeführt wird.Computer readable medium on which a computer program code stored, which is a method according to one of claims 1 to 6 executes, when running on a computer.
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 2001-06-29
US09/896,385 US20030014466A1 (en) 2001-06-29 2001-06-29 System and method for management of compartments in a trusted operating system
DE10262161 2002-06-28

Publications (2)

Publication Number Publication Date
DE10229114A1 DE10229114A1 (en) 2003-01-23
DE10229114B4 true 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)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130042T2 (en) * 1990-07-23 1999-04-15 Ibm Personal computer system with protected memory for the interface and system utility programs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130042T2 (en) * 1990-07-23 1999-04-15 Ibm Personal computer system with protected memory for the interface and system utility programs

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
(http://web.archive.org/web/20010603025828/http:// www.cis.upenn.edu/-KeyKOS/agorics/KeyKos/keysafe/ Keysafe.ps)
(http://web.archive.org/web/20010603025828/http://www.cis.upenn.edu/-KeyKOS/agorics/KeyKos/keysafe/ Keysafe.ps) *
PANAGIOTTIS C.: chmod (1) in Man-cgi 1.11, 1994, S. 1-10 [http://www.mcsr.olemiss.edu/cgi-bin/man- cgi?chmod] *
The KeyKos/KeySAFE System Design, SEC009-01, Agorics, Inc., CA, March 1989, S. 1-21 *

Also Published As

Publication number Publication date
DE10229114A1 (en) 2003-01-23

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
DE69731714T2 (en) Dynamic service classes for an international cryptographic structure
DE112012003988B4 (en) Protect a virtual guest&#39;s memory
Walker et al. Confining root programs with domain and type enforcement (DTE)
JP4907603B2 (en) Access control system and access control method
DE60006217T2 (en) TECHNIQUES FOR GRANTING ACCESS THROUGH A CONTEXT LOCK IN A DEVICE WITH A SMALL SPACE REQUIRED USING AN ENTRY POINT OBJECT
GB2379763A (en) Management of compartments in a trusted operating system
DE112021002245T5 (en) PREVENTING UNAUTHORIZED PACKAGE DEPLOYMENT IN CLUSTERS
DE60010433T2 (en) METHOD FOR IMPLEMENTING SECURITY REQUIREMENTS IN A SMALL DEVICE USING A CONTEXT LOCK
DE112020000303T5 (en) TESTING MEMORY PROTECTION HARDWARE IN A SECURE VIRTUAL MACHINE ENVIRONMENT
Hicks et al. An architecture for enforcing end-to-end access control over web applications
DE112007003206T5 (en) Reconfiguring a secure system
DE112020000289T5 (en) REQUEST AND RELEASE OF SECURE STORAGE
WO2000056028A1 (en) A secure network
DE112020000280T5 (en) TRANSPARENT INTERPRETATION OF GUEST COMMANDS IN A SECURE VIRTUAL MACHINE ENVIRONMENT
DE60304005T2 (en) Change of load addresses of executable program modules
DE112020000223T5 (en) SHARED STORAGE BETWEEN A SECURE DOMAIN AND A NON-SECURE ENTITY
CN110012016A (en) Mix the method and system of resources accessing control in cloud environment
DE112020000285T5 (en) Program interruptions for page import / export
WO2023001773A1 (en) Protection of a process of setting up a subdirectory and a network interface for a container instance
DE112020000286T5 (en) SECURE IN / OUT WITH PAGE CHANGE DETECTION
DE10229114B4 (en) System and method for managing departments in a trusted operating system
DE102021122507A1 (en) PROVIDE ISOLATED CONTAINERS TO PROCESS USER REQUESTS
DE60211900T2 (en) METHOD AND DEVICE FOR STORING SAFE DATA ENTRY AND DATA OUTPUT
Dias et al. Enforcing history-based security policies in mobile agent systems

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