HW (Fat001) TPM. Figure 1. Computing Node

Similar documents
A Virtualized Linux Integrity Subsystem for Trusted Cloud Computing

How to Secure Infrastructure Clouds with Trusted Computing Technologies

A technical whitepaper describing steps to setup a Private Cloud using the Eucalyptus Private Cloud Software and Xen hypervisor.

Technical Brief Distributed Trusted Computing

Introduction to Virtualization & KVM

Virtual Systems with qemu

OVAL+TPM. A Case Study in Enterprise Trusted Computing. Ariel Segall. June 21, 2011

TNC Endpoint Compliance and Network Access Control Profiles

Options in Open Source Virtualization and Cloud Computing. Andrew Hadinyoto Republic Polytechnic

Virtualization in Linux KVM + QEMU

RocketRAID 2640/2642 SAS Controller Ubuntu Linux Installation Guide

2) Xen Hypervisor 3) UEC

Private Cloud in Educational Institutions: An Implementation using UEC

Secure Data Management in Trusted Computing

Building Blocks Towards a Trustworthy NFV Infrastructure

EXPLORING LINUX KERNEL: THE EASY WAY!

Ubuntu 下 的 云 计 算. UbuntuChin 互 动 社 区 王 大 亮

vtpm: Virtualizing the Trusted Platform Module

Trusted Virtual Machine Management for Virtualization in Critical Environments

Patterns for Secure Boot and Secure Storage in Computer Systems

Desktop virtualization using SaaS Architecture

RocketRAID 174x SATA Controller Ubuntu Linux Installation Guide

Computer Virtualization in Practice

INF-110. GPFS Installation

Trustworthy Computing

Virtualization & Cloud Computing (2W-VnCC)

Deploy and test ovirt using nested virtualization environments. Mark Wu

Developing tests for the KVM autotest framework

Building a Private Cloud Cloud Infrastructure Using Opensource

Server Virtualization with Windows Server Hyper-V and System Center

Integrity measurements for stronger cloud-based authentication

Abstract. Microsoft Corporation Published: August 2009

Virtualization for Cloud Computing

Real-Time Virtualization How Crazy Are We?

KVM Security Comparison

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Software-based TPM Emulator for Linux

OGF25/EGEE User Forum Catania, Italy 2 March 2009

Virtualization: Know your options on Ubuntu. Nick Barcet. Ubuntu Server Product Manager

Platform as a Service and Container Clouds

The Art of Virtualization with Free Software

Computing Service Provision in P2P Clouds

FOG Guide. IPBRICK International. July 17, 2013

Tom Eastep Linuxfest NW April 26-27, 2008 Bellingham, Washington

Partek Flow Installation Guide

Chapter 2 System Structures

Xen Virtualization Software

Cautions When Using BitLocker Drive Encryption on PRIMERGY

Trus%ng your Cloud Provider s System

Efficient Load Balancing using VM Migration by QEMU-KVM

TNC: Open Standards for Network Security Automation. Copyright 2010 Trusted Computing Group

QEMU-KVM + D-System Monitor Setup Manual

Embedded Trusted Computing on ARM-based systems

Cedric Rajendran VMware, Inc. Security Hardening vsphere 5.5

FleSSR Project: Installing Eucalyptus Open Source Cloud Solution at Oxford e- Research Centre

Real-Time KVM for the Masses Unrestricted Siemens AG All rights reserved

Asterisk Xenified. Saúl Ibarra Corretgé

Security Considerations in Cloud Deployments Matthew Garrett

mytrustedcloud: Trusted Cloud Infrastructure for Security-critical Computation and Data Managment

Example of Standard API

How To Install Openstack On Ubuntu (Amd64)

Trusted Virtual Datacenter Radically simplified security management

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

LSN 10 Linux Overview

BitLocker Drive Encryption Hardware Enhanced Data Protection. Shon Eizenhoefer, Program Manager Microsoft Corporation

2972 Linux Options and Best Practices for Scaleup Virtualization

Systems Administration Introduction to OSPF

Privileged Cloud Storage By MaaS JuJu

