Top Banner
Shadow: Real Applications, Simulated Networks Dr. Rob Jansen U.S. Naval Research Laboratory Center for High Assurance Computer Systems Cyber Modeling and Simulation Technical Working Group Mark Center, Alexandria, VA October 25 th , 2017
55

Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Jun 30, 2018

Download

Documents

phungcong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks

Dr. Rob JansenU.S. Naval Research LaboratoryCenter for High Assurance Computer Systems

Cyber Modeling and Simulation Technical Working GroupMark Center, Alexandria, VA

October 25th, 2017

Page 2: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

• Open-source network simulator / emulator hybrid

• Directly executes real applications like Tor and Bitcoin over a simulated network topology

• Efficient, scalable, deterministic, accurate, and more!

Shadow: Real Applications, Simulated Networks | 2U.S. Naval Research Laboratory

What is Shadow?

Page 3: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 3U.S. Naval Research Laboratory

How does Shadow Work?

OS Kernel

OS Kernel

OS Kernel

App

App

App

TCP IP

TCP IP

TCP IP

Internet

Page 4: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 4U.S. Naval Research Laboratory

How does Shadow Work?

OS Kernel

OS Kernel

OS Kernel

App

App

App

TCP IP

TCP IP

TCP IP

Internet

Shadow - OS emulation and network simulation

Page 5: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 5U.S. Naval Research Laboratory

Why should you care?

• Expedite research and development

• Evaluate software mods or attacks without harming real users

• Understand holistic effects before deployment

• Shadow supports simulation for general-purposeapplications

Page 6: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 6U.S. Naval Research Laboratory

Talk Outline

• Experimentation options and tradeoffs

• Shadow design

• Simulation use cases – The Tor Anonymity Network• Gentle Tor introduction• Congestion problems• Scheduling algorithms• Performance enhancing algorithms• Denial of service attacks

• Conclusion

Page 7: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Experimentation Options

Page 8: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 8U.S. Naval Research Laboratory

Desirable Experiment Properties

Controllable

Accurate

Scalable Reproducible

Shadow’s design goal

Page 9: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 9U.S. Naval Research Laboratory

Live Network Experiments

Experimenting in a deployed distributed system• Pros

• Most realistic • The target environment

• Cons• Hard to manage/debug• Lengthy deployment• Security risks

Page 10: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 10U.S. Naval Research Laboratory

Testbed Network Experiments

Experimenting in a distributed testbed (e.g. PlanetLab)• Pros

• Close to target environment

• Runs on the Internet or uses Internet protocols

• Cons• Hard to manage and

debug• Doesn’t scale well in

low-resource environs• Can be hard to model

network properties

Page 11: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 11U.S. Naval Research Laboratory

Network Emulation

Experimenting with network emulators (e.g. Modelnet)• Pros

• Runs on the target OS and uses Internet protocols

• Can model various network properties

• Cons• Requires multiple

machines and custom installed OS

• Must run in real time• Per-process overhead

may cause kernel issues

Page 12: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 12U.S. Naval Research Laboratory

Network Simulation

Experimenting with network simulators (e.g. NS3)• Pros

• Deterministic (reproducible)• Can model various network

properties• Can scale very well

• Cons• Application model can

be too abstract• Abstractions can lead to

inaccurate results

Page 13: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

U.S. Naval Research Laboratory

Simulation vs. Emulation: Realism

Shadow: Real Applications, Simulated Networks | 13

Simulation EmulationAbstracts away most system components

Runs the real OS, kernel, protocols, applications

Simulator is generally only internally consistent

Software is interoperable with external components

Less resource intensive More resource intensive

Page 14: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

U.S. Naval Research Laboratory

Simulation vs. Emulation: Time

Shadow: Real Applications, Simulated Networks | 14

Simulation Emulation“As-fast-as-possible” Real time

Control over clock, can pause time without issue

Time must advance in synchrony with wall-clock

Weak hardware extends total experiment runtime

Weak hardware causes glitchesthat are difficult to detect and diagnose

Page 15: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow Design

Page 16: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 16U.S. Naval Research Laboratory

Shadow Overview

• Parallel discrete-event network simulator

• Models routing, latency, bandwidth

• Simulates time, CPU, OS• TCP/UDP, sockets, queuing, threading

• Emulates POSIX C API on Linux

• Directly executes apps as plug-ins

Page 17: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 17U.S. Naval Research Laboratory

Initializing the Simulation

Load network model, create virtual hosts

Page 18: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 18U.S. Naval Research Laboratory

Shadow Simulation Layout

• Global simulation clock

• Discrete event queue

• Shadow worker threads

• Virtual hosts

• Virtual processes (i.e. namespaces)

• Virtual threads

• Network model

Directly executed software plug-ins

Page 19: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 19U.S. Naval Research Laboratory

App Memory Management

