Patents by Inventor Benjamin Livshits

Benjamin Livshits 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).

  • Publication number: 20110283355
    Abstract: An edge computing platform that provides on-demand delivery of Rich Internet Applications and other applications is disclosed. One embodiment includes an optional manager node and content distribution network (CDN) that include one or more compute nodes. The CDN collects information pertaining to execution of a software application. The CDN aggregates the information and transfers the aggregated information to the manager node. The manager node analyzes the information from the CDN and transfers results of the analysis to the CDN. The CDN receives a software application that is designed to be dynamically updated when executed at the clients. The CDN modifies the software application based on the information from the manager node. The CDN receives a request that pertains to the software application from a client device. The CDN transfers at least a portion of the modified software application to the client.
    Type: Application
    Filed: May 12, 2010
    Publication date: November 17, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Emre Mehmet Kiciman, David Simmons
  • Publication number: 20110219357
    Abstract: A method described herein includes at a computing device, receiving, over a network connection, a data packet from an external source, wherein the data packet comprises a compressed abstract syntax tree (AST)-based representation of source code written in a scripting language. The method further includes decompressing the compressed AST-based representation of the source code to generate a decompressed AST. The method also includes causing at least one processor on the computing device to execute at least one instruction represented in the decompressed AST subsequent to the compressed AST-based representation of the source code being decompressed.
    Type: Application
    Filed: March 2, 2010
    Publication date: September 8, 2011
    Applicant: Microsoft Corporation
    Inventors: Benjamin Livshits, Benjamin Goth Zorn, Martin Burtscher, Gaurav Sinha
  • Publication number: 20110191848
    Abstract: A method disclosed herein includes acts of receiving code at a Just-in-Time compiler executing in an application on a computing device and compiling the code to generate machine code and causing the machine code to be placed on at least one page that is accessible by at least one processor on the computing device, wherein the Just-in-Time compiler compiles the code utilizing at least one technique for preventing a Just-in-Time spraying attack.
    Type: Application
    Filed: February 3, 2010
    Publication date: August 4, 2011
    Applicant: Microsoft Corporation
    Inventors: Benjamin Goth Zorn, Benjamin Livshits, Reid Borsuk, John Joseph Lambert, Matthew Ryan Miller, Louis Lafreniere, Peter Stuart Beck, Joshua Theodore Goodman, Timothy William Burrell, Steven Edward Lucco
  • Patent number: 7933946
    Abstract: Embodiments gather historical information about data propagation by monitoring requests to and replies from a server. When a request is received from a client system to upload code onto a web site, a user identity associated with the client system is determined and a tag that uniquely identifies the uploaded data is created and mapped with the user identity into a propagation graph. The propagation graph includes nodes and edges associated with a number of client systems that made similar requests such that each node of the propagation graph corresponds to both a tag and user identity of a client system and edges within the propagation graph represent causality links between the nodes. The propagation graph can then be used for finding long propagation chains, which can be useful for detecting worm-like propagation activity.
    Type: Grant
    Filed: June 22, 2007
    Date of Patent: April 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Benjamin Livshits, Weidong Cui
  • Publication number: 20100205674
    Abstract: A monitoring system may analyze system memory to determine a vulnerability statistic by identifying potential sleds within the memory, and creating a statistic that is a ratio of the amount of potential sleds per the total memory. In some cases, the statistic may be based on the number of instructions or bytes consumed by the sleds. The potential sleds may be determined by several different mechanisms, including abstract payload execution, polymorphic sled detection, sled surface area calculation, and other mechanisms. The monitoring system may be a multi-threaded operation that continually monitors system memory and analyzes recently changed objects in memory. When the vulnerability statistic rises above a certain level, the system may alert a user or administrator to a high vulnerability condition.
    Type: Application
    Filed: February 11, 2009
    Publication date: August 12, 2010
    Applicant: Microsoft Corporation
    Inventors: Benjamin G. Zorn, Benjamin Livshits, Paruj Ratanaworabhan
  • Publication number: 20100153928
    Abstract: A network service runtime module executing on a processor is configured to accept a directed acyclic service graph representing elements of a network service application. During execution of the service graph, runtime events are stored. The service graph may by optimized by generating alternate service graphs, and simulating performance of the alternate service graphs in a simulator using the stored runtime events. A hill climber algorithm may be used in conjunction with the simulator to vary alternate service graphs and determine which alternate service graphs provide the greatest utility. Once determined, an alternate service graph with the greatest utility may be loaded into the network service runtime module for execution.
    Type: Application
    Filed: December 16, 2008
    Publication date: June 17, 2010
    Applicant: Microsoft Corporation
    Inventors: Benjamin Livshits, Emre M. Kiciman, Alexander C. Rasmussen, Madanlal Musuvathi
  • Publication number: 20100106767
    Abstract: A processing system for distributed multi-tier applications is provided. The system includes a server component that executes a replica of a client-side application, where a client component executes the client-side application. The client component captures events from the client-side application and transmits the events to the replica to validate the computational integrity security of the application.
    Type: Application
    Filed: October 24, 2008
    Publication date: April 29, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Henricus Johannes Maria Meijer, Cedric Fournet, Jeffrey Van Gogh, Danny Van Velzen, Krishnaprasad Vikram, Abhishek Prateek
  • Publication number: 20090292791
    Abstract: A “code splitting tool” provides various techniques for automatically analyzing and rewriting existing browser-based applications to introduce dynamic code loading into those applications thereby improving perceived application responsiveness. Structural elements of application code (including functions, classes, etc.) are broken into small “stubs” with corresponding bodies. Rewritten applications then initially transfer only the portion of the code (including some combination of stubs and bodies) to the client as necessary for initial application execution. Additional stubs and/or bodies are then transferred either on-demand at runtime or in the background. Automated code rewriting proceeds without requiring any application-specific knowledge or changes to existing code prior to code rewriting. Further, the code splitting tool can tailor code rewriting to specific computing devices (computers, PDA's, cell phones, etc.
    Type: Application
    Filed: May 23, 2008
    Publication date: November 26, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Emre Kiciman, Chen Ding
  • Publication number: 20090249489
    Abstract: Secure distributed Web applications are produced by default upon construction. Mechanisms are provided to address distributed application vulnerabilities (e.g., cross-site scripting, cross-site request forgery, replay attacks . . . automatically. These mechanisms are provided in conjunction with a tier-splitting component that breaks up an application for execution across multiple contexts or tiers. As a result, any application that is tier split is protected from security vulnerabilities by default without any intervention on the part of a developer.
    Type: Application
    Filed: March 31, 2008
    Publication date: October 1, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Henricus Johannes Maria Meijer, Brian Beckman, Jeffrey Van Gogh, Danny Van Velzen, Dragos A. Manolescu, Bryan Sullivan
  • Publication number: 20090228904
    Abstract: Asynchronous methods and calls are produced automatically as a function of a declarative indication of intent. A method annotated with an asynchronous attribute or method call including a special asynchronous function can be identified. Subsequently, an asynchronous version of an identified synchronous method or call is generated automatically. Assistance is also provided for specifying intent.
    Type: Application
    Filed: March 4, 2008
    Publication date: September 10, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Henricus Johannes Maria Meijer, John Wesley Dyer, Jeffrey Van Gogh, Danny Van Velzen, Harish Kantamneni, Dragos A. Manolescu, Brian Beckman, Benjamin Livshits
  • Publication number: 20090199159
    Abstract: Various technologies and techniques are disclosed for enabling code to be executed on one or more execution contexts based upon declarative annotations contained in the code or other locations. An annotation associated with a region of code is located. The annotation specifies information about an execution context where the region of code should be executed. A caller proxy is generated that is responsible for calling a callee adapter to execute the region of code. The callee adapter is generated that is responsible for receiving a call from the caller proxy and for dispatching a call to the region of code at the execution context. At runtime, the caller proxy receives a request to call the region of code and sends an execution request to the callee adapter. The callee adapter receives the execution request and dispatches a call to an executable version of the region of code.
    Type: Application
    Filed: January 31, 2008
    Publication date: August 6, 2009
    Applicant: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Brian Beckman, John Wesley Dyer, Jeffrey van Gogh, Benjamin Livshits, Dragos A. Manolescu, Danny van Velzen, Harish V. Kantamneni
  • Publication number: 20090138858
    Abstract: An exemplary method includes providing an application that includes client-side code and server-side code, instrumenting the client-side code and the server-side code to generate timestamps, distributing the instrumented client-side code and the instrumented server-side code and monitoring timestamps generated during execution of the application. In such a method, where timestamps generated by the client-side code and timestamps generated by the server-side code occur along a common timeline, a developer can monitor performance of the distributed application. Other exemplary methods, systems, etc., are also disclosed.
    Type: Application
    Filed: November 27, 2007
    Publication date: May 28, 2009
    Applicant: Microsoft Corporation
    Inventors: Benjamin Livshits, William Gj Halfond
  • Publication number: 20090083714
    Abstract: Computer-executable instructions comprising some or all of a program can be delivered to a client for execution on a real-time basis such that the client receives anew the computer-executable instructions for each new execution of the program. Such an environment enables instrumentation instructions to be inserted into the computer-executable instructions after a request and prior to the delivery of the computer-executable instructions. The inserted instrumentation instructions can be spread across multiple deliveries of the same computer-executable instructions, and they can be modified to account for information received from previously inserted instrumentation instructions. The instrumentation instructions can be inserted as part of the server process, the client process, or as part of a proxy server that can be used at the discretion of the program developer.
    Type: Application
    Filed: September 26, 2007
    Publication date: March 26, 2009
    Applicant: Microsoft Corporation
    Inventors: Emre Mehmet Kiciman, Benjamin Livshits, Jiahe Helen Wang
  • Publication number: 20090083409
    Abstract: Computer-executable instructions comprising some or all of a program can be delivered to a client for execution on a real-time basis such that the client receives anew the computer-executable instructions for each new execution of the program. Such an environment enables instrumentation instructions to be inserted into the computer-executable instructions after a request and prior to the delivery of the computer-executable instructions. The inserted instrumentation instructions can be spread across multiple deliveries of the same computer-executable instructions, and they can be modified to account for information received from previously inserted instrumentation instructions. The instrumentation instructions can be inserted as part of the server process, the client process, or as part of a proxy server that can be used at the discretion of the program developer.
    Type: Application
    Filed: September 26, 2007
    Publication date: March 26, 2009
    Applicant: Microsoft Corporation
    Inventors: Emre Mehmet Kiciman, Benjamin Livshits, Jiahe Helen Wang
  • Publication number: 20090083363
    Abstract: Computer-executable instructions comprising some or all of a program can be delivered to a client for execution on a real-time basis such that the client receives anew the computer-executable instructions for each new execution of the program. Such an environment enables instrumentation instructions to be inserted into the computer-executable instructions after a request and prior to the delivery of the computer-executable instructions. The inserted instrumentation instructions can be spread across multiple deliveries of the same computer-executable instructions, and they can be modified to account for information received from previously inserted instrumentation instructions. The instrumentation instructions can be inserted as part of the server process, the client process, or as part of a proxy server that can be used at the discretion of the program developer.
    Type: Application
    Filed: September 26, 2007
    Publication date: March 26, 2009
    Applicant: Microsoft Corporation
    Inventors: Emre Mehmet Kiciman, Benjamin Livshits, Jiahe Helen Wang
  • Publication number: 20080320075
    Abstract: Embodiments gather historical information about data propagation by monitoring requests to and replies from a server. When a request is received from a client system to upload code onto a web site, a user identity associated with the client system is determined and a tag that uniquely identifies the uploaded data is created and mapped with the user identity into a propagation graph. The propagation graph includes nodes and edges associated with a number of client systems that made similar requests such that each node of the propagation graph corresponds to both a tag and user identity of a client system and edges within the propagation graph represent causality links between the nodes. The propagation graph can then be used for finding long propagation chains, which can be useful for detecting worm-like propagation activity.
    Type: Application
    Filed: June 22, 2007
    Publication date: December 25, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Weidong Cui