WO2011113656A1 - System and method for the controlled execution of a program file on a computer - Google Patents

System and method for the controlled execution of a program file on a computer Download PDF

Info

Publication number
WO2011113656A1
WO2011113656A1 PCT/EP2011/052205 EP2011052205W WO2011113656A1 WO 2011113656 A1 WO2011113656 A1 WO 2011113656A1 EP 2011052205 W EP2011052205 W EP 2011052205W WO 2011113656 A1 WO2011113656 A1 WO 2011113656A1
Authority
WO
WIPO (PCT)
Prior art keywords
program file
computer
file
gap
implementation
Prior art date
Application number
PCT/EP2011/052205
Other languages
German (de)
French (fr)
Inventor
Rainer Falk
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2011113656A1 publication Critical patent/WO2011113656A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Definitions

  • the invention relates to a system and method for the controlled execution of at least one program file on ei ⁇ NEM computer.
  • Many program files, in particular executable program files have implementation gaps, so-called bugs or flaws, in daily practice. These implementation gaps often become known only when the respective program files or the corresponding software are already installed and used.
  • Such an error-prone program file may represent a security risk for a computer on which it is executed, but also a system controlled by the respective computer.
  • the conventional approach to the elimination of such implementation gaps, particularly vulnerabilities is to provide so-called patches and stalling to in ⁇ to update the incorrect or incomplete software to a new version level, are corrected in the known error.
  • the installation of updates or patches can be done manually or with the help of an auto-update function.
  • the faulty software asks a server if an update is ver ⁇ philgbar and an optionally available update of the software or the program file can then be automatically downloaded from the server and installed. It consists, however, the risk remains that some outdated Pro ⁇ program files or faulty program files remain on the computer, especially if the computer overall sloppy waiting is or if updates are not installed or possibly not offered. This can be the case, for example, if a patch is not yet available or the software is no longer updated by its manufacturer. Also It may be required that a patch can not be installed on a production system until the patch has been successfully tested in a test environment. This is especially true when high demands are placed on the reliability and availability of the production system. An available patch can only be delayed or possibly not installed on a productive system.
  • the invention provides a system for the controlled execution of at least a program file on a computer, wherein the program file is executed in a restricted execution environment which is provided by a feature available on the computer virtu ⁇ elle machine, if determined by an examination of the respective program file will indicate that the program file has a vulnerability that affects the integrity of the computer or a deployment gap.
  • test of the program file by a code of Pro ⁇ program file is analyzed to detect a known for a vulnerability or implementation gap pattern occurs.
  • test of the program file by the Pro ⁇ program file is executed with insurance gap for a vulnerability or imple- known parameter values for testing purposes takes place.
  • examination of the program file is carried out by searching in a database, whether for the program file ei ⁇ ne vulnerability or implementation gap is entered.
  • the virtual machine available on the machine can be a VMWare, a Java Virtual Machine, a Common Language Runtime Virtual Machine, a Virtual BOX, a Virtual PC, or a Sandboxie Virtual Machine ,
  • the program file is stored in a local memory of the computer.
  • the program file is read by the computer via an interface of the computer.
  • the program file is checked periodically at predetermined time intervals with regard to the existence of a security gap or implementation gap.
  • the program file is checked as required by a Nut ⁇ zer when opening the program file or when executing the program file with regard to the existence of a security gap or implementation gap.
  • the program file has at least one file attribute which indicates whether the program file has a security gap or an implementation gap.
  • file attributes give the number and types of security. gaps or implementation gap of the respective program file.
  • the limitation of the execution environment on the virtual machine takes place according to a restriction policy.
  • the restriction policy is selected as a function of the number and types of security gaps or implementation gaps specified in file attributes of the program file.
  • a security breach of the integrity of the computer is detected when the program file causes a Manipula ⁇ tion an operating system file, a configuration file, or a file or user allows.
  • the check of the program file with respect to the best ⁇ hens a security gap or implementation gap takes place locally by the computer.
  • test of the program file as to the existence of a vulnerability or Implementierungslü ⁇ blocks is carried away by a Toggle closed to the computer via a network server.
  • a corresponding log entry is made for a system administrator of the system.
  • Implementation gap In one possible embodiment of the system according to the invention is after finding a security breach or Implementation gap generates a corresponding warning for ei ⁇ nen users of the computer.
  • the invention further provides a method for controlling the execution of a program file on a computer having the features specified in claim 15.
  • the invention provides a method for the controlled execution of a program file on a computer
  • program file is executed in a restricted execution environment provided by a virtual machine available on the computer, if it is determined by a check of the respective program file that the program file has a security vulnerability affecting the integrity of the computer Imple ment istslücke ⁇ .
  • Fig. 1 is a diagram for schematically illustrating a
  • Fig. 2 is a flowchart for illustrating a possible
  • Fig. 3 is a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file; 4 shows a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer.
  • FIG. 1 schematically illustrates a system 1 for the controlled execution of a program file on a computer.
  • the system 1 has at least one computer or host 2 whose hardware HW has, for example, a network adapter NIC and a hard disk or hard disk HD.
  • On the hardware of the computer 2 or the host runs a host operating system H-OS.
  • H-OS host operating system
  • H-UL host user country
  • application programs AP Other specialized application programs may be executed on a virtual machine monitor VMM that provides a virtual execution environment.
  • the computer 2 has two available virtual machines VM1, VM2.
  • a virtual hardware V-HW1, V-HW2 with a virtual network adapter VNIC1, VNIC2 and with a virtual hard disk VDH1, VDH2 is respectively provided by the virtual machine monitor VMM.
  • a guest operating system G-OS1, G-OS2 runs in the virtual machines VM of the computer 2.
  • G2-UL run on the respective virtual machine VM application programs AP, as shown in Fig. 1.
  • an image VMI1, VMI2 is present, which may be a static image of the virtual From ⁇ execution environment that is brought by the virtual machine monitor VMM for execution.
  • the computer 2 has two virtual machines VM1, VM2.
  • multiple virtual machines VMI may be present.
  • one possible embodiment is a Java virtual machine.
  • the virtual machine VM is a VM commodity, a common-language runtime virtual machine, a virtual BOX, a virtual PC or a so-called sandboxie virtual machine.
  • the program running on the computer 2 application program AP can access a program file, which may be a feasible program of ⁇ (.exe) file. In the program file, it can also be a file of a user at ⁇ play as a document (doc) itself.
  • this pro ⁇ program file is executed in a restricted execution environment.
  • This limited execution environment is riding provided by a feature available on the computer 2 virtual machine VM be ⁇ .
  • the program file to be checked is stored in a local memory of the computer 2.
  • the program file to be tested is read by the computer 2 via an interface.
  • the program file If it is determined in the examination of the program file that the program file does not have a vulnerability comprising the in ⁇ tegrity of the computer 2 impaired, it is executed Pro ⁇ program file in a variation in an unrestricted execution environment, ie, the program file is as an application program AP in the user mode of operation, computer H-UL (host-user country), ie in a native execution environment.
  • the program file is executed in an unrestricted execution environment. This unrestricted execution environment may be provided by another available on the computer 2 virtual Ma ⁇ machine VM.
  • the audit of the program file in terms of security ⁇ gap or an implementation gap can be done in different ways Liehe.
  • the testing of computer file by a code of pro ⁇ program file is analyzed to detect one for a vulnerability be ⁇ known data pattern occurs.
  • the program file is systematically scanned to recognize a faulty program code.
  • the program code can be evaluated in terms ⁇ be known per pattern for implementation gaps. For example, the code of the program file on the pre ⁇ handensein safety-critical functions or calls to safety-critical functions can be checked.
  • An example of such an implementation gap is, for example, the invocation of safety-critical functions.
  • the testing of the program file by the program file is executed at a well-known for Si ⁇ cherheitslücke parameter values for testing purposes takes place.
  • the program file is loaded with different Pa ⁇ rametern to determine the reaction with invalid parameter values.
  • the reaction of the program file can, for example, in the case of invalid parameter values, consist of a so-called program crash.
  • Another way to test the program file be ⁇ stands that is systematically searched in a database if aacalü ⁇ bridge is entered for each program file.
  • stands that is systematically searched in a database if aflowerlü ⁇ bridge is entered for each program file.
  • Checking a program file as to the existence ei ⁇ ner implementation or vulnerability can be carried out periodically at predetermined time intervals in a possible embodiment. Another possibility is that the program file is checked for a request by a user or when opening the program file or when executing the program file with regard to the existence of aboclü ⁇ bridge or implementation gap.
  • a program file is detected as having errors or is critical ⁇ critically, a dependent on the test result Treatment of the program file done.
  • the program file in a restricted execution environment which is concerns by an available virtual machine on the computer CM ⁇ provides is executed.
  • a security vulnerability for the integrity of the computer 2 is detected if the program file causes or enables manipulation of an operating system file.
  • a security gap for the integrity of the computer 2 can be determined ⁇ if the program file causes or allows manipulation of a configuration file or a user file.
  • the examination of the program file with regard to the existence of a security gap can take place locally by the computer 2 in one possible embodiment.
  • the examination of the program file with regard to the existence of a security gap is carried out remotely by a computer 2 connected to the network via a server.
  • the program file is recognized as being critical for the integrity of the computer 2, its execution takes place on a virtual machine VM available on the computer 2 in a restricted execution environment.
  • the execution environment is restricted on the virtual machine VM according to a predetermined restriction policy.
  • a possible execution ⁇ form the virtual machine monitor VMM of the computer 2 for each virtual machine VM1, VM2 an associated restriction policy PI, P2 managed.
  • the restriction policy specifies the accessibility in the virtual execution environment. Accesses in the virtual execution environment are only possible if they are approved by the respective restriction policy PI, P2.
  • the program file has min ⁇ least a file attribute, which indicates whether the Pro ⁇ program file has a security vulnerability or implementation gap or not.
  • unsafe known program files may be ge ⁇ features so that they are no longer feasible in a unkontrol ⁇ profiled native execution environment on such a file attribute.
  • the restriction policy P is automatically selected depending on the number and types of security or implementation gaps specified in file attributes of the program file.
  • a log entry for a system administrator of the system is generated after a security or implementation gap in the program file has been identified . Furthermore, a warning for the system administrator or a user of the computer 2 can be generated.
  • the scan or test result is only determined when the program file is called.
  • the test can also be determined in advance and stored for example in a file to the program supplied ⁇ hearing file attribute.
  • a warning message is issued when a vulnerable executable program file is called with a security gap or an implementation gap.
  • the program file is then treated according to a study done Be ⁇ user input.
  • the input of a Admi ⁇ nistrationspasswortes may be required on the part of the system. 1
  • a vulnerable executable program file is executed in a controlled execution environment provided by a virtual machine. This is done at a possible embodiment of the system 1 according to the invention automatically. In an alternative embodiment, execution of the vulnerable executable program file in the controlled execution environment occurs only after appropriate confirmation by a user agent.
  • the computer 2 comprises different virtual machines VM.
  • he ⁇ follows the selection of the virtual machine VM depending on what kind of known security or implementation gaps detected in the checked program file or detected.
  • associated file attributes result to the program file to the at ⁇ number of types of security breaches or gaps of the respective implementation program file.
  • the program file which has a known security vulnerability, is opened by a program that is already running.
  • an application program can load a DLL file or program file.
  • running the reloaded file in a virtual machine VM may not be possible. It is examined instead whether the current program is run natively or in a virtuel ⁇ len machine VM.
  • the loading of the program file DLL can be started or stopped.
  • access rights can be extended to a program file in from ⁇ dependence of the test result.
  • the program file includes a file ⁇ attribute which indicates on which way the program file may be performed, that is native or only in a restricted execution environment on a virtual machine VM, or even in a certain limited execution environment by a given given virtual machine VM is provided.
  • an administrator can in a program file in which a vulnerability or implementa ⁇ t istslücke has been recognized, by setting one or more attributes specify that this program file is executable only in a virtual machine VM.
  • the system 1 according to the invention is in particular the significantly reduced secure ⁇ standardized risk, which is caused by existing aging and thus vulnerable program code files.
  • This additional protection through the OF INVENTION ⁇ dung-date system and method for controlled run a program file on a computer 2 accesses for Pro ⁇ program files that are stored anywhere on the file system, for example, actually unneeded DLL files after uninstalling or a program update have been preserved.
  • step S2 shows a flow chart or representation of a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer 2.
  • step S2 the program file is opened in step S2 for its execution. This must be an executable program file (.exe).
  • step S3 the program file is compared with respect to
  • the program file can be executed natively in step S5, that is to say without the use of a virtual machine VM under direct control of the operating system of the host computer 2 (H-OS). Is reversed for the analyzed program file ⁇ a safety or implementation gap detected in a step S6, the virtual machine VM or sand ⁇ box is started. Execution of the program file then takes place in step S7 in the restricted execution environment provided by the virtual machine VM. The process ends in step S8.
  • the process shown in Fig. 2 shows a basic sequence of the method according to the invention.
  • step S1 shows a further exemplary embodiment of the method according to the invention for the controlled execution of a program file on a computer 2.
  • the program file is first opened in step S2.
  • step S3 it is checked whether the open Pro ⁇ executable program file. This can be determined, for example, by means of a file attribute of the program file. If the program file is executable, takes place in one
  • Step S4 an analysis of the program file, that is, it is checked whether the program file has a security or Imple ⁇ ment michslücke.
  • a further step S5 it is determined whether the analyzed program file has a Si ⁇ cherheits- or implementation gap. If this is the case, in a further step S6, a file attribute "Execute" of the program file, which indicates that the program file is executable, can be deleted or reset. This prevents the program file from being natively executable in the future.
  • a file attribute of the program file can be set, which indicates that this program file is to be executed in the future in a restricted execution environment provided by a virtual machine VM.
  • the process ends in step S8. 4 shows a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer 2.
  • the Pro ⁇ program file is opened for their execution, in a step S2.
  • the program file it is checked whether a DA teiattribut indicating whether the associated Pro ⁇ program file to be executed natively or in a restricted execution environment. If the file attribute indicates that the program file is natively executable, it is executed natively under step S5 under direct control of the operating system H-OS of the host computer 2. Is reversed the file attribute of the tested program file that is not natively executable, it is checked in step S6 whether the Programmda ⁇ tei can be carried out in a restricted execution environment. If this is the case, in a step S7, a virtual machine VM or a sandbox is started and the
  • step S8 Program file then in a step S8 in a ⁇ ge beauen execution environment which is provided by the started virtual machine VM running.
  • the process ends in step S9.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to a method and a system for the controlled execution of at least one program file on a computer, said program file being executed in a restricted execution environment which is provided by a virtual machine (VM) available in the computer provided that the respective program file is tested to determine if the program file has a security leak which reduces the integrity of the computer, or an implementation leak.