Plug-in Data 1

Library Data 1

Namespace 1

Plug-in Data 2

Library Data 2

Namespace 2

Plug-in Data 3

Library Data 3

Namespace 3

Plug-in Code (read-only)

Library Code (read-only)

Apps loaded in independent namespaces, copy-on-write

Page 20: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 20U.S. Naval Research Laboratory

Direct Execution in a Simulator

Application

libc API(send, write, etc.)

Function Interposition

Shadow – Simulated Linux Kernel Libraries and Network Transport

Application

libc API(send, write, etc.)

Application

libc API(send, write, etc.)

Function Interposition

Function Interposition

libc libc libc

Namespace 1 Namespace 2 Namespace 3

Page 21: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Simulation Use Cases –The Tor Anonymity Network

Page 22: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Gentle Tor Introduction

Page 23: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 23U.S. Naval Research Laboratory

Tor Overview

Tor: a censorship resistant, privacy-enhancing anonymous communication system

Estimated ~1.75 M. Users/Day(metrics.torproject.org)

Page 24: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 24U.S. Naval Research Laboratory

Anonymous Communication

Page 25: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Congestion Analysis

Page 26: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 26U.S. Naval Research Laboratory

Multiple Hops – Tor is Slower

Page 27: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 27U.S. Naval Research Laboratory

Buffers in a Tor Relay

Kernel Input Kernel OutputTor Input

Tor Output

Tor Circuits

Page 28: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 28U.S. Naval Research Laboratory

Tracking Congestion in Tor

Kernel Input Kernel OutputTor Input

Tor Output

Tor Circuits

Track the Unique ID Unique ID

Unique ID Track the Unique ID

Page 29: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 29U.S. Naval Research Laboratory

Tracking Congestion in Tor

Kernel Input Kernel OutputTor Input

Tor Output

Tor Circuits

Track the Unique ID Unique ID

Unique ID Track the Unique ID

Congestion occurs almost exclusively in

outbound kernel buffers

Page 30: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Scheduling Analysis

Page 31: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 31U.S. Naval Research Laboratory

Tor Circuit PriorityScenarios to understand outbound queue congestion

Page 32: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 32U.S. Naval Research Laboratory

Tor Circuit PriorityScenarios to understand outbound queue congestion

