Patents by Inventor Martín Abadi

Martín Abadi 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: 7600232
    Abstract: Described herein is an implementation of an inter-process communications technology. One or more implementations, described herein, facilitate creation of a bi-directional message conduit having exactly two endpoints. A first endpoint is owned by a first software process and a second endpoint is owned by a second software process. One or more implementations, described herein, maintain the bi-directional message conduit for passing multiple messages via the bi-directional message conduit from the first process to the second process, according to established rules that can be checked.
    Type: Grant
    Filed: December 7, 2004
    Date of Patent: October 6, 2009
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel Fahndrich, Edward P. Wobber, Martin Abadi, John D. DeTreville
  • Publication number: 20090210457
    Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.
    Type: Application
    Filed: February 19, 2008
    Publication date: August 20, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
  • Publication number: 20090210888
    Abstract: A device driver includes a hypervisor stub and a virtual machine driver module. The device driver may access device registers while operating within a virtual machine to promote system stability while providing a low-latency software response from the system upon interrupts. Upon receipt of an interrupt, the hypervisor stub may run an interrupt service routine and write information to shared memory. Control is passed to the virtual machine driver module by a reflector. The virtual machine driver module may then read the information from the shared memory to continue servicing the interrupt.
    Type: Application
    Filed: February 14, 2008
    Publication date: August 20, 2009
    Applicant: Microsoft Corporation
    Inventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
  • Patent number: 7577992
    Abstract: Software control flow integrity is provided by embedding identifying bit patterns at computed control flow instruction sources and destinations. The sources and destinations of computed control flow instructions are determined with reference to a control flow graph. The identifying bit patterns are compared during software execution, and a match between a source and a respective destination ensures control flow consistent with the control flow graph. Security measures are implemented when the comparison results in a mismatch, indicating that control flow has deviated from the anticipated course.
    Type: Grant
    Filed: January 14, 2005
    Date of Patent: August 18, 2009
    Assignee: Microsoft Corporation
    Inventors: Martin Abadi, Mihai-Dan Budiu, Ulfar Erlingsson, Jay A. Ligatti
  • Publication number: 20090204969
    Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.
    Type: Application
    Filed: February 11, 2008
    Publication date: August 13, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Ta-Chung Hsieh
  • Publication number: 20090204978
    Abstract: A device driver includes a kernel mode and a user-mode module. The device driver may access device registers while operating in user-mode to promote system stability while providing a low-latency software response from the system upon interrupts. The device driver may include kernel stubs that are loaded into the operating system, and may be device specific code written. The stubs may be called by a reflector to handle exceptions caught by the stubs. A reset stub may be invoked by the reflector when the user-mode module or host terminates abruptly or detects an interrupt storm. The reset stub may also be invoked if errant DMA operations are being performed by a hardware device. The reset stub may ensure that hardware immediately stops unfinished DMA from further transfer, and may be called by the user-mode driver module.
    Type: Application
    Filed: February 7, 2008
    Publication date: August 13, 2009
    Applicant: Microsoft Corporation
    Inventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
  • Publication number: 20090138625
    Abstract: A device driver includes a kernel stub and a user-mode module. The device driver may access device registers while operating in user-mode to promote system stability while providing a low-latency software response from the system upon interrupts. Upon receipt of an interrupt, the kernel stub may run an interrupt service routine and write information to shared memory. Control is passed to the user-mode module by a reflector. The user-mode module may then read the information from the shared memory to continue servicing the interrupt.
    Type: Application
    Filed: November 22, 2007
    Publication date: May 28, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
  • Publication number: 20090083832
    Abstract: Access control logic may use logical constructs such as “says” and “speaks for”, and may be translated to modal logic. The modal logic may be used to determine the truth or falsehood of formulas in access control logic, which may be used in access control decisions. The modal logic may be S4, and access control logic, including “says” and “speaks for”, may be translated into S4. Linear logic may be used to guarantee separation of duty in access control.
    Type: Application
    Filed: September 20, 2007
    Publication date: March 26, 2009
    Applicant: Microsoft Corporation
    Inventors: Martin Abadi, Deepak Garg, David E. Langworthy
  • Publication number: 20080320299
    Abstract: A system is disclosed for creating and implementing an access control policy framework in a weakly coherent distributed collection. A collection manager may sign certificates forming equivalence classes of replicas that share a specific authority. The collection manager and/or certain privileged replicas may issue certificates that delegate authority for control of item policy and replica policy. Further certificates may be signed that create one or more items, set policy for these one or more items, and define a set of operations authorized on the one or more items. The certificates issued according to the present system for creating and implementing a control policy framework cannot be modified or simply overridden. Once a policy certificate is issued, it may only be revoked by the collection manager or by a replica having revocation authority.
    Type: Application
    Filed: June 20, 2007
    Publication date: December 25, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Edward P. Wobber, Martin Abadi, Thomas L. Rodeheffer
  • Publication number: 20080282354
    Abstract: A pattern matching access control system determines whether a principal should be granted access to use a resource based on properties of applications comprised by the principal. The principal name may be created when an application is loaded, invokes other applications (or programs) and/or assumes a new role context. Access is provided based on whether, for each application, the publisher is authorized by system policy to grant privilege as requested by the application. When a resource which requires the privilege is requested by a principal, an access control list (ACL) for the resource is expanded with a list of applications that have been authorized through their publisher to assert the privilege. The expanded ACL is compared to the principal name to determine resource access.
    Type: Application
    Filed: May 7, 2007
    Publication date: November 13, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Edward P. Wobber, Andrew Birrell, Martin Abadi
  • Publication number: 20080184016
    Abstract: Instruction set architecture (ISA) extension support is described for control-flow integrity (CFI) and for XFI memory protection. ISA replaces CFI guard code with single instructions. ISA support is provided for XFI in the form of bounds-check instructions. Compared to software guards, hardware support for CFI and XFI increases the efficiency and simplicity of enforcement. In addition, the semantics for CFI instructions allows more precise static control-flow graph encodings than were possible with a prior software CFI implementation.
    Type: Application
    Filed: January 31, 2007
    Publication date: July 31, 2008
    Applicant: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Martin Abadi, Mihai-Dan Budiu
  • Publication number: 20080109625
    Abstract: Unobservable memory regions, referred to as stealth memory regions, are allocated or otherwise provided to store data whose secrecy is to be protected. The stealth memory is prevented from exposing information about its usage pattern to an attacker or adversary. In particular, the usage patterns may not be deduced via the side-channels.
    Type: Application
    Filed: November 3, 2006
    Publication date: May 8, 2008
    Applicant: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Martin Abadi
  • Patent number: 7337291
    Abstract: Software memory access control is provided by associating instruction areas with memory areas such that instruction areas are not permitted to access memory areas with which they are not associated. Checks may be inserted in the instruction areas to ensure that data provided by a memory group is provided by an associated memory area. Additionally, control flow integrity for the instruction areas may be provided by embedding identifying bit patterns within computed control flow instructions contained in the instruction groups. In this way, control flow of the instruction areas may be provided, thus preventing diversion of control flow and minimizing required checks.
    Type: Grant
    Filed: January 14, 2005
    Date of Patent: February 26, 2008
    Assignee: Microsoft Corporation
    Inventors: Martin Abadi, Ulfar Erlingsson, Jay A. Ligatti, Mihai-Dan Budiu
  • Publication number: 20070285271
    Abstract: A verifier performs static checks of machine code to ensure that the code will execute safely. After verification is performed, the code is executed. The code modules generated by the rewriter and verified by the verifier prevent runtime code modifications so that properties established by the verifier cannot be invalidated during execution. Guards ensure that control flows only as expected. Stack data that must be shared within a code module, and which may therefore be corrupted during execution, is placed on a separate data stack. Other stack data remains on the regular execution stack, called the control stack. Multiple memory accesses can be checked by a single memory-range guard, optimized for fast access to the most-frequently used memory.
    Type: Application
    Filed: June 9, 2006
    Publication date: December 13, 2007
    Applicant: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Martin Abadi, Michael Vrable
  • Publication number: 20070271594
    Abstract: Described herein are one or more implementations that facilitate message-passing over a communication conduit between software processes in a computing environment. More particularly, the implementations described restrict access of one process to another via messages passed over a particular conduit connecting the processes and the access-control restrictions are defined by a contract associated with that particular conduit.
    Type: Application
    Filed: May 18, 2006
    Publication date: November 22, 2007
    Applicant: Microsoft Corporation
    Inventors: Edward P. Wobber, Manuel A. Fahndrich, Ulfar Erlingsson, Martin Abadi
  • Publication number: 20070094495
    Abstract: Described herein are one or more implementations of an operating system that provides for statically verifiable inter-process communication between isolated processes. Also, described herein are one or more implementations of programming tools that facilitate the development of statically verifiable isolated processes having inter-process communication.
    Type: Application
    Filed: June 30, 2006
    Publication date: April 26, 2007
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nicholas Murphy, Bjarne Steensgaard, David Tarditi, Edward Wobber, Brian Zill
  • Patent number: 7203833
    Abstract: In the access control model of security, an access control matrix associates rights for operations on objects with subjects. An approach for assigning rights to code at run-time involves determining the run-time rights of a piece of code by examining the attributes of the pieces of code that have run (including their origins) and any explicit requests to augment rights. Thus, this approach relies on the execution history for security. This history based approach reduces the difficulties and the error-proneness of securing extensible software systems.
    Type: Grant
    Filed: December 23, 2002
    Date of Patent: April 10, 2007
    Assignee: Microsoft Corporation
    Inventors: Martín Abadi, Cédric A. M. Fournet
  • Publication number: 20070078827
    Abstract: A probabilistic detector is utilized to query a database. Utilization of a probabilistic detector provides assurance with 100 per cent probability that a search expression in the query is not in the database index. The probabilistic detector is implemented in the form of a Bloom filter. The probabilistic detector is created by hashing expressions in the database index and mapping the resulting hash values into the probabilistic detector. Upon receiving a query, expressions of the query are hashed. The probabilistic detector is queried using these hash values. If the results of querying the probabilistic detector indicate that searched for information may be in the database, the database is not queried. If the results of querying the probabilistic detector indicate that the information may be in the database, the database is queried for the information using the original query. This technique is advantageous in mitigating detrimental effects of denial of service attacks.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Gaurav Sareen, Mark Manasse, Martin Abadi, Michael Isard
  • Patent number: 7149801
    Abstract: A resource may be abused if its users incur little or no cost. For example, e-mail abuse is rampant because sending an e-mail has negligible cost for the sender. Such abuse may be discouraged by introducing an artificial cost in the form of a moderately expensive computation. Thus, the sender of an e-mail might be required to pay by computing for a few seconds before the e-mail is accepted. Unfortunately, because of sharp disparities across computer systems, this approach may be ineffective against malicious users with high-end systems, prohibitively slow for legitimate users with low-end systems, or both. Starting from this observation, we identify moderately hard, memory bound functions that most recent computer systems will evaluate at about the same speed, and we explain how to use them for protecting against abuses.
    Type: Grant
    Filed: November 8, 2002
    Date of Patent: December 12, 2006
    Assignee: Microsoft Corporation
    Inventors: Michael Burrows, Martin Abadi, Mark Steven Manasse, Edward P. Wobber, Daniel Ron Simon
  • Publication number: 20060265759
    Abstract: Systems and methods are provided for resource access control in computer systems. Our approach includes new techniques for composing and authenticating principals in an access control system. Our principals may comprise information that identifies the role of the user of a computer system, the mechanism by which the user was authenticated, and program execution history. Thus, when a principal makes a request, access control determinations can be made based on the principal's identity. Access control lists may provide patterns that are used to recognize principals, thereby ensuring a level of security without enumerating precise identifiers for all of the possible principles that may request a particular resource.
    Type: Application
    Filed: May 19, 2005
    Publication date: November 23, 2006
    Applicant: Microsoft Corporation
    Inventors: Andrew Birrell, Edward Wobber, Martin Abadi