David Evans The Bugs and the Bees Research in Programming Languages and Security University of.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Cryptography and Network Security 2 nd Edition by William Stallings Note: Lecture slides by Lawrie Brown and Henric Johnson, Modified by Andrew Yang.
Cynthia Kuo, Mark Luk, Rohit Negi, Adrian Perrig Carnegie Mellon University Message-In-a-Bottle: User-Friendly and Secure Cryptographic Key Deployment.
Sensor Network Platforms and Tools
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
1 Cryptography and Network Security Third Edition by William Stallings Lecturer: Dr. Saleem Al_Zoubi.
CMSC 414 Computer (and Network) Security Lecture 2 Jonathan Katz.
Yan Chen Dept. of Computer Science Northwestern University Information Security Curriculum Development in Northwestern.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
Security in Wireless Sensor Networks Perrig, Stankovic, Wagner Jason Buckingham CSCI 7143: Secure Sensor Networks August 31, 2004.
Computer Security and Penetration Testing
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Alexander Potapov.  Authentication definition  Protocol architectures  Cryptographic properties  Freshness  Types of attack on protocols  Two-way.
Statically Detecting Likely Buffer Overflow Vulnerabilities David Larochelle David Evans University of Virginia Department of Computer Science Supported.
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 9: Cryptography.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Secure Aggregation for Wireless Networks Lingxuan Hu David Evans [lingxuan, Department of Computer.
Cryptography and Network Security
MOBILE AD-HOC NETWORK(MANET) SECURITY VAMSI KRISHNA KANURI NAGA SWETHA DASARI RESHMA ARAVAPALLI.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
Computer Security and Penetration Testing
Configuration Management (CM)
Cryptography, Authentication and Digital Signatures
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
INTERACTIVE ANALYSIS OF COMPUTER CRIMES PRESENTED FOR CS-689 ON 10/12/2000 BY NAGAKALYANA ESKALA.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Cryptography and Network Security (CS435) Part One (Introduction)
David Evans These slides: Introduction to Static Analysis.
David Evans CS551/651: Dependable Computing University of Virginia Computer Science Static Analysis.
Chapter 3 (B) – Key Management; Other Public Key Cryptosystems.
David Evans The Bugs and the Bees Research in Programming Languages and Security University of.
Introduction1-1 Data Communications and Computer Networks Chapter 6 CS 3830 Lecture 28 Omar Meqdadi Department of Computer Science and Software Engineering.
David Evans The Bugs and the Bees Research in Swarm Programming and Security University of Virginia.
David Evans The Bugs and the Bees Research in Programming Languages and Security University of.
Topic 1 – Introduction Huiqun Yu Information Security Principles & Applications.
(A Somewhat Self-Indulgent) Splint Retrospective David Evans University of Virginia 25 October 2010.
WOSS 2002Selvin George1 A Biologically Inspired Programming Model for Self-Healing Systems Selvin George Computer Science David Evans Computer Science.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Programming the Way Biology Programs David Evans University of Virginia, Department of Computer Science NSF Advanced Computation Inspired by Biological.
WOSS 2002Selvin George1 A Biologically Inspired Programming Model for Self-Healing Systems Selvin George Computer Science David Evans Computer Science.
Security in Wireless Sensor Networks by Toni Farley.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
Private key
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 9: Designing Exceptionally.
Lecture 11 Overview. Digital Signature Properties CS 450/650 Lecture 11: Digital Signatures 2 Unforgeable: Only the signer can produce his/her signature.
Network Security Celia Li Computer Science and Engineering York University.
David Evans Swarm Programming How to Program a MicroNet University of Virginia Department of Computer.
Lecture 15 Page 1 CS 236 Online Evaluating Running Systems Evaluating system security requires knowing what’s going on Many steps are necessary for a full.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Lecture 3 Page 1 CS 236 Online Security Mechanisms CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Prof. Reuven Aviv, Nov 2013 Public Key Infrastructure1 Prof. Reuven Aviv Tel Hai Academic College Department of Computer Science Public Key Infrastructure.
Department of Computer Science Chapter 5 Introduction to Cryptography Semester 1.
Lecture 2 Page 1 CS 236 Online Security Policies Security policies describe how a secure system should behave Policy says what should happen, not how you.
University of Virginia Computer Science Extensible Lightweight Static Checking David Evans On the I/O.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Outline Basic concepts in computer security
Security Testing Methods
Information and Network Security
State your reasons or how to keep proofs while optimizing code
Improving Security Using Extensible Lightweight Static Analysis
Annotation-Assisted Lightweight Static Checking
Presentation transcript:

David Evans The Bugs and the Bees Research in Programming Languages and Security University of Virginia Department of Computer Science

23 Sept 2002David Evans - CS6962 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)

23 Sept 2002David Evans - CS6963 My Research Projects The Bugs – Splint The Bees - “Programming the Swarm” How can we detect code that describes unintended computations? How can we program massively distributed collections of simple devices and reason about their behavior in hostile environments?

23 Sept 2002David Evans - CS6964 A Gross Oversimplification Effort Required Low Unfathomable Formal Verifiers Bugs Detected none all Compilers Splint

23 Sept 2002David Evans - CS6965 (Almost) Everyone Likes Types Easy to Understand Easy to Use Quickly Detect Many Programming Errors Useful Documentation …even though they are lots of work! –1/4 of text of typical C program is for types

23 Sept 2002David Evans - CS6966 Limitations of Standard Types Type of reference never changes State changes along program paths Language defines checking rules System or programmer defines checking rules One type per reference Many attributes per reference

23 Sept 2002David Evans - CS6967 Type of reference never changes State changes along program paths Language defines checking rules System or programmer defines checking rules One type per reference Many attributes per reference Attributes Limitations of Standard Types

