350 likes | 456 Views
The Bugs and the Bees. Research in Programming Languages and Security David Evans. evans@cs.virginia.edu http://www.cs.virginia.edu/evans. University of Virginia Computer Science. Computer Science. “How to” knowledge: Ways of describing imperative processes (computations)
E N D
The Bugs and the Bees Research in Programming Languages and Security David Evans evans@cs.virginia.edu http://www.cs.virginia.edu/evans University of Virginia Computer Science
Computer Science • “How to” knowledge: • Ways of describing imperative processes (computations) • Ways of reasoning about (predicting) what imperative processes will do • Most interesting CS problems concern: • Better ways of describing computations • Ways of reasoning about what they do (and don’t do) David Evans - CS696
Research Projects Swarm Computing How can we program massively distributed collections of simple devices and reason about their behavior in hostile environments? Security for Sensor Networks How can we provide security properties for ad hoc, wireless networks of disposable devices? Static/Dynamic Analysis David Evans - CS696
(Really) Brief History of Computing 1950 1960 1970 1980 1990 2000- Monolithic Computers in guarded, air-conditioned rooms No interactions Narrow interface to operator (punch cards, teletype), no interface to environment Billions of small, cheap unreliable devices Computing organized through local interactions Fundamentally integrated into physical environment Fixed Networks of PCs Data interactions with other computers, but most computing done locally Rich interface to user, limited interface to environment David Evans - CS696
Challenges and Opportunities • Embedded in physical environment • Challenges: unpredictable, energy-limited • Opportunities: physical laws, continuous • Scale • Challenges: billions of independent components • Opportunities: redundant to failures • Demands new programming approaches and reasoning techniques David Evans - CS696
Swarm Computing: Long-Range Goal Cement 10 TFlop David Evans - CS696
Why this Might be Possible? • We are surrounded by systems that: • Contain 70 Trillion components • Continue to function when millions of components fail (3B since this talk started!) • Survive in hostile environments (even Canada!) • Self-organize starting from a single component and a program that is smaller than WindowsXP David Evans - CS696
Observations About Nature’s Programs • Responsive • Aware of state of self and surroundings • Localized • Communication through chemical diffusion • Redundant • Millions of cells can die without compromising function • Diverse • Species survive because of diversity of individuals • Remarkably Expressive • Human genome ~250MB David Evans - CS696
Cellular Automata von Neumann [1940s] Conway’s Game of Life [1970] Wolfram [2002] Amorphous Computing [Abelson, Nagpal, Sussman] Paintable Computing [Butera] Embryonics [Mange, Sipper] Ant Colony Optimization, Swarm Intelligence Foundations Current Research • Reaction-Diffusion • Turing [1952] David Evans - CS696
Swarm Programming Behavior and primitives defined over groups Behavioral Description Device Units Swarm Program Generator Device Programs Environment Model Programmed Device Units Device Model Primitives Library David Evans - CS696
Simplified Cell Model • Awareness of Environment • Sense chemicals on cell walls • Sense chemicals in environment • Cell Actions • Cell Division (asymmetric) • State Change • Communicate: emit (directional, neighboring walls), diffuse (omnidirectional) • Simple physical forces • Two cells cannot overlap in space David Evans - CS696
Biological Complexity Molecular map of colon cancer cell from http://www.gnsbiotech.com/applications.shtml David Evans - CS696
Simple Sphere Program center state center { color 1 0 0 emits (alive, 1) diffuses (radius, 10) transitions alivefromdir < 1 -> (center, body) in dir; } state body { color 0 0 1 emits (alive, 1) transitions alivefromdir < 1 & radius > 0 -> (body, body) indir; } alive < 1 body alive < 1 & radius > 0 David Evans - CS696
state center { color 1 0 0 emits (alive, 1) diffuses (radius, 10) transitions alive from dir < 1 -> (center, body) in dir; } state body { color 0 0 1 emits (alive, 1) transitions alive from dir < 1 & radius > 0 -> (body, body) in dir; } David Evans - CS696
Intrusion Tolerance? • Robust to random failures • As long as source cell survives, the sphere will re-generate • Sphere has > 10000 cells • Not robust to attacks • Destroy the center cell, sphere will not regrow David Evans - CS696
Example statecenter { color1 0 0 emits (alive, 1) diffuses (radius, 10) transitions (alivefromdir < 1) -> (center, core) indir; } statecore { color0 1 0 emits (alive, 1) transitions (alivefromdir < 1) & (radius > 2) -> (core, body) indir; (radius < 2) & (alivefromdir < 1) -> (core, center) indir; } statebody { color1 1 0 emits (alive, 1) transitions (alivefromdir < 1) & (radius > 1) -> (body, body) indir; } David Evans - CS696
state corner { color red emits (length, 8), (alive, 1) transitions (alive < 1) from dir -> (corner, segment) in dir; -> (corner); } state segment { color cyan emits (alive, 1) forwards (length - 1) transitions (length > 1.5) from dir & (alive < 0.5) from opposite (dir) -> (segment, segment) in opposite (dir); (length > 0.1) -> (corner); (length < 0.1) -> die; } Network Mesh David Evans - CS696
Composing Primitives • Cells can follow multiple programs simultaneously (vector of independent states) • Cells can combine primitives through shared chemicals • Chemicals secreted by one primitive can induce changes in other primitives • Goals: • Predict properties of composition based on properties of primitives • Diversity of primitive implementations provides protection from directed attacks David Evans - CS696
Mickey Mouse Program • 20 states • 50 transition rules • Starts from one cell, • combines lines, spheres • Real Mouse Program • 3B base pairs • 98% same as human DNA • Starts from one cell, • combines complex proteins David Evans - CS696
Towards Real Systems • Cells • Sensor Devices, MEMS, Internet Nodes • Division • Processes • Find new hosts • Communication • Point-to-point emissions • Wireless multicast (can be multi-hop) diffusions • Example: distributed file system running on simulated wireless nodes (Selvin George’s MCS) David Evans - CS696
Research Problems in Swarm Computing • Specification of Functional and Non-Functional Properties • How should we describe primitives? • How should we describe desired behavior? • Composition • What composition mechanisms make sense? Can we predict the result? • Survivability • How can we model attacks? How do we build robust swarm programs? David Evans - CS696
Securing Sensor Networks David Evans - CS696
Sensor Networks High-power base station Thousands of small, low-powered devices with sensors and actuators, communicating wirelessly David Evans - CS696
Why security for sensor networks is hard • Low power devices • Cannot do traditional public-key algorithms • Limited device communication • Sending messages is extremely expensive • Communication is wireless • All messages are vulnerable to eavesdropping and forgery • May be difficult to preconfigure devices with secrets David Evans - CS696
Routing (Lingxuan Hu’s slide) David Evans - CS696
Wormhole Attack • Tunnel packets received in one place of the network and replay them in another place • The attacker needs no key material, just two transceivers! (Lingxuan Hu’s slide) David Evans - CS696
Disrupted Routing (Lingxuan Hu’s slide) David Evans - CS696
New Opportunities • Physical Space • Exploit knowledge about physical space • Redundancy • Use cooperation to establish trust • Physical properties • Speed of transmission limits time when another node can hear it David Evans - CS696
Directional Antennas Operation Modes: OmniandDirectional David Evans - CS696
Antenna Model East Nodes orient themselves using a magnetic compass David Evans - CS696
Detecting Wormhole NO! I hear B from right B is on left of A Hello B A (Lingxuan Hu’s slide) David Evans - CS696
Sophisticated Wormhole Yes. We are neighbors B is on right of A Hello A B If more nodes cooperate, can verify nodes as legitimate neighbors. (Maybe…) (Lingxuan Hu’s slide) David Evans - CS696
Research Problems • Key Establishment • How can groups of sensor nodes establish a shared key for secure communication? • Secure Aggregation • How can nodes aggregate data without losing authenticity? • Secure Location Services • How can nodes determine their location and neighbors in the presence of adversaries? David Evans - CS696
Charge • For more information: swarm.cs.virginia.edu www.cs.virginia.edu/evans • Students: • PhD: Lingxuan Hu, Nate Paul, Joel Winstead • Recent grads: Selvin George (MCS, Appian), Weilin Zhong (MCS, Cigital) • Undergraduates: Salvatore Guarnieri, Steven Marchette, Qi Wang, Chalermpong Worawannotai, Brad Zhang • Funding: NSF CAREER, NSF ITR David Evans - CS696