Patents by Inventor Derek Bruening
Derek Bruening has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10318256Abstract: 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.Type: GrantFiled: November 27, 2012Date of Patent: June 11, 2019Assignee: VMware, Inc.Inventors: Derek Bruening, Vladimir L. Kiriansky
-
Patent number: 8762797Abstract: Detecting a fault in the operation of a computer having a processor and a memory is taught. Instrumentation code is placed within an application program during compilation, and runtime library routines are modified to support detection of invalid memory accesses. Memory space is divided into application, shadow and unmapped memories. When accessing application memory at an original address, an address in shadow memory is computed by shifting the address and adding an offset. If the value stored at the shadow address indicates that the original address is invalid (e.g., not allocated or already freed), then error reporting code is executed that indicates the type of error and the location and optionally halts the computer. Invalid memory references to heap, stack and global objects in application memory can be detected.Type: GrantFiled: April 23, 2012Date of Patent: June 24, 2014Assignee: Google Inc.Inventors: Konstantin Serebryany, Derek Bruening
-
Patent number: 8321850Abstract: 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.Type: GrantFiled: June 6, 2008Date of Patent: November 27, 2012Assignee: VMware, Inc.Inventors: Derek Bruening, Vladimir L. Kiriansky
-
Publication number: 20120278665Abstract: Detecting a fault in the operation of a computer having a processor and a memory is taught. Instrumentation code is placed within an application program during compilation, and runtime library routines are modified to support detection of invalid memory accesses. Memory space is divided into application, shadow and unmapped memories. When accessing application memory at an original address, an address in shadow memory is computed by shifting the address and adding an offset. If the value stored at the shadow address indicates that the original address is invalid (e.g., not allocated or already freed), then error reporting code is executed that indicates the type of error and the location and optionally halts the computer. Invalid memory references to heap, stack and global objects in application memory can be detected.Type: ApplicationFiled: April 23, 2012Publication date: November 1, 2012Applicant: GOOGLE INC.Inventors: Konstantin Serebryany, Derek Bruening
-
Publication number: 20100205669Abstract: 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.Type: ApplicationFiled: April 21, 2010Publication date: August 12, 2010Applicant: VMWARE, INC.Inventors: Srinivas MANTRIPRAGADA, Tim GARNETT, Derek BRUENING, Vladimir KIRIANSKY, Bharath CHANDRAMOHAN, James BRINK, Saman P. AMARASINGHE, Sandy WILBOURN
-
Patent number: 7735136Abstract: 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.Type: GrantFiled: April 18, 2006Date of Patent: June 8, 2010Assignee: VMware, Inc.Inventors: Srinivas Mantripragada, Tim Garnett, Derek Bruening, Vladimir Kiriansky, Bharath Chandramohan, James Brink, Saman P. Amarasinghe, Sandy Wilbourn
-
Publication number: 20090307430Abstract: 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.Type: ApplicationFiled: June 6, 2008Publication date: December 10, 2009Applicant: VMWARE, INC.Inventors: Derek BRUENING, Vladimir L. Kiriansky
-
Publication number: 20070067573Abstract: A runtime system using thread-shared code caches is provided which avoids brute-force all-thread-suspension and monolithic global locks. In one embodiment, medium-grained runtime system synchronization reduces lock contention. The system includes trace building that combines efficient private construction with shared results, in-cache lock-free lookup table access in the presence of entry invalidations, and a delayed deletion algorithm based on timestamps and reference counts. These enable reductions in memory usage and performance overhead.Type: ApplicationFiled: September 20, 2006Publication date: March 22, 2007Inventors: Derek Bruening, Vladimir Kiriansky, Tim Garnett, Sanjeev Banerji
-
Publication number: 20060288420Abstract: 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.Type: ApplicationFiled: April 18, 2006Publication date: December 21, 2006Inventors: Srinivas Mantripragada, Tim Garnett, Derek Bruening, Vladimir Kiriansky, Bharath Chandramohan, James Brink, Saman Amarasinghe, Sandy Wilbourn
-
Publication number: 20060277539Abstract: 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.Type: ApplicationFiled: June 6, 2006Publication date: December 7, 2006Applicant: MASSACHUSETTS INSTITUTE OF TECHNOLOGYInventors: Saman Amarasinghe, Bharath Chandramohan, Charles Renert, Derek Bruening, Vladimir Kiriansky, Tim Garnett, Sandy Wilbourn, Warren Wu
-
Publication number: 20060190924Abstract: 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.Type: ApplicationFiled: February 17, 2006Publication date: August 24, 2006Inventors: Derek Bruening, Saman Amarasinghe
-
Publication number: 20050010804Abstract: 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.Type: ApplicationFiled: December 18, 2003Publication date: January 13, 2005Inventors: Derek Bruening, Vladimir Kiriansky, Saman Amarasinghe