operating systems conceptsstasio/ics8-w12/week4 - os and...introduction 1/31/2012 1 operating...

19
Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory (RAM), input/output (I/O) devices, and long-term storage. 2 Disk Drive RAM CPU 0 1 2 3 4 5 6 7 8 9 . . . I/O

Upload: others

Post on 21-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

1

Operating Systems Concepts

1

A Computer Model

• An operating system has to deal with the fact that a computer is made up of a CPU, random access memory (RAM), input/output (I/O) devices, and long-term storage.

2

Disk Drive RAM CPU

0

1

2

3

4

5

6

7

8

9

.

.

.

I/O

Page 2: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

2

OS Concepts

• An operating system (OS) provides the interface between the users of a computer and that computer’s hardware.

– An operating system manages the ways applications access the resources in a computer, including its disk drives, CPU, main memory, input devices, output devices, and network interfaces.

– An operating system manages multiple users.

– An operating system manages multiple programs.

3

Multitasking • Give each running program a “slice” of the CPU’s time.

• The CPU is running so fast that to any user it appears that the computer is running all the programs simultaneously.

4

Public domain image from http://commons.wikimedia.org/wiki/File:Chapters_meeting_2009_Liam_juggling.JPG

Page 3: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

3

The Kernel • The kernel is the core component of

the operating system. It handles the management of low-level hardware resources, including memory, processors, and input/output (I/O) devices, such as a keyboard, mouse, or video display.

• Most operating systems define the tasks associated with the kernel in terms of a layer metaphor, with the hardware components, such as the CPU, memory, and input/output devices being on the bottom, and users and applications being on the top.

5

User Applications

Non-essential OS Applications

The OS Kernel

CPU, Memory, Input/Output

Userland

Operating System

Hardware

Input/Output

• The input/output devices of a computer include things like its keyboard, mouse, video display, and network card, as well as other more optional devices, like a scanner, Wi-Fi interface, video camera, USB ports, etc.

• Each such device is represented in an operating system using a device driver, which encapsulates the details of how interaction with that device should be done.

– The application programmer interface (API), which the device drivers present to application programs, allows those programs to interact with those devices at a fairly high level, while the operating system does the “heavy lifting” of performing the low-level interactions that make such devices actually work.

6

Page 4: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

4

System Calls

7

• User applications don’t communicate directly with low-level hardware components, and instead delegate such tasks to the kernel via system calls.

• System calls are usually contained in a collection of programs, that is, a library such as the C library (libc), and they provide an interface that allows applications to use a predefined series of APIs that define the functions for communicating with the kernel.

– Examples of system calls include those for performing file I/O (open, close, read, write) and running application programs (exec).

Processes • A process is an instance of a program

that is currently executing.

• The actual contents of all programs are initially stored in persistent storage, such as a hard drive.

• In order to be executed, a program must be loaded into random-access memory (RAM) and uniquely identified as a process.

• In this way, multiple copies of the same program can be run as different processes. – For example, we can have multiple copies of

MS Powerpoint open at the same time. 8

Page 5: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

5

Process IDs • Each process running on a given computer is identified by a

unique nonnegative integer, called the process ID (PID).

• Given the PID for a process, we can then associate its CPU time, memory usage, user ID (UID), program name, etc.

9

File Systems

• A filesystem is an abstraction of how the external, nonvolatile memory of the computer is organized.

• Operating systems typically organize files hierarchically into folders, also called directories.

• Each folder may contain files and/or subfolders.

• Thus, a volume, or drive, consists of a collection of nested folders that form a tree.

• The topmost folder is the root of this tree and is also called the root folder.

10

Page 6: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

6

File System Example

11

File Permissions

• File permissions are checked by the operating system to determine if a file is readable, writable, or executable by a user or group of users.

• In Unix-like OS’s, a file permission matrix shows who is allowed to do what to the file.

– Files have owner permissions, which show what the owner can do, and group permissions, which show what some group id can do, and world permissions, which give default access rights.

12

Page 7: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

7

Memory Management

• The RAM memory of a computer is its address space.

• It contains both the code for the running program, its input data, and its working memory.

• For any running process, it is organized into different segments, which keep the different parts of the address space separate.

