您的当前位置:首页正文

Windows的访问控制机制

来源:九壹网
Windows的访问控制机制

访问控制:是指的安全特性,这些安全特性控制谁能够访问操作系统资源。应用

程序调用访问控制函数来设置谁能够访问特定资源或控制对由应用程序提供的资源的访问。

C2等级安全:

下面的列表包含在C2等级安全中最重要的一些要求,它们是有美国国防部提出的:1ﻫ、必须能够通过授予或拒绝个人用户和组用户访问某个资源来达到控制访问的目的。

2、当一个进程释放内存后,该内存中的内容不能被读取。同样,一个安全文件系统,例如NTFS,必须防止已删除的文件被读取。

3、当用户需要登录,必须提供一种方式来惟一标识用户。所有的可审计的操作同样能够确定它的执行用户。

4、系统管理员必须能够审计与安全相关的事件。然而,授权管理员不能访问与安全相关事件的审计数据。5ﻫ、系统必须能抵抗外部干扰、防止诸如篡改运行中系统、存储在硬盘中的系统文件的操作。

ﻫﻫ访问控制模型:ﻫ访问控制模型允许您控制一个进程访问安全对象或执行诸多系统管理任务的能力(控制进程执行xxx的能力)。访问控制模型有两个基本的组件:1ﻫ、访问令牌(包含关于登录用户的信息)2ﻫ、安全描述符(包含用于保护一个安全对象的安全信息)

ﻫ当一个用户要登录,系统验证用户的用户名和密码。如果验证成功,系统创建一个访问令牌。所有以这个用户身份运行的进程都有一份令牌的拷贝。访问令牌包含标识用户账户以及所在组账户的安全标识符。当然,访问令牌还包含很多其它信息,比如用户以及用户所在组的特权列表。当进程试图访问安全对象或者执行需要特权的系统管理任务时,系统使用这个访问令牌识别相应的用户。ﻫ每当一个安全对象被创建时,系统将一个安全描述符与对象关联起来,安全描述符中包含由创建者指定的安全信息,如果创建者没有提供安全信息,那么系统将使用默认的安全信息。应用程序可以调用函数来获得和设置一个已经存在的安全对象的安全信息。ﻫﻫ一个安全描述符标识用户的所有者和可以包含下面列出的访问控制列表:

1、一个自主访问控制列表,标识那些用户和组允许或拒绝访问一个对象。ﻫ2、一个系统访问控制列表,控制系统审计对对象行为的审计方式(访问成功审计还

1 / 41 / 4

是访问失败审计等等问题)

一个访问控制列表包含访问控制项的列表。每一个访问控制项包含一个访问权限集、权限集的实施对象(用户、组或会话)的安全标识符和实施动作(允许或拒绝)。

我们并没有直接访问安全描述符、安全标识符和访问控制列表的内容,而是通过函数透明的访问它们的内容。这有助于确保这些结构的完整,同时提供一个统一的操作接口。 ﻫ

访问令牌ﻫ访问令牌包含下列信息:1ﻫ、用户账户的安全标识符。2ﻫ、用户所在组账户的安全标识符,一个用户可能是多个组的成员,所以这里可能有多个。 3、登录会话的登录安全标识符。4ﻫ、用户或组的特权列表。 5、所有者安全标识符。 6、基本组的安全标识符。

7、默认的自主访问控制列表,当用户在创建安全对象,但没有指定一个安全描述符时,系统将使用这个默认的自主访问控制列表。8ﻫ、访问控制令牌的源。9ﻫ、令牌的类型,是一个基本令牌还是一个模仿令牌。ﻫ10、可选的受限安全标识符列表1ﻫ1、当前模仿等级。12ﻫ、其它策略。ﻫﻫ每一个进程都有一个基本令牌。默认情况下,当一个进程的线程访问一个安全对象时,系统使用基本令牌。但是,一个线程可以代理(扮演)一个客户账户。当一个线程代理一个客户账户时,它会使用客户的安全上下文来访问安全对象。一个代理客户的线程同时拥有基本令牌和代理令牌。ﻫ

调用OpenProcessToken函数来获得一个进程的基本令牌的句柄。调用OpenThreadToken函数来获取代理令牌的句柄。您可以使用下面列出的函数来操控访问令牌。ﻫ函数名 函数描述ﻫAdjustTokenGroups 更改一个访问令牌的组信息ﻫAdjustTokenPrivileges 使令牌中的某些特权生效或失效。但它不能产生新的特权或撤销已经存在的特权。

CheckTokenMembership 检测一个特定的安全标识符是否包含在令牌 CreateRestrictedToken 为一个已经存在的令牌创建一个受限版本的令牌

DuplicateTo

kenEx GetTokenInfor

Creates a new primary token or impersonation token that duplicates an existing tok

en.

Retrieves information about a token.

2 / 42 / 4

mation

IsTokenRestricte

Determines whether a token has a list of

restricting SIDs.

OpenProcessTokRetrieves a handle to the primary access

en token for a process. OpenThreadTokRetrieves a handle to the impersonation access

token for a thread. en SetThreadToken

Assigns or removes an impersonation token

for a thread.

SetTokenInformChanges a token's owner, primary group, o

ation r default DACL. The access token functions use the following structures to describe the components of an access token.

Structure

Description

The default DACL that the system

uses in the security descriptors of new

objects created by a thread. Specifies the SIDs and attributes of the group SIDs in an access token. The default owner SID for the securi

ty descriptors of new objects.

TOKEN_CONTROL Information that identifies an access token. TOK

EN_DEFAULT_DACL TOKEN_GROUPS TOKEN_OWNER

TOKEN_PRIMARY_The default primary group SID for the s

GROUP ecurity descriptors of new objects. The privileges associated with an

TOKEN_PRIVILEGE

access token. Also determines whether the

privileges are enabled. TOKEN_SOURCE TOKEN_STATISTIC

TOKEN_USER

The source of an access token. Statistics associated with an access

token. The SID of the user associated with

an access token.

The access token functions use the following enumeration types.

Enumeration ty

pe

3 / 43 / 4

Specifies

Identifies the type of information b

TOKEN_INFORMA

eing set or retrieved from an access

TION_CLASS

token.

TOKEN_TYPE

Identifies an access token as a primary or

impersonation token.

4 / 44 / 4

因篇幅问题不能全部显示,请点此查看更多更全内容

Top