Establishing and Sustaining System Integrity via Root of Trust Installation

October Gluster Virtual Storage Appliance User Guide

Private Clouds with Open Source

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

UBUNTU VIRTUAL MACHINE + CAFFE MACHINE LEARNING LIBRARY SETUP TUTORIAL

Lecture 7: Privacy and Security in Mobile Computing. Cristian Borcea Department of Computer Science NJIT

Procedure to Create and Duplicate Master LiveUSB Stick

MIFOS 2.2 ON CLOUD. Arun Philip Jacob Latha Madhuri Pratti

Creating Overlay Networks Using Intel Ethernet Converged Network Adapters

Compromise-as-a-Service

Installation Guide for AmiRNA and WMD3 Release 3.1

The Advantages of Trusted Virtual Platforms

Overview of Windows 10 Requirements for TPM, HVCI and SecureBoot

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Virtualizare sub Linux: avantaje si pericole. Dragos Manac

SUSE Linux uutuudet - kuulumiset SUSECon:sta

Accelerate OpenStack* Together. * OpenStack is a registered trademark of the OpenStack Foundation

Installation Runbook for Avni Software Defined Cloud

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

One-Stop Intel TXT Activation Guide

CISE Research Infrastructure: Mid-Scale Infrastructure - NSFCloud (CRI: NSFCloud)

The XenServer Product Family:

An Introduction to Virtualization and Cloud Technologies to Support Grid Computing

SLA Driven Load Balancing For Web Applications in Cloud Computing Environment

How to Restore a Linux Server Using Bare Metal Restore

USB Stick Driver Installation Instructions

Xen Zynq Distribution

SecureDoc Disk Encryption Cryptographic Engine

Setting up of an Open Source based Private Cloud

KVM, OpenStack, and the Open Cloud

Protecting the Filesystem Integrity of a Fedora 15 Virtual Machine from Offline Attacks using IMA/EVM Linux Security Summit 8 September 2011

SNPsyn documentation. Release 1.1b. Tomaž Curk Gregor Rot Davor Sluga Uroš Lotrič Blaž Zupan

Transcription:

1. Overview Two major components exist in our current prototype systems: the management node, including the Cloud Controller, Cluster Controller, Walrus and EBS, and the computing node, i.e. the Node Controller with the virtualization environment. Computing Nodes. Both the virtualized environment (the guest OS) and the virtualization environment (the host OS) should be integrated with trusted computing components. In this text we focus on integrating trusted computing with the QEMU- KVM virtualization layer, as it is the currently prevalent virtualization solution and comprehensive trusted computing integration for its counterpart, XEN, has already been released and is not hard to access. Indicates not yet deployed in current environment, and can be finished as soon as hardware TPM is available. Host OS Clent Guest OS Apps Verifier ( Server) Client TPM Driver Node Controller, other software TPM Driver Kernel-IMA SeaBIOS with TPM QEMU-with TPM libtpms Kernel-IMA Trusted Grub TPM HW (Fat001) Figure 1. Computing Node Host OS. From bottom-up, Trusted Grub should be installed to bootstrap the trusted environment. The kernel should be applied with the IBM IMA patches, in order to perform measurement for every loaded applications, kernel modules and possibly configuration files. TPM drivers should also be installed and loaded., the 1