• As we will discuss, security concerns require that we never mix up these different segments.

13

Memory Organization

• Text. This segment contains the actual (binary) machine code of the program.

• Data. This segment contains static program variables that have been initialized in the program code.

• BSS. This segment, which is named for an antiquated acronym for block started by symbol, contains static variables that are uninitialized.

• Heap. This segment, which is also known as the dynamic segment, stores data generated during the execution of a process.

• Stack. This segment houses a stack data structure that grows downwards and is used for keeping track of the call structure of subroutines (e.g., methods in Java and functions in C) and their arguments.

14

Page 8: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

8

Memory Layout

15

Virtual Memory

• There is generally not enough computer memory for the address spaces of all running processes.

• Nevertheless, the OS gives each running process the illusion that it has access to its complete (contiguous) address space.

• In reality, this view is virtual, in that the OS supports this view, but it is not really how the memory is organized.

• Instead, memory is divided into pages, and the OS keeps track of which ones are in memory and which ones are stored out to disk.

16 ATM

Page 9: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

9

Page Faults

17

Process

1. Process requests virtual address not in memory,

causing a page fault.

2. Paging supervisor pages out

an old block of RAM memory.

3. Paging supervisor locates requested block

on the disk and brings it into RAM memory.

“read 0110101”

“Page fault,

let me fix that.”

Blocks in

RAM memory:

Paging supervisor

External disk

old

new

Operating Systems Security

18

Page 10: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

10

The Boot Sequence

• The action of loading an operating system into memory from a powered-off state is known as booting or bootstrapping.

• When a computer is turned on, it first executes code stored in a firmware component known as the BIOS (basic input/output system).

• On modern systems, the BIOS loads into memory the second-stage boot loader, which handles loading the rest of the operating system into memory and then passes control of execution to the operating system.

19

BIOS Passwords

• A malicious user could potentially seize execution of a computer at several points in the boot process.

• To prevent an attacker from initiating the first stages of booting, many computers feature a BIOS password that does not allow a second-stage boot loader to be executed without proper authentication.

20

Page 11: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

11

Hibernation • Modern machines have the ability to go into a powered-off state

known as hibernation.

• While going into hibernation, the OS stores the contents of machine’s memory into a hibernation file (such as hiberfil.sys) on disk so the computer can be quickly restored later.

• But… without additional security precautions, hibernation exposes a machine to potentially invasive forensic investigation.

21

1. User closes a laptop computer,

putting it into hibernation.

2. Attacker copies the hiberfil.sys

file to discover any unencrypted

passwords that were stored

in memory when the computer

was put into hibernation.

Event Logging

• Keeping track of what processes are running, what other machines have interacted with the system via the Internet, and if the operating system has experienced any unexpected or suspicious behavior can often leave important clues not only for troubleshooting ordinary problems, but also for determining the cause of a security breach.

22

Page 12: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

12

Memory and Filesystem Security

23

• The contents of a computer are encapsulated in its memory and filesystem.

• Thus, protection of a computer’s content has to start with the protection of its memory and its filesystem.

User Authentication: Password Security

• The basic approach to guessing passwords from the password file is to conduct a dictionary attack, where each word in a dictionary is hashed and the resulting value is compared with the hashed passwords stored in the password file.

• A dictionary of 500,000 “words” is often enough to discover most passwords.

• Attack can be slowed-down by “salting” passwords

24

Page 13: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

13

How Password Salt Works

25

Without salt:

With salt:

1. User types userid, X, and password, P. 2. System looks up H, the stored hash of X’s password. 3. System tests whether h(P) = H.

1. User types userid, X, and password, P. 2. System looks up S and H, where S is the random salt for userid X and H is stored hash of S and X’s password. 3. System tests whether h(S||P) = H.

X: H

Password file:

X: S, H

Password file:

Filesystem Security

26

Page 14: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

14

General Principles

• Files and folders are managed by the operating system

• Applications, including shells, access files through an API

• Access control entry (ACE)

– Allow/deny a certain type of access to a file/folder by user/group

• Access control list (ACL)

– Collection of ACEs for a file/folder

• A file handle provides an opaque identifier for a file/folder

• File operations

– Open file: returns file handle

