Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of...

31
Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security - Introduction Dresden, 2009-12-15 Benjamin Engel

Transcript of Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of...

Page 1: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Faculty of Computer Science Institute for System Architecture, Operating Systems Group

Security - Introduction

Dresden, 2009-12-15

Benjamin Engel

Page 2: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 2 / 312009-12-15

Overview

• Confidentiality, integrity and availability

• Security policies and mechanisms

• Cryptography: ciphers and keys

• Access / information flow control

• Formal methods: verification and evaluation

• Identity and authentication

• Resource accounting

• Trust / assurance

• Auditing and intrusion detection

Page 3: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 3 / 312009-12-15

Outline for today

Security Models

Access Control

Capabilities

Naming

Page 4: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 4 / 312009-12-15

Confidentiality, Integrity, Availability

Confidentiality: Data is only accessible to those with appropriate rights; no statement about integrity

Integrity: Data is either unmodified (authentic) or tampering is provable; no statement about confidentiality

Availability: Timely access to resources is guaranteed

Page 5: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 5 / 312009-12-15

Secure Systems

Secure System*: A secure system is a system that starts in an authorized state and cannot enter an unauthorized state.

Security Policy*: A security policy is a statement that partitions the states of the system into a set of authorized, or secure, states and a set of unauthorized, or nonsecure, states.

* Matt Bishop: Computer Security – Art and Science

Page 6: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 6 / 312009-12-15

Security Policies vs. Mechanisms

Security Policy:– A security policy is a statement of what is,

and what is not allowed.– e.g.: SELinux policy, /etc/passwd

Security Mechanism:– A security mechanism is a method, tool, or

procedure for enforcing a security policy– e.g.: Capabilities, ACLs, MMU ...

Page 7: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 7 / 312009-12-15

Cryptography: Ciphers and Keys

Symmetric or asymmetric:– Symmetric: both peers share the same key,

fast and efficient, used for bulk data– Asymmetric: key pair (public and private key),

public key is not confidential, used for encryption/verification only. Private one is used for decryption/signing

Confidentiality or Integrity:– what to protect – message content or

authenticity

DES, AES, RSA, GMR, MD5, SHA-1,2,3, ...

Page 8: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 8 / 312009-12-15

Principle of least privilege

“Every program and every user of the systemshould operate using the least set of

privileges necessary to complete the job.”(Saltzer and Schroeder, 1974)

Page 9: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 9 / 312009-12-15

Bell – La Padula model

• Developed in the 1970s, demand for access control mechanisms solving problems of security in computer systems

• Main focus on Confidentiality

• State transition system: Define a set of secure states, transition function ensures to stay in this set (enter no insecure state)

Page 10: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 10 / 312009-12-15

Elements of the model

{S1, S2, ... Sn}

{O1, O2, ... Om}

{C1, C2, ... Cq}

{C1 > C2 > ... >Cq }

{S1, S2, ... Sn}

S

O

C

K

Subjects; processes in execution

Classifications; clearance level of a subject, classification of an object

Objects; data, files, programs, subjects

Needs-to-know categories; project number, access privileges

Set Elements Semantics

Page 11: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 11 / 312009-12-15

Classification and Categories

Unclassified

Confidential

Secret

Top Secret {National, Foreign}

{}

{National} {Foreign}

Classification C Categories K

Subjects and objects have a security label (C,K) consisting of a security level C and a category set K, both are orthogonal to each other

dominates relation: C1 ≥ C2 && K1 ⊇ K2

Page 12: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 12 / 312009-12-15

Bell – La Padula transition rules

• Example: Label L1 (Top Secret, {National}) dominates Label L2 (Unclassified,{})

• Simple Security Condition: S can read O if S dominates O (no reads up)

• *-Property: S can write to O if O dominates S (no writes down)

• Declassification through trusted subjects

No reads up – no writes down

Page 13: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 13 / 312009-12-15

Bell – La Padula summary

• Information flow policy, that preserves confidentiality

• Very simple model, proof of model's security properties is trivial, practical proof is hard

• No integrity concerns in the model (use Biba)

• Shortcomings:– Too simple, many scenarios cannot be

expressed by this model (e.g. device drivers has to be used by all security levels)

– Purely confidentiality centric– Central, system wide, policy (global labels)

Page 14: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 14 / 312009-12-15

Biba model

• Developed in the 1970s (after BLP)

• In contrast to the Bell – La Padula model, it focuses on data integrity

• Many similarities to Bell – La Padula:– Facilitates also a state transition system– Objects are ordered by integrity levels– Rules are inverse to BLP (no reads from lower

integrity levels, no writes to higher ones)

No reads down – no writes up

Page 15: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 15 / 312009-12-15

Access Control

• Information flow describes how data spreads through the system

• Information flow control states which flows are allowed (policy) and restricts distribution of data accordingly (mechanism)

• In contrast access control states who can access what using which operation

