Vladimir L. Kiriansky - Mountain View CA, US Derek L. Bruening - Cambridge MA, US Saman P. Amarasinghe - Waltham MA, US
Assignee:
Massachusetts Institute of Technology - Cambridge MA
International Classification:
G06F 21/00
US Classification:
713166, 726 17
Abstract:
Hijacking of an application is prevented by monitoring control flow transfers during program execution in order to enforce a security policy. At least three basic techniques are used. The first technique, Restricted Code Origins (RCO), can restrict execution privileges on the basis of the origins of instruction executed. This distinction can ensure that malicious code masquerading as data is never executed, thwarting a large class of security attacks. The second technique, Restricted Control Transfers (RCT), can restrict control transfers based on instruction type, source, and target. The third technique, Un-Circumventable Sandboxing (UCS), guarantees that sandboxing checks around any program operation will never be bypassed.
Secure Execution Of A Computer Program Using A Code Cache
Derek L. Bruening - Cambridge MA, US Vladimir L. Kiriansky - Mountain View CA, US Saman P. Amarasinghe - Waltham MS, US
Assignee:
Massachusetts Institute of Technology - Cambridge MA
International Classification:
G06F 11/00
US Classification:
726 22, 726 23
Abstract:
Hijacking of an application is prevented by monitoring control flow transfers during program execution in order to enforce a security policy. At least three basic techniques are used. The first technique, Restricted Code Origins (RCO), can restrict execution privileges on the basis of the origins of instruction executed. This distinction can ensure that malicious code masquerading as data is never executed, thwarting a large class of security attacks. The second technique, Restricted Control Transfers (RCT), can restrict control transfers based on instruction type, source, and target. The third technique, Un-Circumventable Sandboxing (UCS), guarantees that sandboxing checks around any program operation will never be bypassed.
0-Touch And 1-Touch Techniques For Improving The Availability Of Computer Programs Under Protection Without Compromising Security
Srinivas Mantripragada - Cupertino CA, US Tim Garnett - Boston MA, US Derek Bruening - Troy NY, US Vladimir Kiriansky - Cambridge MA, US Bharath Chandramohan - Sunnyvale CA, US James Brink - Oakland CA, US Saman P. Amarasinghe - Waltham MA, US Sandy Wilbourn - Palo Alto CA, US
Assignee:
VMware, Inc. - Palo Alto CA
International Classification:
G06F 12/14
US Classification:
726 22, 713166
Abstract:
Protected software, such as an application and/or DLL, is monitored by protective software to guard against attacks, while distinguishing spurious, benign events from attacks. In a 1-touch approach, the protected software is monitored in a testing environment to detect spurious, benign events caused by, e. g. , incompatibility or interoperability problems. The spurious events can be remediated in different ways, such as by applying a relaxed security policy. In a production mode, or 0-touch mode, when the protected software is subject to attacks, the corresponding remediation can be applied when the spurious events are again detected. Security events which occur in production mode can also be treated as benign when they occur within a specified time window. The applications and/or DLLs can further be classified according to whether they are known to have bad properties, known to be well-behaved, or unknown. Appropriate treatment is provided based on the classification.
Adaptive Cache Sizing By Utilizing Regenerative Entries
Derek L. Bruening - Troy NY, US Saman P. Amarasinghe - Waltham MA, US
Assignee:
Massachusetts Institute of Technology - Cambridge MA
International Classification:
G06F 12/00
US Classification:
711129, 711133, 711170
Abstract:
A runtime code manipulation system is provided that supports code transformations on a program while it executes. The runtime code manipulation system uses code caching technology to provide efficient and comprehensive manipulation of an application running on an operating system and hardware. The code cache includes a system for automatically keeping the code cache at an appropriate size for the current working set of an application running.
Vladimir L. Kiriansky - Mountain View CA, US Derek L. Bruening - Troy NY, US Saman P. Amarasinghe - Saltham MA, US
Assignee:
Massachusetts Institute of Technology - Cambridge MA
International Classification:
G06F 21/00
US Classification:
713166, 726 17
Abstract:
Hijacking of an application is prevented by securing execution of a computer program on a computing system. Prior to execution of the computer program, the computer program is analyzed to identify permitted targets of all indirect transfers. An application-specific policy based on the permitted targets is created. When the program is executed on the computing system, the application-specific policy is enforced such that the program is prohibited from executing indirect transfer instructions that do not target one of the permitted targets.
Constraint Injection System For Immunizing Software Programs Against Vulnerabilities And Attacks
Saman P. Amarasinghe - Waltham MA, US Bharath Chandramohan - Sunnyvale CA, US Charles Renert - Winchester MA, US Derek L. Bruening - Troy NY, US Vladimir L. Kiriansky - Cambridge MA, US Tim Garnett - Boston MA, US Sandy Wilbourn - Palo Alto CA, US Warren Wu - Los Altos CA, US
Assignee:
VMware, Inc. - Palo Alto CA
International Classification:
G06F 11/00
US Classification:
726 25, 726 22
Abstract:
A constraint is inserted into a program to address a vulnerability of the program to attacks. The constraint includes a segment of code that determines when the program has been asked to execute a “corner case” which does not occur in normal operations. The constraint code can access a library of detector and remediator functions to detect various attacks and remediate against them. Optionally, the detector can be employed without the remediator for analysis. The context of the program can be saved and restored if necessary to continue operating after remediation is performed. The constraints can include descriptors, along with machine instructions or byte code, which indicate how the constraints are to be used.
0-Touch And 1-Touch Techniques For Improving The Availability Of Computer Programs Under Protection Without Compromising Security
Srinivas Mantripragada - Cupertino CA, US Timothy Garnett - Boston MA, US Derek L. Bruening - Troy NY, US Vladimir Kiriansky - Mountain View CA, US Bharath Chandramohan - Santa Clara CA, US James Brink - Oakland CA, US Saman P. Amarasinghe - Waltham MA, US Sandy Wilbourn - Palo Alto CA, US
Assignee:
VMware, Inc. - Palo Alto CA
International Classification:
G06F 12/14
US Classification:
726 22, 713166
Abstract:
Protected software, such as an application and/or DLL, is monitored by protective software to guard against attacks, while distinguishing spurious, benign events from attacks. In a 1-touch approach, the protected software is monitored in a testing environment to detect spurious, benign events caused by, e. g. , incompatibility or interoperability problems. The spurious events can be remediated in different ways, such as by applying a relaxed security policy. In a production mode, or 0-touch mode, when the protected software is subject to attacks, the corresponding remediation can be applied when the spurious events are again detected. Security events which occur in production mode can also be treated as benign when they occur within a specified time window. The applications and/or DLLs can further be classified according to whether they are known to have bad properties, known to be well-behaved, or unknown. Appropriate treatment is provided based on the classification.
Derek Bruening - Troy NY, US Vladimir L. Kiriansky - Alameda CA, US
Assignee:
VMware, Inc. - Palo CA
International Classification:
G06F 9/45
US Classification:
717151
Abstract:
Computer code from an application program comprising a plurality of modules that each comprise a separately loadable file is code cached in a shared and persistent caching system. A shared code caching engine receives native code comprising at least a portion of a single module of the application program, and stores runtime data corresponding to the native code in a cache data file in the non-volatile memory. The engine then converts cache data file into a code cache file and enables the code cache file to be pre-loaded as a runtime code cache. These steps are repeated to store a plurality of separate code cache files at different locations in non-volatile memory.
Vmware Aug 2007 - Nov 2010
Staff Engineer
Google Aug 2007 - Nov 2010
Software Engineer
Determina May 2003 - Aug 2007
Founder and Chief Scientist
Hewlett-Packard Jun 2000 - Aug 2001
Summer Research Intern
Education:
Massachusetts Institute of Technology 1994 - 2004
Doctorates, Bachelors, Masters, Doctor of Philosophy, Master of Engineering, Bachelor of Science, Computer Science
Skyline High School 1991 - 1994
Google since Nov 2010
Software Engineer
VMware Aug 2007 - Nov 2010
Staff Engineer
Determina May 2003 - Aug 2007
Founder and Chief Scientist
Hewlett-Packard Laboratories Jun 2000 - Aug 2001
Summer Research Intern
Education:
Massachusetts Institute of Technology 1994 - 2004
PhD, MEng, BS, Computer Science
Skyline High School 1991 - 1994