Trusted Core Service daemon, is the major component of the TSS (TCG Software Stack). It exports the trusted services and also the cryptographic algorithms from the TPM to the upper layer applications. The (Open Platform Trust Services) is the software set implementing the attestation procedure. Its client part report the measurements stored in and certified by the TPM to its server part, which is usually hosted in the Verifier Platform, as depicted in the left in Figure 1. The server maintains a trusted measurement list to help examining whether the reported measurements and related SMLs (Stored Measurement Logs) are trustworthy. All the software components loaded on the Host OS, including the Node Controller and the virtualized software (QEMU) are measured and reported. Guest OS. To support trusted computing in QEMU-KVM virtualization environment, the QEMU should be patched with TPM supports, which contains a backend TPM driver to invoke the functionalities in libtpms and exports a frontend TPM to the Guest OS. LibTPMs implements emulated TPMs for each virtualized instance. The backend TPM driver in the patched QEMU can also be modified to link to other software TPM emulators or to communicate directly with underlying TPM hardware. SeaBIOS should also be patched with TPM supports. No bootloader is needed in this environment, and the upper layer software components are the same with in the host OS, including the Kernel-IMA patches, TPM drivers, and the client. Verification. As in this deployment architecture, no direct communication is made from the software TPM to the hardware TPM, the Guest OS and the Host OS is attested to and verified separately. As depicted in Figure 1, two set of clients are deployed and talk to the server in the verifier respectively. However, as the Guest OS is actually a loaded software component in the Host OS, attestation to the Host OS can also report the trustworthiness of the virtualization software, the libtpms and the QEMU, and whether the expected images and configuration files are loaded. The internal running state is verified by the attestation to the Guest OS. To implement a one-step attestation, libtpms can be modified to quote the PCR values in the hardware PCR. Management Node. The trusted computing integration architecture of the management node is depicted in Figure 2. Most added components are the same as in the Host OS of the computing node, including the Trusted Grub, Kernel-IMA, and the. The management components, mainly the CLC, CC, Walrus and EBS are measured by Kernel-IMA, and with the measurement values reported by the client. The policies of each of these components are important in this scenario and may result in the damage of the users benefits, so they should also be attested to. Moreover, as in our use case, access control to important files, mainly the virtual disk images, are also critical. SELinux can be active and with the access control policies attested to by clients. 2

Not yet deployed in current environment, and can be finished as soon as hardware TPM is available. Client CC OS CLC EBS Walrus Verifier ( Server) Policies Kernel-SELinux-IMA Trusted Grub TPM HW (uec.oerc) Figure 2. Management Node (CLC, CC, Walrus, EBS) Verifications. Attestations to both the management node and the computing node can also be implemented in two ways: separated attestation and integrated attestation. For the separated attestation, clients first attest to the computing node, to verify the whether right images have been loaded and executed by genuine underlying infrastructure. They then attest to the management node, to verify whether the genuine management components are loaded with expected policies enforced, which can indicate that the expected virtual disk images are loaded and well protected. For the integrated attestation, the verification to the management node can be enforced by the software components in the Guest OS, and with the trustworthiness reflected in the integrity values of the Guest OS. Hence the clients only need to attest to the Guest OS and then make sure whether its applications, the underlying virtualization enforcement components (Host OS) and the cloud computing enforcement components (Management Node) are trustworthy. 2. Components Deployment Kernel-IMA The IBM IMA patches have been integrated into the main kernel stream since 2.6.30. In our current environment, Ubuntu Maverick (10.10), the kernel version is 2.6.35, hence re-compiling the kernel with the IMA-related configurations can enable the IBM IMA supports. $ sudo apt-get source linux-image-`uname r` $ cd $KERNEL-SRC-PATH $ cp -vi /boot/config-`uname -r`.config $ make oldconfig 3

set following in.config CONFIG_IMA=y CONFIG_IMA_MEASURE_PCR_IDX=10 CONFIG_IMA_AUDIT=y CONFIG_IMA_LSM_RULES=y $ fakeroot make-kpkg --initrd --append-to-version=-some-string-here kernel-image kernel-headers $ sudo dpkg -i../linux-image-xxx.deb $ sudo dpkg -i../linux-headers-xxx.deb TPM Driver TPM drivers are compiled by default in current Ubuntu versions as kernel modules. However, for the current Ubuntu Guest OS, where linux-image-2.6.35-virtual is used as kernel, no TPM driver module exists. But this is fixed by default when installing the Kernel-IMA to it. libtpms $ tar zxvf libtpms-0.5.1.tgz $ cd $LIBTPMS-SRC $ make f makefile-libtpms $ make f makefile-libtpms install SeaBIOS $ git clone git://git.seabios.org/seabios.git $ cd $SEABIOS-SRC $ patch p0 <SeaBIOS-TPM.patch $ make Qemu-TPM $ git clone git://git.qemu.org/qemu.git $ cd $QEMU-SRC $ patch p0 <qemu-tpm.patch $./configure -enable-kvm -enable-tpm 4

