university of lisbon - usenix · 2019. 12. 18. · key techniques for building depliances 5 nuno...

14
University of Lisbon Dependable Virtual Appliances Nuno Santos In collaboration w/ Nuno Lopes October 5, 2014

Upload: others

Post on 30-Dec-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

University of Lisbon

Dependable Virtual Appliances

Nuno Santos In collaboration w/ Nuno Lopes

October 5, 2014

Page 2: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Virtual Appliance: Cloud’s de facto executable

Nuno Santos 2

!  Virtual Appliance: pre-configured virtual machine image !  Provides, e.g., LAMP web server, mail server, database server…

!  Today,1000s of VAs available online, e.g., through Amazon EC2

Creator’s endpoint User’s endpoint

Cloud

Build VA (install SW)

VA Image

Virtual Machine

Upload and process data

Page 3: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

But beware of risks!

Nuno Santos 3

!  Researchers looked at 100s of public VAs [Bugiel11,Huh13]

!  Lack defenses. How can we mitigate these risks?

Passwords in files and logs

Key material

Private IP addresses

Data from deleted files

Malware

Misconfigured SW

Unpatched SW

Unlicensed SW

Risks for VA creators! Risks for VA users!

Page 4: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Our Vision: Dependable Virtual Appliances

Nuno Santos 4

!  We call them depliances !  Creators / users can verify config properties before shipment / usage

Creator’s endpoint User’s endpoint

Cloud

Check Props

Build VA

VA Template

Creator’s Required Properties

VA

VM

Attest VA

VA Template

Check Props

User’s Required Properties

Page 5: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Key Techniques for Building Depliances

Nuno Santos 5

Creator’s endpoint User’s endpoint

Cloud

Check Props

Build VA

VA Template

Creator’s Required Properties

VA

VM

Attest VA

VA Template

Check Props

User’s Required Properties

Model Checking To verify properties of VA model

Model Checker

Model Checker

Trusted Computing To build and attest VAs

Trusted Builder

Remote Attestation

Page 6: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Joomla"PHP pkg"

PHP"MySQL"

Apache"HTTP Server"

Example: Joomla Depliance

Nuno Santos 6

!  What is Joomla? !  Content management system !  Written in PHP !  For publishing web content

!  How to set it up? !  Configure the following SW

Linux"

Virtual Machine"

Page 7: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Step 1. VA Template Specification

Nuno Santos 7

!  Specify modules and inter-dependencies !  E.g., Linux, MySQL…

!  Specify config attributes !  E.g., “Root Pass”

!  Specify files !  E.g., /usr/mysql/my.cnf

VIRTUAL HARDWARE"

LINUX"

MYSQL"

PHP"

JOOMLA"

/etc/mysql/my.cnf"

APACHE"HTTP SERVER"

/boot/vmlinuz"/sbin/init"/etc/passwd"…"

/usr/bin/mysqld"

…"

/usr/sbin/apache2"/etc/httpd.conf"…"

/usr/lib/php5/…"

…"

bin/keychain.php"cli/index.html"…"

Mem = 512MB"

VDisk = 100GB"

CPU Cores = 8"

Root Pass = x"

…"

Root Pass = y"

…"

Admin Pass = k"

Admin Mail = l"

…"

…"

Root Pass = y"

MaxClients = c"…"

Admin Pass = w"

nthreads = t"…"

Joomla VA Template

Page 8: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Step 2. Property Specification and Verification

Nuno Santos 8

!  Describe modules’ behavior as state machines !  Config and file attributes as inputs

!  Specify properties as logic conditions !  Over config and file attributes

!  Model checker to verify properties !  E.g., PRISM, SPIN

Examples of properties to verify •  Efficiency:

“check number of concurrent threads for Apache and PHP based on memory and CPU cores”

•  Confidentiality:

“check passwords of Apache, MySQL, and PHP admin not default nor private identities”

•  Integrity:

“check versions of SW and missed patches”

Page 9: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Step 3. VA Image Generation

Nuno Santos 9

!  Through dedicated programs: trusted builders

!  Input: verified VA template

!  For each module:

!  Resolve dependencies

!  Run trusted builder to install and configure files of module

!  Output: VA image

VA Joomla Template

VA Joomla Image

Trusted Builders

Page 10: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Step 4. VA Instantiation and Attestation

Nuno Santos 10

!  Remote attestation protocol yields original VA template

User Host w/ TPM chip

nonce

sign({nonce, PCRs,template}, AIKpriv)

sign({PCRs, SWHH}, CAkey)

sign({AIKpub, TPMprovider}, CAkey)

Certificates

VM Instance of

Joomla Depliance

Hypervisor

Certificate Authority

Page 11: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Usage Scenarios

Nuno Santos 11

!  Condition: VA image must be built by trusted party

Case 1

VA built by creator Cloud only stores VA

! Fits today’s model " Must trust the

creator

Case II

VA built by cloud Creator shares VA

template

! No trust needed in creator

" Requires compute time in cloud

Case III

VA built by user Creator shares VA

template

! No trust needed in creator nor cloud " Requires compute

time locally

Page 12: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Open Challenges and Future Work

Nuno Santos 12

!  Thousands of SW config attributes is overwhelming !  Idea: decouple DSL abstractions from SW config attributes

!  Different properties require different verification approaches !  Idea: study best encoding logic and verification tools

!  Enable (partial) offload of VA generation to untrusted party !  Idea: generate trustworthy log of untrusted party operations

Page 13: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Conclusions

Nuno Santos 13

!  Virtual appliances popular, but creators and users incur risks !  Misconfigurations, security threats, privacy breaches, etc.

!  We propose depliance model to build dependable VAs !  Creators / users verify properties of VA before publication / usage

!  Depliance model enabled by two techniques:

!  Model checking and trusted computing

!  Many open challenges to be addressed in the future !  Find right level of DSL abstractions, efficient way of verifying properties

Page 14: University of Lisbon - USENIX · 2019. 12. 18. · Key Techniques for Building Depliances 5 Nuno Santos Creator’s endpoint User’s endpoint Cloud Check Props Build VA VA Template

Nuno Santos 14

Thanks! !Questions?!

http://www.gsd.inesc-id.pt/~nsantos/