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