$ make; sudo make install The IBM implement of, the TrouSers, is included in current Ubuntu versions, and can be easily installed. $ sudo apt-get trousers $ sudo apt-get install libcommons-codec-java libcommons-loggingjava libpg-java liblog4j1.2-java libibatis-java $ sudo apt-get install libcommons-discovery-java libaxis-java $ sudo apt-get install liblog4j1.2-java-gcj libaxis-java-gcj $ sudo apt-get install cdbs debhelper default-jdk-builddep $ sudo ln -s /usr/lib/jvm/java-1.6.0-openjdk /usr/lib/jvm/java-6- sun $ git clone git://git.sourceforge.jp/gitroot/openpts/tools.git $ cd tools $ make dpkg-buildpackage $ sudo dpkg -i../openpts-tools_xxx.deb $ git clone git://git.sourceforge.jp/gitroot/openpts/core.git $ cd core $ make dpkg-buildpackage $ sudo dpkg -i../openpts-core_xxx.deb $ sudo dpkg -i../openpts-core-gcj_xxx.deb 3. Experiments $ mkdir seabios $ cp /usr/share/qemu/* seabios/ -R $ cp $SEABIOS-SRC/out/bios.bin seabios/ $ qemu-img create qcow2 tpm.nvram 63k 5

$ ln s $NEW-QEMU qemu-tpm $ sudo qemu-tpm kernel $KERNEL initrd $INITRD append $ARGS - drive if=virtio,file=$disk -tpm type=builtin,path=tpm.nvram - nographic -L seabios -enable-kvm tpm_tis: read(00000018) = 000fef88 tpm_tis: write(00000024) = 00000000 tpm_tis: Byte to send to TPM: 00 tpm_tis: read(00000018) = 000fee80 tpm_tis: read(00000018) = 000fee80 tpm_tis: write(00000018) = 00000020 tpm_tis: tpm_tis: To TPM length = 18 00 C1 00 00 00 12 00 00 00 65 00 00 00 07 00 00 00 00...... tpm_tis: read(00000024) = 00000000 tpm_tis: read(00000018) = 00100080 tpm_tis: read(00000018) = 00100080 tpm_tis: write(00000018) = 00000040 tpm_tis: read(00000000) = 000000a1 Ubuntu 10.10 ubuntuhost ttys0 ubuntuhost login: ubuntu@ubuntuhost:~$ ls /dev/tpm* /dev/tpm0 ubuntu@ubuntuhost:~$ tpm_version TPM 1.2 Version Info: Chip Version: 1.2.17.128 Spec Level: 2 6

Errata Revision: 3 TPM Vendor ID: IBM TPM Version: 01010000 Manufacturer Info: 49424d00 ubuntu@ubuntuhost:~$ sudo cat /sys/kernel/security/tpm0/ascii_bios_measurements 1 1a6a0303dabdcbc104fdfd4302c90499a377ded4 06 [SMBIOS] 2 4f4ca75d3a876437faa96e4d35d64110090faba6 06 [Option ROM] 2 9dbd87163112e5670378abe4510491259a61f411 05 [Start Option ROM Scan] 4 c1e25c3f6b0dc78d57296aa2870ca6f782ccf80f 05 [Calling INT 19h] 0 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 1 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 2 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 3 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 4 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 5 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 6 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 7 d9be6524a5f5047db5866813acf3277892a7a30a 04 [] 4 be38484ddd911f42aed970ccd2c42dfb6fa4350f 05 [Booting BCV device 00h (Floppy)] 4 2daa7010226b59cee4227de5636b68767627acfc 0d [IPL] 5 806d1fc2d901d2e0b498f5b1bd8b4964733ff9ec 0e [IPL Partition Data] s untu@ubuntuhost:~$ sudo cat /sys/kernel/security/ima/ascii_runtime_measurements 10 2032055c24ebfc2b3fa8c4268bbf7f21a9ef8507 ima fca82a97f8741008a8613a0189812e9eb29d209b boot_aggregate 7