Transcript
Page 1: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Securing distributed systems with

information flow control

Nickolai ZeldovichSilas Boyd-Wickizer

David Mazières

Page 2: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Traditional web applications:lots of trusted (yellow) code

Applicationcode Database

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

● Application is typically millions of lines of code● Lots of third-party libraries from SourceForge● Application has access to entire user database

Page 3: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Traditional web applications:lots of trusted (yellow) code

Applicationcode Database

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

● Application is typically millions of lines of code● Lots of third-party libraries from SourceForge● Application has access to entire user database● Result: any bug allows attacker to steal all data!

– PayMaxx app code exposed 100,000 users' SSNs

Page 4: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Recent work:information flow control

● Don't try to eliminate all application bugs (hard!)● OS'es like Asbestos, HiStar, Flume keep user

data secure even if application is malicious– Track flow of user's data through system– Only send user's data to that user's browser– No need to audit/understand application code!

Page 5: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Recent work:information flow control

● Don't try to eliminate all application bugs (hard!)● OS'es like Asbestos, HiStar, Flume keep user

data secure even if application is malicious– Track flow of user's data through system– Only send user's data to that user's browser– No need to audit/understand application code!

● Limitation: works only on one machine– Web applications need multiple machines for scale

Page 6: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

This talk: extending informationflow control to distributed systems

● Outline:– Review of information flow control (IFC) in an OS– Challenges in distributed IFC and our solution– Apps: web server, incremental deployment, ...

● Results:– Can control information flow in distributed system– Key idea: self-certifying category names– Enforce security of scalable web server in 6,000 lines

Page 7: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels control information flow

File A Process

Label Label

File B

Label

Page 8: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels control information flow

File A Process

Label Label

File B

Label

Blue data can flow only to other blue objects

Color is category of data (e.g. my files)

Page 9: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels control information flow

File A Process

Label Label

File B

Label

X

X Blue data can flow only to other blue objects

Color is category of data (e.g. my files)

Page 10: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels control information flow

File A Process

Label Label

File B

Label

X

Color is category of data (e.g. my files)X

Blue data can flow only to other blue objects

Page 11: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels control information flow

File A Process

Label Label

File B

Label

Owns blue data, can remove color (e.g. encrypt)

Color is category of data (e.g. my files)

Blue data can flow only to other blue objects

Page 12: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels are egalitarian

File A Process

Label Label

File B

Label

● Any process can request a new category (color)– Gets ownership of that category ( )– Uses category in labels to control information flow– Can grant ownership to others

Page 13: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Traditional web server:lots of trusted (yellow) code

Applicationcode Database

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Page 14: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Information flow control:separate color for each user's data

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

DatabaseApplicationcode

Page 15: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Information flow control:track each user's data in app

Applicationcode

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Applicationcode

Applicationcode

Database

Page 16: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Labels prevent application codefrom disclosing data onto network

Applicationcode

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Applicationcode

ApplicationcodeX

X

Database

Page 17: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Front-end uses ownership to send data only to user's browser

Applicationcode

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Applicationcode

ApplicationcodeX

X

Database

Page 18: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Front-end uses ownership to send data only to user's browser

Applicationcode

User'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Applicationcode

ApplicationcodeX

X

Database

● What happens when the server gets overloaded?

Page 19: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Limitation: OS alone cannot control information flow in distributed system

Applicationcode

XUser'sbrowser

HTTPfrontend

User'sbrowserUser's

browser

Applicationcode

Applicationcode

XX

X

X

X

X

X

Database

Page 20: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Distributed challenge: when toallow processes to communicate?

HTTPfront-end

Applicationserver

httpd App code

● Design goal: decentralized – no fully-trusted parts– (Not the usual meaning of decentralized IFC, or DIFC)

● Challenge: no equivalent of a fully-trusted OS kernel that can make all decisions

?

Dataserver

Database

?

Page 21: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

High-level approach:encode labels in messages

HTTPfront-end

Applicationserver

httpd

Message

App code

Each machine uses OS to enforce labels locally

Dataserver

Message

Database

Page 22: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Problem: decentralized trust● When can we trust the recipient with message?

Attacker'smachine

X

HTTPfront-end

Applicationserver

httpd

Message

App code

Dataserver

Message

Database

Page 23: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Solution: per-category trust● DB trusts front-end, app servers with a particular

user's data (e.g. messages labeled blue)● But DB doesn't trust the app code...Attacker'smachine

X

HTTPfront-end

Applicationserver

httpd

Message

App code

Dataserver

Message

Database

Page 24: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Exporters control information flowon each machine using local OS

HTTPfront-end

Applicationserver

httpd

Message

App code

Dataserver

Message

Database

Exporter Exporter Exporter

● Database doesn't trust the app code, but trusts the app server's exporter to contain the app code

Attacker'smachine

X

Page 25: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Exporter's API

exp_send(dest_host, dest_mbox, msg, label)

– Exporter provides interface to send datagrams

