Driving Home the Buffer Overflow Problem: A Training

Download Report

Transcript Driving Home the Buffer Overflow Problem: A Training

Driving Home the Buffer
Overflow Problem:
A Training Module for
Programmers and Managers
Embry-Riddle Aeronautical University
Prescott, Arizona
http://nsfsecurity.pr.erau.edu
Grant Overview
NSF SFS Institutional Capacity-building
Award No. 0113627
College of Engineering



Dr. Susan L. Gerhart
Dr. Matthew S. Jaffe
Dr. Paul Hriljac
Science, Technology, Globalization Program

Dr. Richard Bloom
Consultants


Science, Technology, and Glob
Dr. Jan G. Hogle (Ed. Tech.)
Jedidiah Crandall (Student)
Grant Overview
Goal: 5+ interactive modules for
undergraduate curricula





The Buffer Overflow problem
Cryptography (DES)
Interdependent Security Dimensions
Personnel Screening
TBD
Buffer Overflow Module:
The Problem
Buffer Overflow: When data is written outside
the bounds of its allocated memory
Vulnerabilities: Attacker can



“hijack” program execution
overwrite security-sensitive data in memory
cause a program crash leading to Denial-ofService or a core dump of security-sensitive data
Buffer Overflow Module:
Motivation
Pervasive and costly
>½ recent CERT advisories
Improved software engineering practice
Hook for introducing security in curricula
Good application for interactive
educational technology
Buffer Overflow Module:
Approach
Demo: Simulated abstract machine
(Java Applets)
Instructional Methodology:
Audiences:
Programmer, Tester, Journalist, IT Manager
Goals/objectives:
What to learn, how to measure learning
Evaluation:
Interviews, questionnaires, quizzes, …
Buffer Overflow Module:
Interactive Educational Package
Stand-alone Authorware (available 15 July 2002)
Explanations
Instructor Guide
Demo Applets
Links
Quiz
Courses: Programming, languages, operating systems,
software engineering, security
Requires: 30 min. to demo + prerequisite introduction +
depth (depends on course)
Results: Rapid learning, high impact presentation,
learner engagement, retention
Demo
http://nsfsecurity.pr.erau.edu/bom
Stacks

How a typical C compiler uses run-time stacks
Spock

How security-sensitive data can be overwritten
Smasher

How program execution can be diverted away
from the normal program execution path
StackGuard

How one particular defense against stack
smashing works