140
安安安安安安安安安安安安安安安安安 安安安0512 87161312 [email protected] 安安 安安安 Autumn 2008

安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) [email protected] 助教:裴建国 Autumn 2008

  • View
    426

  • Download
    10

Embed Size (px)

Citation preview

Page 1: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

安全操作系统

中国科学技术大学计算机系陈香兰( 0512- 87161312)

[email protected]助教:裴建国Autumn 2008

Page 2: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

第五章 操作系统安全体系结构

安全体系结构的含义和类型计算机系统的安全体系结构设计的基本原则Flask 体系、 LSM 以及 Flask 在 LSM 中的应用权能体系

Page 3: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

操作系统的设计问题

操作系统的测试

渗透测试和老虎队分析 Ethical hacking :正面的黑客行动

打补丁 可 / 不可

原因 旧系统有了新的应用 系统在设计时考虑不充分

构造安全操作系统时的安全体系结构应当如何?

Page 4: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

第五章 操作系统安全体系结构

安全体系结构的含义和类型计算机系统的安全体系结构设计的基本原则Flask 体系、 LSM 以及 Flask 在 LSM 中的应用权能体系

Page 5: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

安全体系结构的含义及类型

体系结构设计的主要任务 各种不同角度的需求,可能有冲突 需要折衷

计算机系统的安全体系结构,包括1. 详细描述系统中安全相关的所有方面2. 在一定的抽象层次上描述各个安全相关模块之间的

关系3. 提出指导设计的基本原理4. 提出开发过程的基本框架及对应于该框架体系的层

次结构

Page 6: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

安全体系结构只是一个概要设计,而不能是系统功能的描述

Page 7: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

要考虑到测评认证的有效性,充分参考可信计算机系统评估准则 TCSEC通用评估准则 CC

TCSEC 没有给出“安全体系结构”的定义,但对系统的体系结构和系统设计的文档资料提出了定性的要求,并且给出了顶层规范的定义

CC 也没有

Page 8: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

美国国防部的目标安全体系( DoD Goal Security Architecture )把安全体系划分为 4 种类型抽象体系通用体系逻辑体系特殊体系

Page 9: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

第五章 操作系统安全体系结构

安全体系结构的含义和类型计算机系统的安全体系结构设计的基本原则Flask 体系、 LSM 以及 Flask 在 LSM 中的应用权能体系

Page 10: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

计算机系统的安全体系结构设计的基本原则

1. 从系统设计之初就考虑安全性2. 应尽量考虑未来可能面临的安全需求3. 隔离安全控制,并使其极小化4. 实施特权最小化5. 结构化安全相关功能6. 使安全相关的界面友好7. 不要让安全依赖于一些隐藏的东西

Page 11: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

第五章 操作系统安全体系结构

安全体系结构的含义和类型计算机系统的安全体系结构设计的基本原则Flask 体系、 LSM 以及 Flask 在 LSM 中的应用

FlaskLSMFlask 在 LSM 中的应用

权能体系

Page 12: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

一、 Flask体系结构

Page 13: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask history

In 1992 & 1993, researchers at the NSA and SCC worked on the design and implementation of DTMach, an outgrowth of the TMach project and the LOCK project. DTMach integrated a generalization of type enforcement , a flexible

access control mechanism, into the Mach microkernel.

The DTMach project was continued in the DTOS project. The DTOS project improved upon the earlier design and imp

lementation work, yielding a prototype that was released to universities for research (e.g. Secure Transactional Resources, DX).

From: http://www.cs.utah.edu/flux/fluke/html/flask.html

Page 14: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

After the DTOS project, a new joint effort was started by the NSA, SCC, and the University of Utah's Flux project to transfer the DTOS security architecture into the Fluke research OS.

During the integration, the architecture was enhanced to provide better support for dynamic security policies

It was named Flask. Flask: Flux Advanced Security Kernel

Flask was ported to: OSKit Security-Enhanced Linux

Page 15: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

论文

Ray Spencer, et al., The flask security architecture: system support for diverse security policies, in Proceedings of the 8th conference on USENIX Security Symposium - Volume 8. 1999, USENIX Association: Washington, D.C.

FLASKFlux Advanced Security Kernel

Page 16: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The Flask Security Architecture: System Support for Diverse Security Policies

Ray Spencer Secure Computing CorporationStephen Smalley, Peter Loscocco National Security AgencyMike Hibler, David Andersen, Jay Lepreau University of Utah

参考了 Jim Stevens的 ppt

