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: 7600232Abstract: 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: GrantFiled: December 7, 2004Date of Patent: October 6, 2009Assignee: Microsoft CorporationInventors: Galen C. Hunt, James R. Larus, Manuel Fahndrich, Edward P. Wobber, Martin Abadi, John D. DeTreville
-
Publication number: 20090210457Abstract: 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: ApplicationFiled: February 19, 2008Publication date: August 20, 2009Applicant: MICROSOFT CORPORATIONInventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
-
Publication number: 20090210888Abstract: 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: ApplicationFiled: February 14, 2008Publication date: August 20, 2009Applicant: Microsoft CorporationInventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
-
Patent number: 7577992Abstract: 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: GrantFiled: January 14, 2005Date of Patent: August 18, 2009Assignee: Microsoft CorporationInventors: Martin Abadi, Mihai-Dan Budiu, Ulfar Erlingsson, Jay A. Ligatti
-
Publication number: 20090204969Abstract: 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: ApplicationFiled: February 11, 2008Publication date: August 13, 2009Applicant: MICROSOFT CORPORATIONInventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Ta-Chung Hsieh
-
Publication number: 20090204978Abstract: 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: ApplicationFiled: February 7, 2008Publication date: August 13, 2009Applicant: Microsoft CorporationInventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
-
Publication number: 20090138625Abstract: 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: ApplicationFiled: November 22, 2007Publication date: May 28, 2009Applicant: MICROSOFT CORPORATIONInventors: Mingtzong Lee, Peter Wieland, Nar Ganapathy, Ulfar Erlingsson, Martin Abadi, John Richardson
-
Publication number: 20090083832Abstract: 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: ApplicationFiled: September 20, 2007Publication date: March 26, 2009Applicant: Microsoft CorporationInventors: Martin Abadi, Deepak Garg, David E. Langworthy
-
Publication number: 20080320299Abstract: 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: ApplicationFiled: June 20, 2007Publication date: December 25, 2008Applicant: MICROSOFT CORPORATIONInventors: Edward P. Wobber, Martin Abadi, Thomas L. Rodeheffer
-
Publication number: 20080282354Abstract: 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: ApplicationFiled: May 7, 2007Publication date: November 13, 2008Applicant: MICROSOFT CORPORATIONInventors: Edward P. Wobber, Andrew Birrell, Martin Abadi
-
Publication number: 20080184016Abstract: 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: ApplicationFiled: January 31, 2007Publication date: July 31, 2008Applicant: Microsoft CorporationInventors: Ulfar Erlingsson, Martin Abadi, Mihai-Dan Budiu
-
Publication number: 20080109625Abstract: 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: ApplicationFiled: November 3, 2006Publication date: May 8, 2008Applicant: Microsoft CorporationInventors: Ulfar Erlingsson, Martin Abadi
-
Patent number: 7337291Abstract: 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: GrantFiled: January 14, 2005Date of Patent: February 26, 2008Assignee: Microsoft CorporationInventors: Martin Abadi, Ulfar Erlingsson, Jay A. Ligatti, Mihai-Dan Budiu
-
Publication number: 20070285271Abstract: 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: ApplicationFiled: June 9, 2006Publication date: December 13, 2007Applicant: Microsoft CorporationInventors: Ulfar Erlingsson, Martin Abadi, Michael Vrable
-
Publication number: 20070271594Abstract: 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: ApplicationFiled: May 18, 2006Publication date: November 22, 2007Applicant: Microsoft CorporationInventors: Edward P. Wobber, Manuel A. Fahndrich, Ulfar Erlingsson, Martin Abadi
-
Publication number: 20070094495Abstract: 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: ApplicationFiled: June 30, 2006Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: 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: 7203833Abstract: 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: GrantFiled: December 23, 2002Date of Patent: April 10, 2007Assignee: Microsoft CorporationInventors: Martín Abadi, Cédric A. M. Fournet
-
Publication number: 20070078827Abstract: 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: ApplicationFiled: October 5, 2005Publication date: April 5, 2007Applicant: Microsoft CorporationInventors: Gaurav Sareen, Mark Manasse, Martin Abadi, Michael Isard
-
Patent number: 7149801Abstract: 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: GrantFiled: November 8, 2002Date of Patent: December 12, 2006Assignee: Microsoft CorporationInventors: Michael Burrows, Martin Abadi, Mark Steven Manasse, Edward P. Wobber, Daniel Ron Simon
-
Publication number: 20060265759Abstract: 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: ApplicationFiled: May 19, 2005Publication date: November 23, 2006Applicant: Microsoft CorporationInventors: Andrew Birrell, Edward Wobber, Martin Abadi