04 Operating Systems Security
04 Operating Systems Security
CT013-3.5-3
Learning Outcomes
At the end of this session you should be able to
explain: Protection features provided by general-purpose
operating systems: protecting memory, files, and the
execution environment
Controlled access to objects
User authentication
Resource Separation
Several aspects of computing systems require
protection
Memory
Shared I/O devices (disks, . . . )
Serially reusable I/O devices (printers, . . . )
Sharable programs and sub-procedure
Networks
Sharable data
Temporal separation:
Process with different security requirements are executed at
different
times
Logical separation:
A process cannot access objects outside its permitted domain
Cryptographic separation:
Processes conceal their data and computations
CT013-3.5-3 Computer System Security
CE00360-3 Computer Systems Security
Isolate
Each process unaware of the presence of other processes
Share by capabilities
Sharing depends on owner, object and context of the computation
Fence
Predefined memory address: the OS resides on one side and the user on
the other
Drawback
Predefined mount of space assigned to the OS
Drawback
Fixed Fence
Relocation
Think of a program as if it begins at location 0
Use constant relocation factor to map each address of
the program to it actual location in memory
Fence register can be a hardware relocation
device
Add its content to each program address
Use special instruction when a program legitimately
intends to access a location of the OS
Base/Bounds Registers
Base register: variable fence register
Provides a lower bound (starting address)
Base/Bounds Registers
Prevent a user to modify another users program
A user can accidentally store data on top of programs
instructions
Two pairs of base/bounds registers
One for instructions (code) of the program and the other for
the data space
Base/Bounds Registers
Tagged Architecture
With base/bounds registers, each pair of registers confines
access to a consecutive range of addresses
All-or-nothing sharing: either allow to modify all data or prohibits
access to all data
Tagged architecture: every word of machine memory has one
or more extra bits to identify the access right to that word
Can be set only by privileged instructions
Bits tested every time an instruction access that location
Tagged Architecture
Segmentation
Divide program into separate pieces (segments)
Each segment has a logical unity
The code of a single procedure
The data of an array
Segmentation: Limitations
Each segment has a specific size
A program can reference a valid segment, but with an
invalid offset
Segment can grow in size during execution
Cannot check offset during compilation or when a program is
loaded
Paging
Program is divided into equal-sized pieces (pages)
Page size: between 512 and 4096 bytes
Paging: Limitations
Change to a program, such as addition of one
instruction, pushes all subsequent instructions to lower
address
no way to establish that all values on a page should
be protected at the same level (e.g., read-only or
execute-only)
Paged Segmentation
Summary
This chapter has addressed four topics:
memory protection
file protection
general object access control
user authentication.
Reference
Security in Computing, 4/E
Charles P. Pfleeger
Publisher: Prentice Hall
Pub Date: 2006
ISBN-10: 0-13-239077-9
ISBN-13: 978-0-13-239077-4