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: 10318256
    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.
    Type: Grant
    Filed: November 27, 2012
    Date of Patent: June 11, 2019
    Assignee: VMware, Inc.
    Inventors: Derek Bruening, Vladimir L. Kiriansky
  • Patent number: 8762797
    Abstract: 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: Grant
    Filed: April 23, 2012
    Date of Patent: June 24, 2014
    Assignee: Google Inc.
    Inventors: Konstantin Serebryany, Derek Bruening
  • Patent number: 8321850
    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.
    Type: Grant
    Filed: June 6, 2008
    Date of Patent: November 27, 2012
    Assignee: VMware, Inc.
    Inventors: Derek Bruening, Vladimir L. Kiriansky
  • Publication number: 20120278665
    Abstract: 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: Application
    Filed: April 23, 2012
    Publication date: November 1, 2012
    Applicant: GOOGLE INC.
    Inventors: Konstantin Serebryany, Derek Bruening
  • Publication number: 20100205669
    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.
    Type: Application
    Filed: April 21, 2010
    Publication date: August 12, 2010
    Applicant: VMWARE, INC.
    Inventors: Srinivas MANTRIPRAGADA, Tim GARNETT, Derek BRUENING, Vladimir KIRIANSKY, Bharath CHANDRAMOHAN, James BRINK, Saman P. AMARASINGHE, Sandy WILBOURN
  • Patent number: 7735136
    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.
    Type: Grant
    Filed: April 18, 2006
    Date of Patent: June 8, 2010
    Assignee: VMware, Inc.
    Inventors: Srinivas Mantripragada, Tim Garnett, Derek Bruening, Vladimir Kiriansky, Bharath Chandramohan, James Brink, Saman P. Amarasinghe, Sandy Wilbourn
  • Publication number: 20090307430
    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.
    Type: Application
    Filed: June 6, 2008
    Publication date: December 10, 2009
    Applicant: VMWARE, INC.
    Inventors: Derek BRUENING, Vladimir L. Kiriansky
  • Publication number: 20070067573
    Abstract: 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: Application
    Filed: September 20, 2006
    Publication date: March 22, 2007
    Inventors: Derek Bruening, Vladimir Kiriansky, Tim Garnett, Sanjeev Banerji
  • Publication number: 20060288420
    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.
    Type: Application
    Filed: April 18, 2006
    Publication date: December 21, 2006
    Inventors: Srinivas Mantripragada, Tim Garnett, Derek Bruening, Vladimir Kiriansky, Bharath Chandramohan, James Brink, Saman Amarasinghe, Sandy Wilbourn
  • Publication number: 20060277539
    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.
    Type: Application
    Filed: June 6, 2006
    Publication date: December 7, 2006
    Applicant: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
    Inventors: Saman Amarasinghe, Bharath Chandramohan, Charles Renert, Derek Bruening, Vladimir Kiriansky, Tim Garnett, Sandy Wilbourn, Warren Wu
  • Publication number: 20060190924
    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.
    Type: Application
    Filed: February 17, 2006
    Publication date: August 24, 2006
    Inventors: Derek Bruening, Saman Amarasinghe
  • Publication number: 20050010804
    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.
    Type: Application
    Filed: December 18, 2003
    Publication date: January 13, 2005
    Inventors: Derek Bruening, Vladimir Kiriansky, Saman Amarasinghe