CN102112990A - 为计算过程授予最小特权访问 - Google Patents

为计算过程授予最小特权访问 Download PDF

Info

Publication number
CN102112990A
CN102112990A CN2009801248675A CN200980124867A CN102112990A CN 102112990 A CN102112990 A CN 102112990A CN 2009801248675 A CN2009801248675 A CN 2009801248675A CN 200980124867 A CN200980124867 A CN 200980124867A CN 102112990 A CN102112990 A CN 102112990A
Authority
CN
China
Prior art keywords
main body
token
identity
security
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801248675A
Other languages
English (en)
Other versions
CN102112990B (zh
Inventor
N·L·科尔斯
S·R·谢尔
U·R·桑达蒂
A·R·瓦尔斯
M·G·莱昂斯
C·R·乔丹
A·罗杰斯
Y·格帕兰
B-M·谢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102112990A publication Critical patent/CN102112990A/zh
Application granted granted Critical
Publication of CN102112990B publication Critical patent/CN102112990B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

各实施例提供可以被配置成在现有操作系统上运行的安全基础结构,以控制什么资源可以被应用程序访问,以及应用程序可以调用什么API。通过考虑当前线程的身份以及当前线程的调用链上下文来作出安全决定,以默认地启用最小特权。捕捉当前线程上下文,并创建其副本,以供用于异步地执行安全检查。系统中的每一线程都具有相关联的标识。为获取对特定资源的访问,分析当前线程上的所有调用者,以确保每一调用者和线程可以访问该资源。只有在每一调用者和线程都可以访问该资源的情况下才向调用者给予对该资源的访问。

Description

为计算过程授予最小特权访问
背景
设备可被配置成具有控制对资源、应用程序等等的访问的安全基础结构。当前在移动设备上,基于代码标识,向单个应用程序指派信任。安全基础结构确定什么应用程序可以在设备上运行,什么应用程序可以被锁定,什么应用程序可以在什么上下文中运行,以及这样的应用程序可以访问什么资源。当前信任级别包括对于未经签名模块的“受信任”、“普通”,以及“不受信任”。可以利用受信任的证书或链接到受信任证书存储的证书来对应用程序或模块进行签名。在此情况下,该模块被视为受信任的,且如此,该模块中的任何代码都具有对系统上的全部特权API和资源的权限。信任决定基于调用者的应用程序信任级别。
然而,上文所提及的当前安全模型存在多个问题。当线程跨系统中的多个受保护的服务器库(PSL)服务器迁移时,调用链中的立即调用进程具有访问系统资源的许可是可能的,但是,对整个调用链上下文的检查可能揭示:资源不应该是可被访问的。如果安全决定始终只基于立即调用者的上下文,则这样的安全无法实施。同样,当前安全模型不允许模仿其中低特权应用程序调用系统服务的不同身份,其中,系统服务被要求基于调用者的上下文或者其自己的上下文来处理请求。更进一步地,对于异步访问请求,当前安全模型不提供在其中调用者上下文可能不是完全可用的辅助线程中进行安全检查。
正是基于这些及其他考虑才作出了本发明。
发明内容
提供本发明内容是为了以精简的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
提供了通过考虑当前线程的身份以及当前线程的调用链上下文来作出安全决定,以默认地启用最小特权的各实施例。捕捉当前线程上下文,并创建其副本,以供用来异步地执行安全检查。系统中的每一线程都具有相关联的身份。最初,从父进程导出此身份。然而,在线程生存期内,此标识可能基于线程的任何模仿而变化。
通过阅读下面的“具体实施方式”并参考相关联的图形,这些及其他特点和优点将变得显而易见。应该理解,前面的一般性的说明和下面的详细描述只是说明性的,不会对如权利要求所述的本发明形成限制。
附图简述
图1示出了根据本发明的一个实施例的安全标识符(SID)100;
图2示出了根据本发明的一个实施例的安全令牌结构200的布局;
图3示出了根据本发明的一个实施例的安全描述符布局300的简化视图;
图4示出了根据本发明的一个实施例的访问控制列表(ACL)400;
图5示出了根据本发明的一个实施例的访问控制条目(ACE)500的结构;
图6示出了根据本发明的一个实施例的安全描述符(SD)600的结构布局;
图7示出了根据本发明的一个实施例的线程700的令牌列表布局;
图8示出了根据本发明的一个实施例的PSL调用800中的线程的调用堆栈列表;
图9是示出了根据本发明的一个实施例的线程900的模仿列表和调用堆栈列表之间的链接的框图;
图10示出了根据本发明的一个实施例的消息队列系统1000;
图11示出了其中可以实现本发明的各实施例的计算环境。
具体实施方式
各实施例提供一安全基础结构,该安全基础结构可以被配置成在现有操作系统上运行以控制什么资源可以被应用程序访问,以及应用程序可以调用什么API。通过考虑当前线程的身份以及当前线程的调用链上下文来作出安全决定,以默认地启用最小特权。捕捉当前线程上下文,并创建其副本,以用于异步地执行安全检查。系统中的每一线程都具有相关联的身份。最初,从父进程导出此身份,但是,在线程生存期内,此身份可能基于线程执行的任何模仿而变化。
各实施例不仅分析什么调用或应用程序正在请求什么,而且还分析调用来自哪里。各实施例还可以为系统提供开放的安全基础结构,如此,最终用户或最终操作员可以安装可能不处于他们自己的控制之下的不同应用程序。如此,系统中的所有线程都可以默认地以最小的特权运行,以基于线程被从线程没有权限访问的资源不正确地访问来防止安全问题发生。相反地,分析对特定资源的访问、当前线程上的所有调用者,以确保每一调用者和线程可以访问该资源。只有在每一调用者和线程都可以访问该资源的情况下才给予调用者对该资源的访问。
本发明的各实施例可以使用提供安全基础结构的数据结构来实现,该安全基础结构用于控制哪些资源可以被应用程序访问以及应用程序可以调用什么API。该数据结构包括下列元素:安全标识符(SID)、安全令牌、安全描述符(SD)、访问控制列表(ACL),以及访问控制条目(ACE)。
图1示出了根据本发明的一个实施例的安全标识符(SID)100。SID 100是一可变长度数据结构110,其在系统内定义唯一ID,并指定特定线程正在在什么帐户上运行。SID 100也可以被视为看起来象一用户帐户。例如,当某人登录到计算机上时,可以使用适当的登录口令来访问各种用户帐户。用户帐户标识登录到计算机的人。SID 100只是标识线程或过程的帐户。SID 100只在特定设备内是唯一的。然而,本领域技术人员将在分析此处对本发明的各实施例的描述之后认识到,可以使用全局安全标识符。
在台式机上,可以向单个用户帐户、某些系统帐户、以及某些用户组指派SID 100。注意,例如,
Figure BPA00001280925000031
CE操作系统中的帐户不一定与关于台式机
Figure BPA00001280925000032
操作系统中所使用的有相同的定义。尽管如此,本领域的技术人员将理解什么构成帐户。此处,假设SID 100为映射到帐户数据库中的条目的跨整个操作系统——例如
Figure BPA00001280925000033
CE操作系统——的唯一标识符。帐户数据库中的条目指定向特定帐户指派什么基本和扩展特权(也叫做SID)。
图2示出了根据本发明的一个实施例的安全令牌结构200的布局。使用安全令牌200来定义一组身份和指派给那些身份的特权集合。通常,安全令牌200与诸如进程、线程、同步之类的运行时对象相关联,并与消息队列中的单个消息相关联。安全令牌200包括用于标识结构的版本202、标记204、偏移量206,立即组207的数量和组ID的总数208的字段。安全令牌200的结构还可以存储主要拥有者SID 210、组SID 212、基本特权214和扩展特权216。
主要210和组212SID定义与具有此安全令牌200的对象相关联的身份。基本214和扩展216特权定义对于与此安全令牌200相关联的对象允许什么特权。基本特权214是对安全令牌200中指定的身份有效的一组特权。类似地,扩展特权216是为安全令牌200中的SID列表定义的自定义特权。
基本安全令牌结构200具有指向安全令牌200的扩展(可选)数据的偏移量指针206,如与此安全令牌200相关联的主要210和组212SID,以及与此安全令牌200相关联的扩展特权216。安全令牌200中的每一单个SID 210,212用于AccessCheck API(访问检查)调用中,以确定给定安全令牌200是否具有对已指定了其SD的对象的所需访问权。同样,安全令牌200中的基本[[212]]214和扩展[[214]]216特权用于PrivilegeCheck API调用中,以确定给定安全令牌200是否具有所需的特权。将参考对此处所描述的令牌API的讨论来比较详细地讨论API和安全令牌200的使用。
创建帐户的字符串表示,并将该字符串表示映射到用于安全令牌结构200中的双字。然后,安全令牌200是与系统中的读取线程相关联的对象。因此,每一线程都以特定安全令牌200为开始。安全令牌200包括具有身份列表的基本令牌结构220,这些身份表明此特定线程属于带有特定帐户ID的特定腔室(chamber),还表明该线程是某些组的成员。每一安全令牌200通过设置来表示。如此,安全令牌结构包括结构和多个设置。第一设置是拥有者设置。这意味着,唯一ID被给予系统中的每一腔室或系统中的每一帐户。然后,可以有零个或多个组成员资格,组帐户ID。这些都在扩展令牌数据222中给出。
台式机的安全令牌结构是类似的。例如,可以有为重置台式机而定义的特权或为安装驱动程序而定义的特权。如此,如果一特定调用者具有特定特权设置,那么,只有该调用者才可以进行该API调用,且只有该调用者才可以重置设备或安装驱动程序。这些是特定特权。基本特权可以只是一个双字,由此它连接到基本特权[[212]]214,于是,可以有任意数量的扩展特权[[214]]216,它们是扩展令牌数据222的一部分。
可以有许多特权214,216,但是,特权214,216工作的方式与对于资源进行访问检查的方式完全相同。如此,如果特定API要求特定特权或要求特定调用者具有特定特权,那么,联系链中的每一调用者都必须具有该特定特权。只有在所有调用者序都具有该特权的情况下才允许调用经过。每一令牌都应该具有至少与基本令牌结构220同样多的信息。
扩展令牌结构222是可选设置。如此,作为示例,帐户可以是一个或多个组的成员。因此,它具有可变大小,即,大小不是固定的,而基本令牌结构大小是固定的。安全令牌200与每一进程相关联,于是,进程中的每一线程都在开始时接收或复制该安全令牌200。随着安全令牌200迁移到不同服务器,安全令牌200可以改变。迁移的安全令牌200与服务器的安全令牌相交。实际数据结构不会改变。
图3示出了根据本发明的一个实施例的安全描述符布局300的简化视图。安全描述符300是用于将许可与资源相关联的数据结构。对于特定资源,安全描述符300定义什么帐户具有对该资源的什么访问权限,并定义涉及该特定对象的所有规则。通常,对象的安全描述符300定义拥有者SID 320、组SID 330,以及相关联的ACL 340。
由于所有这些都是可选条目,因此,SD 300被定义为具有在结构的末尾列出的拥有者SID 320、组SID 330,以及ACL 340的可变大小结构。在SD结构300中提供了版本字段310和标记字段312,以指定什么值被包括在SD 300中。还提供了字段314,用于定义SD结构300的总大小。
安全令牌(即,在图2中,200)和安全描述符300之间的关系确定对访问权限的控制。当一线程访问资源时(例如,创建照片,创建文件,例如,/windows/myphotos/),[[。]][[该]],该调用最终进入服务器,且服务器确定调用者是否具有访问此资源的权限。服务器构建定义从该调用访问资源的权限的安全描述符300。因此,一旦服务器具有标识谁可以访问此资源的安全描述符300,则,服务器就查看调用者的安全令牌(即,在图2中,200),并确定调用者的身份。然后,服务器试图确定在安全描述符中所定义的身份是否位于ACE中的一个里。如果在安全描述符中所定义的身份位于ACE中的一个里,则服务器确定对于该身份有什么访问权限。如果该身份的访问被拒绝,那么,该调用被拒绝。如果该身份的访问权限是读取,那么,只为此调用者给予读取权限。
因此,必须使用安全令牌来标识调用和接收该调用的特定资源之间的交集,并且必须确定该身份在安全描述符300中具有什么权限。在一个操作系统内,可以提供很多个帐户ID。开始在进程内运行的每一线程都将继承具有该进程的帐户ID的令牌。随着线程对服务的不同域进行调用,令牌被更新。
图4示出了根据本发明的一个实施例的访问控制列表(ACL)400。ACL 400是访问控制条目(ACE)集合,其中包括ACE头部420,422,以及与ACE相关联的SID430,432。ACE标识为给定SID定义了什么访问权限。在图4中,ACL 400包括修订版字段402、未使用的字段404,定义结构406的总大小的字段,定义ACL 408结尾处的ACE的数量的字段和第二未使用的字段410。由于ACE的数量未预先定义,因此,ACL 400是可变长度结构。
每一ACE都指定帐户ID以及该帐户ID对该对象具有什么权限。例如,一个特定ACE可以帐户ID获得,其中,权限是对于该特定对象进行只读。另一特定ACE可以是帐户ID管理员访问读/写,其提供所有不同ACE的集合,且这些ACE中的每一个为特定帐户定义为此资源指定了什么权限。
在台式机上,ACE为每一个条目提供不同访问权限。不同访问权限包括允许、拒绝,以及审核。在
Figure BPA00001280925000061
CE操作系统中,对于给定ACE授予权限。当在ACL中没有带有所需访问屏蔽的ACE时,默认返回是“拒绝”。
图5示出了根据本发明的一个实施例的访问控制条目(ACE)500的结构。每一ACE 500都定义什么类型的权限被此ACE 510允许以及允许给哪一个身份(由SID给出)520。由于SID 520是可变长数据项,因此,ACE 500也是可变长度结构。与ACE 500相关联的SID数据520在ACE结构500的末尾处开始。ACE 500还包括标记530的字段、用于标识结构532的总大小的字段和屏蔽字段534。
图6示出了根据本发明的一个实施例的安全描述符(SD)600的结构布局。安全描述符(SD)600包括头部610。SD头部610标识SD 600的版本、标记和大小。接下来,SD 600包括拥有者安全标识符(SID)620和组安全标识符(SID)630。其余的数据构成访问控制列表(ACL)640。ACL 640包括ACL头部642和一个或多个访问控制条目(ACE)650。ACL头部642标识ACE 650的版本、大小和数量。每一ACE 650都包括ACE头部652和相关联的安全标识符(SID)654。
根据本发明的一个实施例的安全基础结构是当创建进程或线程时通过安全描述符、安全标识符、访问控制列表和访问控制条目来提供的。例如,进程令牌是不可改变的,是在创建进程时指派的。默认地,如果没有提供安全性,则所有进程都被平等地对待(对于令牌特权),且向进程指派预先定义的系统令牌。这是未启用安全性的系统上的默认行为。在这样的系统中,信任边界是用户模式和内核模式之间的过渡点。
进程令牌可以潜在地是多个数据点的组合,诸如:
·将映射到帐户数据库中的ID的Exe证据(路径、散列、证书)。
·帐户数据库中的给定帐户的基本特权
·帐户数据库中的给定帐户的扩展特权
·基于调用者令牌的组ID的列表
作为给定可执行程序的证据的第一信息段是由安全加载器组件确定的,且超出了本文档的范围。出于此特征的目的,假设证据映射到帐户数据库中的ID。由此,OS将从帐户数据库中的帐户信息创建令牌。当创建进程时,此令牌与进程对象相关联,并在进程的生存期内保持不变。
当创建线程时,创建线程令牌,并将其与线程对象相关联。默认地,线程令牌与同线程的拥有者进程相关联的令牌相同。进程令牌和线程令牌之间的主要区别是,线程令牌可以在线程的生存期内变化,而进程令牌在进程的生存期内保持不变。例如,线程令牌可以在下列情况下变化:
·对模仿给定令牌的调用:这将把调用线程的活动令牌改变为传入调用以进行模仿的安全令牌。
·对还原先前模仿的调用:这将把线程令牌更新为模仿调用之前的令牌。
·对模仿当前进程的调用:这将把当前线程令牌更新为当前活动进程的令牌。
·线程从API调用返回:在API调用返回时,内核将自动地删除与线程从其返回的PSL上下文相关联的所有线程令牌。在此情况下,与线程相关联的当前令牌也被更新到API调用之前的令牌。
图7示出了根据本发明的一个实施例的线程700的令牌列表布局。为管理给定线程的多个令牌,提供了令牌列表700。令牌列表700是与线程相关联的所有令牌的链接列表。线程的当前活动令牌710始终是在令牌列表700的前头的令牌节点。换言之,令牌列表700的行为就象LIFO(后进先出)队列(也叫做堆栈)一样,其中,列表中最后添加的令牌是线程的当前令牌。对当前线程的所有访问和特权检查是只使用该特定令牌和该线程的当前上下文来处理的。此外,当线程从API调用返回时,内核自动地删除由关于受保护的服务器库(PSL)712的上下文中的模仿调用来添加到此列表的任何令牌节点。此自动还原防止了API调用上的任何特权泄漏。
在操作系统中,例如,在
Figure BPA00001280925000081
CE中,线程可以通过过渡到处理相对应的API调用的服务器进程来进行API调用。由于每一线程都具有相关联的令牌——该令牌带有为该令牌定义的一组身份/特权,API服务器需要考虑该线程的当前特权来决定在当前线程上是否允许API调用。API服务器可以用来完成API调用的可能的令牌有两个:
·调用者的令牌:在此情况下,API服务器调用CeAccessCheck(GetCurrentToken(),...)(Ce访问检查(获得当前令牌(),...)。如果API调用是从高特权腔室到低特权腔室,则这种情况将是潜在的安全风险。实际上,没有高或低特权的概念。然而,出于此讨论的目的,假设高特权腔室具有低特权腔室的所有特权以及某些附加特权。
·当前进程令牌:在此情况下,API服务器调用CeAccessCheck(ImpersonateCurrentProcess(),...)(Ce访问检查(模仿当前进程(),...),其中,当前线程的令牌被更新到当前进程(API服务器的令牌)。如果API调用是从低特权腔室到高特权腔室,则这种情况将是潜在的安全风险。
每一线程开始时都以拥有者进程令牌720为开始。因此,在图7的底部列出了拥有者进程令牌720,图7示出了线程700的令牌布局。线程可以从不同的调用者或从消息队列异步地接收令牌。然后,此时线程希望基于该令牌访问资源。线程不希望使用进程令牌,而是希望改变其身份。如此,线程可以调用和模仿API中的一个,这将令牌推到令牌列表的顶部。因此,每当线程调用和模仿令牌时,该令牌变为列表的顶部。在图7中,所模仿的令牌730被示为在拥有者进程令牌720的上面。在图7中,示出了一连串N个所模仿的令牌730-750。
对照顶部令牌750,即,在当前令牌710内,检查线程访问的任何资源。每当调用模仿时,模仿令牌750始终与拥有者进程令牌720相交。如此,每当线程访问资源时,拥有者进程令牌720必须在该资源上展现访问权限,且刚刚模仿的令牌750也必须具有对该资源的访问权限。以此方式,线程可以在它过渡到不同服务器时对不同服务器进行API调用。此外,如果在联系链上有任何服务器,则所有服务器都必须具有对该资源的访问权限。
如果验证了所有三个检查,则允许对线程的访问。重要的是,此进程不同于提供单个特权。例如,如果动作只基于当前令牌750,并且如果当前令牌750碰巧具有较高的特权,那么,这将是特权的提升。相反,如果动作只基于调用者的令牌720,那么它已经从高特权服务器迁移到低特权服务器。如此,在这两种情况下,当由于可能的特权提升而只使用单个特权时,会产生安全风险。
一旦完成API调用,并返回API调用,就利用在服务器中执行的任何模仿还原令牌,以防止任何特权迭代的泄漏。如此,当API调用返回时,即使服务器忘记还原它模仿的令牌,服务器也自动地还原。以此方式,当API调用返回该令牌时,客户机也将始终还原到它在API调用之前的任何模样。
正如您可以看到的,如果我们只使用调用者的线程令牌或只使用当前进程线程令牌,则会有安全问题。为解决此问题,我们建议,当检查给定线程对于一个资源的访问时,要考虑下列各项:
·与线程的当前令牌相关联的所有身份都应该具有对资源的访问权限。
·与当前线程调用堆栈(直到模仿边界)中的所有腔室相关联的所有身份都应该具有对资源的访问权限。
·与为该线程保存的上下文相关联的所有身份都应该具有对资源的访问权限。此检查主要是在代表除调用线程以外的不同线程中的调用者执行访问检查时使用。
此改变将影响如何对于给定线程和对象检查访问权限/特权。为使代码获得对任何对象的访问,线程的当前令牌750和API服务器的令牌(即,拥有者进程/线程令牌720)两者都应该具有对该对象的访问。为使代码获得任何特权,线程的当前令牌750和API服务器的令牌720(在此示例中)两者都应该设置该特权。结果,代码默认地将始终以设置的最小访问权限/特权运行,因为线程的当前令牌750始终与当前线程的调用堆栈链700相结合。当对当前线程执行访问权限/特权检查时,这提供了用于处理由于只使用调用者的令牌720或者只使用当前进程令牌750所产生的安全问题的安全进程。下文参考表1提供了对一些令牌API的讨论。
Figure BPA00001280925000101
随后的描述是针对核心模仿和访问检查API的。表1中列出的第一令牌是提供指向令牌结构的指针以及标记的CeCreateToken(pToken,flags)字段。返回令牌的句柄。
CeImpersonate Token(Ce模仿令牌)可以被任何应用程序用来模仿给定令牌。这也被用于代表调用者执行异步调用。对于此API的实现是将此令牌推到当前线程的令牌列表的堆栈的顶部,并使此令牌成为线程的当前令牌。此API调用将始终把当前进程令牌与给此API调用的指定的令牌合并,且合并的令牌被视为当前线程的令牌。
此外,还将当前进程身份(由当前进程令牌给出)隐式地添加到传入的令牌身份。这样做的主要原因是防止调用者利用此API调用获得任何特权。换言之,此API将被局限于降级或至多具有与当前进程相同的特权。这允许代码默认地在最小特权级别下执行。其用途如下:在API调用时,当前线程的令牌被隐藏起来,稍后被API服务器中的异步线程用来在调用时利用调用者的上下文执行API调用。
如果当前线程的令牌被更新,CeImpersonateCurrentProcess(void)令牌返回真;否则,它返回假。使用CeRevertToSelfToken来“弹出”当前线程的令牌列表的令牌。通常,这被API服务器用来撤销经由CeImpersonateToken或CeImpersonateCurrentProcess API调用执行的任何令牌模仿。使用CeImpersonateCurrentProcess Token(Ce模仿当前进程令牌)来将当前线程的令牌列表截断到当前进程令牌。这有效地将当前进程令牌“推”到当前线程的令牌列表的前头。
CeAccessCheck Token(Ce访问检查令牌)包括三个自变量。第一自变量是表示为我们正请求访问的对象设置的许可的SD。第二自变量是请求访问对象的身份的令牌。第三自变量是对对象的所需访问权限。使用CeAccessCheckToken(Ce访问检查令牌)来检查对于给定令牌中的每一个帐户以及对于给定SD中列出的每一个ACE的给定访问权限。此API检查对于给定令牌中的每一个帐户以及对于给定SD中列出的每一个ACE的给定访问权限。
CePrivilegeCheck Token(Ce特权检查令牌)检查给定令牌中的给定特权访问。此API检查给定令牌中的给定特权访问。为使API成功,所有给定特权(在pPrivileges阵列中指定的)都必须存在于令牌的基本或扩展特权列表中。
CeGetProcessAccount(hProcess)令牌返回与给定进程相关联的拥有者帐户。CeGetThreadAccount(hThread)令牌返回与给定线程相关联的拥有者帐户。CeGetOwnerAccount(hToken)令牌返回与给定令牌相关联的拥有者帐户。CeGetGroupAccount(hToken,idx)令牌使用令牌的句柄和组帐户的索引来返回与给定令牌相关联的组帐户。GetCurrentToken(void)令牌提供线程的当前令牌的伪句柄。
图8示出了根据本发明的一个实施例的PSL调用800中的线程的调用堆栈列表。在操作中,内核维护了关于每一线程的调用堆栈结构列表。在每一PSL调用和返回上,更新线程的调用堆栈列表800。在图8中,示出了四个调用堆栈810,820,830,840。最后调用堆栈840在顶部,并是当前调用堆栈。在PSL调用进入之际,添加新的调用堆栈结构。在API调用返回时,删除最顶部的调用堆栈结构。调用堆栈结构800与线程已迁移至的一个PSL服务器相对应。
图9是示出了根据本发明的一个实施例的线程900的模仿列表和调用堆栈列表之间的链接的框图。类似于调用堆栈结构,在列表中维护了线程的令牌,且当前模仿位于令牌列表的顶部。在图9中,示出了四个调用堆栈910,920,930,940。最后调用堆栈940在顶部,并是当前调用堆栈。为确保跨PSL调用没有特权泄漏,内核在当前线程的模仿列表和当前线程的调用堆栈列表之间维护了链接。每一模仿节点都与其中发生了模仿调用的调用堆栈结构相关联。
如此,在图9中,属于一个应用程序的线程迁移到PSL服务器S1 910。PSL服务器S1调用模仿API,结果,模仿节点912被添加到模仿列表,并在模仿节点T1 912中标记相关联的调用堆栈结构S1。接下来,PSL服务器S1迁移到PSL服务器S2 920。S2不进行任何模仿调用。接下来,此时线程在同一个调用中迁移到S3 930,且S3服务器调用模仿令牌。新的模仿节点932被添加到令牌列表中,在T2 932中标注相关联的调用堆栈结构S3 930。
在线程生存期的不同阶段执行资源检查。例如,考虑来自S1 910的访问检查。在此情况下,当线程迁移到S1进程910时,针对访问权限检查资源。将执行下列检查:
·令牌T1中的所有身份都应该具有对资源的访问
·与进程S1相关联的令牌中的所有身份都应该具有对资源的访问
接下来,考虑从S2920的访问检查。在此情况下,当线程经由S1910进程迁移到S2920进程时,针对访问权限检查资源。在此情况下,将执行下列检查:
·令牌T1中的所有身份都应该具有对资源的访问
·与进程S2相关联的令牌中的所有身份都应该具有对资源的访问
·与进程S1相关联的令牌中的所有身份都应该具有对资源的访问
在从S3 930执行访问检查时,线程经由S1 910再经由S2 920迁移到进程S3 930。从S3 930调用访问检查。将执行下列检查:
·令牌T2中的所有身份都应该具有对资源的访问
·与进程S3相关联的令牌中的所有身份都应该具有对资源的访问
注意,在此情况下,尽管线程全上下文在其调用链中具有进程S2 920和S1 910,但是,不针对这些进程执行访问检查,因为S3 930模仿令牌,并且模仿有效地切断调用堆栈链。
在从当前进程(列为调用堆栈顶部940)执行访问检查时,在线程调用堆栈链900中的S3进程930和当前进程940之间没有更多令牌模仿。将执行下列检查:
·令牌T2中的所有身份都应该具有对资源的访问
·与调用堆栈链中的当前进程-进程S3相关联的令牌中的所有身份都应该具有对资源的访问权限。
如此,访问检查的基本规则包括当前令牌(在当前线程的令牌列表的前头的令牌)是否应该具有对资源的访问,以及从当前进程直到调用了模仿的最后进程(包括)的所有进程是否应该具有对资源的访问。
可以提供CeGetAccessMask API(Ce获得访问屏蔽API),以返回指派给给定SD的令牌的最大访问权限。可以使用三个自变量来实现这样的API:
·具有我们希望检查其访问权限的身份的列表的令牌
·列出与给定资源的不同ID相关联的ACE的安全描述符
·返回为给定SD和令牌组合设置的最大访问权限的[出(out)]参数。
对于此API的实现是直接的:对于令牌中的每一个ID,执行检查以确定SD中是否有Allow ACE(允许ACE)。如果有,则将与该ACE相关联的访问屏蔽添加到将返回的访问屏蔽值。对于当前线程上下文中的每一个令牌,重复此步骤,(直到最后一个模仿),并只返回在所有令牌中设置的那个访问屏蔽。注意,与CeAccessCheck不同,此API调用需要扫描SD中的所有ACE,以获得来自令牌的带有匹配的ID的所有访问屏蔽的并集。
此外,还可以通过计及下列自变量来提供CeDuplicateToken API(Ce复制令牌API):
·源令牌调用者的句柄正在尝试复制。
·指向新复制的令牌对象的句柄的[出(out)]指针在调用进程内复制令牌对象。
图10示出了根据本发明的一个实施例的消息队列系统1000。根据本发明的一个实施例,消息队列1010在客户端1020和服务器1030进程之间提供异步消息接发。消息队列1010允许客户端1020打开消息队列1010的写入端,并允许服务器1030打开消息队列1010的读取端。客户端1020和服务器1030可以将消息及其他数据张贴到消息队列1010中。可以提供多个消息队列1010,且这样的消息队列1010异步地操作。如此,随着客户端1020写入消息,然后离开,客户端1020不等待确认或任何类型的信号。然后,服务器1030可以拾取消息,并基于检索出的消息来执行动作。当服务器1030拾取消息时,服务器1030必须具有在写入该消息时实际拥有该消息的线程的安全凭证。到服务器1030读取该消息时联系会改变,如此,联系快照的副本必须已经制作,并与消息一起写入,以便当服务器1030读取消息时,服务器可以实际访问该快照,模仿该快照,然后,创作消息,并将结果发回。
除异步地将消息和发送该消息的发送者的身份传递到服务器1030以使得服务器1030可以代表它们进行操作的过程之外,消息和消息的张贴者的身份,以及在张贴消息时存在的消息的张贴者的整个安全联系,也是该过程的一部分。以此方式,在稍后的时间可以作出更安全的决定。然而,本领域技术人员将认识到,本发明不意味着仅限于使用如此处所描述的消息队列。相反地,用于给服务器提供线程的联系链的其他技术也是可能的。
当一个进程启动时,向它指派了某种身份,并向该进程中的每一个线程给定该身份。随着线程迁移到系统上的其他进程,这些线程累积那些其他进程的身份,以便当启动关于线程的安全决定时,可对所有这些身份求交集,以确定线程的访问特权。此外,进程并未意味着对于任何特定服务器是特定的。相反地,任何服务器都可以使用此模型。例如,在
Figure BPA00001280925000161
操作系统上,如果将输入数据令牌,则必须存在特定特权,即,模仿特权。模仿是被允许的,因为在最坏情况下模仿导致权限降级。
在涉及多个调用者的情况下,例如,在台式机上,当应用程序调用创建文件或由操作系统导出的任何其他API时,在内核模式下,线程在用户的边界停止,且内核内的另一线程将甩出(spin off),并对于该API执行动作,然后将调用返回到线程。如此,线程实际从一个进程过渡到台式机上的另一个进程。而在
Figure BPA00001280925000162
CE操作系统上,当应用程序进行API调用时,线程实际迁移到服务器进程。
通常,服务器进程的特权比客户机更高。因此,如果应用程序调用注册公开密钥来打开注册表,并且该特定注册表是低特权应用程序不能读取的受保护密钥,则线程上的调用和线程将迁移到实际实现注册表API的服务器进程。如果该服务器进程携带访问密钥,则这是该同一个类型的行为,因为调用者的安全联系不被考虑。然而,如果将调用者的安全联系与当前安全联系进行比较,那么,将拒绝对该受保护资源的访问。
台式机
Figure BPA00001280925000163
操作系统和Windows
Figure BPA00001280925000164
操作系统是不同的,因为Windows
Figure BPA00001280925000165
操作系统的线程实际上迁移,且必须与线程一起维护安全联系信息。只有那时才可以基于请求对资源的访问时的整个联系来作出决定。对于台式机,当从用户模式过渡到内核模式时,当前线程联系必须被复制,并且随后在内核线程上,调用者被迁移,且动作被完成,就像代表调用者完成的那样。一旦完成了动作,执行迁移回原始安全联系,并将结果返回到调用者。
序列化和解序列化特定线程的安全联系。例如,在Windows
Figure BPA00001280925000166
操作系统中,保护数据库记录,以使得谁可以更新以及谁可以编辑数据库记录是受限制的。为提供安全性,记录的安全联系与记录一起被保存。如此,例如,当一个调用到达以更新记录时,也可以传达记录的安全联系和调用者,以查看调用者是否具有足以执行所请求的数据库操作的权限。为实现此过程,安全联系必须能够在脱机数据库中被处理,因为数据库是永久性的。因此,运行Windows
Figure BPA00001280925000171
操作系统的设备被设置,且当该设备复原时,就数据库记录是否仍保留了相同联系作出确定。当调用者被标识时,确定该联系链中的所有帐户,然后另存为文件。当新调用到达时,再次构建一个文件,并将其与保存的文件进行比较以确保调用者是联系链中的帐户的子集。
如果应用程序对服务器进行调用,则服务器执行线程中的动作。在不同的线程中,可以模仿调用者,以使得代表调用者访问所有资源。来自客户机的安全联系的快照基本上包括:读取发送者的名称,当前联系链中的所有调用者,什么帐户或不同帐户位于联系链中,以及是否发生了到不同服务器的迁移。例如,应用程序4RXE可以调用服务器,然后,该同一线程调用另一服务器。如此,联系链上可以有多个服务器。然而,它们中的每一个都必须具有适当的访问权限。因此,当获取联系快照时,必须捕捉当前处于联系中的所有帐户。
值得注意的是,随着线程跨系统迁移,其安全联系会变化,因为它穿过不同服务器并具有不同权限。必须确定它们的所有权限的交集。需要用于在一个时间点拍快照的能力,以作出安全决定。换言之,当将进行安全检查时,被验证的所有ID都需要保存,如此,可以异步地或稍后进行检查。
上文所描述的系统和组件可被实现为联网的,分布式的或其他计算机实现的环境的一部分。系统和组件可以经由有线、无线和/或通信网络的组合来进行通信。包括台式计算机、膝上型计算机、手持式设备的许多客户机计算设备,或其他智能设备可以与系统进行交互和/或作为系统的一部分被包括。在替换实施例中,可以根据所希望的实现,组合和/或配置各个组件。还有其他实施例和配置可用。
现在参考图11,下面的讨论旨在提供其中可以实现本发明的各实施例的合适的计算环境的简要的一般说明。尽管将在与在个人计算机上的操作系统上运行的程序模块一起执行的程序模块的一般上下文中来描述本发明,但是,本领域的技术人员将认识到,本发明也可以与其他类型的计算机系统和程序模块相结合地实现。
一般而言,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构以及其他类型的结构。此外,本领域技术人员将了解,可以利用其他计算机系统配置来实施本发明,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机,等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
现在参考图11,将描述本发明的各实施例的说明性操作环境。如图11所示,计算机1100包括能够执行一个或多个应用程序的通用台式机、膝上型计算机、手持式设备或其他类型的计算机。计算机1100包括至少一个中央处理单元1108(“CPU”)、系统存储器1112,包括随机存取存储器1118(“RAM”)和只读存储器(“ROM”),以及将存储器连接到CPU 1108的系统总线1110。基本输入/输出系统可以存储在ROM 1120中,包含例如在启动过程中帮助在计算机内的元件之间传输信息的基本例程。计算机1100还包括用于存储操作系统1132、应用程序,及其他程序模块的大容量存储设备1114。
大容量存储设备1114可以通过连接到总线1110的大容量存储控制器(未示出)连接到CPU 1108。大容量存储设备1114以及其相关联的计算机可读介质可以为计算机1100提供非易失性存储器。虽然此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是,本领域的技术人员应该了解,计算机可读介质可以是可以被计算机1100访问或利用的任何可用的介质。
作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机1100访问的任何其它介质。
根据本发明的各实施例,计算机2可以通过诸如例如局域网、因特网等等之类的网络1104使用到远程计算机的逻辑连接来在联网环境中操作。计算机1100可以通过连接到总线1110的网络接口单元1116来连接到网络1104。应该了解,网络接口单元1116还可以被用来连接到其他类型的网络和远程计算系统。计算机1100还可以包括输入/输出控制器1122,用于接收和处理来自包括键盘、鼠标等等(未示出)的许多其他设备的输入。类似地,输入/输出控制器1122可以向显示屏幕、打印机、或其他类型的输出设备提供输出。
如上文简要地提及的,许多程序模块和数据文件可以存储在计算机1100的大容量存储设备1114和RAM 1118中,包括适于控制联网的个人计算机的操作的操作系统1132,诸如位于华盛顿州雷德蒙市的微软公司的
Figure BPA00001280925000191
操作系统。大容量存储设备1114和RAM 1118还可以存储一个或多个程序模块。具体而言,大容量存储设备1114和RAM 1118可以存储客户端应用程序1140及其他软件应用程序1142。如图11所示,计算机1100可以被配置成执行提供如图1-10所描述的根据本发明的各实施例的安全基础结构的指令。
应该了解,本发明的各实施例可以实现成(1)计算机实现的动作序列或在计算系统上运行的程序模块和/或(2)计算系统内的互连机器逻辑电路或电路模块。实现是取决于实现本发明的计算系统的性能要求的选择问题。因此,包括相关算法的逻辑操作可以被不同地称为操作、结构设备、动作、或模块。所属领域技术人员将认识到,在不偏离在此处所阐述的权利要求书内所列举的本发明的精神和范围的情况下,这些操作、结构设备、动作和模块可以以软件、固件、特殊用途数字逻辑,以及其任何组合来实现。
虽然结合各个示例性实施例描述了本发明,但是,本领域技术人员可以理解,在随后的权利要求书的范围内可以对本发明进行许多修改。因此,本发明的范围不以任何方式受上面的描述的限制,而是完全参考随后的权利要求书来确定。

Claims (20)

1.一种包括可执行指令的计算机可读介质,当执行所述可执行指令时,提供用于控制相关联的主体对资源的访问的安全基础结构,通过:
提供用于为相关联的主体定义唯一标识符并用于指定与所述相关联的主体相关联的帐户的安全标识符100;
将所述唯一标识符映射到帐户数据库中的条目,以便确定指派给所述安全标识符100的基本214和扩展216特权;
随着所述相关联的主体的迁移,累积相关联的主体的标识210,212;
创建用于基于所述对指派给所述安全标识符100的基本214和扩展216特权的确定,来定义一组身份210,212和指派给所述一组身份的特权集合的安全令牌200;以及
通过对所述相关联的主体的所有所述累积的身份210,212和所述特权214,216的集合求交集来确定所述相关联的主体的访问特权。
2.如权利要求1所述的计算机可读介质,其特征在于,所述相关联的主体包括进程或进程的线程。
3.如权利要求1所述的计算机可读介质,其特征在于,所述确定所述相关联的主体的访问特权214,216还包括捕捉所述当前相关联的主体的调用链上下文以及分析所述当前相关联的主体,以在赋予对所述资源的访问之前验证所述调用链中的每一累积的身份210,212和每一相关联的主体都具有对所请求资源的访问,由此默认地启用最小特权。
4.如权利要求1所述的计算机可读介质,其特征在于,所述安全令牌200和所述安全描述符300之间的关系确定对由相关联的主体对所请求资源的访问权限的控制。
5.如权利要求1所述的计算机可读介质,其特征在于,所述确定访问特权214,216使用安全令牌200中的每一安全标识符100来确定安全令牌是否请求访问由安全描述符300所指定的资源,仅当在所述联系链中的每一调用者都具有准许访问所请求资源的特权时才准许对所述所请求资源的访问。
6.如权利要求1所述的计算机可读介质,其特征在于,还包括:
构建定义对所述资源的访问权限的安全描述符300;
根据所述安全令牌200标识所述相关联的主体;
确定所述安全描述符300中定义的所述身份320,330是否被包括在所述安全描述符中的访问控制条目500中;
基于所述访问控制条目来确定对所述身份可用的访问权限;以及
根据所述确定的访问权限来向给所述身份320,330赋予访问权限。
7.如权利要求1所述的计算机可读介质,其特征在于,还包括在安全令牌列表700中维护与相关联的主体有关的所有令牌200的列表,其中,当前活动令牌710始终在所述安全令牌列表的前头,对所述当前相关联的主体的所有访问和特权检查是使用所述当前活动安全令牌710和所述相关联的主体的当前上下文,通过将相关联的主体请求访问的资源与位于所述安全令牌列表700的所述前头的当前活动安全令牌进行比较来处理的。
8.如权利要求1所述的计算机可读介质,其特征在于,还包括在客户机1020侧,在消息队列中写入相关联的主体的安全上下文,在服务器1030侧,从所述消息队列中异步地检索所述相关联的主体的所述安全上下文,通过复制要模仿的所述相关联的主体的所述检索到的安全上下文来模仿所述相关联的主体。
9.如权利要求1所述的计算机可读介质,其特征在于,还包括当与相关联的主体的当前安全令牌710相关联的所有身份210,212都具有对请求的资源的访问、所述与当前相关联的主体的调用堆栈800中的所有腔室相关联的所有身份都具有对所述请求的资源的访问、以及与所述相关联的主体的所保存的上下文相关联的所有身份都具有对所述所请求的资源的访问时,准许对所述所请求的资源的访问。
10.如权利要求1所述的计算机可读介质,其特征在于,还包括将安全联系存储在脱机数据库中以便进行脱机处理。
11.一种安全基础结构,包括:
用于为相关联的主体定义唯一标识符并用于指定与所述相关联的主体相关联的帐户的安全标识符100;
用于基于对指派给所述安全标识符100的基本214和扩展216特权的确定来定义一组身份和指派给所述一组标识的特权集合的安全令牌200;
用于定义具有对所请求资源的访问的帐户以及与所述进程有关规则的安全描述符;以及
访问控制列表400,所述访问控制列表包括用于标识安全标识符100的访问权限的至少一个访问控制条目500。
12.如权利要求11所述的安全基础结构,其特征在于,所述安全令牌200包括用于标识所述结构的版本202、标记204、偏移量206,立即组的数量207和组标识符的总数208的字段。
13.如权利要求12所述的安全基础结构,其特征在于,所述安全令牌200还包括主要拥有者安全标识符210、组安全标识符212、基本特权214和扩展特权216。
14.如权利要求13所述的安全基础结构,其特征在于,所述主要210和组212安全标识符定义所述安全令牌200的相关联的主体的身份。
15.如权利要求13所述的安全基础结构,其特征在于,基本特权214包括对在所述安全令牌200中指定的所述身份有效的一组特权。
16.如权利要求13所述的安全基础结构,其特征在于,扩展特权216包括为所述安全令牌200中的安全标识符100定义的自定义特权。
17.一种用于向相关联的主体准许最小特权访问的方法,包括:
提供用于为相关联的主体定义唯一标识符并用于指定与所述相关联的主体相关联的帐户的安全标识符100;
将所述唯一标识符映射到帐户数据库中的条目,以便确定指派给所述安全标识符100的基本214和扩展216特权;
随着所述相关联的主体的迁移,累积相关联的主体的身份210,212;
创建用于基于所述对指派给所述安全标识符100的所述基本214和扩展216特权的确定来定义一组身份210,212和指派给所述一组身份的特权集合的安全令牌200;以及
通过对所述相关联的主体的所有所述累积的身份210,212和特权214,216的集合求交集来确定所述相关联的主体的访问特权。
18.如权利要求17所述的方法,其特征在于,所述确定所述相关联的主体的访问特权214,216还包括捕捉所述当前相关联的主体的调用链上下文以及分析所述当前相关联的主体,以在准许访问所述资源之前验证所述调用链中的每一累积的身份210,212和每一相关联的主体都具有所述所请求资源的访问,由此默认地启用最小特权。
19.如权利要求1所述的方法,其特征在于,还包括:
在客户机1020侧,在消息队列中写入相关联的主体的安全上下文,
在所述服务器1030侧,从所述消息队列中异步地检索所述相关联的主体的所述安全上下文,
通过复制要模仿的所述相关联的主体的所述检索到的安全上下文来模仿所述相关联的主体。
分析所述复制的安全上下文750以构建定义对所述请求的资源的访问权限的安全描述符300;
根据所述安全令牌200标识所述相关联的主体;
确定所述安全描述符300中所定义的所述身份320,330是否被包括在所述安全描述符中的访问控制条目500中;以及
基于所述访问控制条目500来确定对所述身份320,330可用的访问权限。
20.如权利要求1所述的方法,其特征在于,还包括当与相关联的主体的当前安全令牌710相关联的所有身份210,212都具有对所述请求的资源的访问、所述与当前相关联的主体的调用堆栈800中的所有腔室相关联的所有身份都具有对所述请求的资源的访问、以及与所述相关联的主体的所保存的上下文相关联的所有身份都具有对所述所请求的资源的访问时,准许访问所述所请求的资源。
CN200980124867.5A 2008-06-27 2009-06-24 为计算过程授予最小特权访问 Expired - Fee Related CN102112990B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/163,164 2008-06-27
US12/163,164 US8397290B2 (en) 2008-06-27 2008-06-27 Granting least privilege access for computing processes
PCT/US2009/048461 WO2009158405A2 (en) 2008-06-27 2009-06-24 Granting least privilege access for computing processes

Publications (2)

Publication Number Publication Date
CN102112990A true CN102112990A (zh) 2011-06-29
CN102112990B CN102112990B (zh) 2014-08-13

Family

ID=41445278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980124867.5A Expired - Fee Related CN102112990B (zh) 2008-06-27 2009-06-24 为计算过程授予最小特权访问

Country Status (6)

Country Link
US (1) US8397290B2 (zh)
EP (1) EP2291785A4 (zh)
JP (1) JP5462254B2 (zh)
KR (1) KR20110040767A (zh)
CN (1) CN102112990B (zh)
WO (1) WO2009158405A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102647429A (zh) * 2012-04-28 2012-08-22 杭州格畅科技有限公司 应用间通信的访问控制方法、应用进程管理器、在线应用平台
CN104969235A (zh) * 2013-01-31 2015-10-07 日本电气株式会社 网络系统
CN105229603A (zh) * 2013-04-22 2016-01-06 微软技术许可有限责任公司 控制对应用编程接口的运行时访问
CN107533608A (zh) * 2014-12-26 2018-01-02 迈克菲有限责任公司 可信更新
CN109284193A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种基于多线程的分布式数据处理方法及服务器
CN111381977A (zh) * 2018-12-29 2020-07-07 北大方正集团有限公司 消息处理方法及设备
WO2021056910A1 (zh) * 2019-09-29 2021-04-01 苏州浪潮智能科技有限公司 一种通信方法、系统、设备及计算机可读存储介质

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397290B2 (en) * 2008-06-27 2013-03-12 Microsoft Corporation Granting least privilege access for computing processes
US8798579B2 (en) 2008-09-30 2014-08-05 Xe2 Ltd. System and method for secure management of mobile user access to network resources
WO2010037201A1 (en) * 2008-09-30 2010-04-08 Wicksoft Corporation System and method for secure management of mobile user access to enterprise network resources
US9167028B1 (en) * 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
US8938533B1 (en) * 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US8990561B2 (en) * 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
EP3185469B1 (en) 2012-10-30 2018-10-17 LG Electronics Inc. Method and apparatus for authenticating access authority for specific resource in wireless communication system
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
JP6123350B2 (ja) * 2013-02-26 2017-05-10 日本電気株式会社 検証装置、検証方法、及びプログラム
WO2014143029A1 (en) 2013-03-15 2014-09-18 Mcafee, Inc. Generic privilege escalation prevention
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
CN103745161B (zh) * 2013-12-23 2016-08-24 东软集团股份有限公司 访问安全控制方法及装置
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
JP6340308B2 (ja) * 2014-12-05 2018-06-06 日本電信電話株式会社 並列処理システム、方法、およびプログラム
CN104735091B (zh) * 2015-04-17 2018-03-30 三星电子(中国)研发中心 一种基于Linux系统的用户访问控制方法和装置
CN105550587A (zh) * 2015-12-11 2016-05-04 北京元心科技有限公司 在多系统的终端设备中控制系统资源访问的方法及装置
WO2018068868A1 (en) * 2016-10-14 2018-04-19 Huawei Technologies Co., Ltd. Apparatus and method for tracking access permissions over multiple execution environments
KR102690486B1 (ko) * 2016-11-28 2024-08-01 삼성전자주식회사 프로세서 및 그 제어방법
US10623410B2 (en) 2017-04-24 2020-04-14 Microsoft Technology Licensing, Llc Multi-level, distributed access control between services and applications
US10897462B2 (en) * 2017-05-16 2021-01-19 Citrix Systems, Inc. Systems and methods for encoding additional authentication data into an active directory security identifier
US10762202B2 (en) * 2018-04-11 2020-09-01 Crowdstrike, Inc. Securely and efficiently providing user notifications about security actions
US10868814B2 (en) * 2018-04-30 2020-12-15 Samsung Electronics Co., Ltd. System and method for flow-based architecture
US11132437B2 (en) 2018-06-26 2021-09-28 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Secure computer operating system through interpreted user applications
CN109684104B (zh) * 2018-12-17 2021-03-26 广州方硅信息技术有限公司 一种服务间调用链的展示实现方法及设备
US11822676B2 (en) * 2019-06-25 2023-11-21 Vmware, Inc. Determination of a minimal set of privileges to execute a workflow in a virtualized computing environment
US11436160B2 (en) * 2019-10-03 2022-09-06 Microsoft Technology Licensing, Llc Protection of data in memory of an integrated circuit using a secret token
US20230421597A1 (en) * 2022-06-28 2023-12-28 QSecGrid, Inc. Cybersecurity risk assessment and measurement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385724B1 (en) * 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
CN1617099A (zh) * 2003-10-24 2005-05-18 微软公司 软件产品的应用程序身份

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187790A (en) 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5414852A (en) * 1992-10-30 1995-05-09 International Business Machines Corporation Method for protecting data in a computer system
US5586260A (en) * 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US6377994B1 (en) 1996-04-15 2002-04-23 International Business Machines Corporation Method and apparatus for controlling server access to a resource in a client/server system
US6338064B1 (en) 1998-05-14 2002-01-08 International Business Machines Corporation Method for enabling a web server running a “closed” native operating system to impersonate a user of a web client to obtain a protected file
US6279111B1 (en) * 1998-06-12 2001-08-21 Microsoft Corporation Security model using restricted tokens
US6412070B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Extensible security system and method for controlling access to objects in a computing environment
US7188254B2 (en) 2003-08-20 2007-03-06 Microsoft Corporation Peer-to-peer authorization method
US7703135B2 (en) * 2004-12-21 2010-04-20 International Business Machines Corporation Accessing protected resources via multi-identity security environments
US20060193467A1 (en) 2005-02-16 2006-08-31 Joseph Levin Access control in a computer system
US8646044B2 (en) * 2005-04-28 2014-02-04 Microsoft Corporation Mandatory integrity control
US20060259947A1 (en) * 2005-05-11 2006-11-16 Nokia Corporation Method for enforcing a Java security policy in a multi virtual machine system
US20060259980A1 (en) * 2005-05-16 2006-11-16 Microsoft Corporation Method and system for limiting rights of services
US7702912B2 (en) * 2005-05-19 2010-04-20 Novell, Inc. Secure systems management
US20070011452A1 (en) * 2005-07-08 2007-01-11 Alcatel Multi-level and multi-factor security credentials management for network element authentication
US8024770B2 (en) 2006-06-21 2011-09-20 Microsoft Corporation Techniques for managing security contexts
US8397290B2 (en) * 2008-06-27 2013-03-12 Microsoft Corporation Granting least privilege access for computing processes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385724B1 (en) * 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
CN1617099A (zh) * 2003-10-24 2005-05-18 微软公司 软件产品的应用程序身份

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102647429A (zh) * 2012-04-28 2012-08-22 杭州格畅科技有限公司 应用间通信的访问控制方法、应用进程管理器、在线应用平台
CN104969235A (zh) * 2013-01-31 2015-10-07 日本电气株式会社 网络系统
US10129173B2 (en) 2013-01-31 2018-11-13 Nec Corporation Network system and method for changing access rights associated with account IDs of an account name
CN105229603B (zh) * 2013-04-22 2019-03-22 微软技术许可有限责任公司 控制对应用编程接口的运行时访问
CN105229603A (zh) * 2013-04-22 2016-01-06 微软技术许可有限责任公司 控制对应用编程接口的运行时访问
US11003511B2 (en) 2013-04-22 2021-05-11 Microsoft Technology Licensing, Llc Controlling runtime access to application program interfaces
CN107533608A (zh) * 2014-12-26 2018-01-02 迈克菲有限责任公司 可信更新
US10929540B2 (en) 2014-12-26 2021-02-23 Mcafee, Llc Trusted updates
CN107533608B (zh) * 2014-12-26 2021-08-24 迈克菲有限责任公司 可信更新
US11531759B2 (en) 2014-12-26 2022-12-20 Mcafee, Llc Trusted updates
CN109284193A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种基于多线程的分布式数据处理方法及服务器
CN111381977A (zh) * 2018-12-29 2020-07-07 北大方正集团有限公司 消息处理方法及设备
WO2021056910A1 (zh) * 2019-09-29 2021-04-01 苏州浪潮智能科技有限公司 一种通信方法、系统、设备及计算机可读存储介质
US11792195B2 (en) 2019-09-29 2023-10-17 Inspur Suzhou Intelligent Technology Co., Ltd. Communication method, system and device and computer-readable storage medium

Also Published As

Publication number Publication date
KR20110040767A (ko) 2011-04-20
CN102112990B (zh) 2014-08-13
EP2291785A4 (en) 2011-12-21
WO2009158405A3 (en) 2010-04-22
US8397290B2 (en) 2013-03-12
EP2291785A2 (en) 2011-03-09
WO2009158405A2 (en) 2009-12-30
JP2011526387A (ja) 2011-10-06
JP5462254B2 (ja) 2014-04-02
US20090328180A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
CN102112990B (zh) 为计算过程授予最小特权访问
KR101751088B1 (ko) 자원 속성에 기초한 자원 액세스의 제어
CN101366040B (zh) 用于管理用户对于包含对象的服务器的访问的方法和系统
US9418219B2 (en) Inter-process message security
EP1625691B1 (en) System and method for electronic document security
KR101101085B1 (ko) 데이터 아이템의 구역 기반 보안 관리
US7380267B2 (en) Policy setting support tool
EP1309906B1 (en) Evidence-based security policy manager
US8689289B2 (en) Global object access auditing
US20080208924A1 (en) Security model for common multiplexed transactional logs
CN101772764A (zh) 多线程业务编程库
CN111368286A (zh) 权限控制方法、装置、设备及存储介质
JP4723930B2 (ja) 複合的アクセス認可方法及び装置
JP2006172377A (ja) ワークフローシステムおよび関連権限設定方法およびプログラムおよび記録媒体
US11620364B2 (en) Layered-infrastructure blockchain-based system for software license distribution
RU2134931C1 (ru) Способ обеспечения доступа к объектам в операционной системе мсвс
Wilson et al. Data management challenges in blockchain-based applications
JP2000155715A (ja) コンピュータのディレクトリアクセス制御システム及び方法
JP2005332049A (ja) ポリシ変換方法、ポリシ移行方法およびポリシ評価方法
JP4371995B2 (ja) 共有ファイルのアクセス制御方法、システム、サーバ装置、及びプログラム
US11625365B2 (en) Method for managing virtual file, apparatus for the same, computer program for the same, and recording medium storing computer program thereof
US20220353298A1 (en) Embedded and distributable policy enforcement
US20220366039A1 (en) Abnormally permissive role definition detection systems
JP2007094749A (ja) 監査ログの出力方法及びサーバクライアントシステム
CN114139127A (zh) 一种计算机系统的权限管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140813

Termination date: 20150624

EXPY Termination of patent right or utility model