The Future of Computing: Challenges and Opportunities
Download
Report
Transcript The Future of Computing: Challenges and Opportunities
Computer System Security
CSE 5339/7339
Session 20
October 28, 2004
Computer Science and Engineering
Contents
Separation
Assurance
Group Work
Evaluation
Examples
Sandeep’s presentation
Computer Science and Engineering
Separation:
Physical Separation
Temporal Separation
Cryptographic Separation
Logical separation (isolation)
Computer Science and Engineering
Virtualization:
Illusion
The OS emulates or simulates a collection of a computer
system’s resources.
Virtual Machine: Collection of real or simulated hardware
facilities – processor, memory, I/O devices
Computer Science and Engineering
IBM MVS/ESA
Paging System
Virtualization is used to provide logical separation that gives
the user the impression of physical separation.
Each user feels that he/she has a separate machine
Each user’s virtual memory space cab be as large as the total
addressable space.
Computer Science and Engineering
Virtual machine
Virtual
Machine
Virtual
Machine
Virtual
Machine
User 1
User 2
User 3
Real OS
Real System Resources
Computer Science and Engineering
Layered OS
User processes
Compilers, database
OS
Utility functions
File system, device allocation
Scheduling, sharing, MM
Synchronization, allocation
Security kernel
OS kernel
Security functions
Hardware
Computer Science and Engineering
Modules operating in Different Layers
Least trusted code
Most
trusted code
Data update
Data comparison
User ID lookup
User Authentication module
User interface
Computer Science and Engineering
Provably Secure Operating System
(PSOS)
16 level Layered structure (see table – page 272)
Each layer uses the services of the layers below it,
and provides certain level of functionality to the
layers above it.
Peel off each layer and still have a logically
complete system with less functionality
Computer Science and Engineering
Conventionally vs. Hierarchically Designed
Systems
Level
Functions
Risk
All
Non-critical
Disaster possible
All
Less critical
Disaster possible
All
Most critical
Disaster possible
level
Functions
Risk
2
Non-critical
1
Less critical
0
Most critical
Computer Science and Engineering
Assurance
Testing – based on the actual product being
evaluated, not on abstraction
Verification – each of the system’s functions works
correctly
Validation – the developer is building the right
product (according to the specification)
Computer Science and Engineering
Testing
Can demonstrate the existence of a problem, but passing
tests does not imply the absence of problems
Hard to achieve adequate test coverage within
reasonable time – inputs & internal states
Observable effects versus internal structure
real-time systems – hard to keep track of all states
Penetrating Testing – tiger team analysis, ethical hacking
Team of experts in the design of OS tries to crack the
system
Computer Science and Engineering
Formal verification
The most rigorous method
Rules of mathematical logic to demonstrate that a
system has certain security property
Proving a Theorem
Time consuming – complex process
Simple example
Computer Science and Engineering
Entry
Example:
find minimum
min A[1]
i1
ii+1
yes
Exit
i>n
no
yes
min < A[i]
no
min A[i]
Computer Science and Engineering
Example – Finding the minimum value
Assertions
P: n > 0
Q:
n > 0 and
1 i n and
min A[1]
R: n > 0 and
1 i n and
for all j 1 j i -1
min A[j]
S:
n > 0 and
i = n + 1 and
for all j 1 j i -1
min A[j]
Computer Science and Engineering
Exercise 1
Four sources of weaknesses in OS security:
I/O
Ambiguity in access policy
Incomplete mediation
Generality
Group work
Computer Science and Engineering
Validation
Requirements checking – system does things it should
do (in security, system does not do things it is not
supposed to do)
Design and code reviews – traceability from each
requirement to design and code components
System testing – data expected from reading the
requirement document can be confirmed in the actual
running of the systems
Computer Science and Engineering
Evaluation
Review: requirements, design, implementation, assurance
US “Orange Book” Evaluation – Trusted Computer System
Evaluation Criteria (TCSEC)
European ITSEC Evaluation – Information Technology
Security Evaluation Criteria
US Combined Federal Criteria – 1992 joiintly buy NIST
and NSA
Computer Science and Engineering
TCSEC (Examine the table in page 284)
The levels of trust are described as four divisions: A, B, C, D, where A
has the most comprehensive degree of security.
Within a class, numbers are used. The higher numbers indicate tighter
security requirements.
4 clusters of ratings:
D – no requirements
C1/C2/B1 – commercial OS
B2 – proof of security of the underlying model
B3/A1 – proven descriptive and formal design of the trusted OS
Computer Science and Engineering
Implementation Examples
UNIX – environment of trustworthy collaborators
PR/SM – protection against inadvertent or malicious
attempts by a process in one domain to interfere with one
in a different domain
VAX Security Kernel – by DEC, targeted A1 level of the
TCSEC
Computer Science and Engineering
Exercise 2
Group work
Computer Science and Engineering