– Read/write/execute file

– Close file: invalidates file handle

• Hierarchical file organization

– Tree (Windows)

– DAG (Linux)

27

Discretionary Access Control (DAC)

• Users can protect what they own

– The owner may grant access to others

– The owner may define the type of access (read/write/execute) given to others

• DAC is the standard model used in operating systems

• Mandatory Access Control (MAC)

– Alternative model not covered in this lecture

– Multiple levels of security for users and documents

28

Page 15: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

15

Access Control Entries and Lists

• An Access Control List (ACL) for a resource (e.g., a file

or folder) is a sorted list of zero or more Access

Control Entries (ACEs)

• An ACE refers specifies that a certain set of accesses

(e.g., read, execute and write) to the resources is

allowed or denied for a user or group

• Examples of ACEs for folder “Bob’s CS167 Grades”

– Bob : Allow(Read)

– TA Group : Allow(Read, Write)

– Bob : Deny(Write)

29

Closed vs. Open Policy

Closed policy

= by default all access denied

Example:

• Give Tom read access to “foo”

• Give Bob r/w access to “bar

• Tom: I would like to read “foo”

– Access allowed

• Tom: I would like to read “bar”

– Access denied

Open Policy

= by default all access allowed

Example:

• Deny Tom read access to “foo”

• Deny Bob r/w access to “bar”

• Tom: I would like to read “foo”

– Access denied

• Tom: I would like to read “bar”

– Access allowed

30

Page 16: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

16

Minimal ACLs (default in Unix and Windows)

• In a file with minimal ACLs, name does not appear • The ACLs with type “user” and “group” correspond to Unix

user and group permissions, respectively.

31

Permissions Examples

32

read/write/execute to everyone -rwxrwxrwx

read-only to everyone, including owner

-r--r--r--

read/write/execute for owner, forbidden to everyone else

-rwx------

read/write for owner, read-only for group and everyone else

-rw-r--r--

read/write for owner, read-only for group, forbidden to everyone else

-rw-r-----

Page 17: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

17

Changing Permissions

• User can set / change permissions of the files he/she owns

• Only the file owner or root can change file permissions

– root is a “super-user”, who can access any file without respect for the ACL permissions in this file

• If a user owns a file, the user can set the GroupID of this file to any group of which the user is a member

– i.e. not just the default group for this user

– a new group can be created by either any user or by admin

• root can change file ownership (i.e. UserID) and GroupID

33

Linux vs. Windows

• Linux – Allow-only ACEs

– Access to file depends on ACL of file and of all its ancestor folders

– Start at root of file system

– Traverse path of folders

– Each folder must have execute (cd) permission

– Different paths to same file not equivalent

– File’s ACL must allow requested access

• Windows – Allow and deny ACEs

– By default, deny ACEs precede allow ones

– Access to file depends only on file’s ACL

– ACLs of ancestors ignored when access is requested

– Permissions set on a folder usually propagated to descendants (inheritance)

– System keeps track of inherited ACE’s

34

Page 18: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

18

Default ACLs

• A directory can have an additional set of ACLs, called default ACLs, which are inherited by files and subdirectories created within that directory.

– Subdirectories inherit the parent directory's default ACLs as both their default and their access ACLs.

– Files inherit the parent directory's default ACLs only as their access ACLs, since they have no default ACLs.

• The inherited permissions for the user, group, and other classes are logically and-ed with the traditional Unix permissions specified to the file creation procedure.

35

Setting File Permissions in Win XP

36

NTFS permissions in

Windows XP Pro are disabled

by default.

Using Folder Options…

from Tools menu inside

Windows Explorer is

possible to activate NTFS

permission in windows by

unchecking Use simple file

sharing

Page 19: Operating Systems Conceptsstasio/ics8-w12/Week4 - OS and...Introduction 1/31/2012 1 Operating Systems Concepts 1 A Computer Model •An operating system has to deal with the fact that

Introduction 1/31/2012

19

Windows Tools for Access Control Management • Access control management

tools provide detailed information and controls, across multiple dialogs.

• Focus on single file/folders.

• It is challenging for an inexperienced user, or a system administrator dealing with very large file structures, to gain a global view of permissions within the file system

37