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: 20140298455
    Abstract: A security engine may be selected from a plurality of security engines to apply one or more security mechanisms to a section of source code of an application. In some cases, the section of source code may be identified by one or more security mechanism identifiers included in the source code. The security engine may generate machine-readable code that corresponds to the section of source code for which the one or more security mechanisms are to be applied. The machine-readable code may be executed on a plurality of computing devices. In one implementation, applying the security mechanisms to the section of source code may include producing zero-knowledge proofs of knowledge for the section of source code.
    Type: Application
    Filed: September 19, 2013
    Publication date: October 2, 2014
    Applicant: Microsoft Corporation
    Inventors: Benjamin Livshits, Matthew Fredrikson
  • Publication number: 20140282879
    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: April 8, 2014
    Publication date: September 18, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Henricus Johannes Maria Meijer, Cedric Fournet, Jeffrey Van Gogh, Danny van Velzen, Abhishek Prateek, Krishnaprasad Vikram
  • Patent number: 8826242
    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: Grant
    Filed: November 27, 2007
    Date of Patent: September 2, 2014
    Assignee: Microsoft Corporation
    Inventors: Benjamin Livshits, William GJ Halfond, Jeffrey Van Gogh
  • Patent number: 8806618
    Abstract: Secure distributed 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 split 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: Grant
    Filed: March 31, 2008
    Date of Patent: August 12, 2014
    Assignee: Microsoft Corporation
    Inventors: Benjamin Livshits, Henricus Johannes Maria Meijer, Brian Beckman, Jeffrey Van Gogh, Danny Van Velzen, Dragos A. Manolescu, Bryan Sullivan
  • Publication number: 20140157422
    Abstract: A profiling service may determine, local to a device, user profile attributes associated with a device user based on interaction of the device user with the device, based on device-local monitoring of device user interactions with the device, and may store the user profile attributes in a memory. The profiling service may be configured as an augmentation to a device operating system of the device. A profile exposure component may manage exposure of information associated with the user profile attributes to applications operating locally on the device, without exposure to the applications or to third parties of information determined as sensitive to the device user.
    Type: Application
    Filed: November 30, 2012
    Publication date: June 5, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Andrew Joseph Davidson
  • Patent number: 8713679
    Abstract: This document describes techniques for detection of code-based malware. According to some embodiments, the techniques utilize a collection of known malicious code and know benign code and determine which features of each type of code can be used to determine whether unclassified code is malicious or benign. The features can then be used to train a classifier (e.g., a Bayesian classifier) to characterize unclassified code as malicious or benign. In at least some embodiments, the techniques can be used as part of and/or in cooperation with a web browser to inspect web content (e.g., a web page) to determine if the content includes code-based malware.
    Type: Grant
    Filed: February 18, 2011
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Benjamin Goth Zorn, Benjamin Livshits, Charles M. Curtsinger, Christian Seifert
  • Publication number: 20140109106
    Abstract: Generation of a dependency graph for code that includes code portions such as resources or functions or both. For some or all of the nodes, the dependency is calculated by determining that the given node, a depending node, depends on an affecting node. The dependency is recorded so as to be associated with the node. Furthermore, the dependency calculation method is recorded so as to be associated with the dependency. The code may perhaps include portions within two different domains, in which the mechanism for calculating dependencies may differ. In some cases, the dependency graph may be constructed in stages, and perhaps additional properties may be associated with the node, and metadata of the properties may also be recorded.
    Type: Application
    Filed: October 17, 2012
    Publication date: April 17, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Christopher M. H. Faucon, Matthew Thornhill Hall, Nachiappan Nagappan, Benjamin Livshits, Magnus Madsen
  • Patent number: 8635635
    Abstract: Embodiments are disclosed that relate to hindering unauthorized use or distribution of a middleware program contained within an application. One example embodiment provides a method for hindering unauthorized use or distribution of a middleware program contained within an application. The method comprises acquiring factored middleware code, the factored middleware code having a missing function residing on a remote computing device, and building an application around the factored middleware code such that the application is configured to call to the remote computing device for execution of the missing function during use. The application may be configured to send a call to the remote computing device for execution of the missing function during use.
    Type: Grant
    Filed: January 25, 2011
    Date of Patent: January 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Kenneth Ray, Gennady Medvinsky, Vijay Gajjala, Darko Kirovski, Benjamin Livshits
  • Patent number: 8543683
    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: Grant
    Filed: September 26, 2007
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Emre Mehmet Kiciman, Benjamin Livshits, Jiahe Helen Wang
  • Publication number: 20130174258
    Abstract: Techniques for execution of multiple execution paths are described. In one or more embodiments, an execution of a portion of executable code is conditioned upon a particular environment-specific value. For example, the execution of the executable code can cause one type of output if the value of the variable equals a particular value, and can cause a different type of output if the value of the variable equals a different value. Techniques discussed herein can enable the executable code to be executed such that multiple outputs are produced, e.g., by executing the code according to the different values for the variable. In implementations, the multiple outputs can be analyzed for various attributes, such as presence of malware, implementation and coding errors, and so on.
    Type: Application
    Filed: December 28, 2011
    Publication date: July 4, 2013
    Applicant: Microsoft Corporation
    Inventors: Benjamin Livshits, Benjamin Goth Zorn, Christian Seifert, Clemens Kolbitsch
  • Publication number: 20120323794
    Abstract: Personalization is enabled in a privacy-conscious manner. User interest information can be determined as a function of user behavior with respect interaction with content, for example. Distribution of user information can be managed as function of user permission and one or more offers to acquire the information from parties such as electronic merchants, data aggregators, or ad networks, among others.
    Type: Application
    Filed: June 15, 2011
    Publication date: December 20, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Benjamin Livshits
  • Publication number: 20120297017
    Abstract: Personalization is enabled in a privacy-conscious manner. User interest information can be determined as a function of user behavior with respect interaction with content, for example. Such private information can subsequently be disseminated in a controlled fashion based on permission of the user to which the information pertains. Additionally, core functionality can be supplemented by third-party extensions allowed by a user.
    Type: Application
    Filed: May 20, 2011
    Publication date: November 22, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Livshits, Matthew J. Fredrikson, Michael A. Elizarov, Hadas Bitran, Susan T. Dumais
  • Publication number: 20120246701
    Abstract: An environment is described which enables the generation, analysis, and use of secure browser extensions. Each browser extension includes an extension body and a policy expressed in a logic-based specification language. The policy specifies the access control and dataflow privileges associated with the extension body in a fine-grained manner by leveraging the structure and content of resources that are accessible to the browser extension. A suite of analysis tools for testing the safety of the browser extension includes a visualization module identifies features of a resource that are accessible to the policy. A static analysis module uses a static analysis technique to determine whether the extension body satisfies the policy. The environment also includes a conversion module for converting the browser extension, once deemed safe, into a form for use by a particular type of browser. The browser can execute that extension without performing runtime safety checks.
    Type: Application
    Filed: March 21, 2011
    Publication date: September 27, 2012
    Applicant: Microsoft Corporation
    Inventors: Nikhil Swamy, Benjamin Livshits, Arjun Guha, Matthew J. Fredrikson
  • Publication number: 20120216280
    Abstract: This document describes techniques for detection of code-based malware. According to some embodiments, the techniques utilize a collection of known malicious code and know benign code and determine which features of each type of code can be used to determine whether unclassified code is malicious or benign. The features can then be used to train a classifier (e.g., a Bayesian classifier) to characterize unclassified code as malicious or benign. In at least some embodiments, the techniques can be used as part of and/or in cooperation with a web browser to inspect web content (e.g., a web page) to determine if the content includes code-based malware.
    Type: Application
    Filed: February 18, 2011
    Publication date: August 23, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin Goth Zorn, Benjamin Livshits, Charles M. Curtsinger, Christian Seifert
  • Publication number: 20120191803
    Abstract: Various embodiments are disclosed that relate to decommissioning factored code of a program on a computing device. For example, one disclosed embodiment provides a method of operating a computing device. The method includes executing a program on the computing device, and while executing the program, identifying a remote location of a factored function via a code map, sending a call to the factored function and receiving a return response. The method further comprises, upon occurrence of a decommissioning event, receiving a copy of the factored function; and updating the code map with a location of the copy of the factored function.
    Type: Application
    Filed: January 25, 2011
    Publication date: July 26, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Kenneth Ray, Gennady Medvinsky, Vijay Gajjala, Darko Kirovski, Benjamin Livshits
  • Publication number: 20120192209
    Abstract: Embodiments are disclosed that relate to hindering unauthorized use or distribution of a middleware program contained within an application. One example embodiment provides a method for hindering unauthorized use or distribution of a middleware program contained within an application. The method comprises acquiring factored middleware code, the factored middleware code having a missing function residing on a remote computing device, and building an application around the factored middleware code such that the application is configured to call to the remote computing device for execution of the missing function during use. The application may be configured to send a call to the remote computing device for execution of the missing function during use.
    Type: Application
    Filed: January 25, 2011
    Publication date: July 26, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Kenneth Ray, Gennady Medvinsky, Vijay Gajjala, Darko Kirovski, Benjamin Livshits
  • Publication number: 20120167061
    Abstract: Various embodiments are disclosed that relate to the automated identification of one or more computer program functions for potentially placing on a remote computing device in a split-computational computing environment. For example, one disclosed embodiment provides, on a computing device, a method of determining a factorable portion of code to locate remotely from other portions of the code of a program to hinder unauthorized use and/or distribution of the program. The method includes, on a computing device, receiving an input of a representation of the code of the program, performing analysis on the representation of the code, the analysis comprising one or more of static analysis and dynamic analysis, and based upon the analysis of the code, outputting a list of one or more functions determined from the analysis to be candidates for locating remotely.
    Type: Application
    Filed: December 28, 2010
    Publication date: June 28, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Darko Kirovski, Benjamin Livshits, Gennady Medvinsky, Vijay Gajjala, Kenneth Ray, Jesper Lind
  • Publication number: 20120167209
    Abstract: An automatic context-sensitive sanitization technique detects errors due to the mismatch of a sanitizer sequence with a browser parsing context. A pre-deployment analyzer automatically detects violating paths that contain a sanitizer sequence that is inconsistent with a browsing context associated with outputting an untrusted input. The pre-deployment analyzer determines a correct sanitizer sequence which is stored in a sanitization cache. During the runtime execution of the web application, a path detector tracks execution of the web application in relation to the violating paths. The correct sanitizer sequence can be applied when the runtime execution follows a violating path.
    Type: Application
    Filed: December 28, 2010
    Publication date: June 28, 2012
    Applicant: Microsoft Corporation
    Inventors: David Molnar, Benjamin Livshits, Patrice Godefroid, Prateek Saxena
  • Publication number: 20120151592
    Abstract: There is provided a computer-implemented method for analyzing string-manipulating programs. An exemplary method comprises describing a string-manipulating program as a finite state transducer. The finite state transducer may be evaluated with a constraint solving methodology to determine whether a particular string may be provided as output by the string-manipulating program. The constraint solving methodology may involve the use of one or more satisfiability modulo theories (SMT) solvers. A determination may be made regarding whether the string-manipulating program may contain a potential security risk depending on whether the particular string may be provided as output by the string-manipulating program.
    Type: Application
    Filed: December 13, 2010
    Publication date: June 14, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Margus Veanes, Pieter Hooimeijer, Benjamin Livshits, Prateek Saxena, David Molnar
  • Patent number: 8108513
    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: Grant
    Filed: September 26, 2007
    Date of Patent: January 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Emre Mehmet Kiciman, Benjamin Livshits, Jiahe Helen Wang