• Prominent example : Access Control Matrix

Page 16: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 16 / 312009-12-15

DAC, RBAC, MAC

• Discretionary access control– privileged instance (e.g. owner) related to an

object decides who is allowed to access it, permissions might be passed to other subjects

• Role-based access control– Operations are permitted based on roles, not

directly on subjects– Powerful enough to simulate DAC and MAC

• Mandatory access control– system rules, that cannot be altered by an

individual user (SELinux, AppArmor)

Page 17: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 17 / 312009-12-15

Access Control Matrix: ACL vs. Caps

S1

S2

S3

...

Sm

O1 O2 O3 ... On

r,w r

x w

w,x m

a c,d

Caps

ACL

read, write, execute, append, create, delete, map, ...

Page 18: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 18 / 312009-12-15

Access Control List

• Tied to the objects (classic example: file access rights in Unix/Windows)

• For each object (or group of objects): which subjects are allowed to perform which operation

• Changing of permissions easy: right at the object

Page 19: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 19 / 312009-12-15

Capabilities

• Bound to the subject (compare ticket system)

• States which permissions a subject has on specific objects

• Group relations a hard to express (indirection)

• Changing (revoking) permissions is difficult ... “Whom I gave access rights to foobar?”– Tracking of granted permissions– How to invalidate a ticket

Page 20: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 20 / 312009-12-15

Combine name and access

• Capabilities– Designate a specific object (e.g.: kernel object)

and give certain access rights to that object– Possession of a capability is sufficient to access

the concerning object– Can be implemented by using hardware

support, memory protection mechanisms or cryptography

Page 21: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 21 / 312009-12-15

Capability systems

• KeyKOS: Persistence, one run 17 years • EROS: Extremely Reliable OS• Cyotos: Towards formally verification• Amoeba: Transparent distributed system• SeL4: First formally verified Microkernel• Fiasco.OC: Successor to Fiasco• NOVA: Microhypervisor

Page 22: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 22 / 312009-12-15

Capabilities: Kernel vs. User

• Kernel– Protected by kernel– User gets only a handle– Compare to File Descriptor in Unix– Easier to revoke

• User– protect against tampering (Amoeba: a cap is a

128 bit value, protected by cryptography)– Persistency: user responsibility, for the kernel

it's just a value

Page 23: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 23 / 312009-12-15

Capabilities Usage

• Server offers its service by– creating a portal– thereby get a new capability from the kernel– distribute the portal to its clients

• Clients get a capability to this portal and send messages to the server

Server

7

Client 1 Client 24223

Page 24: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 24 / 312009-12-15

Server

Capabilities implementation

Text

Data

Stack

OS

7

• Within the address space of a task, accessible by the OS only, is a capability space

• Double indirection: user gets an index (7) into an array of pointer to kernel objects

• When creating new kernel objects, new capability is created, user needs to provide in which slot the handle should be put

• Backed by kernel memory

Page 25: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 25 / 312009-12-15

Application

OS protected

KernelThread Address spacePortalSemaphore

Capability space0 1 2 4 7

• Application has references to kernel objects• Referred via index into cap space• Caps might be transferred to other tasks

Capability space

Page 26: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 26 / 312009-12-15

From Capabilities to Naming

• A capability describes what operations I can perform on an object (the rights I have)...➢ Where to get the cap from?➢ Delegation of capabilities?➢ How to name objects?➢ How does service discovery works?

Page 27: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 27 / 312009-12-15

• Naming issues are highly coupled with security

• Symbolic name resolution is highly policy dependent (files, objects, uri ...)

• References and access control belong together

• Names are resources, that have to be controlled

Naming

Page 28: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 28 / 312009-12-15

Local vs. global name spaces

• Global name spaces– All instances share the same view– Classical in monolithic systems– Easy to configure– Recap: BLP security levels → global

• Local name spaces– Instances have a private name space– Forwards principle of least privilege– Common examples: BSD jails or chroot

Page 29: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 29 / 312009-12-15

Problems with global names

• Communication:• Example: L4 thread ids were globally visible• Everyone can send IPC to everyone

– Clans and chiefs– Reference monitor– Ports, endpoints, gates, portals, ...– Language based approaches (Sing#)

• Denial of Service attacks are possible• No full isolation

• Simple solution: using local names

Page 30: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 30 / 312009-12-15

Name spaces

• Task local name space• Populated by task's creator• Mapping from name to capability• Query:

– Name server– Parent → hierarchical name resolution

(compare with DNS)

Page 31: Security - Introductionos.inf.tu-dresden.de/Studium/KMB/WS2009/10-Security_Intro.pdf · Faculty of Computer Science Institute for System Architecture, Operating Systems Group Security

Security Slide 31 / 312009-12-15

• Review– Security models (Bell – La Padula, Biba)– Access Control Matrix– Capabilities– Naming

• Next lecture– Software verification– Information Flow

Review & outlook