REX: secure, extensible remote execution

  • Authors:
  • Michael Kaminsky;Eric Peterson;Daniel B. Giffin;Kevin Fu;David Mazières;M. Frans Kaashoek

  • Affiliations:
  • MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science;MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science;MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science;MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science;MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science;MIT Computer Science and Artificial Intelligence Laboratory, NYU Department of Computer Science

  • Venue:
  • ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The ubiquitous SSH package has demonstrated the importance of secure remote login and execution. As remote execution tools grow in popularity, users require new features and extensions, which are difficult to add to existing systems. REX is a remote execution utility with a novel architecture specifically designed for extensibility as well as security and transparent connection persistence in the face of network complexities such as NAT and dynamic IP addresses. To achieve extensibility, REX bases much of its functionality on a single new abstraction--emulated file descriptor passing across machines. This abstraction is powerful enough for users to extend REX's functionality in many ways without changing the core software or protocol. REX addresses security in two ways. First, the implementation internally leverages file descriptor passing to split the server into several smaller programs, reducing both privileged and remotely exploitable code. Second, REX selectively delegates authority to processes running on remote machines that need to access other resources. The delegation mechanism lets users incrementally construct trust policies for remote machines. Finally, REX provides mechanisms for accessing servers without globally routable IP addresses, and for resuming sessions when a TCP connection aborts or an endpoint's IP address changes. Measurements of the system demonstrate that REX's architecture does not come at the cost of performance.