Description

Beschreibung description
System und Verfahren zum kontrollierten Ausführen einer Programmdatei auf einem Rechner System and method for the controlled execution of a program file on a computer
Die Erfindung betrifft ein System und ein Verfahren zur kontrollierten Ausführung mindestens einer Programmdatei auf ei¬ nem Rechner. Viele Programmdateien, insbesondere ausführbare Programmda¬ teien weisen in der täglichen Praxis Implementierungslücken, sogenannte Bugs bzw. Flaws auf. Diese Implementierungslücken werden oft erst bekannt, wenn die jeweiligen Programmdateien bzw. die entsprechende Software bereits installiert und ver- wendet wird. Eine derartige mit Fehlern behaftete Programmda¬ tei kann ein Sicherheitsrisiko für einen Rechner, auf dem sie ausgeführt wird, aber auch eine von dem jeweiligen Rechner gesteuerte Anlage darstellen. Die herkömmliche Vorgehensweise zur Beseitigung derartiger Implementierungslücken, insbesondere von Sicherheitslücken, besteht darin, sogenannte Patches bereitzustellen und zu in¬ stallieren, um die fehlerhafte bzw. lückenhafte Software auf einen neueren Versionsstand zu aktualisieren, in dem bekannte Fehler behoben sind. Das Installieren von Updates bzw. Patches kann manuell oder unterstützt durch eine Auto-Update- Funktion erfolgen. Bei einer Auto-Update-Funktion fragt die fehlerhafte Software bei einem Server an, ob ein Update ver¬ fügbar ist und ein gegebenenfalls verfügbares Update der Software bzw. der Programmdatei kann dann von dem Server automatisch heruntergeladen und installiert werden. Es besteht dabei jedoch weiterhin die Gefahr, dass manche veraltete Pro¬ grammdateien bzw. fehlerhafte Programmdateien auf dem Rechner zurückbleiben, insbesondere wenn der Rechner nachlässig ge- wartet wird oder wenn Updates nicht installiert oder ggf. gar nicht angeboten werden. Dies kann beispielsweise der Fall sein, wenn ein Patch noch nicht verfügbar ist oder die Software von deren Hersteller nicht mehr aktualisiert wird. Auch kann gefordert sein, dass ein Patch erst dann auf einem Produktivsystem installiert werden darf, nachdem der Patch erfolgreich in einer Testumgebung getestet wurde. Dies gilt insbesondere, wenn hohe Anforderungen an die Zuverlässigkeit und Verfügbarkeit des Produktivsystems gestellt werden. Dabei kann ein verfügbarer Patch nur verzögert oder evtl. gar nicht auf einem Produktivsystem installiert werden. The invention relates to a system and method for the controlled execution of at least one program file on ei ¬ NEM computer. Many program files, in particular executable program files, have implementation gaps, so-called bugs or flaws, in daily practice. These implementation gaps often become known only when the respective program files or the corresponding software are already installed and used. Such an error-prone program file may represent a security risk for a computer on which it is executed, but also a system controlled by the respective computer. The conventional approach to the elimination of such implementation gaps, particularly vulnerabilities is to provide so-called patches and stalling to in ¬ to update the incorrect or incomplete software to a new version level, are corrected in the known error. The installation of updates or patches can be done manually or with the help of an auto-update function. In an auto-update function, the faulty software asks a server if an update is ver ¬ fügbar and an optionally available update of the software or the program file can then be automatically downloaded from the server and installed. It consists, however, the risk remains that some outdated Pro ¬ program files or faulty program files remain on the computer, especially if the computer overall sloppy waiting is or if updates are not installed or possibly not offered. This can be the case, for example, if a patch is not yet available or the software is no longer updated by its manufacturer. Also It may be required that a patch can not be installed on a production system until the patch has been successfully tested in a test environment. This is especially true when high demands are placed on the reliability and availability of the production system. An available patch can only be delayed or possibly not installed on a productive system.
Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren zu schaffen, die den Umgang mit Programmdateien, welche Implementierungslücken enthalten können, erleichtern. It is therefore an object of the present invention to provide an apparatus and method that facilitates handling program files that may contain implementation gaps.
Diese Aufgabe wird erfindungsgemäß durch ein System mit den im Patentanspruch 1 angegebenen Merkmalen gelöst. This object is achieved by a system having the features specified in claim 1.
Die Erfindung schafft ein System zur kontrollierten Ausführung mindestens einer Programmdatei auf einem Rechner, wobei die Programmdatei in einer eingeschränkten Ausführungs- Umgebung, welche durch eine auf dem Rechner verfügbare virtu¬ elle Maschine bereitgestellt wird, ausgeführt wird, sofern durch eine Prüfung der jeweiligen Programmdatei festgestellt wird, dass die Programmdatei eine Sicherheitslücke, welche die Integrität des Rechners beeinträchtigt, oder eine Imple- mentierungslücke aufweist. The invention provides a system for the controlled execution of at least a program file on a computer, wherein the program file is executed in a restricted execution environment which is provided by a feature available on the computer virtu ¬ elle machine, if determined by an examination of the respective program file will indicate that the program file has a vulnerability that affects the integrity of the computer or a deployment gap.
Bei einer Ausführungsform des erfindungsgemäßen Systems erfolgt die Prüfung der Programmdatei, indem ein Code der Pro¬ grammdatei zur Erkennung eines für eine Sicherheitslücke oder Implementierungslücke bekannten Musters analysiert wird. In one embodiment of the system according to the invention the test of the program file by a code of Pro ¬ program file is analyzed to detect a known for a vulnerability or implementation gap pattern occurs.
Bei einer weiteren Ausführungsform des erfindungsgemäßen Systems erfolgt die Prüfung der Programmdatei, indem die Pro¬ grammdatei mit für eine Sicherheitslücke oder Implementie- rungslücke bekannten Parameterwerten testweise ausgeführt wird . Bei einer weiteren möglichen Ausführungsform des erfindungsgemäßen Systems erfolgt die Prüfung der Programmdatei, indem in einer Datenbank gesucht wird, ob für die Programmdatei ei¬ ne Sicherheitslücke oder Implementierungslücke eingetragen ist . In a further embodiment of the system according to the invention the test of the program file by the Pro ¬ program file is executed with insurance gap for a vulnerability or imple- known parameter values for testing purposes takes place. In another possible embodiment of the system according to the invention, the examination of the program file is carried out by searching in a database, whether for the program file ei ¬ ne vulnerability or implementation gap is entered.
Bei der auf dem Rechner verfügbaren virtuellen Maschine kann es sich um eine VM-Ware, eine Java-Virtuelle Maschine, eine Common-Language-Runtime-Virtuelle Maschine, eine Virtual-BOX, eine Virtual-PC oder um eine Sandboxie-Virtuelle Maschine handeln . The virtual machine available on the machine can be a VMWare, a Java Virtual Machine, a Common Language Runtime Virtual Machine, a Virtual BOX, a Virtual PC, or a Sandboxie Virtual Machine ,
Bei einer Ausführungsform des erfindungsgemäßen Systems ist die Programmdatei in einem lokalen Speicher des Rechners ge- speichert. In one embodiment of the system according to the invention, the program file is stored in a local memory of the computer.
Bei einer alternativen Ausführungsform des Systems wird die Programmdatei von dem Rechner über eine Schnittstelle des Rechners eingelesen. In an alternative embodiment of the system, the program file is read by the computer via an interface of the computer.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems wird die Programmdatei periodisch in vorgegebenen Zeitabständen hinsichtlich des Bestehens einer Sicherheitslücke oder Implementierungslücke geprüft. In one possible embodiment of the system according to the invention, the program file is checked periodically at predetermined time intervals with regard to the existence of a security gap or implementation gap.
Bei einer weiteren Ausführungsform des erfindungsgemäßen Systems wird die Programmdatei nach Anforderung durch einen Nut¬ zer beim Öffnen der Programmdatei oder beim Ausführen der Programmdatei hinsichtlich des Bestehens einer Sicherheitslü- cke oder Implementierungslücke geprüft. In a further embodiment of the system according to the invention, the program file is checked as required by a Nut¬ zer when opening the program file or when executing the program file with regard to the existence of a security gap or implementation gap.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems weist die Programmdatei mindestens ein Dateiattribut auf, welches angibt, ob die Programmdatei eine Sicherheitslü cke oder Implementierungslücke aufweist. In one possible embodiment of the system according to the invention, the program file has at least one file attribute which indicates whether the program file has a security gap or an implementation gap.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems geben Dateiattribute die Anzahl und Typen der Sicher- heitslücken oder Implementierungslücke der jeweiligen Programmdatei an. In one possible embodiment of the system according to the invention, file attributes give the number and types of security. gaps or implementation gap of the respective program file.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems erfolgt die Einschränkung der Ausführungsumgebung auf der virtuellen Maschine entsprechend einer Einschränkungs- Policy . In one possible embodiment of the system according to the invention, the limitation of the execution environment on the virtual machine takes place according to a restriction policy.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems wird die Einschränkungs-Policy in Abhängigkeit von der in Dateiattributen der Programmdatei angegebenen Anzahl und Typen von Sicherheitslücken oder Implementierungslücke selektiert . Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems wird eine Sicherheitslücke für die Integrität des Rechners festgestellt, wenn die Programmdatei eine Manipula¬ tion einer Betriebssystemdatei, einer Konfigurationsdatei oder einer Nutzerdatei bewirkt oder ermöglicht. In one possible embodiment of the system according to the invention, the restriction policy is selected as a function of the number and types of security gaps or implementation gaps specified in file attributes of the program file. In one possible embodiment of the system according to the invention a security breach of the integrity of the computer is detected when the program file causes a Manipula ¬ tion an operating system file, a configuration file, or a file or user allows.
Bei einer Ausführungsform des erfindungsgemäßen Systems erfolgt die Prüfung der Programmdatei hinsichtlich des Beste¬ hens einer Sicherheitslücke oder Implementierungslücke lokal durch den Rechner. In one embodiment of the system according to the invention, the check of the program file with respect to the best ¬ hens a security gap or implementation gap takes place locally by the computer.
Bei einer alternativen Ausführungsform des erfindungsgemäßen Systems erfolgt die Prüfung der Programmdatei hinsichtlich des Bestehens einer Sicherheitslücke oder Implementierungslü¬ cke entfernt durch einen an dem Rechner über ein Netzwerk an- geschlossenen Server. In an alternative embodiment of the system according to the invention the test of the program file as to the existence of a vulnerability or Implementierungslü ¬ blocks is carried away by a Toggle closed to the computer via a network server.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems erfolgt nach Feststellung einer Sicherheitslücke oder Implementierungslücke der Programmdatei ein entsprechender Log-Eintrag für einen Systemadministrator des Systems. In one possible embodiment of the system according to the invention, after finding a security gap or implementation gap in the program file, a corresponding log entry is made for a system administrator of the system.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems wird nach Feststellung einer Sicherheitslücke oder Implementierungslücke ein entsprechender Warnhinweis für ei¬ nen Nutzer des Rechners erzeugt. In one possible embodiment of the system according to the invention is after finding a security breach or Implementation gap generates a corresponding warning for ei ¬ nen users of the computer.
Die Erfindung schafft ferner einer Verfahren zum kontrollier ten Ausführen einer Programmdatei auf einem Rechner mit den im Patentanspruch 15 angegebenen Merkmalen. The invention further provides a method for controlling the execution of a program file on a computer having the features specified in claim 15.
Die Erfindung schafft ein Verfahren zum kontrollierten Ausführen einer Programmdatei auf einem Rechner, The invention provides a method for the controlled execution of a program file on a computer,
wobei die Programmdatei in einer eingeschränkten Ausführungs Umgebung, welche durch eine auf dem Rechner verfügbare virtu eile Maschine bereitgestellt wird, ausgeführt wird, sofern durch eine Prüfung der jeweiligen Programmdatei festgestellt wird, dass die Programmdatei eine Sicherheitslücke, welche die Integrität des Rechners beeinträchtigt, oder eine Imple¬ mentierungslücke aufweist. wherein the program file is executed in a restricted execution environment provided by a virtual machine available on the computer, if it is determined by a check of the respective program file that the program file has a security vulnerability affecting the integrity of the computer Imple mentierungslücke ¬ .
Im Weiteren werden mögliche Ausführungsformen des erfindungs gemäßen Systems und des erfindungsgemäßen Verfahrens zum kon trollierten Ausführen einer Programmdatei auf einem Rechner unter Bezugnahme auf die beigefügten Figuren beschrieben. In the following, possible embodiments of the system according to the invention and the method according to the invention for the controlled execution of a program file on a computer will be described with reference to the attached figures.
Es zeigen: Show it:
Fig. 1 ein Diagramm zur schematischen Darstellung eines Fig. 1 is a diagram for schematically illustrating a
Systems zur kontrollierten Ausführung einer Programmdatei gemäß der Erfindung;  System for controlled execution of a program file according to the invention;
Fig. 2 ein Ablaufdiagramm zur Darstellung einer möglichen Fig. 2 is a flowchart for illustrating a possible
Ausführungsform des erfindungsgemäßen Verfahrens zur kontrollierten Ausführung einer Programmdatei auf einem Rechner;  Embodiment of the method according to the invention for the controlled execution of a program file on a computer;
Fig. 3 ein weiteres Ablaufdiagramm zur Darstellung einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens zur kontrollierten Ausführung einer Pro grammdatei ; Fig. 4 ein weiteres Ablaufdiagramm zur Darstellung einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens zum kontrollierten Ausführen einer Programmdatei auf einem Rechner. Fig. 3 is a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file; 4 shows a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer.
Fig. 1 stellt schematisch ein System 1 zur kontrollierten Ausführung einer Programmdatei auf einem Rechner dar. Das System 1 weist mindestens einen Rechner oder Host 2 auf, des¬ sen Hardware HW beispielsweise einen Netzwerkadapter NIC und eine Festplatte bzw. Harddisk HD aufweist. Auf der Hardware des Rechners 2 bzw. des Hosts läuft ein Host-Betriebssystems H-OS . In einem Benutzerbetriebsmodus des Rechners H-UL (Host- User Land) laufen Anwendungsprogramme AP. Weitere spezielle Anwendungsprogramme können auf einem Virtual-Machine-Monitor VMM ausgeführt werden, der eine virtuelle Ausführungsumgebung bereitstellt. In dem in Fig. 1 dargestellten Ausführungsbei¬ spiel weist der Rechner 2 zwei verfügbare virtuelle Maschinen VM1, VM2 auf. Es wird durch den virtuellen Maschinenmonitor VMM jeweils eine virtuelle Hardware V-HW1, V-HW2 mit einem virtuellen Netzwerkadapter VNIC1, VNIC2 und mit einer virtuellen Festplatte VDH1, VDH2 bereitgestellt. In den virtuellen Maschinen VM des Rechners 2 läuft jeweils ein Gast- Betriebssystem G-OS1, G-OS2. In einem Benutzermodus Gl-UL, G2-UL laufen auf der jeweiligen virtuellen Maschine VM Anwen- dungsprogramme AP, wie in Fig. 1 dargestellt. In der virtuel¬ len Ausführungsumgebung ist ein Image VMI1, VMI2 vorhanden, bei dem es sich um ein statisches Abbild der virtuellen Aus¬ führungsumgebung handeln kann, das durch den virtuellen Maschinenmonitor VMM zur Ausführung gebracht wird. Bei dem in Fig. 1 dargestellten Ausführungsbeispiel weist der Rechner 2 zwei virtuelle Maschinen VM1, VM2 auf. Bei weiteren Ausführungsformen können mehrere virtuelle Maschinen VMI vorhanden sein. Bei den virtuellen Maschinen handelt es sich bei einer möglichen Ausführungsform um eine Java-Virtuelle Maschine. Bei einer weiteren möglichen Ausführungsform ist die virtuelle Maschine VM eine VM-Ware, eine Common-Language-Runtime- Virtuelle Maschine, eine Virtual-BOX, Virtual PC oder eine sogenannte Sandboxie-Virtuelle Maschine. Das auf dem Rechner 2 laufende Anwendungsprogramm AP kann auf eine Programmdatei zugreifen, bei der es sich um eine aus¬ führbare Programmdatei (exe) handeln kann. Bei der Programm- datei kann es sich auch um eine Datei eines Anwenders, bei¬ spielsweise um ein Dokument (doc) handeln. 1 schematically illustrates a system 1 for the controlled execution of a program file on a computer. The system 1 has at least one computer or host 2 whose hardware HW has, for example, a network adapter NIC and a hard disk or hard disk HD. On the hardware of the computer 2 or the host runs a host operating system H-OS. In a user operating mode of the computer H-UL (host user country) run application programs AP. Other specialized application programs may be executed on a virtual machine monitor VMM that provides a virtual execution environment. In the example shown in Fig. 1 Ausführungsbei ¬ game the computer 2 has two available virtual machines VM1, VM2. A virtual hardware V-HW1, V-HW2 with a virtual network adapter VNIC1, VNIC2 and with a virtual hard disk VDH1, VDH2 is respectively provided by the virtual machine monitor VMM. In each case, a guest operating system G-OS1, G-OS2 runs in the virtual machines VM of the computer 2. In a user mode Gl-UL, G2-UL run on the respective virtual machine VM application programs AP, as shown in Fig. 1. In the virtuel ¬ len execution environment an image VMI1, VMI2 is present, which may be a static image of the virtual From ¬ execution environment that is brought by the virtual machine monitor VMM for execution. In the exemplary embodiment illustrated in FIG. 1, the computer 2 has two virtual machines VM1, VM2. In other embodiments, multiple virtual machines VMI may be present. In the case of the virtual machines, one possible embodiment is a Java virtual machine. In another possible embodiment, the virtual machine VM is a VM commodity, a common-language runtime virtual machine, a virtual BOX, a virtual PC or a so-called sandboxie virtual machine. The program running on the computer 2 application program AP can access a program file, which may be a feasible program of ¬ (.exe) file. In the program file, it can also be a file of a user at ¬ play as a document (doc) itself.
Wird bei einer Prüfung der Programmdatei festgestellt, dass die Programmdatei eine Sicherheitslücke aufweist, welche die Integrität des Rechners 2 beeinträchtigt, wird diese Pro¬ grammdatei in einer eingeschränkten Ausführungsumgebung ausgeführt. Diese eingeschränkte Ausführungsumgebung wird durch eine auf dem Rechner 2 verfügbare virtuelle Maschine VM be¬ reitgestellt. Bei einer möglichen Ausführungsform ist die zu prüfende Programmdatei in einem lokalen Speicher des Rechners 2 gespeichert. Bei einer alternativen Ausführungsform wird die zu prüfende Programmdatei von dem Rechner 2 über eine Schnittstelle eingelesen. Wird bei der Prüfung der Programmdatei festgestellt, dass die Programmdatei keine Sicherheitslücke aufweist, welche die In¬ tegrität des Rechners 2 beeinträchtigt, so wird diese Pro¬ grammdatei in einer Variante in einer uneingeschränkten Ausführungsumgebung ausgeführt, d.h. die Programmdatei wird als Anwendungsprogramm AP in dem Benutzerbetriebsmodus des Rechners H-UL (Host-User Land) ausgeführt, d.h. in einer nativen Ausführungsumgebung. In einer anderen Variante wird die Programmdatei in einer uneingeschränkten Ausführungsumgebung ausgeführt. Diese uneingeschränkte Ausführungsumgebung kann durch eine weitere auf dem Rechner 2 verfügbare virtuelle Ma¬ schine VM bereitgestellt werden. If it is found during a test of the program file that the program file has a security vulnerability that affects the integrity of the computer 2, this pro ¬ program file is executed in a restricted execution environment. This limited execution environment is riding provided by a feature available on the computer 2 virtual machine VM be ¬. In one possible embodiment, the program file to be checked is stored in a local memory of the computer 2. In an alternative embodiment, the program file to be tested is read by the computer 2 via an interface. If it is determined in the examination of the program file that the program file does not have a vulnerability comprising the in ¬ tegrity of the computer 2 impaired, it is executed Pro ¬ program file in a variation in an unrestricted execution environment, ie, the program file is as an application program AP in the user mode of operation, computer H-UL (host-user country), ie in a native execution environment. In another variant, the program file is executed in an unrestricted execution environment. This unrestricted execution environment may be provided by another available on the computer 2 virtual Ma ¬ machine VM.
Die Prüfung der Programmdatei hinsichtlich einer Sicherheits¬ lücke bzw. einer Implementierungslücke kann auf unterschied- liehe Weise erfolgen. Bei einer möglichen Ausführungsform erfolgt die Prüfung der Programmdatei, indem ein Code der Pro¬ grammdatei zur Erkennung eines für eine Sicherheitslücke be¬ kannten Datenmusters analysiert wird. Bei einer möglichen Ausführungsform wird dabei die Programmdatei systematisch gescannt, um einen fehlerbehafteten Programmcode zu erkennen. Bei der Codeanalyse kann der Programmcode hinsichtlich be¬ kannter Muster für Implementierungslücken ausgewertet werden. Beispielsweise kann der Code der Programmdatei auf das Vor¬ handensein sicherheitskritischer Funktionen bzw. Aufrufe von sicherheitskritischen Funktionen geprüft werden. Ein Beispiel für eine derartige Implementierungslücke ist zum Beispiel der Aufruf von sicherheitskritischen Funktionen. The audit of the program file in terms of security ¬ gap or an implementation gap can be done in different ways Liehe. In one possible embodiment, the testing of computer file by a code of pro ¬ program file is analyzed to detect one for a vulnerability be ¬ known data pattern occurs. In one possible Embodiment while the program file is systematically scanned to recognize a faulty program code. In the code analysis, the program code can be evaluated in terms ¬ be known per pattern for implementation gaps. For example, the code of the program file on the pre ¬ handensein safety-critical functions or calls to safety-critical functions can be checked. An example of such an implementation gap is, for example, the invocation of safety-critical functions.
Bei einer alternativen Ausführungsform erfolgt die Prüfung der Programmdatei, indem die Programmdatei bei für eine Si¬ cherheitslücke bekannten Parameterwerten testweise ausgeführt wird. Dabei wird die Programmdatei mit unterschiedlichen Pa¬ rametern beaufschlagt, um die Reaktion bei ungültigen Parameterwerten zu ermitteln. Die Reaktion der Programmdatei kann bei ungültigen Parameterwerten beispielsweise in einem sogenannten Programmabsturz bestehen. In an alternative embodiment, the testing of the program file by the program file is executed at a well-known for Si ¬ cherheitslücke parameter values for testing purposes takes place. The program file is loaded with different Pa ¬ rametern to determine the reaction with invalid parameter values. The reaction of the program file can, for example, in the case of invalid parameter values, consist of a so-called program crash.
Eine weitere Möglichkeit zur Prüfung der Programmdatei be¬ steht darin, dass in einer Datenbank systematisch gesucht wird, ob für die jeweilige Programmdatei eine Sicherheitslü¬ cke eingetragen ist. Dabei kann beispielsweise in einer Liste von Dateien gesucht werden, ob für die Programmdatei bekannt ist, dass sie eine Sicherheitslücke bzw. eine Implementie¬ rungslücke aufweist. Another way to test the program file be ¬ stands that is systematically searched in a database if a Sicherheitslü ¬ bridge is entered for each program file. Here, for example, can be searched in a list of files if is known for the program file that it has a vulnerability or a imple ¬ approximately complete.
Das Prüfen einer Programmdatei hinsichtlich des Bestehens ei¬ ner Implementierungs- bzw. Sicherheitslücke kann bei einer möglichen Ausführungsform periodisch in vorgegebenen Zeitabständen erfolgen. Eine weitere Möglichkeit besteht darin, dass die Programmdatei nach Anforderung durch einen Nutzer oder beim Öffnen der Programmdatei oder beim Ausführen der Programmdatei hinsichtlich des Bestehens einer Sicherheitslü¬ cke bzw. Implementierungslücke geprüft wird. Checking a program file as to the existence ei ¬ ner implementation or vulnerability can be carried out periodically at predetermined time intervals in a possible embodiment. Another possibility is that the program file is checked for a request by a user or when opening the program file or when executing the program file with regard to the existence of a Sicherheitslü ¬ bridge or implementation gap.
Wird eine Programmdatei als fehlerbehaftet bzw. sicherheits¬ kritisch erkannt, kann eine von dem Prüfergebnis abhängige Behandlung der Programmdatei erfolgen. Weist die geprüfte Programmdatei eine Sicherheitslücke auf, welche die Integri¬ tät des Rechners 2 beeinträchtigt, wird die Programmdatei in einer eingeschränkten Ausführungsumgebung, welche durch eine auf dem Rechner verfügbare virtuelle Maschine CM bereitge¬ stellt wird, ausgeführt. Bei einer möglichen Ausführungsform wird eine Sicherheitslücke für die Integrität des Rechners 2 festgestellt, falls die Programmdatei eine Manipulation einer Betriebssystemdatei bewirkt oder ermöglicht. Weiterhin kann eine Sicherheitslücke für die Integrität des Rechners 2 fest¬ gestellt werden, falls die Programmdatei eine Manipulation einer Konfigurationsdatei oder einer Nutzerdatei bewirkt oder ermöglicht. Die Prüfung der Programmdatei hinsichtlich des Bestehens einer Sicherheitslücke kann bei einer möglichen Ausführungsform lokal durch den Rechner 2 erfolgen. Bei einer alternativen Ausführungsform erfolgt die Prüfung der Programmdatei hinsichtlich des Bestehens einer Sicherheitslücke entfernt durch einen mit dem Rechner 2 über einen am Netzwerk angeschlossenen Server. If a program file is detected as having errors or is critical ¬ critically, a dependent on the test result Treatment of the program file done. Has the tested program file to a vulnerability that affects the Integri ¬ ty of the computer 2, the program file in a restricted execution environment, which is bereitge by an available virtual machine on the computer CM ¬ provides is executed. In one possible embodiment, a security vulnerability for the integrity of the computer 2 is detected if the program file causes or enables manipulation of an operating system file. Furthermore, a security gap for the integrity of the computer 2 can be determined ¬ if the program file causes or allows manipulation of a configuration file or a user file. The examination of the program file with regard to the existence of a security gap can take place locally by the computer 2 in one possible embodiment. In an alternative embodiment, the examination of the program file with regard to the existence of a security gap is carried out remotely by a computer 2 connected to the network via a server.
Wird die Programmdatei als für die Integrität des Rechners 2 kritisch erkannt, erfolgt deren Ausführung auf einer auf dem Rechner 2 verfügbaren virtuellen Maschine VM in einer eingeschränkten Ausführungsumgebung. Bei einer möglichen Ausfüh- rungsform erfolgt die Einschränkung der Ausführungsumgebung auf der virtuellen Maschine VM entsprechend einer vorbestimmten Einschränkungs-Policy . Bei einer möglichen Ausführungs¬ form verwaltet der virtuelle Maschinen-Monitor VMM des Rechners 2 für jede virtuelle Maschine VM1, VM2 eine zugehörige Einschränkungs-Policy PI, P2. Die Einschränkungs-Policy gibt die Zugriffsmöglichkeit in der virtuellen Ausführungsumgebung an. Zugriffe in der virtuellen Ausführungsumgebung sind nur möglich, soweit sie durch die jeweilige Einschränkungs-Policy PI, P2 zugelassen sind. Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems 1 weist die Programmdatei min¬ destens ein Dateiattribut auf, welches angibt, ob die Pro¬ grammdatei eine Sicherheitslücke bzw. Implementierungslücke aufweist oder nicht. Als unsicher bekannte Programmdateien (auch native) können über ein derartiges Dateiattribut ge¬ kennzeichnet sein, so dass sie nicht mehr in einer unkontrol¬ lierten nativen Ausführungsumgebung ausführbar sind. Bei einer möglichen Ausführungsform wird die Einschränkungs-Policy P in Abhängigkeit von der in Dateiattributen der Programmdatei angegebenen Anzahl und Typen von Sicherheits- bzw. Implementierungslücken automatisch selektiert. If the program file is recognized as being critical for the integrity of the computer 2, its execution takes place on a virtual machine VM available on the computer 2 in a restricted execution environment. In one possible embodiment, the execution environment is restricted on the virtual machine VM according to a predetermined restriction policy. In a possible execution ¬ form the virtual machine monitor VMM of the computer 2 for each virtual machine VM1, VM2 an associated restriction policy PI, P2 managed. The restriction policy specifies the accessibility in the virtual execution environment. Accesses in the virtual execution environment are only possible if they are approved by the respective restriction policy PI, P2. In a possible embodiment of the system 1 according to the invention the program file has min ¬ least a file attribute, which indicates whether the Pro ¬ program file has a security vulnerability or implementation gap or not. As unsafe known program files (also native) may be ge ¬ features so that they are no longer feasible in a unkontrol ¬ profiled native execution environment on such a file attribute. In one possible embodiment, the restriction policy P is automatically selected depending on the number and types of security or implementation gaps specified in file attributes of the program file.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems 1 wird nach Feststellung einer Sicherheits- bzw. Implementierungslücke der Programmdatei ein Log-Eintrag für ei¬ nen Systemadministrator des Systems erzeugt. Ferner kann ein Warnhinweis für den Systemadministrator oder einen Nutzer des Rechners 2 erzeugt werden. In one possible embodiment of the system 1 according to the invention, a log entry for a system administrator of the system is generated after a security or implementation gap in the program file has been identified . Furthermore, a warning for the system administrator or a user of the computer 2 can be generated.
Nach Prüfung der Programmdatei hinsichtlich eine Implementie- rungs- bzw. Sicherheitslücke kann eine von dem Prüfungsergeb¬ nis abhängige Behandlung beim Aufruf der Programmdatei zur Ausführung erfolgen, das heißt wenn der ggf. mit einer Sicherheitslücke behaftete Programmcode der Programmdatei zur Ausführung gebracht werden soll. Bei einer möglichen Ausführungsform wird das Scan- bzw. Prüfergebnis erst bei einem Aufruf der Programmdatei ermittelt. Bei einer alternativen Ausführungsform kann das Prüfergebnis auch vorab ermittelt werden und beispielsweise in einem zu der Programmdatei zuge¬ hörigen Dateiattribut gespeichert werden. After examining the program file in terms a imple- rungs- and vulnerability can take place depending on the audit results ¬ nis treatment when calling the program file to run, which means when the necessary afflicted with a security hole code of the program file to be put into execution. In one possible embodiment, the scan or test result is only determined when the program file is called. In an alternative embodiment, the test can also be determined in advance and stored for example in a file to the program supplied ¬ hearing file attribute.
Bei einer möglichen Ausführungsform erfolgt beim Aufruf einer mit einer Sicherheitslücke bzw. einer Implementierungslücke behafteten ausführbaren Programmdatei eine Warnmeldung. Die Programmdatei wird dann entsprechend einer vorgenommenen Be¬ nutzereingabe behandelt. Dabei kann die Eingabe eines Admi¬ nistrationspasswortes seitens des Systems 1 verlangt werden. In one possible embodiment, a warning message is issued when a vulnerable executable program file is called with a security gap or an implementation gap. The program file is then treated according to a study done Be ¬ user input. The input of a Admi ¬ nistrationspasswortes may be required on the part of the system. 1
Bei dem erfindungsgemäßen System 1 wird eine mit einer Sicherheitslücke behaftete ausführbare Programmdatei in einer kontrollierten Ausführungsumgebung, die durch eine virtuelle Maschine bereitgestellt wird, ausgeführt. Dies erfolgt bei einer möglichen Ausführungsform des erfindungsgemäßen Systems 1 automatisch. Bei einer alternativen Ausführungsform erfolgt die Ausführung der mit einer Sicherheitslücke behafteten ausführbaren Programmdatei in der kontrollierten Ausführungsumgebung erst nach entsprechender Bestätigung durch einen Nut- In the inventive system 1, a vulnerable executable program file is executed in a controlled execution environment provided by a virtual machine. This is done at a possible embodiment of the system 1 according to the invention automatically. In an alternative embodiment, execution of the vulnerable executable program file in the controlled execution environment occurs only after appropriate confirmation by a user agent.
Bei einer möglichen Ausführungsform weist der Rechner 2 verschiedene virtuelle Maschinen VM auf. Bei einer Variante er¬ folgt die Auswahl der virtuellen Maschine VM in Abhängigkeit davon, welche Art von bekannten Sicherheits- bzw. Implementierungslücken bei der geprüften Programmdatei detektiert bzw. erkannt werden. Bei einer möglichen Ausführungsform ergeben zu der Programmdatei zugehörige Dateiattribute die An¬ zahl an Typen der Sicherheitslücken bzw. Implementierungslücken der jeweiligen Programmdatei an. In one possible embodiment, the computer 2 comprises different virtual machines VM. In a variant he ¬ follows the selection of the virtual machine VM depending on what kind of known security or implementation gaps detected in the checked program file or detected. In a possible embodiment, associated file attributes result to the program file to the at ¬ number of types of security breaches or gaps of the respective implementation program file.
Bei einer möglichen Ausführungsform wird die mit einer bekannten Sicherheitslücke behaftete Programmdatei von einem Programm geöffnet, das bereits ausgeführt wird. Beispielswei¬ se kann von einem Anwendungsprogramm eine DLL-Datei bzw. Programmdatei nachgeladen werden. In diesem Fall kann das Ausführen der nachgeladenen Datei in einer virtuellen Maschine VM eventuell nicht möglich sein. Es wird stattdessen untersucht, ob das laufende Programm nativ oder in einer virtuel¬ len Maschine VM ausgeführt wird. In Abhängigkeit davon kann das Laden der Programmdatei DLL gestartet oder unterbunden werden . In one possible embodiment, the program file, which has a known security vulnerability, is opened by a program that is already running. For example, an application program can load a DLL file or program file. In this case, running the reloaded file in a virtual machine VM may not be possible. It is examined instead whether the current program is run natively or in a virtuel ¬ len machine VM. Depending on this, the loading of the program file DLL can be started or stopped.
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems 1 können Zugriffsrechte auf eine Programmdatei in Ab¬ hängigkeit von dem Prüfergebnis erweitert werden. Bei einer möglichen Ausführungsform weist die Programmdatei ein Datei¬ attribut auf, welches angibt, auf welche Art und Weise die Programmdatei ausgeführt werden darf, das heißt nativ oder nur in einer eingeschränkten Ausführungsumgebung auf einer virtuellen Maschine VM oder sogar in einer bestimmten eingeschränkten Ausführungsumgebung, die durch eine bestimmte vor- gegebene virtuelle Maschine VM bereitgestellt wird. Bei einer möglichen Ausführungsform kann ein Administrator bei einer Programmdatei, bei der eine Sicherheitslücke bzw. Implemen¬ tierungslücke erkannt worden ist, durch Setzen von einem oder mehreren Attributen festlegen, dass diese Programmdatei nur in einer virtuellen Maschine VM ausführbar ist. In one possible embodiment of the system 1 of the invention access rights can be extended to a program file in from ¬ dependence of the test result. In one possible embodiment, the program file includes a file ¬ attribute which indicates on which way the program file may be performed, that is native or only in a restricted execution environment on a virtual machine VM, or even in a certain limited execution environment by a given given virtual machine VM is provided. In one possible embodiment, an administrator can in a program file in which a vulnerability or implementa ¬ tierungslücke has been recognized, by setting one or more attributes specify that this program file is executable only in a virtual machine VM.
Das erfindungsgemäße System 1 wird insbesondere das Sicher¬ heitsrisiko, welches durch vorhandene, veraltete und damit angreifbare Programmcodedateien hervorgerufen wird, signifikant vermindert. Dieser zusätzliche Schutz durch das erfin¬ dungsgemäße System und Verfahren zum kontrollierten Ausführen einer Programmdatei auf einem Rechner 2 greift auch für Pro¬ grammdateien, die irgendwo auf dem Dateisystem gespeichert sind, beispielsweise für eigentlich nicht mehr benötigte DLL- Dateien, die nach einer Deinstallation oder einem Programmupdate erhalten geblieben sind. The system 1 according to the invention is in particular the significantly reduced secure ¬ standardized risk, which is caused by existing aging and thus vulnerable program code files. This additional protection through the OF INVENTION ¬ dung-date system and method for controlled run a program file on a computer 2 accesses for Pro ¬ program files that are stored anywhere on the file system, for example, actually unneeded DLL files after uninstalling or a program update have been preserved.
Fig. 2 zeigt ein Ablaufdiagramm bzw. Darstellung einer mögli- chen Ausführungsform des erfindungsgemäßen Verfahrens zum kontrollierten Ausführen einer Programmdatei auf einem Rechner 2. Nach einem Startschritt Sl wird die Programmdatei im Schritt S2 zu ihrer Ausführung geöffnet. Hierzu muss es sich um eine ausführbare Programmdatei (.exe) handeln. In einem weiteren Schritt S3 wird die Programmdatei hinsichtlich des2 shows a flow chart or representation of a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer 2. After a start step S1, the program file is opened in step S2 for its execution. This must be an executable program file (.exe). In a further step S3, the program file is compared with respect to
Bestehens einer Sicherheitslücke oder einer Implementierungs¬ lücke geprüft bzw. analysiert. Dies kann erfolgen, indem ein Code der Programmdatei zur Erkennung eines für eine Sicher¬ heitslücke bekannten Musters analysiert wird. Weiterhin kann die Prüfung im Schritt S3 erfolgen, indem die Programmdatei testweise mit für eine Sicherheitslücke bekannten Parameter¬ werten ausgeführt wird. Eine weitere Möglichkeit für die Prü¬ fung der Programmdatei im Schritt S3 besteht darin, dass in einer Datenbank gesucht wird, ob für die jeweilige Programm- datei eine Sicherheits- bzw. Implementierungslücke in der Da¬ tenbank eingetragen ist. In einem weiteren Schritt S4 wird nach Abschluss der Prüfung entschieden, ob eine Sicherheits¬ bzw. Implementierungslücke in der Programmdatei vorhanden ist. Weist die geprüfte Programmdatei keine Sicherheitslücke auf, kann die Programmdatei im Schritt S5 nativ, das heißt ohne ein Einsatz einer virtuellen Maschine VM unter direkter Kontrolle des Betriebssystems des Host-Rechners 2 (H-OS) aus- geführt werden. Wird umgekehrt für die analysierte Programm¬ datei eine Sicherheits- bzw. Implementierungslücke erkannt, wird in einem Schritt S6 die virtuelle Maschine VM bzw. Sand¬ box gestartet. Die Ausführung der Programmdatei erfolgt dann in Schritt S7 in der durch die virtuelle Maschine VM bereit- gestellten eingeschränkten Ausführungsumgebung. Der Vorgang endet im Schritt S8. Der in Fig. 2 dargestellte Vorgang zeigt einen grundsätzlichen Ablauf des erfindungsgemäßen Verfahrens . Existence of a vulnerability or a complete implementation ¬ checked or analyzed. This can be done by a code of the program file to detect a known for a Safe ¬ uniform gap pattern is analyzed. Furthermore, the test at step S3 can be performed by the program file is executed for test purposes with known for a vulnerability parameter ¬ values. A further possibility for the checking ¬ Fung the program file in step S3 is that is searched in a database to determine whether a safety or implementation gap Since ¬ tenbank entered into the for the respective program file. In a further step S4 it is judged after the completion of checking whether a security ¬ or implementation gap exists in the program file is. If the tested program file has no security vulnerability, the program file can be executed natively in step S5, that is to say without the use of a virtual machine VM under direct control of the operating system of the host computer 2 (H-OS). Is reversed for the analyzed program file ¬ a safety or implementation gap detected in a step S6, the virtual machine VM or sand ¬ box is started. Execution of the program file then takes place in step S7 in the restricted execution environment provided by the virtual machine VM. The process ends in step S8. The process shown in Fig. 2 shows a basic sequence of the method according to the invention.
Fig. 3 zeigt ein weiteres Ausführungsbeispiel des erfindungs- gemäßen Verfahrens zum kontrollierten Ausführen einer Programmdatei auf einem Rechner 2. Nach einem Startschritt Sl wird im Schritt S2 die Programmdatei zunächst geöffnet. In einem weiteren Schritt S3 wird geprüft, ob die geöffnete Pro¬ grammdatei ausführbar ist. Dies kann beispielsweise mittels eines Dateiattributs der Programmdatei festgestellt werden. Wenn die Programmdatei ausführbar ist, erfolgt in einem 3 shows a further exemplary embodiment of the method according to the invention for the controlled execution of a program file on a computer 2. After a start step S1, the program file is first opened in step S2. In a further step S3, it is checked whether the open Pro ¬ executable program file. This can be determined, for example, by means of a file attribute of the program file. If the program file is executable, takes place in one
Schritt S4 eine Analyse der Programmdatei, das heißt es wird geprüft, ob die Programmdatei eine Sicherheits- oder Imple¬ mentierungslücke aufweist. In einem weiteren Schritt S5 wird festgestellt, ob die analysierte Programmdatei eine Si¬ cherheits- bzw. Implementierungslücke hat. Ist dies der Fall, kann in einem weiteren Schritt S6 ein Dateiattribut "Execute" der Programmdatei, welches angibt, dass die Programmdatei ausführbar ist, gelöscht bzw. zurückgesetzt werden. Auf diese Weise wird verhindert, dass die Programmdatei zukünftig nativ ausführbar ist. In einem weiteren Schritt S7 kann ein Dateiattribut der Programmdatei gesetzt werden, welches angibt, dass diese Programmdatei in Zukunft in einer eingeschränkten Ausführungsumgebung, welche durch eine virtuelle Maschine VM bereitgestellt wird, auszuführen ist. Der Vorgang endet im Schritt S8. Fig. 4 zeigt ein weiteres Ablaufdiagramm zur Darstellung einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens zum kontrollierten Ausführen einer Programmdatei auf einem Rechner 2. Step S4 an analysis of the program file, that is, it is checked whether the program file has a security or Imple ¬ mentierungslücke. In a further step S5, it is determined whether the analyzed program file has a Si ¬ cherheits- or implementation gap. If this is the case, in a further step S6, a file attribute "Execute" of the program file, which indicates that the program file is executable, can be deleted or reset. This prevents the program file from being natively executable in the future. In a further step S7, a file attribute of the program file can be set, which indicates that this program file is to be executed in the future in a restricted execution environment provided by a virtual machine VM. The process ends in step S8. 4 shows a further flow chart for illustrating a possible embodiment of the method according to the invention for the controlled execution of a program file on a computer 2.
Nach einem Startschritt Sl wird in einem Schritt S2 die Pro¬ grammdatei zu ihrer Ausführung geöffnet. In einem weiteren Schritt S3 werden die Dateiattribute der Programmdatei ausge¬ lesen. Bei einem weiteren Schritt S4 wird geprüft, ob ein Da- teiattribut der Programmdatei angibt, ob die zugehörige Pro¬ grammdatei nativ auszuführen ist oder in einer eingeschränkten Ausführungsumgebung. Gibt das Dateiattribut an, dass die Programmdatei nativ ausführbar ist, wird sie im Schritt S5 nativ unter direkter Kontrolle des Betriebssystems H-OS des Host-Rechners 2 ausgeführt. Gibt umgekehrt das Dateiattribut der geprüften Programmdatei an, dass sie nicht nativ ausführbar ist, wird in einem Schritt S6 geprüft, ob die Programmda¬ tei in einer eingeschränkten Ausführungsumgebung ausgeführt werden kann. Ist dies der Fall, wird in einem Schritt S7 eine virtuelle Maschine VM bzw. eine Sandbox gestartet und dieAfter a starting step Sl the Pro ¬ program file is opened for their execution, in a step S2. In a further step S3 the file attributes of the program file to be read ¬. In a further step S4, the program file, it is checked whether a DA teiattribut indicating whether the associated Pro ¬ program file to be executed natively or in a restricted execution environment. If the file attribute indicates that the program file is natively executable, it is executed natively under step S5 under direct control of the operating system H-OS of the host computer 2. Is reversed the file attribute of the tested program file that is not natively executable, it is checked in step S6 whether the Programmda ¬ tei can be carried out in a restricted execution environment. If this is the case, in a step S7, a virtual machine VM or a sandbox is started and the
Programmdatei anschließend in einem Schritt S8 in einer ein¬ geschränkten Ausführungsumgebung, welche durch die gestartete virtuelle Maschine VM bereitgestellt wird, ausgeführt. Der Vorgang endet im Schritt S9. Program file then in a step S8 in a ¬ geschränkten execution environment which is provided by the started virtual machine VM running. The process ends in step S9.

