39
Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Embed Size (px)

Citation preview

Page 1: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Ideas for Operating Systems Patterns

by Ed Fernandez and Tami Sorgente

Page 2: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Security and operating systems (OS)

• Intermediary between the user of a computer and its hardware

• Supports the execution of all the applications • Architecture is fundamental in the organization its

components and utilization of component services • Most critical of the software layers • Compromise can affect all applications and persistent

data • Most reported attacks occur through the OS • Security Patterns for Operating Systems

Page 3: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

OS Published Patterns

• File access control• Controlled Virtual Address Space• Reference Monitor• Controlled Execution Environment• Authenticator• Controlled-Process Creator• Controlled-Object Factory• Controlled-Object Monitor• OS Architecture Patterns

Page 4: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

OS Pattern Ideas/ Future Work

• Process /Thread structure • Administration roles • Execution Rings • Secure process communication

/Protected entry points • Distributed directory • Isolated execution environments• Virtual memory organization • Virtual Address Space Structure

Page 5: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Process structure

• Process Control Block (PCB)– a data structure containing

• ID, a reference to its code, program counter, stack, registers, status, and references to its resources (domain).

• A process receives a separate address space for its execution. – Some architectures, e.g., the Intel X86 series,

have hardware support for the type of PCB used by common operating systems (this accelerates context switching, changing execution from one process to another).

Page 6: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Process Control Block (PCB)Name (ID) identifier

stateif it is executing/ waiting, etc.

PC (program Counter)

registers

pointer to code code

pointer to devices

pointer to stack

memory limits...

The PCB defines the process context when going to another process need to save this context

Page 7: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Process States

Page 8: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Thread structure

• Lightweight process • Faster context switching than a process• Address space shared with peer threads. • Program counter, a register set, and a

stack. Thread Control Block (TCB)• Shared address space

– error or attack from other thread can corrupt its memory

• Thread stacks can be protected if they are kept in the system address space using separated segments or pages.

Page 9: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Thread structure

• Most modern operating systems, e.g., Solaris, – several threads are in one process– protects the thread group as a whole from other processes

• User processes - special thread packages– Posix in Unix, or through the language, as in Java or Ada

• OS defines kernel threads as units of concurrent execution

• Kernel threads usually don’t have any protection against each other

Page 10: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Thread Structure

Page 11: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Process/Thread Structure

Page 12: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Administration roles • AIX reduces the privileges of the system administrator by defining five

partially-ordered roles: Superuser, Security Administrator, Auditor, Resource Administrator, and Operator.

• Windows Windows NT uses four roles for administrative privileges: standard, administrator, guest, and operator. A User Manager has procedures for managing user accounts, groups, and authorization rules.

• Trusted Solaris ---This is an extension of Solaris 8. RBAC is used to restrict the rights of administrators, there is no superuser with all power.

• Argus Pitbull [Arg]—Least privilege applied to all processes, including the superuser. The superuser is implemented using three roles: Systems Security Officer, System Administrator, and System Operator.

 

[Arg] Argus Systems Group, “Trusted OS security: Principles and practice”, http://www.argus-systems.com/products/white_paper/pitbull

 

[Cam90] N.A.Camillone , D.H.Steves, and K.C.Witte, “AIX operating system: A trustworthy computing system”, in IBM RISC System/6000 Technology, SA23-2619, IBM Corp., 1990, 168-172.

Page 13: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Execution Rings• Some hardware architectures define a set of

protection rings (typically 4 to 32) with hierarchical levels of trust.

• Rings are a generalization of mode of operation and define finer domains of execution.

• Multics and the Intel processors among others. • A combination (process, domain) corresponds to

a row of the access matrix. • Crossing of rings is done through gates that

check the rights of the crossing process• Process calling a segment in a higher ring must

go through a gate.

Page 14: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Execution Rings

01

2

3

0 = kernel1 = OS functions2 = safe applications3 = untrusted applications

- Calls upward (higher privilege)- Data access toward less privilege- Gate crossings- Protected entry points

Page 15: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Execution Rings• Processes are assigned to rings based on their

level of trust; for example, if we had four rings we could assign them in decreasing order of privilege to: supervisor, utilities, trusted user programs, untrusted user programs

• The Intel X86 architecture applies two rules:– Calls are allowed only in a more privileged direction, with

possible restriction of a minimum calling level.– Data in a segment at level p can be accessed only by a

program executing at a more privileged level (<= p).

Page 16: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Execution Rings • Program Status word of the process indicates its current ring and data descriptors

also indicate their assigned rings. These values are compared to apply the transfer rules.

 • Ring crossing applies protected entry points. A process calling a higher-privilege

process can only enter this process at pre-designed entry points with controlled parameters.

 • Jumping many rings is suspicious. Multics defined a call bracket, where calls are

allowed only within rings in the bracket. More precisely, for a call from procedure i to a procedure with bracket (n1, n2, n3) the following rules apply: if n2<i<=n3 the call is allowed to specific entry points; if i>n3 the call is not allowed, if i < n1 any entry point is valid. This extension only makes sense for systems that have many rings.

 • Rings don’t need to be strictly hierarchic, partial orders are possible and

convenient for some applications. For example, a system including a secure database system could assign a level to this database equal but separated from system utilities; the highest level is for the kernel and the lowest level is for user programs. This was done in a design involving an IBM 370 [Fer78].

