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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming 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).
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 / 2® , Windows® , Unix ™ , System 8, MPE / iX, Windows CE® and Palm ™ .
Die
Anwendung
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.
- 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
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:
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
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
Bei
dem in
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
Das
Sicherheitsmodul
Wie
nachstehend ausführlicher
beschrieben ist, kann die Systemabteilung
Während des
Betriebs interagiert jedes der Betriebssystemkern-Module des Systems
Unter
kurzer Bezugnahme auf
Unter
Bezugnahme auf
Die
exemplarische Implementierung von
- 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.
- 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.
- - 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: In this exemplary implementation, each department has a name and is classified as a chroot-enabled environment. The examples used in this implementation include:
Zusätzlich bestehen auch noch die nachstehenden Teilverzeichnisse:
- 1. /bin – verschiedene Skripten und Befehlszeilendienstprogramme zum Verwalten von Abteilungen können in /bin gemäß bestimmter Implementierungen der vorliegenden Erfindung installiert sein; und
- 2. /etc/tlinux/rules – Dateien, die Regeln für jede registrierte Abteilung auf dem System enthalten, können in /etc/tlinux/rules gemäß bestimmter Implementierungen der vorliegenden Erfindung positioniert sein.
- 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.
- 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:
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
Wie
in dem Beispiel von
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.
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 shmAn 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 80The 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
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
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.
- 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
HOST* → COMPARTMENT
WEB METHOD TCP PORT 80 NETDEV eth0
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 8008The 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
Das
Gateway-System
Wie
in
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
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
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.
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
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
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
- 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.
- 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
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
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.
- 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.
- 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
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
Unter
Bezugnahme auf
Anschließend wird
im Block
Unter
Bezugnahme auf
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
Als
ein weiteres Beispiel ist in
Bei
dem Beispiel von
Claims (14)
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)
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 |
-
2002
- 2002-06-28 DE DE10229114A patent/DE10229114B4/en not_active Expired - Fee Related
Patent Citations (1)
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)
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'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 |