Claims

Patentansprüche claims
1. System (1) zur kontrollierten Ausführung mindestens einer Programmdatei auf einem Rechner (2), 1. System (1) for the controlled execution of at least one program file on a computer (2),
wobei die Programmdatei in einer eingeschränkten Ausführungsumgebung, welche durch eine auf dem Rechner (2) verfügbare virtuelle Maschine (VM) bereitgestellt wird, aus¬ geführt wird, sofern durch eine Prüfung der jeweiligen Programmdatei festgestellt wird, dass die Programmdatei eine Sicherheitslücke, welche die Integrität des Rechners (2) beeinträchtigt, oder eine Implementierungslücke auf¬ weist. wherein the program file in a limited execution environment, which is provided by a on the computer (2) available virtual machine (VM) is out of ¬ out, if it is determined by a check of the respective program file that the program file a security gap, the integrity of the computer (2) is impaired or has an implementation gap .
2. System nach Anspruch 1, 2. System according to claim 1,
wobei die Prüfung der Programmdatei erfolgt, indem ein Code der Programmdatei zur Erkennung eines für eine Si¬ cherheitslücke oder Implementierungslücke bekannten Mus¬ ters analysiert wird. wherein the testing of the program file is performed by a code of the program file for the detection of a known for a Si ¬ cherheitslücke or implementation gap Mus ¬ ters is analyzed.
3. System nach Anspruch 1, 3. System according to claim 1,
wobei die Prüfung der Programmdatei erfolgt, indem die Programmdatei mit für eine Sicherheitslücke oder Imple¬ mentierungslücke bekannten Parameterwerten testweise aus¬ geführt wird. wherein the examination of the program file is carried out by the program file with test parameters known for a security gap or Imple ¬ mentierungslücke parameter values ¬ out.
4. System nach Anspruch 1, 4. System according to claim 1,
wobei die Prüfung der Pogrammdatei erfolgt, indem in ei¬ ner Datenbank gesucht wird, ob für die Programmdatei eine Sicherheitslücke oder Implementierungslücke eingetragen ist . wherein the examination of the Pogrammdatei takes place by looking in ei ¬ ner database, whether a security vulnerability or implementation gap is entered for the program file.
5. System nach Ansprüchen 1-4, 5. System according to claims 1-4,
wobei die virtuelle Maschine, (VM) eine VM-Ware, eine Ja¬ va-Virtuelle Maschine, eine Common-Language-Runtime- Virtuelle Maschine, eine Virtual-BOX, eine Virtual-PC oder eine Sandboxie-Virtuelle Maschine ist. wherein the virtual machine, (VM) is a VM-Ware, a Yes ¬ va-Virtual Machine, a Common Language Runtime-Virtual Machine, a Virtual-BOX, a Virtual-PC or a Sandboxie-Virtual Machine.
6. System nach Ansprüchen 1-5, wobei die Programmdatei in einem lokalen Speicher des Rechners (2) gespeichert ist oder von dem Rechner (2) über eine Schnittstelle des Rechners (2) eingelesen wird. 6. System according to claims 1-5, wherein the program file is stored in a local memory of the computer (2) or read by the computer (2) via an interface of the computer (2).
System nach Ansprüchen 1-6, System according to claims 1-6,
wobei die Programmdatei periodisch in vorgegebenen Zeit¬ abständen, nach Anforderung durch einen Nutzer beim Öffnen der Programmdatei oder beim Ausführen der Programmdatei hinsichtlich des Bestehens einer Sicherheitslücke oder Implementierungslücke geprüft wird. wherein the program file is checked periodically at predetermined time intervals ¬, as required by a user when opening the program file or when executing the program file as to the existence of a vulnerability or implementation gap.
System nach Ansprüchen 1-7, System according to claims 1-7,
wobei die Programmdatei mindestens ein Dateiattribut auf¬ weist, welches angibt, ob die Programmdatei eine Sicher¬ heitslücke oder Implementierungslücke aufweist. wherein the program file includes at least a file attribute on ¬, which indicates whether the program file ¬ a secure uniform void or gap having implementation.
System nach Anspruch 8, System according to claim 8,
wobei Dateiattribute die Anzahl und Typen der Sicher¬ heitslücken oder Implementierungslücke der Programmdatei angeben . said file attributes specify the number and type of secure ¬ uniform gaps or gap implementation of the program file.
System nach Ansprüchen 1-9, System according to claims 1-9,
wobei die Einschränkung der Ausführungsumgebung auf der virtuellen Maschine (VM) entsprechend einer Einschrän- kungs-Policy erfolgt. wherein the constraint on the execution environment on the virtual machine (VM) is according to a throttling policy.
System nach Anspruch 10, System according to claim 10,
wobei die Einschränkungs-Policy in Abhängigkeit von der in Dateiattributen der Programmdatei angegebenen Anzahl und Typen von Sicherheitslücken und Implementierungslücke selektiert wird. wherein the restriction policy is selected according to the number and types of vulnerabilities and implementation gaps specified in file attributes of the program file.
System nach Ansprüchen 1-11, System according to claims 1-11,
wobei eine Sicherheitslücke für die Integrität des Rech¬ ners (2) festgestellt wird, wenn die Programmdatei eine Manipulation einer Betriebssystemdatei, einer Konfigura¬ tionsdatei oder einer Nutzerdatei bewirkt oder ermög¬ licht . wherein a security breach of the integrity of the computing ¬ former (2) is detected when the program file causes a manipulation of an operating system file, a configura tion ¬ file or a user file or made ¬ light.
System nach Ansprüchen 1-12, System according to claims 1-12,
wobei die Prüfung der Programmdatei hinsichtlich des Be¬ stehens einer Sicherheitslücke oder Implementierungslücke lokal durch den Rechner (2) erfolgt oder entfernt durch einen an den Rechner (2) über ein Netzwerk angeschlossenen Server. wherein the examination of the program file with respect to the Be ¬ standing a security gap or implementation gap locally by the computer (2) takes place or removed by a to the computer (2) connected via a network server.
14. System nach Ansprüchen 1-13, 14. System according to claims 1-13,
wobei nach Feststellung einer Sicherheitslücke oder Implementierungslücke der Programmdatei ein entsprechender Log-Eintrag für einen Systemadministrator des Systems (1) erfolgt und/oder ein Warnhinweis für einen Nutzer des Rechners (2) erzeugt wird.  wherein after detection of a security gap or implementation gap of the program file, a corresponding log entry for a system administrator of the system (1) takes place and / or a warning for a user of the computer (2) is generated.
15. Verfahren zum kontrollierten Ausführen einer Programmdatei auf einem Rechner (2), 15. Method for the controlled execution of a program file on a computer (2),
wobei die Programmdatei in einer eingeschränkten Ausführungsumgebung, welche durch eine auf dem Rechner (2) verfügbare virtuelle Maschine (VM) bereitgestellt wird, aus¬ geführt wird, sofern durch eine Prüfung der jeweiligen Programmdatei festgestellt wird, dass die Programmdatei eine Sicherheitslücke, welche die Integrität des Rechners (2) beeinträchtigt, oder eine Implementierungslücke auf¬ weist. wherein the program file in a limited execution environment, which is provided by a on the computer (2) available virtual machine (VM) is out of ¬ out, if it is determined by a check of the respective program file that the program file a security gap, the integrity of the computer (2) is impaired or has an implementation gap .
PCT/EP2011/052205 2010-03-17 2011-02-15 System and method for the controlled execution of a program file on a computer WO2011113656A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010011654.8 2010-03-17
DE201010011654 DE102010011654A1 (en) 2010-03-17 2010-03-17 System and method for the controlled execution of a program file on a computer