– Message should only be sent if every categoryin label trusts the machine dest_host

– How does the exporter check for this trust?

Page 26: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Strawman: check trust by querying category owners

Exporter

Process(secret bit = 1)

Category owner

Page 27: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Strawman: check trust by querying category owners

Exporter

Process(secret bit = 1)

exp_send(host_x, msg)

Category ownerHost X

? ?

Page 28: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Strawman: check trust by querying category owners

Exporter

Process(secret bit = 1)

exp_send(host_x, msg)

Category owner

Control msg:“can I send to

host_x?”

Host X

? ?

Page 29: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Querying category ownerscreates a covert channel in API

Exporter

Process(secret bit = 1)

Category ownerAttacker's host

X

Host X

Page 30: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Querying category ownerscreates a covert channel in API

Exporter

Process(secret bit = 1)

Category ownerAttacker's host

X

Host X

Page 31: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Querying category ownerscreates a covert channel in API

Exporter

Process(secret bit = 1)

Category ownerAttacker's host

X

exp_send(host_x, msg)

Host X

? ?

Page 32: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Querying category ownerscreates a covert channel in API

Exporter

Process(secret bit = 1)

Category ownerAttacker's host

X

exp_send(host_x, msg)

Host X

? ?

Control msg:“can I send to

host_x?”

Control msg:“can I send to

host_x?”

Page 33: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Strawman 2:store trust in exporter

Exporter

Process(secret bit = 1)

host_x host_y

Page 34: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Strawman 2:store trust in exporter

Exporter

Process(secret bit = 1)

exp_send(host_x, msg)

host_x host_y

● Exporter sends no queries that could leak data

Page 35: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Storing trust in exporter alsocreates a covert channel in API

Exporter

Process(secret bit = 1)

host_x

ColludingProcess

Attacker's host Y

X

Page 36: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Storing trust in exporter alsocreates a covert channel in API

Exporter

Process(secret bit = 1)

host_x

ColludingProcess

Attacker's host Y

X

exp_trust( , host_y)

host_y

Depends on value of the

secret bit

Page 37: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Storing trust in exporter alsocreates a covert channel in API

Exporter

Process(secret bit = 1)

host_x

ColludingProcess

Attacker's host Y

X

Depends on value of the

secret bit

host_y

exp_send(host_y, msg)

Depends on behavior of malicious process

Depends on value of the

secret bit

exp_trust( , host_y)

Page 38: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Problem:What to do with covert channels?

● Non-goal: eliminate all covert channels– Not practical

● Goal: avoid covert channels in interface– Allow trading off performance to mitigate

covert channels without changing the API

Page 39: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Solution:Self-certifying category names

● Categories named by public key

● Trust for a category defined by certificates signed by that category's private key

● Caller supplies all certificates to exp_send()

Page 40: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Caller supplies all certificatesneeded by exporter

exp_send(dest_host, dest_mbox, msg, label, certs)

Caller-supplied

Page 41: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Caller supplies all certificatesneeded by exporter

exp_send(dest_host, dest_mbox, msg, label, certs)

=

Caller-supplied

Mapping

Page 42: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Caller supplies all certificatesneeded by exporter

exp_send(dest_host, dest_mbox, msg, label, certs)

Can send tohost X

=

Caller-supplied

Mapping

Certificate

No covert channelsto determine trust:

➔ No external communication

➔ No shared state

Page 43: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Exporter API design summary● Self-certifying categories allow exporter to be

stateless – just verify caller-supplied certificates– Stateless exporter design avoids covert channels

● exp_send() sends labeled datagrams– Also allows granting ownership (stars) across network– By design, only depends on caller-supplied args!

● Small trusted exporter: 3,700 lines + libs (crypto)

Page 44: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

exp_send() enforces securitypolicies specified by labels

Exporter: datagrams via exp_send()

● Higher-level functionality will not be trusted

Page 45: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Building distributed applicationson top of exp_send()

RPC library

Exporter: datagrams via exp_send()

● RPC implemented on top of exp_send's datagrams, much like RPC over UDP

Page 46: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Building distributed applicationson top of exp_send()

Resourceallocation

Exporter: datagrams via exp_send()

RPC library

● Resource allocation RPC server(manages access to CPU, memory)

Page 47: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Building distributed applicationson top of exp_send()

Resourceallocation

Exporter: datagrams via exp_send()

RPC library

● Program invocation: starts a process using previously-allocated resources

Programinvocation

Page 48: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Application

Building distributed applicationson top of exp_send()

Resourceallocation

Exporter: datagrams via exp_send()

RPC library

Programinvocation

Page 49: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Bootstrapping a new machine

New machine B Existing machine A

Resources root's shell

Exporter A Exporter B =

● Goal: gain access to new machine's resourcesusing admin's privileges on existing machine

Page 50: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Bootstrapping a new machine

New machine B Existing machine A

Resources root's shell

Exporter A Exporter B =

(1) Create mapping on new machine to bridge its protection domain with existing machine's

