An Application-Oriented Approach for Computer Security Education Xiao Qin

advertisement
An Application-Oriented Approach
for Computer Security Education
Xiao Qin
Department of Computer Science and
Software Engineering
Auburn University
Email: xqin@auburn.edu
URL: http://www.eng.auburn.edu/~xqin
1
Goal and Objectives
Goal: New approaches for computer
security education
Objective 1: To prepare
students to design,
implement, and test
secure software
Student-centered
learning
2
Objective 2: A holistic
platform for constructing
computer security course
projects
Professor-centered
platform
From CSSE Students to
Software Engineers
• To produce reliable,
robust, secure software.
• To work in interdisciplinary
teams.
• To use appropriate design
notations, such as UML.
• To work in multiple
programming languages.
3
Challenges
Student-Centered Learning
Secure
Software
How to provide engaging
computer security projects?
Design
Must we teach students how
to design secure software?
4
Teamwork
What projects can help
students to learn about
teamwork?
Programming
How to teach multiple
programming languages?
Challenges
Professor-Centered Platform
Preparation
Flexibility
How to quickly prepare
engaging computer security
projects?
What projects can be
tailored to students to learn
about teamwork?
Teaching
How to teach computer
security projects?
5
Grading
What is a good way to grade
computer security projects?
Teaching Philosophy
Computer security education should focus on:
• Fundamental security principles
• Security-practice skills.
6
Motivation
College
Principles
Security principles:
• Fundamental
• A wide spectrum.
Industry
Practice
Laboratory exercises:
• Observing
• Evaluating
• Testing
Course projects:
• Analyzing
• Designing
• Programming
7
small-scale, fragmented, and
isolated course projects
Real-World
Systems and Apps
Real-world secure
computing systems:
• Programming
standards
• Large scale
• Work on existing
products
Our Solution:
Application-Oriented Approach
Security Sensitive Applications
User Interface
Security Module 1
Security Module n Non-Security Modules
OS (Windows, Linux, etc.)
8
Security Modules
Considerations
• Security modules: related to fundamental
security principles.
• Applications: represent real world scenario(s)
• Each application: contains all possible security
modules.
• Flexibility: difficulty levels are configurable.
• Programming environment: easy setup
• Hints for students: data structures and
algorithms
9
A Unified Programming
Environment
Security Sensitive Applications
User Interface
Security Module 1
Security Module n Non-Security Modules
Virtual Machine
(e.g. vmware, virtualBox)
OS (Windows, Linux, etc.)
10
Flexibility
Levels of Difficulty
•
– Beginner
– Intermediate
– Advanced
Objective 1: To prepare
students to design,
implement, and test
secure software
Student-centered
learning
11
Objective 2: A holistic
platform for constructing
computer security course
projects
Professor-centered
platform
Flexibility
How Modules Are Packaged
Beginner
Easy
12
Intermediate
Moderate
Advanced
Hard
Explorative
Basic Understand
Of Concepts
Depth
Understanding Of
Concept
Light Editing
Normal
Implementation
Advanced
Implementation
Types of Course Projects
• Explorative based projects.
• Partial Implementation projects.
• Full Implementations projects.
Beginner
Intermediate
Advanced
• Vulnerability testing, attacking, and fixing.
• Hybrid labs (Exploration & Implementation,
etc.)
13
Choose the First Application
• Real World Scenarios
– Banking System: Implemented
– P2P File-Sharing: future work
• Three RAs worked on this project
– Strategy 1: each RA design and implement a
security sensitive application
– Strategy 2: three RAs collaborate on a single
application.
14
Banking Application
• Toy Application
– A Secure Teller Terminal System
– ATM
• Documentations
– Design
– Test Cases
– Makefile
– Readme
15
Implementation Projects
Banking Application
Existing Components
Students’ Tasks
Properties of these projects:
• Focused on targeted principles
• Focused on a single application
• Each project takes 2-6 weeks
• Difficulties can be adjusted
16
Data Encryption
Module
Integrity
Checking
Access Control List
IPSec
Buffer
overflow
In
Attack Lab
Workflow
A professor’s perspective
Teach Concept
System Setup
Choose Apps &
Difficulty
Design Survey Questions
Generate Project Description
Work On Project
Evaluation/Feedback
17
Design Docs &
Partial Code
Design Document
Example: Data Flow – High Level
18
Put It All Together
An example
A Banking System
User Interface
Access Control
Encryption
IPSec
Non-Security Modules
Virtual Machine
(e.g. vmware, virtualBox)
OS (Windows, Linux, etc.)
19
Class Diagram
A secure teller terminal system
20
Intermediate
Class Diagram
A secure teller terminal system
No security modules in
the design document
(e.g., class diagram)
21
Advanced
An Encrypted Staff File
Beginner
Easy
Explorative
Light Editing
22
Beginner
Beginner
An Unencrypted Staff File
Beginner
Easy
Explorative
Light Editing
23
Encryption Modules
• Transposition - good, low-level encryption
algorithm.
• Substitution - good, low-level encryption
algorithm.
• Put both of them together – A
transposition of a substitution.
24
Access Control
• Role-based system.
• Implemented in a separate module.
• Give students data flow diagram.
25
Access Control
• Students implement Access Control
module.
• Allows them to insert in existing system.
• Better real world experience.
26
Choose a Course to Test Our
Approach
Security Courses
Introduction to
Computer Security
• Introductory-level
• Programming
experiences
• Small-scale projects
work
27
Advanced
Computer Security
• Research projects
• Examples
• Memory attacks
• Parallel Antivirus
• Testing
Other Courses
e.g., Software
Construction
• No design experience
• New programming
language
• Weak programming
skill
• Teach/learn basic
security concepts
Comp 2710 Software Construction
• Two projects
– A secure teller terminal system: access
control
– A cryptographic system: two algorithms
• 57 students (CSSE and ECE)
– Computer Science
– Software Engineering
– Electrical Engineering
– Wireless Engineering
28
Preliminary Studies
• Survey Questionnaires
– The quality of project design
– Students’ evaluation on projects:
•
•
•
•
How interested they are
Programming background
Whether the labs spark their interests in security
How many hours they spent on the projects
• Participants:
– 48 students for project 1
– 53 students for project 2
29
Evaluation Results (1)
Survey: Approximately, how many hours did you spend
on the project?
(1) ≤ 5 hours (2) 6-10 hours (3) 11-20 hours (4) 21-30 hours
(5) > 30 hours
Design
81% <10h
30
Implementation
46%
>21h
Entire Project
40% >30h
Evaluation Results (2)
Survey: The project instructions were clear.
(1) Strongly disagree (2) Disagree (3) Neutral (4) Agree
(5) Strongly agree
31
Teller terminal system
Cryptographic system
69%: agree or strongly agree
58%: agree or strongly agree
Evaluation Results (3)
Survey: What was the level of difficulty of this project?
(1) Very easy (2) Somewhat easy (3) Average
(4) Somewhat difficult (5) Very difficult
32
Teller terminal system
Cryptographic system
61%: somewhat difficult or
very difficult
53%: somewhat difficult or
very difficult
Evaluation Results (4)
Survey: What was the level of interest in this project?
(1)
1. Very low
high
(2) Low
(3) Average
(4) High
(5) Very
Teller terminal system
Cryptographic system
58%: Average, High, or very high
85%: Average, High, or very high
33
Evaluation Results (5)
Survey: What was the most time consuming part of in
the design portion of the project?
(1) Use Cases (2) Class Diagram
(3) System Sequence Diagram (4) Testing
Teller terminal system
Cryptographic system
44%: Use cases
58%: Testing
34
Evaluation Results (6)
Survey: As a result of the lab, I am more interested in
computer security.
(1) Strongly disagree (2) Disagree (3) Neutral (4) Agree
(5) Strongly agree
Teller terminal system
35 17%:
Cryptographic system
strongly disagree or disagree 20%: strongly disagree or disagree
Evaluation Results (7)
Survey: Overall, I have attained the learning objectives
of the project.
Teller terminal system
• develop a non-trivial
application using classes,
constructors, vectors, and
operator overloading;
• learn a security issue –
authentication;
• perform object-oriented
analysis, design, and
testing; and
• develop a reasonably
36 user-friendly application.
Cryptographic system
• learn two cryptographic
algorithms;
• develop a simple
cryptographic tool;
• perform separate
compilation; and
• to develop a commandline application.
Evaluation Results (7 cont.)
Survey: Overall, I have attained the learning objectives
of the project.
(1) Strongly disagree (2) Disagree (3) Neutral (4) Agree
(5) Strongly agree
37
Teller terminal system
Cryptographic system
52%: strongly agree or agree
65%: strongly agree or agree
About the QoSec Project
• Funded by the NSF CCLI Program
– Phase I ($150K) was funded in 2009
– 1 PI and 4 Research Assistants
– Alfred Nelson
– Andrew Pitchford
– John Barton
• Web pages of the project will be available
soon:
– http://www.eng.auburn.edu/~xqin
38
Plan and Collaborations
• Prepare for an NSF TUES Phase II Project
– Four to six universities involved
– 10 Pis
– More tool applications
– More preliminary results
– Evidence for collaborations
• Contact me if you are interested in
– this NSF CCLI Phase I project or
– our future NSF TUES Phase II project
39
Xiao Qin: xqin@auburn.edu
40
Demo & Examples
41
Questions?
• If you are interested in information
regarding this project, add your name to
our newsletter list after this discussion.
http://www.eng.auburn.edu/~xqin
• Slides are available at
http://www.slideshare.net/xqin74
42
Download