Page 17: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Secure process communication

• Process communication also has an effect on security

• Systems that use explicit message passing have the possibility of checking each message to see if it complies with system policies

Page 18: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Process communication

• Direct- indirect (mailbox)• Symmetric (must know name)- asymmetric

(does not need to know name)• Synchronous (blocking)- asynchronous

(non blocking)• Automatic or explicit buffering• Send by copy or send by reference• Fixed size or variable size messages 

Page 19: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Protected entry points • Systems that use explicit message passing have

the possibility of checking each message to see if it complies with system policies.

• For example, a security feature that can be applied when calling another process is protected entry points.

• A process calling another process can only enter this process at pre-designed entry points. This prevents bypassing entry checks.

• The number and size of arguments in a gate crossing can also be controlled (this may protect against some types of buffer overflow attacks).

Page 20: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Direct communication

Page 21: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Indirect Communication

Page 22: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Distributed directory

• Windows 2000 introduced the concept of Active Directory (AD) that provides an administrative structure for distributed domains.

• The AD is a tree that acts as a repository or registry for all resource information. A domain is a group of systems that share the same directory; in this sense the AD is a directory of directories (the Composite pattern again !).

• Each domain has a unique name and provides centralized administration for user and group accounts. Users can cross domains after being properly authenticated.

Page 23: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Distributed directory

• The AD introduces the concept of dynamic inheritance of rights along the tree. This is a direct application of the concept of implied authorization that we proposed in 1975 [Fer75].

• Implied access rights are very convenient for system administration because the administrator can understand better the structure of rights in the system.

• W2000 also improved and expanded the use of groups for security and introduced the use of Kerberos for distributed authentication

Page 24: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Memory Protection

• Memory allocation most systems use paging, segmentation, or a combination of both

• Page table entries can be used to describe the permitted type of access to pages, such as read, write, execute

• Because pages do not correspond to logical units in a program this protection is rather imprecise

Page 25: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Page Addressing

memory

page table entry

process page table

.

page address access type

..

Page 26: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Memory Protection

• Segmentation- Segments are variable-size units that correspond to logical program units

• Processes are given a descriptor segment that contains segment descriptors that indicate their type of access to a set of memory segments

• Can apply a more accurate protection• Two approaches: capabilities and

descriptors

Page 27: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Capabilities and descriptors

• Capabilities are a generalization of base/limit register pairs that include the type of permitted access and which are given to the process in a relatively persistent way

• Descriptors are similar to capabilities but instead of being carried with the process code they are loaded when the process is created

Page 28: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Capabilities and descriptors

• Descriptors and capabilities are usually combined with address translation and then their use adds very little overhead, although ring crossing is relatively slow

• The set of all the pages or segments (described by page entries or descriptors) assigned to a process represent its virtual address space (VAS); the set of all pages or segments that can be allocated to processes is the system virtual address space

Page 29: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Access control through segmentation

base limit access type

memory

segment

descriptor

process

descriptor segment

limit

Page 30: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Virtual address space structure

There are four Basic Approaches:

1. One address space per process

2. Two address spaces per process

3. One address space per user process, all of them with one address space for the OS

4. A single-level address space

Page 31: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Virtual address space structures

NS32000 MC68020 , Z80000

kernel users programdata program

data

kernel

users

users…

kernel

user

kernel

user

Single-level Space

VAX/VMS

Intel 286...486

Page 32: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

One address space per process

• supervisor gets its own address space • NS32000, WE32100, and Clipper

microprocessors • good isolation but sharing is complex

– (special instructions to cross spaces are needed)

Page 33: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Two address spaces per process

• Motorola 68000 series • Data and instructions can be separated for

better protection – (some attacks take advantage of execution

of data or modification of code) • problem of complex sharing plus a rather

poor address space utilization

Page 34: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

One address space per user process, all of them shared with one address space for the

OS

• VAX series and in the Intel processors • Not the best with respect to security

– (the supervisor has complete access to the user processes and it must be trusted)

• Convenient for sharing utilities and other system programs

• Disadvantage is that the address space available to each user process has now been halved

Page 35: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

A single-level address space

• Everything, including files, is mapped to this memory space

• Multics, IBM S/38, IBM S/6000, and HP’s PA-RISC • Most elegant solution

– (only one mechanism to protect memory and files)• Potentially the most secure if capabilities are also

used • Hard to implement due to the large address space

required

Page 36: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Isolated execution environments

• Virtual machines• Tagged storage• Capabilities• Separation by encryption 

[Dal01] C. Dalton and T.H. Choo, “An operating system approach to securing services”, Comm. of the ACM, vol. 44, No. 2, February 2001, 58-64.

Page 37: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Virtual Machines

VMM (virtual machine monitor)

hardware

Windows XP

Linux

VM1 VM2

Page 38: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Virtual Machines

Page 39: Secure Systems Research Group - FAU Ideas for Operating Systems Patterns by Ed Fernandez and Tami Sorgente

Secure Systems Research Group - FAU

Summary• Process /Thread structure • Administration roles • Execution Rings • Secure process communication /Protected entry points • Distributed directory • Isolated execution environments• Virtual memory organization • Virtual Address Space Structure

• EuroPLoP deadline: January 28, 2005

• Interested?