(2) Write down new machine's public key

=

(1)Mapping

(2)B's public

key

Page 51: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Bootstrapping a new machine

New machine B Existing machine A

Resources root's shell

Exporter A Exporter B =

● Use process invocation and ownership of root's category to start running code on new machine

=

Message

Process

Page 52: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

User'sbrowser

Userdata

Userdata

Traditional web server (like Apache):1M+ lines of trusted code

Application(PDF: 600k LoC)

Userdata

listener OpenSSL(340k LoC)

http

RSAkeyUser's

browserUser'sbrowser

Page 53: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

Application codecannot disclose user data

Application(PDF: 600k LoC)

Userdata

listener OpenSSL(340k LoC)

http

RSAkey

User'sbrowserUser's

browserUser'sbrowser

Page 54: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

httpdhttpd

User'sauth agent

User'sauth agent

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

Per-user authentication agents, no fully-privileged code

Application(PDF: 600k LoC)

Userdata

listener OpenSSL(340k LoC)

http

RSAkey

User'sauth agent

Password

User'sbrowserUser's

browserUser'sbrowser

Page 55: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

inetd OpenSSL(340k LoC)

OpenSSL(340k LoC)

httpdhttpd

User'sauth agent

User'sauth agent

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

SSL librarycannot send data to attacker

Application(PDF: 600k LoC)

Userdata

inetd OpenSSL(340k LoC)

http

RSAkey

User'sauth agent

Password

User'sbrowserUser's

browserUser'sbrowser

listener

Page 56: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

User'sbrowserUser's

browserUser'sbrowser

SSLSSL

httpdhttpd Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

SSL librarycannot disclose private key

Application(PDF: 600k LoC)

Userdata

SSL

http

RSAkeyRSAd

4600 lines340k lines

inetdinetdlistener

User'sauth agent

User'sauth agent

User'sauth agent

Password

Page 57: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

SSLSSL

httpdhttpd

User'sauth agent

User'sauth agent

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

Security enforced by~6,000 lines of code (yellow)

Application(PDF: 600k LoC)

Userdata

SSL

http

RSAkey

User'sauth agent

Password

RSAd

310 lines

300 lines

360lines

User'sbrowserUser's

browserUser'sbrowser

340k lines4600 lines

inetdinetdlistener

Page 58: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

SSLSSL

httpdhttpd

User'sauth agent

User'sauth agent

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

Scalable web server,no fully-trusted machines

Application(PDF: 600k LoC)

Userdata

SSL

http

RSAkey

User'sauth agent

Password

RSAd

310 lines

300 lines

360lines

User'sbrowserUser's

browserUser'sbrowser

340k lines4600 lines

inetdinetdlistener

Page 59: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Replication● Goal: ensure certificate private key is protected

while minimizing trusted code

New server BExisting server A

Resourcesroot's shell

key replicator

RSAkey

Page 60: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Replication● Admin gives key replicator access to resources

(blue star) and name (public key) of new server

New server BExisting server A

Resourcesroot's shell

keyreplicator

RSAkeyReplicate

to B

Page 61: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Replication● Replication daemon sends over key and starts

RSAd (using program invocation RPC service)

New server BExisting server A

Resourcesroot's shell

keyreplicator

RSAkey RSA

keyRSAd

Page 62: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Replication● Admin provides resources, but does not get

access to RSA key itself

New server BExisting server A

Resourcesroot's shell

keyreplicator

RSAkey RSA

keyRSAd

Page 63: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Network protocolworks with multiple OS'es

SSLSSL

httpdhttpd

User'sauth agent

User'sauth agent

Application(PDF: 600k LoC)Application

(PDF: 600k LoC)

Userdata

Userdata

Application(PDF: 600k LoC)

Userdata

SSL

http

RSAkey

User'sauth agent

RSAd

310 lines

300 lines

340k lines4600 lines

Password

inetdinetdlistener

HiStar

Linux

Flume

Page 64: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Incremental deployment example:Run untrusted perl on HiStar

Return value, output data

Perl code, input data

● Security policy specified by label● Lower overhead, richer policies than VM/sandbox

HiStar machineLinux machine

perl

ExporterExporterLibrary

Apache

Page 65: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Scaling untrusted app codeto multiple compute clusters

● Extend the idea of untrusted application code to third-party compute clusters

● Earlier: untrusted app code handles user data– Limitation: had to use web site's trusted servers– Cannot mix Facebook+MySpace: no common server

● Now: users can explicitly trust compute clusters– Secure mash-ups can combine data from many sites– No need for fully-trusted common application platform

Page 66: Securing distributed systems with information flow …people.csail.mit.edu/nickolai/papers/nsdi2008-dstar...Securing distributed systems with information flow control Nickolai Zeldovich

Summary● Shown how to use information flow control for

security in decentralized distributed systems

● Key idea: self-certifying category names stateless checks no implicit shared state avoids covert channels in design

● Build everything on top of datagrams with IFC


Recommended