Page 17: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 18: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 19: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Introduction

The notion of “security” in a system is defined in terms of its security policy

A wide range of security policies exist due to the diversity of computing environments

Operating systems must be flexible in support for security policies to accommodate the spectrum of security policies

Page 20: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Supporting policy flexibility is not as simple as just implementing multiple policies

3 Requirements of Policy FlexibilitySupport fine-grained access controls on low-level objectsPropagate access rights according to security policyDeal with changes in policy over time, including

revoking previously granted permissions

Page 21: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Earlier systems provided some mechanisms to implement policy flexibility Previous systems failed to address all three requirements at once

This paper describes Flask architecture and a microkernel based prototype to demonstrate that policy flexibility is feasible

Flask is based on the concept of mandatory access controls (MAC) Compare to discretionary access controls (DAC)

Page 22: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

What’s aheadElaboration on meaning of policy flexibilityDiscussion of two popular mechanisms that limit policy

flexibilityFlask architecture overview and prototypeEvaluation of Flask prototype

Page 23: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 24: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Policy Flexibility

How?List all known security policies and define flexibility

through that list?Unrealistic

A better definition is needed!

Page 25: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

It is more useful to define security policy flexibility by viewing the computer system as an abstract state machine with atomic state transformations

Total flexibility is achieved when security policy knows entire state of system and can affect all operations in the systemAllow/deny operationAtomically inject handler routines

It is possible to modify the existing security policy and to revoke any previously granted access.

Page 26: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Total flexibility is obviously not possible in a real system

A more realistic approach is to ask what subset of system state and operations are relevant to securityFlexibility of a practical system therefore depends on

how complete the set of control operations is and what portion of the state is available to the security policy

Granularity of the controlled operations affects the degree of flexibility because it impacts the granularity at which sharing can be controlled

Page 27: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

A policy flexible system must be capable of supporting a wide variety of security policies.

Security policies may be classified byThe need to revoke previously granted accessThe type of input required to make access decisionsThe sensitivity of policy decisions to external factors like

history or environmentTransitivity of access decisions

Revocation is the most difficult characteristic to support

Page 28: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Security policy must deal with policy changes interleaved with execution of controlled operations

Interleaving must be atomic so any controlled operation has a consistent policy

Atomicity is difficult to achieve because access permissions tend to migrate throughout the system Example: Unix write permissions on a file are only checked when

the file is opened. The granted permission is cached in the file descriptor. Changing permissions only affects future open operations.

Migrated permissions are common in capabilities, access rights in page tables, open IPC connections, and other operations in progress

Page 29: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Must make sure entire system knows if a permission is revoked when policy changesComplicated and potentially expensiveMust identify relevant in-progress operations

Three ways to handle revocation for an in-progress operationAbort and return errorRestart operation and check permissionWait for operation to complete

Waiting is not safe because it does not enforce policy and can take an unbounded amount of time

Page 30: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 31: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Insufficiency of Popular Mechanisms

We will take a look at:Capability-Based Systems Intercepting Requests

Page 32: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Capability-Based Systems

Capabilities are transferable tokens that reference an object and access rightsA capability is an unforgable data structure maps access r

ights to objectscan be passed around stored in kernel memory so user can only modify it using an inte

rfacelike file descriptors

Example OS implementations are Hydra, KeyKOS, EROS, SCAP, ICAP, and Trusted Mach

Page 33: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Capability mechanisms are poorly suited to providing policy flexibility because they allow the holder of the capability to control the propagation of that capabilitySecurity policy MUST control propagation of access righ

ts to properly implement rules of security policyCannot trust the capability holders to implement policy

Hydra and KeyKOS had enhancements to limit propagation, but they were specific to certain policies and very complex

Page 34: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Intercepting Requests

A common approach to add security is to intercept service requests with an additional security layer

May be done in capability or non-capability based systems

Examples: Kernel Hypervisors (not VM!), SPIN, Lava, KeySAFE

Can work at kernel-level or user-level

Page 35: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

LimitationsMust expose all abstractions and information flows that

the security policy wishes to controlRequires state to be exposed to avoid redundancies and to

make sure that policy enforcement mechanisms know what to do

Can only affect an operation as requests pass through the interface

Page 36: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 37: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Related Work

Security architecture of Flask is based on DTOS, which had similar goals. Had mechanisms that were policy independent, but not rich enough

to support some policies (particularly dynamic policies) Used Mach microkernel design to handle revocation of memory

permissions (could not handle other permissions)

Generalized Framework for Access Control (GFAC) Assumes all controlled operations are performed in same atomic

operation in which the policy is consulted Difficult to achieve in a practical system and primary obstacle that

Flask had to overcome

Page 38: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

MulticsEffectively provided immediate revocation of memory pe

rmissions by invalidating segment descriptorsShows that this problem is not new

SpringHad a capability revocation method, but didn’t work for

migrated permissions

Page 39: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 40: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask Design and Implementation

Flask prototype is implemented in a microkernel-based multiserver OSMicrokernel isn’t essential thoughOnly requires a reference monitor

The base system is FlukeOriginally a capability-based systemModified to meet requirements of Flask architecture

consult

Page 41: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

In operating systems architecture, a reference monitor is a tamperproof, always-invoked, and small enough to be fully-tested and analyzed module that controls all software access to data objects or devices (verifiable). The reference monitor verifies the nature of the request against a table of allowable access types for each process on the system.

Page 42: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask 体系结构图

Object manager – components that enforce security policy Security server – components that make security policy dec

isions

Page 43: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Primary Goal: Ensure that subsystems always have a consistent view of policy decisions regardless of how they are made and how they change over time

Secondary goals: application transparency, defense-in-depth, ease of assurance, and minimal performance overhead

Page 44: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask provides three primary elements for object managers: Interfaces for accessing security server decisions

Access – permission between two entitiesLabeling – specify security attributes of an objectPolyinstantiation – which member of a set of resources should b

e accessed for a particular request

Access vector cache (AVC) to cache decisions and minimize performance overhead

Registration service to receive notifications when policy changes

Page 45: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Object managers must define: a mechanism to assign labels to their objects a control policy, which specifies how security decisions

are actually used and enforcedhandling routines that are called when policy changes

Page 46: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Object Labeling

All objects controlled by the security policy are labeled with a set of security attributes, referred to as the security context

Flask provides two data types for labeling objects Security contexts – variable length strings that can be

interpreted by any application or user that understands the security policy, can contain whatever is needed by the security policy and is therefore flexible

SID – fixed size values used as references to security contexts, created for efficiency reasons (cheaper to pass around), security server maintains SID mappings

Page 47: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 48: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

General Support Mechanisms

Client and Server Identification IPC calls require the client and server to be identified so t

he roles are known for a security decision

Caching security decisionsUse AVC to save security decisions because querying the

security server is expensive due to IPC and security computation

Coherence is provided by policy change handler routines

Polyinstantiation SupportSecurity server identifies which instantiation can be acces

sed by a client

Page 49: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Requesting and caching security decisions in Flask

Page 50: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Polyinstantiation in Flask

Page 51: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Microkernel-Specific Features

Binds an SID to each memory segment, which is the same SID of whatever object is stored in that memory, and allows Flask to leverage Fluke’s protection model

Associates a Flask permission with each memory access mode based on the SID of the address space and the memory segmentUses to verify that accesses to mapped memory are

allowed by security policy

Page 52: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Revocation Support

RequirementsAfter policy change, the object manager’s behavior must

reflect the changePolicy changes must complete in a timely manner

Page 53: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Three step protocolSecurity server notifies all object managers that may

previously been exposed to revoked permissionsObject manager updates its internal stateObject manager notifies the security server that the

update is complete

Sequence numbers are used to synchronize policy changes and policy decisions

Page 54: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 55: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Security Server

RequirementsProvide mapping from SIDs to security contextsAllocate SIDs for newly created objectsManage AVCs of object managers (with handler callback

s)Provide interface for changing policy (if needed)Cache computations on server side as well because comp

utations can get expensive

Page 56: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Distributed systems If in a homogeneous policy environment: the security

server of each node merely act as a local cache of the environment’s policy

to support heterogeneous policy environments, it is desirable for each node to have its own security server with a locally defined policy component, with some degree of coordination at a higher level.

Page 57: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask security server is defined through a combination of code and a policy databasePolicy database language can express many policiesAny security policy that can be expressed through the

prototype’s policy database language may be implemented simply by altering the policy database.

but some policy changes may require code changes or by completely replacing the security server.

BUT always do not require any changes to the object managers

Page 58: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The policies enforced by the prototype server were:Multi-level security

The policy logic for the multi-level security policy is largely defined through the security server code, aside from the labels themselves.

Type enforcement Identity-based access controlRole-based access control

The policy logic for the other subpolicies is primarily defined through the policy database language.

Page 59: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 60: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flexibility of Flask Prototype

Three sources of potential inflexibilityRange of operations that system can controlLimitation of operations that may be invoked by the secu

rity policy (depends on object manager instances)Amount of state information available to security policy f

or making decisionsLimited to 2 SIDs per query in the prototype, cannot handle para

metersArchitecture does not limit this, but changing it may be a source

of reduced performance

Page 61: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Performance

Overhead for labeling is about 1% compared to Fluke

Table 2 presents measurements for IPC operations of various bit lengthsAll tests are in the AVC

Table 3 presents measurements for decision time when decision is stored in different locations

Page 62: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Table 2: IPC Time

Naive: same test as fluke, but with flaskClient identification: modified to use flask specific server-side IPC to obtain SID on every callClient impersonation: uses client side IPC to specify an effect SID for every call

Page 63: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Table 3: Security Decision Time

trivSS – computation is trivial, just communication overheadrealSS – combination of computation and communication

Page 64: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Revocation time is shown in Table 4.

It is the most expensive operation.

Shown with a varying number of connections.

Has overhead of stopping all threads in prototype. That is the majority of the time. Scales linearly with number of connections after that.

Although this is expensive, policy changes are relatively rare.

Table 4: Revocation Times

Page 65: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

MacrobenchmarkGNU Build System (make,

gcc, ld)Compilation of about 8000

LOC of .c and .h filesAlso executed on FreeBSD

for comparision

Table 5: Execution Time

Table 6: Security Decision Resolution

Flask-FFS-PM – unmodified Fluke object managersMemfs – memory file system (to reduce page faults)

Hint – predetermined location in cacheCache – must find decision in cache

Page 66: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Invasiveness of Flask Code

Overall, Fluke components increased in size less than 8% (see Table 7)

Kernel increased by 19%57% of changes to process manager and 61% of

changes to kernel were “trivial”Only extended Fluke API with security

functionality, fully backwards compatible with Fluke

Page 67: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 68: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 69: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Summary

Paper provided a useable definition of policy flexibility Shows that pure capability based systems and intercepting

request based systems are inadequate for achieving policy flexibility

Paper described operating system security architecture capable of supporting a wide range of security policies

Demonstrated practicality of architecture with prototype microkernel-based system

Appendix A has examples for Flask based file server, network server, and process manager

Page 70: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 71: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Other Flask object managers

File ServerNetwork ServerProcess Manager

Page 72: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

File Server

The Flask file server provides four types of controlled (labeled) objects: file systems, directories, files, and file description objects.

Since file systems, directories and files are persistent objects, their labels must also be persistent.

Page 73: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Figure 6: Labeling of persistent objects

Page 74: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Table 8: Permission requirements for relabeling a file.

Page 75: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Network Server

Table 9: Layered controls in the network protocol stack.

Page 76: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Process Manager

Page 77: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionPolicy FlexibilityInsufficiency of Popular MechanismsRelated WorkFlask Design and ImplementationResultsSummaryOther Flask object managersCurrent Status

Page 78: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Current Status

NSA implemented a Linux Security Module (LSM) called SELinux It is an implementation of Flask It is in the mainline kernel Released in many distros including RHEL, Debian, etc. Often criticized for being overly complicated to set up and understan

d

TrustedBSD Part of this system is a port of SELinux extensions to FreeBSD TrustedDarwin is a port of TrustedBSD to the Darwin system Some components of TrustedBSD have spilled over into OS X, not s

ure if this includes Flask implementation

Page 79: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

References

R. Spencer, S. Smalley, P. Loscocco, M. Hibler, D. Andersen, and J. Lepreau. The Flask Security Architecture: System Support for Diverse Security Policies. In Proceedings of the Eighth USENIX Security Symposium, pages 123-139, Aug. 1999.

http://www.cs.utah.edu/flux/fluke/html/flask.htmlhttp://www.nsa.gov/selinux

Page 80: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

二、 LSM

Page 81: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

SELinux & LSM

SELinux motivated the creation of LSM.Separate kernel from security features in order to mi

nimize the impact to kernel.LSM doesn’t provide any security but it adds securit

y fields to kernel and provides interfaces for managing these fields for maintaining security attributes.

Page 82: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

论文

1

2

Page 83: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionDesign and ImplementationTesting and FunctionalityConclusions

Page 84: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionDesign and ImplementationTesting and FunctionalityConclusions

Page 85: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Introduction

Security is a chronic and growing problemLinux systems do experience a large number of

software vulnerabilitiesAn important way to mitigate software

vulnerabilities is through effective use of access controls.DACNon-DAC

Page 86: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

But there has been no real consensus on which is the one true access control model.

Because of this lack of consensus, there are many patches to the Linux kernel that provide enhanced access controls [6, 10, 11, 13, 16, 18, 23, 19, 31] but none of them are a standard part of the Linux kernel.

Page 87: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The Linux Security Modules (LSM) project seeks to solve this Tower of Babel quandry by providing a general purpose framework for security policy modules.This allows many different access control models to be i

mplemented as loadable kernel modules, enabling multiple threads of security policy engine development to proceed independently of the main Linux kernel.

Page 88: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

A number of existing enhanced access control implementations have already been adapted to use the LSM framework, POSIX.1e capabilitiesSELinuxDomain and Type Enforcement (DTE)

Page 89: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionDesign and ImplementationTesting and FunctionalityConclusions

Page 90: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The problem: Constrained Design Space

At the 2001 Linux Kernel Summit, the NSA presented their work on SELinux, an implementation of a flexible access control architecture in the Linux kernel.

Linus Torvalds appeared to accept that a general access control framework for the Linux kernel is needed.

However, given the many Linux kernel security projects, and Linus’ lack of expertise in sophisticated security policy, he preferred an approach that allowed security models to be implemented as loadable kernel modules. In fact, Linus’ response provided the seeds of the LSM design.

Page 91: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The design of LSM was constrained by the practical and technical concerns of both the Linux kernel developers and the various Linux security projects.

Linus Torvalds specified that the security framework must be: truly generic, where using a different security model is m

erely a matter of loading a different kernel module; conceptually simple, minimally invasive, and efficient; able to support the existing POSIX.1e capabilities logic a

s an optional security module.

Page 92: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The “LSM problem”

The “LSM problem” is to unify the functional needs of as many security projects as possible, while minimizing the impact on the Linux kernel.

LSM takes the approach of mediating access to the kernel’s internal objects: tasks, inodes, open files, etc., as shown in Figure 1.

Page 93: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Figure 1: LSM Hook Architecture

Page 94: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

why LSM chose this approach?

? system call interposition: mediating system calls as they enter the kernel

? device mediation: mediating at access to physical devices Reason: information critical to sound security policy decisio

ns is not available at those points At the system call interface, userspace data, such as a path name, has

yet to be translated to the kernel object it represents, such as an inode. Thus, system call interpostion is both inefficient and prone to time-of-check-to-time-of-use (TOCTTOU) races

At the device interface, some other critical information (such as the path name of the file to be accessed) has been thrown away.

In between is where the full context of an access request can be seen, and where a fully informed access control decision can be made.

Page 95: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Figure 2: Permissive LSM hook.

Page 96: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Implementation

Implementation OverviewTask HooksProgram Loading HooksIPC HooksFilesystem HooksNetwork HooksOther Hooks

Page 97: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Design and Implementation Overview

The LSM kernel patch modifies the kernel in five primary Ways adds opaque security fields to certain kernel data structur

es inserts calls to security hook functions at various points

within the kernel code adds a generic security system callprovides functions to allow kernel modules to register an

d unregister themselves as security modules, moves most of the capabilities logic into an optional secu

rity module

Page 98: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Opaque Security Fields

The opaque security fields are void* pointers, which enable security modules to associate security information with kernel objects.

Page 99: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Table 1

Table 1: Kernel data structures modified by the LSM kernel patchand the corresponding abstract objects.

Page 100: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The setting of these security fields and the management of the associated security data is handled by the security modules.

Page 101: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Calls to Security Hook Functions

Figure 3 shows the vfs_mkdir kernel function after the LSM kernel patch has been applied.

Caller

Callee

Page 102: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Registering Security Modules

全局变量: security_ops 提供 Callee 的接口定义

2.6.26 中

观察 2.6.26 中关于 security_operations 的定义

Page 103: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

security_ops 的初始化

将 caller与具体的 callee相挂接

Page 104: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 105: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

源码中的 security_initcall

Page 106: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

register_security 只能用来注册第一个安全模块

Page 107: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

mod_reg_security ,栈式

Page 108: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Task Hooks

task_struct structure

task_security_ops

Page 109: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

2.6.26 security_operations 中 task 相关

Page 110: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

2.6.26 security.h 中对各 task hook 调用点的封装定义

Page 111: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

The LSM task hooks have full task life-cycle coverage. create() task hook

a task can spawn children?

alloc_security() task hookmanage the new task’s security field.

Page 112: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

2.6.26 中

do_fork 在 copy_process 中,调用 security_task_create

CONFIG_SECURITY 时

否则

Hook调用点

Hook在这里被调用

Page 113: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

初始化 security 域

Hook 调用点,用来设置 security 域

Hook 调用点的定义

Security域的具体内容取决于挂上来的 callee

Page 114: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

When a task exits

kill() task hook the task can signal its parent?

Parent: wait() task hook the parent task can receive the child’s signal?

free_security() task hook Release the task’s security field.

Page 115: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

任务在运行过程中可能需要修改某些属性。例如: setuid(2).

setuid() task hook.post_setuid() task hook.

Page 116: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 117: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 118: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

为防止某些任务的(潜在)敏感信息被泄露, LSM 介入对其他任务状态的查询。getpgid() getscheduler()

Page 119: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 120: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 121: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Program Loading Hooks

The linux_binprm structure represents a new program being loaded during an execve(2).

binprm_security_ops

May to change privileges when a new program is executed.

Hooks are used to verify a task’s ability to load a new program and update the task’s security field.

Page 122: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

添加的模糊项

Page 123: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

execve(2) alloc_security() :分配模糊域相关空间 set_security() : 设置模糊域

may be called multiple times during a single execve(2)

compute_creds() : set the new security attributes of a taskTypically, it will calculate the tasks new credentials based on bot

h its old credentials and the security information stored in the linux_binprm security field.

Once the new program is loaded, free_security() :释放模糊域相关空间

Page 124: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

观察 2.6.26 中 security 域的分配、释放和赋值

在 do_execve 中,分配

释放

Page 125: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

在 prepare_binprm 中设置

Page 126: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

关于 compute_creds

Page 127: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

compute_creds 的调用点

调用点

以 a.out 为例

装载 a.out的程序

Page 128: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Filesystem Hooks

For file operations, three sets of hooks filesystem hooks, inode hooks, file hooks.

LSM adds a security field to each of the associated kernel data structures: super block, inode, file.

观察相应数据结构中的 security域定义

观察相关的 hook定义,及其使用

Page 129: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

IPC Hooks

standard SysV IPC mechanisms: shared memory, semaphores, message queues.

ipc_security_ops

shm_security_ops, sem_security_ops, msg_queue_security_ops, msg_msg_security_ops.

观察 2.6.26中的相关 hook定义

Page 130: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Other Hooks

LSM provides two additional sets of hooks: module hooks and a set of top-level system hooks.Module hooks can be used to control the kernel

operations that create, initialize, and delete kernel modules.

System hooks can be used to control system operations, such as setting the system hostname, accessing I/O ports, and configuring process accounting.

Page 131: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionDesign and ImplementationTesting and FunctionalityConclusions

Page 132: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Performance Impact

The performance cost of the LSM framework is critical to its acceptance

it was a major part of the debate at the Linux 2.5 developer’s summit that spawned LSM.

Microbenchmarks & MacrobenchmarksCompared a stock Linux kernel to one modified with the LSM patch, but with no modules loaded

Page 133: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

microbenchmarks

LMBench

results 最坏情况下的开销:

6.2% for stat(),6.6% for open/close, 7.2% for file delete.

通常情况下的开销:often 0%, ranging up to 2%

Page 134: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

macrobenchmarks

building the Linux kernel

even better: no measurable performance impact.

Page 135: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Security Impact

LSM provide some real security value ??This can be viewed in two ways.

First, must not create new security holes and needs to be thorough and consistent in its coverage. a project from IBM

static and dynamic analysis of the LSM framework Second, must be general enough to support a variety of a

ccess control modelsSELinuxDTE LinuxLSM port of Openwall kernel patchPOSIX.1e capabilitiesLIDS (Linux Intrusion Detection System)

Page 136: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Outline

IntroductionDesign and ImplementationTesting and FunctionalityConclusions

Page 137: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Conclusions

requirements: to meet two criteria: be relatively painless for people who don’t want it, be useful and effective for people who do want it.

LSM meets these criteria. The patch is relatively small, the performance data shows that the LSM patch imposes

nearly zero overhead. The broad suite of security products from around the

world that have been implemented for LSM shows that the LSM API is useful and effective for developing Linux security enhancements.

Page 138: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Flask 体系结构在 Linux LSM 中的应用

对照 FLASK体系结构

Page 139: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
Page 140: 安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

Thanks !The end.