23 Sept 2002David Evans - CS6968 Approach Programmers add annotations (formal specifications) –Simple and precise –Describe programmers intent: Types, memory management, data hiding, aliasing, modification, null-ity, buffer sizes, security, etc. Splint detects inconsistencies between annotations and code –Simple (fast!) dataflow analyses

23 Sept 2002David Evans - CS6969 Security Flaws Reported flaws in Common Vulnerabilities and Exposures Database, Jan-Sep [Evans & Larochelle, IEEE Software, Jan 2002.] 190 Vulnerabilities Only 4 having to do with crypto 108 of them could have been detected with simple static analyses!

23 Sept 2002David Evans - CS69610 Example: Buffer Overflows David Larochelle Most commonly exploited security vulnerability –1988 Internet Worm –Still the most common attack Code Red exploited buffer overflow in IIS >50% of CERT advisories, 23% of CVE entries in 2001 Attributes describe sizes of allocated buffers Heuristics for analyzing loops Found several known and unknown buffer overflow vulnerabilities in wu-ftpd

23 Sept 2002David Evans - CS69611 Some Open Issues Differential Program Analysis [Joel Winstead] –We usually don’t just have one program, we have lots of versions of similar programs –How can we discover interesting differences between two versions of a program? e.g., find a test case that reveals the difference, find invariants that are different Design-level Properties –Can we develop annotations and checks that deal with design-level properties? Integrate run-time checking –Combine static and run-time checking to enable additional checking and completeness guarantees

23 Sept 2002David Evans - CS69612 Splint More information: splint.org IEEE Software ’02, USENIX Security ’01, PLDI ’96 Public release – real users, mentioned in C FAQ, C Unleashed, Linux Journal, etc. Students (includes other PL/SE/security related projects): –David Larochelle: buffer overflows, automatic annotations –Joel Winstead: differential program analysis –Greg Yukl: source code generation Current Funding: NASA (joint with John Knight)

23 Sept 2002David Evans - CS69613 Programming the Swarm

23 Sept 2002David Evans - CS s: Programming in the small... Programmable computers Learned the programming is hard Birth of higher-order languages Tools for reasoning about trivial programs Really Brief History of Computer Science 1970s: Programming in the large... Abstraction, objects Methodologies for development Tools for reasoning about component-based systems 2000s: Programming the Swarm!

23 Sept 2002David Evans - CS69615 What’s Changing Execution Platforms –Small, cheap and unreliable –Limited power – communication is expensive Execution environment –Interact with physical world –Unpredictable, dynamic Programs –Old style of programming won’t work –Is there a new paradigm?

23 Sept 2002David Evans - CS69616 Programming the Swarm: Long-Range Goal Cement 10 GFlop

23 Sept 2002David Evans - CS69617 Why this Might be Possible? We are surrounded by systems that: –Contain 50 Trillion (5 * ) components –Continue to function when 50 million components fail every second –Survive in hostile environments (even Canada!) –Self-organize starting from a single component and a program that is smaller than WindowsXP

23 Sept 2002David Evans - CS69618 A Biological Programming Model Selvin George Program systems the way biology does Literal interpretation: –Cells can change state (genes turn on and off) –Cells can divide Asymmetrically –Cells can communicate over short distances Chemical diffusion

23 Sept 2002David Evans - CS69619 Example Cell Program state s1 { transitions -> (s1, s1) normal; }

23 Sept 2002David Evans - CS69620 Cell Programs Use chemicals to control development How can we produce cell programs that generate particular structures? How can we reason about the behavior of cell programs in the presence of failures and randomness? How can we describe cell programs at a higher level? (Making abstractions)

23 Sept 2002David Evans - CS69621 Less Literal Interpretation Learn about self-organization and robustness by mimicking biology –Learn principles from biology, not programs Use this to build real systems –Sensor networks –Distributed file sharing

23 Sept 2002David Evans - CS69622 Sensor Networks Thousands of small, low-powered devices with sensors and actuators, communicating wirelessly High-power base station

23 Sept 2002David Evans - CS69623 Sensor Networks High-power base station Compromised Node! Enemy base station

23 Sept 2002David Evans - CS69624 Security for Sensor Networks Control Messages –Only messages from base station (or other nodes) should change device behavior Data Collection –A few compromised nodes should not be able to prevent or tamper with data collection Data Confidentially –Some applications: eavesdropper shouldn’t be able to interpret messages

23 Sept 2002David Evans - CS69625 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 Devices start identical – no stored secrets

23 Sept 2002David Evans - CS69626 Asymmetric Cryptography Cryptography depends either on: –Shared secrets –Asymmetry (normally or information) Exploit time and space asymmetries –Public-key systems get asymmetry by only one party knowing private key –In sensor networks, we can get asymmetry by using time (key is revealed later, but in a verifiable way) and space (only nodes within a certain distance can hear)

23 Sept 2002David Evans - CS69627 Non-Cryptographic Techniques Redundancy –Lots of sensors, only a few will be compromised or bogus Snooping –Because communication is wireless, nodes can hear what their neighbors are saying –If they are lying, tattle tale!

23 Sept 2002David Evans - CS69628 Programming the Swarm swarm.cs.virginia.edu Students: –Selvin George: Biological Programming Model –Undergraduates: Keen Browne, Jacques Fournier, Chris Frost, Ami Malaviya, Jon McCune Funding: NSF Career Award, NSF ITR

23 Sept 2002David Evans - CS69629 Summary Programming the Swarm: Describing and reasoning about behavior of large ad hoc collections in hostile environments Splint: Detecting differences between what programs express and what programmers intend Be proactive about finding an advisor –Most important decision you will make in grad school –Matching process is last resort to arrange meetings: