Justifying Integrity Using a Virtual Machine Verifier

Justifying Integrity Using a Virtual Machine Verifier

Justifying Integrity Using a Virtual Machine Verifier Joshua Schiffman, Thomas Moyer, Christopher Shal, Trent Jaeger, and Patrick McDaniel Systems and Internet Infrastructure Security Laboratory Computer Science and Engineering Department, Pennsylvania State University University Park, PA 16802 fjschiffm,tmmoyer,cshal,tjaeger,[email protected] Abstract—Emerging distributed computing architectures, as Xen and Linux, these integrity problems may occur in such as grid and cloud computing, depend on the high integrity either the computing architecture or the customer’s use of execution of each system in the computation. While integrity that architecture. While architecture providers assert their measurement enables systems to generate proofs of their integrity to remote parties, we find that current integrity mea- diligence in providing a protected environment, such as surement approaches are insufficient to prove runtime integrity military grade physical protection of the EC2 cloud data for systems in these architectures. Integrity measurement centers [4], we aim for a principled approach for proving approaches that are flexible enough have an incomplete view of high integrity distributed computations. runtime integrity, possibly leading to false integrity claims, and While our ultimate goal is a single approach for gener- approaches that provide comprehensive integrity do so only for computing environments that are too restrictive. In this paper, ating proofs of integrity for a complete distributed compu- we propose an architecture for building comprehensive runtime tation, we find that current approaches for proving integrity integrity proofs for general purpose systems in distributed for a single system are insufficient for these architectures. computing architectures. In this architecture, we strive for Integrity measurement mechanisms build proofs of system classical integrity, using an approximation of the Clark-Wilson integrity, but to date such proofs either enable verification of integrity model as our target. Key to building such integrity proofs is a carefully crafted host system whose long-term partial integrity for general purpose systems [5]–[10] or en- integrity can be justified easily using current techniques and a able verification of comprehensive integrity for limited (e.g., new component, called a VM verifier, which comprehensively single application) systems [11]–[13]. Integrity measurement enforces our integrity target on VMs. We have built a prototype approaches that only justify incomplete integrity can give based on the Xen virtual machine system for SELinux VMs, a false sense of integrity when used on general purpose and find that distributed compilation can be implemented, providing accurate proofs of our integrity target with less than systems, unless they are used very carefully, so we aim 4% overhead. for comprehensive integrity. Previous approaches to prove VM system integrity [14] used incomplete integrity [5], so Keywords-cloud computing, integrity measurement, virtual machines the verifier had to make assumptions about the integrity of dynamic data on the base system and guest VM data (e.g., system-specific configurations and application data) I. INTRODUCTION that may lead to vulnerabilities. Integrity measurement ap- With the emergence of a variety of distributed comput- proaches that require custom systems are not practical for ing architectures, such as cloud computing [1] and stream these emerging, distributed computing architectures, as their processing [2], many applications are moving from central- limitations (e.g., a single application and complete system ized to distributed architectures, even architectures involving restarts) are not compatible with these architectures. multiple administrative interests. Cloud computing, in partic- In this paper, we design and implement a comprehen- ular, has gained significant mindshare in the past year. Cloud sive integrity measurement approach for general purpose architectures provide a simple interface to configure and systems. The design of our approach is based on three execute complex, large-scale applications for a modest fee insights. First, we leverage emerging work on practical without committing capital to resources or administration. integrity models [15]–[17] that define practical integrity In such distributed architectures, it is difficult for either the model for general purpose systems. Our approach generates computing architecture (e.g., cloud) provider or the customer proofs that a remote party can use to determine whether to determine whether the entire distributed computation was a virtual machine’s execution adheres to an approximation executed in a high integrity manner on all systems. Concerns of Clark-Wilson integrity [15]. Second, comprehensive in- may arise because one of the systems may use outdated, tegrity measurement [11], [12] requires secure initialization vulnerable code, have misconfigured policies or services, or (i.e., secure boot [18]), as well as runtime integrity. We may have been previously attacked with a rootkit, triggered leverage a secure initialization approach that binds boot- by malicious code or data [3]. As both the base system time integrity to the installation of the system [19]. Third, and guest VMs use conventional systems support, such we find that measuring integrity of general purpose systems II. PROBLEM DEFINITION 1) Upload Source Package Package Archive A. Scenario distcc distcc distcc distcc Node Node Node Node 3) Get 5) Upload As an example of a distributed service, consider Canon- Launchpad Source Binaries Web Portal Xen Xen ical’s Personal Package Archives (PPA), which compiles Host Host developer-supplied source code into packages for all sup- distcc ported platforms . This enables developers to concentrate Controller 2) Request to 4) Distribute Build Packages Compilation Tasks on the development of source code while the PPA does the work of building and hosting binary packages for the Ubuntu user community. Figure 1. A Personal Package Archives provides compilation services for developers to build binary packages for a variety of platforms. We envision The specific architecture of the PPA build system is such a service as a distributed compilation cluster (e.g. distcc, whereby not public, but we know that they use Xen-based virtual a web portal uploads packages and processes compilation requests. machine systems to host compiler nodes. Thus, we envision results in a large number of integrity-relevant events that the PPA system architecture as shown in Figure 1. Here, must be captured and justified to the remote party. Instead the PPA Launchpad frontend receives source packages from of recording all events and requiring the remote party to developers. As PPA may receive many packages from many deduce their impact, we leverage enforcement of integrity developers and needs to support several platforms for such to remove the need to convey these events. By enforcing an compilation, we envision a set of distributed compilations integrity property, we only need to prove to the remote party implemented by one or more distcc distributed compilers. that the VM was initialized securely and that this integrity The PPA frontend initiates a distcc compilation through property is enforced thoroughly at runtime. a distcc controller, which retrieves the package to be compiled from a package archive where it was uploaded pre- In this work, we make the following contributions: viously. The controller distributes the job to multiple nodes distcc • We define an integrity measurement approach that that perform the actual compilation. Note that starts from well-defined origins (e.g., installation) and can also be configured to enable nodes to offload work to enforces a comprehensive view of system integrity subnodes. The distcc controller will ultimately return the to generate practical integrity proofs for VM-based compiled code back to the package archive, where PPA can distributed computing nodes. then post the binary packages for users to download. • We demonstrate a two-level integrity measurement ap- Clearly, Canonical, as well as the developers and Ubuntu proach whereby an easily verified fixed base system en- user community depend on the integrity of the build process, forces a well-defined integrity property on application but this build process presents several challenges. First, the VMs, removing the need to verify the application VM portal and the archive are permitted to interact with un- details in favor of verifying the base system’s ability to trusted parties (users and developers), but the build process enforce a particular integrity property. depends on them preserving their integrity. Second, compiler • We deploy our integrity measurement approach on ap- nodes may delegate their work to other systems without the plication VM systems that perform distributed compila- knowledge of the portal. We need to ensure that all systems tions (distcc) and web serving (Apache) to evaluate that are depended upon for high integrity operations are our approach. For Apache, we show how to comprehen- verified as high integrity. Third, we do not know whether sively enforce CW-Lite integrity [15] on an application the components are configured correctly. Such configuration VM, and demonstrate that only a 4% increase in goes beyond code verification to access control policies, compilation time results from using our architecutre in firewalls, and configurations. a distcc cluster. A prior proposal for the Shamon system [14] enabled the

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us