Handling instruction received from a sandboxed thread of execution
First Claim
1. A method performed in a computer system, the method comprising:
- enabling a secure environment in the computer system for executing a thread comprising a plurality of instructions, wherein;
an application executing on the computer system generates the thread and initiates execution of the thread in the secure environment; and
the computer system is configured to redirect the execution of the plurality of instructions from an operating system kernel to the secure environment;
receiving an instruction from the thread;
determining whether the instruction includes a call into the operating system kernel, the instruction being one of an interrupt instruction, a system call instruction, or a system enter instruction;
in response to determining that the instruction is one of the interrupt instruction, the system call instruction, or the system enter instruction, determining that the instruction need not be executed in the secure environment; and
in response to determining that the instruction need not be executed in the secure environment;
eliminating the redirection of the execution of the instruction to the secure environment,modifying a stack to specify return of control for the thread when the execution of the instruction is completed, andpassing the control for the thread to the operating system kernel for execution of the instruction.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for enveloping a thread of execution within an IDT-based secure sandbox. In one aspect, embodiments of the invention provide a method performed in a computer system, the method receiving an instruction from an execution thread where the computer system can be configured for redirection of instructions from the execution thread. The method can determine whether the instruction includes at least one of an interrupt instruction, a system call instruction and a system enter instruction. In response to determining that the instruction includes at least one of the interrupt instruction, the system call instruction and the system enter instruction, the method can further: (i) eliminate the redirection, (ii) modify a stack to specify return of control, and (iii) thereafter, pass the control to an operating system kernel.
51 Citations
18 Claims
-
1. A method performed in a computer system, the method comprising:
-
enabling a secure environment in the computer system for executing a thread comprising a plurality of instructions, wherein; an application executing on the computer system generates the thread and initiates execution of the thread in the secure environment; and the computer system is configured to redirect the execution of the plurality of instructions from an operating system kernel to the secure environment; receiving an instruction from the thread; determining whether the instruction includes a call into the operating system kernel, the instruction being one of an interrupt instruction, a system call instruction, or a system enter instruction; in response to determining that the instruction is one of the interrupt instruction, the system call instruction, or the system enter instruction, determining that the instruction need not be executed in the secure environment; and in response to determining that the instruction need not be executed in the secure environment; eliminating the redirection of the execution of the instruction to the secure environment, modifying a stack to specify return of control for the thread when the execution of the instruction is completed, and passing the control for the thread to the operating system kernel for execution of the instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by a computing apparatus causes the computing apparatus to perform operations comprising:
-
enabling a secure environment in the computer system for executing a thread comprising a plurality of instructions, wherein; an application executing on the computer system generates the thread and initiates execution of the thread in the secure environment; and the computer system is configured to redirect the execution of the plurality of instructions from an operating system kernel to the secure environment; receiving an instruction from the thread; determining whether the instruction includes a call into the operating system kernel, the instruction being one of an interrupt instruction, a system call instruction, or a system enter instruction; in response to determining that the instruction is one of the interrupt instruction, the system call instruction, or the system enter instruction, determining that the instruction need not be executed in the secure environment; and in response to determining that the instruction need not be executed in the secure environment; eliminating the redirection of the execution of the instruction to the secure environment, modifying a stack to specify return of control for the thread when the execution of the instruction is completed, and passing the control for the thread to the operating system kernel for execution of the instruction. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a processor; and a computer readable storage device having stored therein; a client application that, when executing on the system, generates a thread comprising a plurality of instructions, initiates execution of the thread in a secure environment, and sends an instruction from the thread; an operating system kernel; a device driver that receives the instruction from the thread, and enables the secure environment, wherein the system is configured to redirect the execution of the instruction from the operating system kernel to the secure environment; and a stack; wherein the device driver; determines whether the instruction includes a call into the operating system kernel, the instruction being one of an interrupt instruction, a system call instruction, or a system enter instruction, in response to determining that the instruction is one of the interrupt instruction, the system call instruction, or the system enter instruction, determines that the instruction need not be executed in the secure environment, and in response to determining that the instruction need not be executed in the secure environment; eliminates the redirection of the execution of the instruction to the secure environment, modifies the stack to specify return of control for the thread when the execution of the instruction is completed, and passes the control for the thread to the operating system kernel for execution of the instruction. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification