using instructional operating system to teach computer ... · the base system is always...
TRANSCRIPT
![Page 1: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/1.jpg)
Using Instructional Operating System to Teach Computer Security Courses
Wenliang (Kevin) DuEECS Department
Syracuse UniversitySponsored by NSF CCLI Program
![Page 2: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/2.jpg)
Course Objectives! Teaching security principles and Technologies
! Access control, Authentication, security policy! Encryption, key management, basic crypto! Principle of least privilege
! First-hand experience with! Security mechanisms! Vulnerabilities
! Design & Implementation security mechanisms! Analysis & Testing for security
![Page 3: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/3.jpg)
Course Projects (Labs)! Labs are important for computer
security education! Many course projects exist
! Ad hoc approaches! Lack of a systematic approach! Scope of most approaches is narrow! Other �old� fields (OS, Network, Compilers)
are not like this
![Page 4: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/4.jpg)
Overview
! Course projects based on Minix! iSYS: Instructional SYStem for security! iLAN: Instructional LAN for security
! A survey of the existing course projects for computer security
![Page 5: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/5.jpg)
Learning from Other Fields! Operating System Courses
! Instructional OS: Minix, Nachos, Xinu.! Examples: scheduling, inter-process
communication, file system, paging system.
! Compiler Courses! Instructional compilers and languages
! Networking Courses! Also using instructional OS! Example: IP/ICMP/UDP implementation.
![Page 6: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/6.jpg)
What did I learned?! I have learned:
! The base system is always functioning! Each project adds a new functionality to the base
system or replaces a functionality! It is NOT a toy system, and it is NOT so
complicated (some of the instructional OS has been used in some embedded systems)
! Can we do the same for computer security courses?! Examples: Access Control Mechanisms.
![Page 7: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/7.jpg)
Why Instructional OS! Why not use a real operating system?
! Large and complex! Our time limitation! Our mission: teach fundamentals
! Instructional operating systems ! Small size, manageable within a semester.! Easier to install, modify, compile, and
debug, compared to production OSes.
![Page 8: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/8.jpg)
Outline! iSYS environment setup
! Minix Instructional Operating System! Running environment
! iSYS labs! Observation Labs! Design Labs! Vulnerability Labs
![Page 9: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/9.jpg)
Environment Setup
![Page 10: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/10.jpg)
Selecting Instructional OSes! We have studied
! Nachos! Xinu! Minix
! iSYS lab design is OS independent! Can be built upon any of them
![Page 11: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/11.jpg)
Minix Operating System
! Open source! Many documentations! POSIX-compliant Unix! Modern modular micro kernel architecture
! File system and TCP/IP are not in kernel
! Small! Minix Version 3: < 3800 lines of kernel code
![Page 12: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/12.jpg)
How to run Minix! On Native machines
! Need dedicated machines! Inconvenient
! Emulator! Virtual Machine
![Page 13: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/13.jpg)
Emulator! Simulates a complete Intel x86 computer
! Simulate every single machine instruction.
! Bochs ! x86 PC emulator. ! Runs on many platforms, including x86, PPC,
Alpha, Sun, and MIPS
! Advantage: portability! Disadvantage: slowdown factor is about 100
![Page 14: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/14.jpg)
Virtual Machine! Virtualization:
! �Simulating� x86 instructions on an x86 machine! Directly run most of the native machine
instructions.
! VM Software! Vmware and VirtualPC! Plex86: open source
! Advantage: speed! Disadvantage: portability
![Page 15: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/15.jpg)
Our experience! We tried two approaches
! Emulator: Using Solaris Minix (SMX)! Virtual Machine: Vmware
! The most important thing is:! Get Minix to run!! Get networking to work!
![Page 16: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/16.jpg)
SMX Approach
Sun SPARC Solaris Operating System
A normal Process
Solaris Minix OS
Minix Applications
A normal Process
Solaris Minix OS
Minix Applications
![Page 17: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/17.jpg)
Vmware Approach
Windows or Linux
Minix OS
Minix Applications
Vmware
Minix OS
Minix Applications
Vmware
![Page 18: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/18.jpg)
Labs! We have developed a pool of labs
! Cover a wide range of security concepts! An instructor can choose a subset
! Small and Focused Labs! Cover a single security concept! e.g. access control
! Comprehensive Labs! Cover several security concepts! e.g., encrypted file system
![Page 19: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/19.jpg)
Three Types of Labs! Observation Lab
! Play with security mechanisms! Evaluate system�s security
! Design/Implementation Lab! Security mechanisms! Systems with security mechanisms
! Vulnerability Lab! Finding vulnerabilities
![Page 20: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/20.jpg)
Observation Labs! Normally does not involve coding! Focus on gaining experience! Tasks include
! Use security mechanism! Read source code! Read documentation! Make minor change to security mechanism
![Page 21: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/21.jpg)
Vulnerabilities Labs
Minix OS
User Space
Kernel Space
Real-World Vulnerabilities
Fault Injection
Students’ Tasks:1. Find out those vulnerabilities2. Exploit the vulnerabilities3. Fix the vulnerabilities
![Page 22: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/22.jpg)
Design/Implementation Labs
Students’ Tasks
Existing Components
Set-UIDSet-Nobody Capability Reference
Monitor Sandbox EncryptedFile System
A Security Mechanism
Properties of this design:• Focused • Each lab takes 2-3 weeks
ACL
![Page 23: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/23.jpg)
Design/Implementation Labs! Privileges
! Set-UID! Access Control
! Access Control List, Capability, MAC! Reference Monitor! Sandbox
! Authentication! Comprehensive Labs
! Encrypted File System! IPSec
![Page 24: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/24.jpg)
Set-UID Lab
![Page 25: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/25.jpg)
Set-UID Lab! Set-UID
! Access control is based on effective user id! Effective user id ≠ Real user id! Turn on Set-UID bit: chmod 4755 exec_file
! Escalate a user�s privileges! Objectives
! Understand Set-UID concept! Understand why we need it! Understand its danger! Think about how to improve it
![Page 26: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/26.jpg)
Set-UID: Lab Description ! Play with Set-UID programs
! Why should passwd and su be setuid?! What happens if they are not?
! Read Minix source code! How is set-uid implemented ! How does Set-UID affects access control?! How to disable Set-UID?
! Think about the following! What is the danger of Set-UID! Is it a good design? Why? Design an improvement
![Page 27: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/27.jpg)
Set-UID: Set-Nobody! Opposite of Set-UID
! Set-UID escalates a process�s privilege! Set-Nobody restricts a process�s privilege! Set the effective user to �nobody�
! Lab description! Implement Set-Nobody mechanism! Analyze whether it is still dangerous
![Page 28: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/28.jpg)
Set-UID: Experience! Simple and Focused project
! Warm-up for the more difficult labs! Skills: C programming, kernel code reading,
recompile source code and security analysis.
! Take 1-2 weeks! Most students like it
![Page 29: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/29.jpg)
Access Control List Lab
![Page 30: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/30.jpg)
Access Control List Lab ! Objectives
! Understand how Access Control works in Minix
! Understand how ACL works in Minix! Extend Minix�s ACL
![Page 31: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/31.jpg)
ACL: Lab Description! Abbreviated ACL
! Minix�s ACL is based on �owner�, �group�, and �others�.
! Full ACL! Define permissions for individual users
! Lab Tasks! Implement full ACL for Minix
![Page 32: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/32.jpg)
ACL: Design Issues! Where to store ACL?
! I-node! Unused field in I-node
! ACL policies! Types: allow, deny, group, etc.
! Utilities! setacl and getacl
![Page 33: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/33.jpg)
ACL: Experience ! A simple project! The involved coding is not much! Challenging parts
! I-node data structure! Writing new system calls
![Page 34: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/34.jpg)
Capability Lab
![Page 35: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/35.jpg)
Capability Lab! Capability
! One type of access control! Different from access control list! Like tokens
! Objectives! Understand capability! How capability-based system works! Applications of capability
![Page 36: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/36.jpg)
Capability: Lab Description! Allow user to restrict its own privilege
! Useful for running untrusted code! Useful for Set-UID programs! Can�t be achieved using ACL! Use capability
! We define the following capabilities! File-Reading, File-Writing, File-Deleting, and File-Execution
! Networking capabilities.
![Page 37: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/37.jpg)
Capability + Set-UID! Improve Set-UID
! Set-UID has one capability: root! Divide root capability to many capabilities! A program carries those that are needed! Can reduce risk
![Page 38: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/38.jpg)
Capability: Lab Tasks
CapabilityChecking
ACLCheckingAccess
Denied
Granted Granted
Student�s Task Existing in Minix
![Page 39: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/39.jpg)
Capability: Design Issues ! The capability system architecture! How to represent capabilities?! How to securely store them?
! Study the file descriptor as an example
! How to initialize the capabilities of a process?! A process can control its own capabilities
! Deleting, Disabling, Enabling, Copying, Revocation
![Page 40: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/40.jpg)
Reference Monitor
![Page 41: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/41.jpg)
Reference Monitor Lab! RM is an important concept for
computer security practitioners ! Properties of RM
! Always invoked: every access is mediated. ! Tamperproof: impossible to bypass.! Small enough to be subject to analysis and
test
![Page 42: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/42.jpg)
RM: Lab Objectives
! Understand the Reference Monitor concept
! See how Reference Monitor works! Evaluate the Reference Monitor.
![Page 43: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/43.jpg)
RM: Project Tasks! Develop security policies for Minix! Find out where the RM is and how RM
works in Minix! Does Minix�s RM enforce all the policies
you developed? ! How are the 3 properties of RM
satisfied?! Is Minix�s RM design good or bad?
![Page 44: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/44.jpg)
RM: Testing & Improving! Testing Reference Monitor
! Students are given a modified RM with injected flaws
! Black-box and White-box testing
! Improving Reference Monitor
![Page 45: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/45.jpg)
Encrypted File System
![Page 46: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/46.jpg)
Encrypted File System Lab! Encrypted File System
! Computer can be physically stolen! Protecting removable file system
! Objectives of the Lab! Understand and implement EFS! Need to combine the knowledge of
encryption/decryption, key management, authentication, access control, and security in OS kernels and file systems.
![Page 47: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/47.jpg)
EFS: Lab Tasks! Add a layer of encryption to the existing
Minix file system! Encrypt and decrypt files on the fly! Encryption should be transparent! Keys must be secured
![Page 48: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/48.jpg)
EFS: Kernel Architectureopen(), read(), write(), etc User Process
System Call Interface
VFS
Ext2fsMinix FS
Buffer Cache
Device Driver
Kernel
Disk Controller Hardware
![Page 49: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/49.jpg)
EFS: Design Issues! File encryption and decryption
! On-the-fly encryption/decryption! Buffering, large files, etc.
! User transparency! Key management
! Where to store the keys! How to store the keys
! Authentication! Change of file ownership
![Page 50: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/50.jpg)
EFS: Architecture
File System
Key DB addrBlock Size
SuperBlock
EncryptedDataBlock
System Callread()write()
Key DB
Key
EncryptionDecryption
Process
DataBlock
![Page 51: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/51.jpg)
EFS: Modules! Encryption module
! Encrypt data chunk in read() & write()
! Key Management module! Change mount/umount! Create new system calls for add/del key ! Allocate double-direct data link in super
block for keys
![Page 52: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/52.jpg)
EFS: Work Load! New system calls
! 80 lines of code
! Encryption/decryption functions! 100 lines of code
! Key management: ! 200 lines of code! 5-7 files
![Page 53: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/53.jpg)
EFS: Experience! Help student understand file system! Customize project for students who do
not have sufficient background! User-space implementation v.s. Kernel-
space implementation! Grading
![Page 54: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/54.jpg)
EFS: Simplified Version! EFS can be simplified into three sub-
projects (for undergraduates)! Use encryption algorithms for application! Create the corresponding system calls! Deals with the key management issues
(how to user super block for key DB)
![Page 55: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/55.jpg)
IPSec Lab
![Page 56: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/56.jpg)
IPSec Lab! IPSec
! A suite of protocols for securing network connections! Implemented in the IP stack
! Objectives of the lab! Learn IPSec protocol, understand how it is
implemented! Apply comprehensive knowledge: networking,
encryption/decryption, key management, access control, authentication, and security in OS kernels etc.
![Page 57: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/57.jpg)
IPSec: IPSec headers! IP AH and IP ESP operate in two mode:
TCP DATA
orig IPhdr
ESPtrlr
ESPhdr
ESPauth
orig IPhdr
orig IPhdr
new IPhdr
ESPhdr
ESPtrlr
ESPauth
TCP DATA
TCP DATA
Encrypted
Authenticated
Encrypted
Authenticated
Tunnel Mode
Transport Mode
Original Packet
![Page 58: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/58.jpg)
IPSec: Lab Requirements! Project Requirement
! Implement the ESP tunnel mode in Minix ! Use the implemented IPSec to build VPN
(Virtual Private Network)! 6 weeks
! Project Simplification! Keys are manually set (no need to implement the
complicated IKE key exchange protocol)! Interoperability with other OSes is optional
![Page 59: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/59.jpg)
IPSec: Encryption Keys! Simplification: keys are manually set
add_key –d 192.168.10.2 –k key
add_key –d 192.168.10.1 –k key
192.168.10.1 192.168.10.2
![Page 60: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/60.jpg)
IPSec: Where to start?! Tracing how packet traverses the IP
stack. ! 16,000 lines code in TCP/IP, but �! ip_read.c & ip_write.c:
processing incoming and outgoing packets
! add_route.c & pr_routes.c: good example on how to set keys in kernel using ioctl() system call
![Page 61: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/61.jpg)
IPSec: Design Issues
! How to handle large IP packets?! Compatibility issues! How to manage keys? Where to save the
keys?! Will IPSec affect routing?! Padding for encryption and HMAC
![Page 62: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/62.jpg)
IPSec: Workload! Read about 2500 lines code in 7 files related to
IP and system calls! AES and HMAC code are given! IPSec module: 400 lines code for ESP
functionalities! Key management module: around 300 lines code! TA finished in 3 weeks
![Page 63: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/63.jpg)
IPSec: Our Experience! Most challenging parts:
! Understanding the data flow! Data structure in TCP/IP stack
! How to minimize the time on these parts! Develop helping materials! Give a lecture on these parts ! Use web sites
![Page 64: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/64.jpg)
IPSec: Extension! Compatible with commercial OS! Expand functionalities to VPN! Key exchange protocols
![Page 65: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/65.jpg)
Sandbox Lab
![Page 66: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/66.jpg)
Sandbox! Sandbox provides a safe place for
running untrusted programs! chroot() changes the root directory
of a process ! Only root has permission to call it! We inject a vulnerability by removing this
constraint! Modify access control policy! Let chroot program be set-UID
![Page 67: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/67.jpg)
Sandbox: Attack Procedures! test $ mkdir /tmp/etc
! test $ echo root::0:0::/:/bin/sh > /tmp/etc/passwd
! test $ mkdir /tmp/bin
! test $ cp /bin/sh /tmp/bin/sh
! test $ cp /bin/chmod /tmp/bin/chmod
! test $ chroot /tmp /bin/login (login as root with no password)
! root # chmod 4755 /bin/sh (change shell to Set-UID)
! root # exit
! test $ cd /tmp/bin
! test $ ./sh
! root # (get root shell in real system)
![Page 68: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/68.jpg)
Sandbox: Lab Tasks! Read source code
! chroot.c, su.c & stadir.c
! Find the vulnerability ! Implement attack to obtain a root shell
! Design/Implement a solution! Normal users can still call chroot()
![Page 69: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/69.jpg)
Sandbox: Experience! Attack is difficult without hints
! Hint 1: run /bin/login and login as root ! Hint 2: tell students the passwd part
! Students gives various solutions! Good solution is non-trivial! We ask students to design a solution and
analyze their solutions! We did not ask student to implement
![Page 70: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/70.jpg)
Vulnerability Lab
![Page 71: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/71.jpg)
Vulnerability Lab! Objectives
! Gain first-hand experience on software vulnerabilities
! Understand how a seemly-not-so-harmful flaw can cause security breaches
! Practice vulnerability analysis and testing skills
![Page 72: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/72.jpg)
Vulnerability: Approach! Collect vulnerabilities from real OSes! Port them to Minix
! Fault injection
! Currently we have 8 vulnerabilities! Will develop more
![Page 73: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/73.jpg)
Vulnerability Types! In kernel space
! Vulnerabilities are flaws in the kernel! System calls! File descriptors! Kernel buffers
! In user space! Set-UID programs! Environment variables! Symbolic links
![Page 74: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/74.jpg)
stdio Vulnerability ! File descriptors 0, 1, 2: standard devices.
/* The set-UID program */fd = open(�/usr/adm/syslog�); // fd=2�printf(stderr, �Error Message�); // stderr=2
/* Your program */close(2);system(a set-UID program)
![Page 75: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/75.jpg)
Coredump Vulnerability! Coredump allows for the state of a machine
to be saved at crash time! A core file is created by the OS during crash
! Vulnerability: if a core file already exists, overwrite it.
! Student’s tasks:! Exploit this vulnerability! Fix the problem.
![Page 76: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/76.jpg)
Race Condition Vulnerability! Context-switch can happen between “check”
and “use”! Vulnerability: The “check” result might be
invalid after context switch! Student’s tasks:
! “at” program has a vulnerability! To make attack easier, we intentionally enlarged
the window between check and use.
![Page 77: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/77.jpg)
“su” vulnerability
! Vulnerability! su is a set-uid program! If /etc/passwd file can not be opened,
system launches a root shell for user to solve problem
! Student�s tasks! Read su.c and open.c! Exploit the vulnerability
![Page 78: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/78.jpg)
“lpr” Temp File Vulnerability
! Some set-uid programs create temporary files in running time! Usually temp file does not exist, so create
one! Vulnerability: If the temp file exists, open it
(incorrect use of open() system call)! Vulnerability: temp file�s name is
predictable
![Page 79: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/79.jpg)
Experience! Compared to design/implementation
labs, this lab is easier! No need for programming
! Students had a lot of fun! Hints need to be provided
![Page 80: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/80.jpg)
More Labs(Under Development)! MAC: Mandatory Access Control
! Ideas from SELinux! 80386 Protection Mode
! Find out ring labels! Access control in the protection mode.
! iLAN labs! Firewalls, Intrusion Detection System,! Syn-cookie, VPN, etc.
![Page 81: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/81.jpg)
Summary of iSYS Labs
![Page 82: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/82.jpg)
Current Status! Have been experimenting with these labs
since 2002.! Existing labs have been updated! New labs were added every year
! Results are encouraging.! Students� positive feedbacks.! Industry recruiters are interested.
! Developed related lectures.! On-going development:
! Extend iSYS to network security courses (iLAN).
![Page 83: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/83.jpg)
Lessons! Helping Materials
! Students spend most of time figuring out how things work in Minix.
! Helpful materials can reduce this time.
! How things work! File System: system calls, I-nodes, data structure.! Process: system calls, process table.! Network Stack: how data flows in the stack.
![Page 84: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/84.jpg)
Review ofOther Course Projects
![Page 85: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/85.jpg)
Classification! Analysis & Evaluation! Design & Implementation! Vulnerability! Research
![Page 86: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/86.jpg)
Analysis & Evaluation
![Page 87: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/87.jpg)
System Analysis! Analyze a popular tool for vulnerabilities
! Google Toolbar! Microsoft Desktop Search
! How much private information is leaked?! How does this compare to running Kazaa?
![Page 88: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/88.jpg)
Analyze Virtual Machines
! Evaluate the security of the VMWare virtual machine against malicious attempt to harm the host OS
! Explore better way to structure the virtual machine implementation! Isolate the security-critical functionality and make
the TCB simpler and easier-to-verify
![Page 89: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/89.jpg)
Analyze Vulnerabilities! Build tools to analyze and improve the
security of a computer! Select the goal! Determine how to measure success or failure! Design & implement the tools! Analyze its effectiveness and see whether the goal
is met
![Page 90: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/90.jpg)
Security of Network Protocols! Analyze a network protocol for the
presence of security flaws! 802.11i wireless security ! Secure multicast and group key
management ! Secure location verification for mobile
devices ! Secure routing in ad-hoc networks
![Page 91: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/91.jpg)
Design & Implementation
![Page 92: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/92.jpg)
Secure Instant Messaging
! Implement SIM program:! Account! Messaging! Buddy list! Conferencing
! Security goals! Authentication, confidentiality and integrity
! Denial of Service (DoS) resistance
![Page 93: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/93.jpg)
Resource Bounds! Use proof-carrying code techniques to
ensure that malicious code never exceeds a fixed resource bound! Insert checks to a global timer wherever
we cannot prove a satisfactory upper bound on the running time of the program
![Page 94: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/94.jpg)
Create a Sandbox! Devise a scenario in which you wish to
place attackers in a sandbox.! Design and implement a sandbox in
Linux
![Page 95: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/95.jpg)
OS fingerprint detector
! Explore the �hallmark� characteristics of a variety of OSes
! Write a fingerprint detector
![Page 96: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/96.jpg)
Linux Security Modules ! Understand how ACLs, MLS are patched
in kernel ! Add special purpose modules
! Support the privilege separation policies.
![Page 97: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/97.jpg)
Login authentication! Modern Unix systems support pluggable
authentication modules (PAM). ! Write a PAM that uses
! Smart card ! Palm Pilot ! Some other interesting techniques.
![Page 98: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/98.jpg)
Malicious code detection! Parse a program and statically detect if
it will misbehave! Use a long list of patterns to match the
flaw in software
![Page 99: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/99.jpg)
Statical Analysis! Using an existing tool to detect security
problems! CQUAL and FindBugs,
! Write a new tool to detect new kinds of security problems
![Page 100: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/100.jpg)
Code Obfuscation! Build an obfuscation system ! Find some obfuscated code and
unobfuscate it! Create a dataflow/control flow tool
! Study how Office XP detects changes in hardware or detects if it's been copied
![Page 101: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/101.jpg)
Dynamic analysis! Use a compiler hack, an object-code rewriting hack,
or a Java bytecode rewriting hack to detect buggy program behaviors
! Design a tool to check various buggy program behaviors! Buffer overflows! Common C pointer mishandling issues! Like Purify
![Page 102: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/102.jpg)
Software Protection! Design and implement a tool to prevent
or contain execution of malicious code ! Evaluate usefulness against various
types of attacks
![Page 103: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/103.jpg)
Privacy Protection! Study the strengths and weaknesses of
an existing privacy protection scheme! Propose and implement a new tool for
protecting privacy! Implement an existing privacy-preserving
data mining scheme! Propose a new privacy-preserving data
mining scheme
![Page 104: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/104.jpg)
Secure Email System! Use symmetric-key and public-key techniques
to develop a secure email system! Program have three main functions:
! A mini-database utility to keep track of certificates that you have acquired from the web site
! A method to send encrypted and signed email! A method to verify and decrypt received email
![Page 105: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/105.jpg)
Vulnerability: Attack & Detection
![Page 106: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/106.jpg)
Detect Vulnerabilities! Detect vulnerabilities in programs
! Boon and Mops, from Berkeley
! Build tools to automate the process of reviewing security-critical source code! Use runtime testing, static analysis, model
checking, formal verification etc. to detect any interesting classes of security holes
![Page 107: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/107.jpg)
Firefox Vulnerability Search! Microsoft's Honey Monkey project
! Identify many sites that exploit Internet Explorer vulnerabilities
! Discover zero-day vulnerability
! Try the same experiment with the open source browser Firefox
![Page 108: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/108.jpg)
Preventing Casting Bugs! typedef unsigned short uid_t;
void dowork(uid_t u);
main() {
int x = read_from_network(); // Squish root (it's not safe to execute dowork() with uid 0)
if (x==0) exit(1);
dowork(x); // 65536 will be treated as 0}
![Page 109: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/109.jpg)
Linux System Security (1)! File Security
! Telnet to the machine assigned to your group
! Try to find as many bugs related to file permissions and fix them
! Password Security! Try to crack the passwords of the users in
your machine! Write a report on your findings
![Page 110: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/110.jpg)
Linux System Security (2)! Internet Security
! How to gain access to a computer ! Report on how secure your system is! Describe solutions for the problems you
find! COPS
! Analyze COPS ! How useful this tool is for administrator
![Page 111: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/111.jpg)
Research
![Page 112: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/112.jpg)
Smart Card ! Design the security functions for a
smart card ! Make it tamper-proof and hack-proof.! Define what approaches an attacker use ! How each approach could be foiled
![Page 113: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/113.jpg)
Active Defense ! Design a trace-back system
! Track an attacker back through the Internet! Locate the attacker�s bases of operation and identity! What legal/ethical impediments might there be ! Estimate performance costs of mechanism! How would attackers seek to avoid your trace! How to counter their attempts.
![Page 114: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/114.jpg)
Configure for Forensics ! Design a forensic data collector and
attack-anticipation software functions! Can be executed before, during, and after the
attack ! Attack can be rapidly visible to administrators! System collects and analyzes forensic data,
identify the attacker and determine the extent of damage
![Page 115: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/115.jpg)
Key Escrow! Why need key escrow?! Design a key escrow system ! What attacks could undermine the
integrity of the system! How does escrow system defeat those
attacks?
![Page 116: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/116.jpg)
Key management ! "KeyChain" store all other cryptographic
keys in a single box! Design a general-purpose OS
mechanism for handling all these different forms of key storage
![Page 117: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/117.jpg)
Play & Improvement
![Page 118: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/118.jpg)
Intrusion detection! Existing open source Intrusion detection system
! Snort, Bro, Tripwire and Systrace.! Explore various techniques used, including some
experimental ones ! Modify an existing intrusion detection tool to meet a
threat for which the tool was not intended to apply
![Page 119: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/119.jpg)
Intrusion prevention! Various techniques on Intrusion Prevention
! Stackgaurd and Libsafe ! PaX/grsecurity, OpenWall and Program
Shepherding
! How to apply these techniques?
![Page 120: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/120.jpg)
Security auditing! Audit a under-scrutinized open-source
package that is security-critical. ! How to re-structure or re-implement it to
make it more robust? ! What tools make auditing task easier?! How effective are existing tools?
![Page 121: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/121.jpg)
Privilege separation
! Sandbox only allows controlled sharing or limited interaction
! How to securely allow this limited interaction in some application context of interest
! Pick an application and investigate how to apply privilege separation techniques to reduce the size of the TCB.
![Page 122: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/122.jpg)
Side Channel Attacks! Java and other mobile code
! Attackers can run code on target machines to measure timings or memory operations by observing scheduling or swapping decisions
! Investigate how to mount side channel attacks within the constraints imposed by Java or other widely-deployed mobile code system
![Page 123: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/123.jpg)
Stamp out SPAM! Devise a best-of-breed technique for detecting and
eliminating SPAM! Determine how attackers create messages that would
not be detected as SPAM! Make your system to learn incrementally
! When attackers became more sophisticated, or observed your SPAM killer, that they could not use that knowledge effectively to deter your detector
![Page 124: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/124.jpg)
Voting security ! Play with a voting system or machine ! Try to spot problems in the system! Use cryptographic protocol verification
to solve the problem discovered in a real voting system.
![Page 125: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/125.jpg)
Password Cracking! Study how passwords are created,
maintained, and checked by NT and Unix
! Select a cracking tool for Windows NT and Unix
! Crack weak passwords in manageable time (2 � 10 hours)
![Page 126: Using Instructional Operating System to Teach Computer ... · The base system is always functioning! Each project adds a new functionality to the base system or replaces a functionality!](https://reader033.vdocuments.us/reader033/viewer/2022042218/5ec304a93f08303db559fadb/html5/thumbnails/126.jpg)
Summary! iSYS/iLAN Labs using Minix OS
! Feel free to use them! You are welcome to contribute new labs! Create a repository for iSYS/iLAN labs! http://www.cis.syr.edu/~wedu/SCIENS/seed/