0.0 0.2 0.4 0.6 0.8 1.0Throughput (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0

Cum

ulat

ive

Frac

tion

160 180 200 220 2400.00.20.40.60.81.0

DE

TER

pri+

rr

pri-

0.00.20.40.60.81.0

Shadow

0.0 0.2 0.4 0.6 0.8 1.0Throughput (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0

Cum

ulat

ive

Frac

tion

40 60 80 100 120 140 1600.00.20.40.60.81.0

DE

TER

pri+

rr

pri-

0.00.20.40.60.81.0

Shadow

Correctly differentiated No differentiation

Page 33: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 33U.S. Naval Research Laboratory

Tor Circuit PriorityScenarios to understand outbound queue congestion

0.0 0.2 0.4 0.6 0.8 1.0Throughput (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0

Cum

ulat

ive

Frac

tion

160 180 200 220 2400.00.20.40.60.81.0

DE

TER

pri+

rr

pri-

0.00.20.40.60.81.0

Shadow

0.0 0.2 0.4 0.6 0.8 1.0Throughput (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0

Cum

ulat

ive

Frac

tion

40 60 80 100 120 140 1600.00.20.40.60.81.0

DE

TER

pri+

rr

pri-

0.00.20.40.60.81.0

Shadow

99.775% of any two circuits are unshared

Correctly differentiated No differentiation

Page 34: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Performance Analysis

Page 35: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 35U.S. Naval Research Laboratory

Kernel-Informed Socket Transport

Queuing delays in kernel output buffer

Problem 1: Circuit schedulingSolution:

• Don’t handle sockets individually• Process flush requests from all writable sockets

Problem 2: Flushing to sockets – buffer bloatSolution:

• Don’t write if kernel can’t send• Use TCP info to bound kernel writes

Page 36: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 36U.S. Naval Research Laboratory

Network Simulation with Shadow

Enhanced Shadow with several missing TCP algorithms• CUBIC congestion control• Retransmission timers• Selective acknowledgements (SACK)• Forward acknowledgements (FACK)• Fast retransmit/recovery

Designed largest known private Tor network• 3600 relays and 12000 simultaneously active clients• Internet topology graph: ~700k vertices and 1.3m edges

Analyze network-wide effects

Page 37: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 37U.S. Naval Research Laboratory

KIST Reduces Kernel Congestion

10�1 100 101 102 103

Time (ms)

0.0

0.2

0.4

0.6

0.8

1.0C

umul

ativ

eFr

actio

n

vanilla

global

KIST

Page 38: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 38U.S. Naval Research Laboratory

KIST Improves Network Latency

0.0 0.5 1.0 1.5 2.0 2.5 3.0Time to First Byte (s)

0.0

0.2

0.4

0.6

0.8

1.0C

umul

ativ

eFr

actio

nvanilla

global

KIST

0.5 1 2 4 80.4

0.6

0.8

1.0

Page 39: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Denial of Service Attacks

Page 40: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 40U.S. Naval Research Laboratory

The Sniper Attack

• Memory-based denial of service (DoS) attack

• Exploits vulnerabilities in Tor’s flow control protocol

• Can be used to disable arbitrary Tor relays

Page 41: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 41U.S. Naval Research Laboratory

The Sniper Attack

Start Download

Request

exitentry

Page 42: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 42U.S. Naval Research Laboratory

The Sniper Attack

exitentry

Package and Relay DATA

DATA

DATA

Reply

Page 43: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 43U.S. Naval Research Laboratory

The Sniper Attack

exitentry

DATA

DATA

Stop Reading from Connection

DATA

R

Page 44: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 44U.S. Naval Research Laboratory

The Sniper Attack

exitentry DATA

R

Flow Window Closed

DATADATADATA

Page 45: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 45U.S. Naval Research Laboratory

The Sniper Attack

exitentry DATA

R

DATADATADATA

Periodically Send SENDME SENDME

Page 46: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 46U.S. Naval Research Laboratory

The Sniper Attack

exitentry DATA

R

DATADATADATA

SENDME

Flow Window Opened

DATA

DATADATADATA

Page 47: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 47U.S. Naval Research Laboratory

The Sniper Attack

exitentry DATA

R

DATADATADATA

SENDME

DATA

DATADATADATA

Periodically Send SENDME SENDME

Flow Window Opened

DATADATADATA

DATADATADATA

DATADATADATA

DATADATADATA

Out of Memory, Killed by OS

Page 48: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 48U.S. Naval Research Laboratory

The Sniper Attack: Results

• Implemented Sniper Attack Prototype• Control Sybils via the Tor control protocol

• Tested in Shadow for safety

• Measured:• Victim memory consumption rate• Adversary bandwidth usage

• Developed defense, tested in Shadow, merged in Tor

Page 49: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 49U.S. Naval Research Laboratory

RAM Consumed at Victim

0 500 1000 1500 2000 2500Mean Target RAM Consumption Rate (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0C

umul

ativ

eFr

actio

n

directanonymous

Page 50: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 50U.S. Naval Research Laboratory

Bandwidth Consumed at Adversary

0 20 40 60 80 100Mean Sniper BW Consumption Rates (KiB/s)

0.0

0.2

0.4

0.6

0.8

1.0C

umul

ativ

eFr

actio

n

direct Txanonymous Txdirect Rxanonymous Rx

Page 51: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 51U.S. Naval Research Laboratory

Speed of the Sniper Attack

Direct AnonymousRelay Groups Select % 1 GiB 8 GiB 1 GiB 8 GiBTop Entry 1.7 0:01 0:18 0:02 0:14Top 5 Entries 6.5 0:08 1:03 0:12 1:37Top 20 Entries 19 0:45 5:58 1:07 8:56Top Exit 3.2 0:01 0:08 0:01 0:12Top 5 Exits 13 0:05 0:37 0:07 0:57Top 20 Exits 35 0:29 3:50 0:44 5:52

Time (hours:minutes) to Consume RAM

< 1 GiB RAM< 50 KiB/s Downstream BW< 100 KiB/s Upstream BW

Page 52: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Conclusion

Page 53: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 53U.S. Naval Research Laboratory

Other Shadow Uses

• Tor• Latency and throughput correlation attacks• Denial of Service attacks (sockets, RAM, bandwidth)• Changes to path selection algorithms• Traffic admission control algorithms• Traffic scheduling and prioritization algorithms• Network load balancing algorithms• Process RAM consumption and optimization

• Network and memory attacks in Bitcoin• Distributed secure multiparty computation algorithms• Software debugging

Page 54: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

Shadow: Real Applications, Simulated Networks | 54U.S. Naval Research Laboratory

Future Shadow Enhancements

• Distribute across physical machines• Support for multiple programming languages• Host mobility• Internet routing, network modeling• User behavior modeling• CPU performance modeling• User interface• Support additional applications

(HTTP clients/server, bitcoin, etc.)• Improve code stability, documentation, testing, etc.

Page 55: Shadow: Real Applications, Simulated Networks · U.S. Naval Research Laboratory Shadow: Real Applications, Simulated Networks | 3 How does Shadow Work? OS Kernel OS Kernel OS Kernel

QuestionsDr. Rob JansenU.S. Naval Research LaboratoryCenter for High Assurance Computer [email protected], @robgjansen

The Shadow Simulatorshadow.github.iogithub.com/shadow