Publications (1)

Publication Number Publication Date
WO2011113656A1 true WO2011113656A1 (en) 2011-09-22

Family

ID=43797661

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/052205 WO2011113656A1 (en) 2010-03-17 2011-02-15 System and method for the controlled execution of a program file on a computer

Country Status (2)

Country Link
DE (1) DE102010011654A1 (en)
WO (1) WO2011113656A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243881A1 (en) * 2003-05-30 2004-12-02 Sun Microsystems, Inc. Framework to facilitate Java testing in a security constrained environment
WO2005116797A1 (en) * 2004-05-19 2005-12-08 Computer Associates Think, Inc. Method and system for isolating suspicious email
US20060174223A1 (en) * 2004-09-30 2006-08-03 Muir Jeffrey D Method and environment for associating an application with an isolation environment
WO2009093768A1 (en) * 2008-01-25 2009-07-30 Fasoo. Com Co., Ltd System and method for preventing drm client crash using process separate execution
US20090241194A1 (en) * 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243881A1 (en) * 2003-05-30 2004-12-02 Sun Microsystems, Inc. Framework to facilitate Java testing in a security constrained environment
WO2005116797A1 (en) * 2004-05-19 2005-12-08 Computer Associates Think, Inc. Method and system for isolating suspicious email
US20060174223A1 (en) * 2004-09-30 2006-08-03 Muir Jeffrey D Method and environment for associating an application with an isolation environment
WO2009093768A1 (en) * 2008-01-25 2009-07-30 Fasoo. Com Co., Ltd System and method for preventing drm client crash using process separate execution
US20090241194A1 (en) * 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines

Also Published As

Publication number Publication date
DE102010011654A1 (en) 2011-09-22

Similar Documents

Publication Publication Date Title
DE69523029T2 (en) Bytec code program interpreter, method and arrangement with pre-checking of data type restrictions
DE112012000512T5 (en) Updating software
EP4187417B1 (en) Detecting a deviation of a safety state of a computing device from a desired safety state
EP3274825A1 (en) Method and execution environment for the secure execution of program instructions
EP2642395B1 (en) Method and apparatus for executing work flow scripts
KR20110052579A (en) A method and system for improvements in or relating to off-line virtual environments
DE112013002012B4 (en) Method of detecting malware in an operating system kernel
EP3095065B1 (en) Device and method for detecting a manipulation to a program code
EP3752911A1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
WO2011113656A1 (en) System and method for the controlled execution of a program file on a computer
EP4154139B1 (en) Extended integrity monitoring of a container image
EP3074862B1 (en) Method for a secure boot-up process of an electronic system
DE102021114574A1 (en) COMPUTER PROGRAM TRUST ASSURANCE FOR INTERNET OF THINGS (IOT) DEVICES
EP3872661A1 (en) Analysis of a container instance of an operating system
EP3072080B1 (en) Method and device for protecting a computing apparatus against manipulation
WO2009077271A1 (en) Method for identifying reciprocal influencing of software components
WO2023180083A1 (en) Method for securely operating a software component
EP4312137A1 (en) Authorization for installing and / or launching a second application program
DE102014203164A1 (en) Analysis system and method for dynamically configuring an analysis system
EP4187423A1 (en) Enforcement of integrity conditions of a first container-based application
EP4396715A1 (en) Automatic analysis of the exploitability of vulnerabilities of a software image
DE102022210264A1 (en) Method for detecting potential data exfiltration attacks in at least one software package
WO2024175305A1 (en) Method and system for checking modifications to be carried out on the system runtime environment during the installation process
EP4413455A1 (en) Method for starting up program packets in vehicles
DE202023100276U1 (en) A software backup system for runtime environments

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11705190

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11705190

Country of ref document: EP

Kind code of ref document: A1